分享

OpenStack二次开发建议,会二次开发是人才中的人才

hyj 发表于 2013-12-26 23:16:59 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 1 7476
1、学好python。OpenStack是纯python架构,所以你必须要对python的语法、调试、调用达到熟练的程度。比如:

  • 学会并用好pdb(python的gdb),常看调用栈
  • 学会打印关键结构,把关键信息打到日志里(调用栈、字典打印)
  • 了解openstack里各个组件的技术、框架(如sqlalchemy、django)
  • 对mixin(一种面向对象“组合”的思想)了如指掌
  • 以及更钟意字典、处处解耦的思想等
2、非python的建议:

  • google image中把openstack的图筛选一遍,把画的最好的拿出来仔细研究,弄清楚各个部件的时序。(google openstack架构图
  • 把官方手册过一遍(尽管很多地方写的一点也不妥帖,但将就着看吧)
  • 搞清楚虚拟机的生命周期以及主要涉及到的底层函数(重中之重)
  • 自己手动架一次openstack(不要devstack),理清楚里面各个组件的用途
  • 弄清楚各个组件的关系与交互方法 —— rabbitmq、scheduler等组件/模块
  • 弄清楚各个组件提供的接口,一般接口都是稳定的,定义好了就不会变(如quantum_client)
  • 弄清楚REST、wsgi、eventlet等技术
  • 尝试对其中的一些逻辑进行修改,比如给ovs加一个oxlan模式(先把ovs切到1.10)
  • 弄清楚libvirt在openstack中展现的底层接口,以及对KVM和xen的适配不同点
想看懂openstack很容易,但是里面涉及到的思想很多,想要把每个点理清楚就很难了。建议先从一个点、组件着手,比如:

  • 虚拟机的生命周期
  • nova-compute对底层libvirt的调用
  • nova-scheduler的调度机制等等
目前国内二次开发的人才如翎毛凤角,如果你学会了,那么你就是人才中人才

已有(1)人评论

跳转到指定楼层
hyj 发表于 2013-12-27 14:11:46
string2020 发表于 2013-12-27 13:53
OpenStack二次开发 主要是 开发什么内容

新增功能,还是扩展功能

二者都有。根据企业的需求。例如你觉得openstack性能不好,或则你们架构师对openstack,提出修改需求等。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条