【逼逼几句】
相信即将从事/正在从事OpenStack开发的同学或多或少都会有以下感受:
- 哇,OpenStack牛逼哦,终于可以零距离接触一下;
- 搞好OpenStack,势必会为进入大厂的终极目标增砖添瓦;
- 从业这么多年,终于特么赶时髦一下,出头之日即将到来;
…
鄙人当年跳槽,在菊厂和现在的老窝二者之间深入权衡(其实还是个人兴趣+发展前景),最终选择了当前的窝,事实证明当时的自己还是很英明的!???前沿的技术,鼓励并勇于创新,提倡自由竞争,鼓励引导员工职业发展,完善的福利等等,当然,企业的本质…???。OK,我们回到正题。
【功能】
OpenStack是一个开源的云平台管理项目,可以作为AWS EC2的替代品,来管理一个数据中心的计算、网络、存储等资源,提供IAAS。基于OpenStack用户可以构建公有云、私有云、混合云,目前私有云的应用场景较多。
【构成】
OpenStack项目由众多组件构成,每一个组件都是一个独立的开源项目:
- 核心服务
计算 – Nova:资源调度管理,服务发现
存储 – Cinder && Swift:存储资源管理(快存储,对象存储)
网络 – Neutron:网络资源管理 - 公共服务
认证 – Keystone:认证,授权,访问控制,服务发现
镜像 – Glance:虚拟机镜像管理
仪表盘 – Horizon:用户界面UI - 依赖服务
通用库 – Olso
上述服务具备一下共同特性:
- 所有的组件均用Python编写;
- 所有组件均依赖于Keystone提供的认证服务;
- 所有组件之间均采用RestFul API交互,同时支持Json和XML;
- 大部分组件内部交互采用MQ(官方推荐RabbitMQ);
- 所有组件均采用DB来存储内部数据信息(官方推荐MariaDB);
- 守护进程大多有WSGI中间件(Paste)来实现。