欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

最近在学习 OpenStack,已经了解了其作用、架构。想进一步学习研究OpenStack各组件,对于源代码的阅读和学习,想得到大家的建议?

程序员文章站 2022-03-27 09:52:47
...

回复内容:

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

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

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