回复内容:

1、语言上的建议:学好python。
OpenStack是纯python工程,所以你必须要熟悉python的语法、调试、调用。比如:
  • pdb:基础使用,断点,调用栈
  • 日志:调用栈打印,函数入参打印,底层命令打印
  • 涉及的python开源框架、组件:如SQLAlchemy、Django
  • 面向对象:清楚抽象、继承、多态、组合等概念
  • 语法:更钟意字典、处处解耦的思想等
  • 编码规则:去读一读PEP8。
2、快速学习OpenStack的建议:
  • 框架,问google:
    • google image中把OpenStack的图筛选一遍,把画的最好的拿出来仔细研究,弄清楚各个部件的角色、通信机制。(google openstack架构图
  • 北向:把官方手册过一遍,记住各个组件的功能与接口。
  • 南向:搞清楚虚拟机的生命周期
    • 以及主要涉及到的底层函数,xml文件如何构造,和libvirt如何衔接
    • 对KVM和XEN的适配不同点
  • 组件:抛弃devstack,自己手动架一次OpenStack,理清各个组件的用途
    • 看懂各个组件的关系与交互方法 —— RabbitMQ、scheduler等组件/模块
    • 弄清楚各个组件提供的接口,一般接口都是稳定的,定义好了就不会变(如*_client)
  • 技术:
    • 弄清楚RESTful api、wsgi、eventlet等技术点
    • 看一看有意思的实现,如L2 population。
  • 业界:看看每个组件的贡献度,哪家公司掌握了哪一块。比如nicira/cisco在里面是什么角色。
3、想看懂OpenStack很容易,但精通很难。
建议先从一个组件的某个点着手,比如:
  • 虚拟机的生命周期
  • nova-compute对底层libvirt的调用
  • nova-scheduler的调度机制等等
祝你能持之以恒。

2013/6/11 更新:
官方架构图:http://docs.openstack.org/trunk/openstack-compute/admin/content/conceptual-architecture.html
看一个东西,一般都要循序渐进。
  • 先了解它的整体架构,搞清楚为什么要用这样的架构;
  • 然后再了解架构中的各个组件,组件提供的主要功能与各个组件之间的交互;
  • 然后深入组件中的某个模块,分析模块的用途,理解模块所涉及的理论;
  • 最后才是看模块中的代码,分析代码流程,交互走向,验证之前的分析,得到具体结论。
四步做完,基本上就可以假冒相应软件的作者了。
祝看帖各位 节日快乐。

2014/3/17 更新:
修改回答结构,删除过时内容。前面总结得比较详细了,对Linux、Python和IaaS有一定了解后,可以关注下UnitedStack博客了解这个行业的动态和最佳实践 有云博客 | UnitedStack有云看Core怎么说的:An Ideal OpenStack Developer

以下是八卦:
买和云计算相关的中文书籍要三思。
少看微博上和OpenStack有关的话题。
靠谱的团队难找,入坑要谨慎。看6月要面世的新书
《OpenStack设计与实现 云计算 OpenStack》【摘要 书评 试读】如果有条件的话,可以试着搭一套OpenStack的环境,对整体架构的了解会熟悉一些。
然后在针对nova、neutron、cinder等关键组件具体学习。能实习是关键,有项目是基础
09-13 23:15