基于OpenStack搭建公司私有云平台

作为两大主流开源云平台,OpenStack和CloudStack各具优势。CloudStack安装和部署都很方便,OpenStack框架相对开放灵活,可以根据用户需求方便的进行开发定制。本文中,博主通过自身基于OpenStack搭建公司私有云平台的实战经验,对OpenStack实施私有云落地的需求进行梳理,综合产生个人的观点和评价并和读者分享。
之前一段时间的工作,基于OpenStack搭建公司私有云平台。
借此机会梳理了一下OpenStack实施私有云落地的选项,以飨各位读者。

私有云落地需求:

  • 1、为公司WEB服务提供弹性负载均衡,降低硬件消耗
    作为互联网服务,在访问高峰时段和低谷时段,流量差异很大,各服务的高峰时段和低谷时段也处于不同时间点上,例如A服务的访问高峰期在晚上8点到11点,B服务高峰期则处于白天10点到15点。
    若以传统架构,则需要为2个服务的高峰值准备足量的运算资源,服务器消耗则为A+B所需最大资源,才能保证高峰期两个服务正常运行。换用云平台方案后,可以对资源进行细粒度管理,将物理服务器资源,分解成虚拟机进行资源管理。在A服务高峰期,可以相应关闭B服务相关实例,以减少计算资源消耗。
    线上服务,可以考虑使用虚拟机或容器技术实现。
  • 2、为公司研发和测试,提供虚拟机资源
    对于互联网公司线上服务来说,RD和QA都需要一套线下环境,来对真实场景进行开发和模拟测试。
    开发和测试环境,需要完全的隔离,基于此种考虑,使用虚拟机来做开发和测试环境目前是最好的选择。
  • 3、解决运维部门对资源的分配瓶颈
    有云平台之前,WEB应用的上线和下线,都需要运维人员来部署和回收服务器资源,对于运维部门来说,需要有专人解决机器的安装和配置、DNS设置、前端代理服务器的配置等问题。研发部门则需要在研发流程结束后,进入排单流程,等待运维将机器安装并调试,交付之后,才能进行WEB应用上线。
    云平台可以以模板的形式,将虚拟机做成模板,需要上线的时候,可以迅速以此模板为基础,克隆一台新的VM进行交付。回收资源的时候,删除相应VM即可。
  • 4、为公司内部提供文件服务器,提供公司内部员工上传和下载文件的权限,用于公司内部文件共享,建立公司内部知识库体系。

实战:基于OpenStack搭建公司私有云平台

私有云落地选型

OpenStack & CloudStack

作为两大主流开源云平台,OpenStack和CloudStack各具优势。
CloudStack是从cloud.com公司的产品转向开源,从产品化方面来说,本身是个比较成熟的产品,安装和部署都很方便,且提供了完整的升级流程,可以便于将来和社区保持同步。然而随着社区版本的不断更新和兼容各家产品,CloudStack也逐渐变得庞大。以公司搭建私有云落地方案而言,很多功能无用且显得多余。
OpenStack开放至今,并没有完成产品化发行,优势在于其插件化的框架,因为技术框架允许自由的选择可用插件,私有云落地方案中,可以只选择需要的组件进行安装。因为框架允许插入不同组件,所以OpenStack社区也获得了更多厂商的支持,社区活跃度也比较高。在企业实施落地方案的时候,可以有更多的选择余地,对遇到的问题,也有了更多更快的响应。
考虑到将来公司还需要进一步开发所需要的组件,并且需要对云平台进行针对性的调优,例如虚拟机的IO、CPU绑定等操作,而不只是依赖于开源社区的版本,OpenStack的框架则是更好的选择。CloudStack如果进行二次开发,代码未合并入社区版本的时候,升级则需要再次merge代码,重复工作比较多。OpenStack则可以做成插件,在升级OpenStack版本的时候,保持插件的可用。
由于OpenStack的产品化不成熟,搭建落地到将来的升级,以及后续的二次开发,都需要进行不少的开发和测试人力投入。对于互联网公司来说,因为有着比较成熟的运维团队和研发团队,开发和测试在人力资源成本方面计算,并不是特别大的开销。
最终的选择,更倾向于OpenStack。

KVM & XenServer & VMWare

OpenStack原生对KVM支持更加完善。
KVM也是比较成熟的虚拟化平台,于2006年写入Linux内核,且在Redhat 6以后,转向对KVM的支持而非之前大力推广Xen的虚拟化方案。
KVM相比较于Xen,更小,更轻量级,更方便管理。
XenServer是Citrix将之前的商业版本开源而来,其产品成熟,功能和管理界面更加友好。但OpenStack对于XenServer的管理却并不完善。
VMware是商业软件,在虚拟化平台中,目前应该属于IO和稳定性都最优化的方案。OpenStack中,因为VMware本身提供了相应的driver,对VMware的支持也比较成熟。最终放弃VMware的原因,是因为其授权比较昂贵。
目前暂定的方案,以KVM和XenServer为主,具体使用哪种方案,需要后续进行各版本的测试对比。

CentOS & Ubuntu

OpenStack社区对Ubuntu支持比较完善,Ubuntu更新速度快,内核版本比较新,可以支持更高版本的KVM,对OpenStack使用者来说,Ubuntu可以提供更好的性能。
就系统的稳定性而言,CentOS来自Redhat商业版本的重新编译,稳定性和系统优化以及兼容性方面,CentOS有着比较完善的测试和发型流程。CentOS 7 以后,也换用了 Linux 3.x内核版本。

鉴于系统可靠性的选择和之前公司的技术积累,还是选用CentOS系列,比Ubuntu管理更为方便。

结论

目前公司选型,基于OpenStack+KVM/XenServer+CentOS6.5/7.0实施私有云落地。
KVM和XenServer的选择,最终还需要进一步测试才能决定使用方案。

评价

个人意见,OpenStack和CloudStack作为两大开源云平台,各自有其擅长的领域。
KVM、XenServer、VMware之争也是各执一词。
真正选项到实施落地方案,还是要看公司内部技术积累+将来的技术投入+财力来进行选型。