QQ截图20150203140554
Q* h) `9 y% \& d' \- L2 F6 ~
编者按:作为两大主流开源云平台,OpenStack和CloudStack各具优势。CloudStack安装和部署都很方便,OpenStack框架相对开放灵活,可以根据用户需求方便的进行开发定制。本文中,博主通过自身基于OpenStack搭建公司私有云平台的实战经验 ,对OpenStack实施私有云落地的需求进行梳理,综合产生个人的观点和评价并和读者分享。& r/ Q4 B7 w% w: z
之前一段时间的工作,基于OpenStack搭建公司私有云平台。
8 X) V' N. j4 u1 j0 |5 q9 |* s% Y借此机会梳理了一下OpenStack实施私有云落地的需求,以飨各位读者。/ H% t# E- R% ?0 e, T; k
私有云落地需求:
" Y. z6 y( X" i3 Z: X! [. z! d# E1.为公司WEB服务提供弹性负载均衡,降低硬件消耗
" \9 X; `1 E) x* x i, R7 V作为互联网服务,在访问高峰时段和低谷时段,流量差异很大,各服务的高峰时段和低谷时段也处于不同时间点上,例如A服务的访问高峰期在晚上8点到11点,B服务高峰期则处于白天10点到15点。
c" R: w# }! |4 H" `若以传统架构,则需要为2个服务的高峰值准备足量的运算资源,服务器消耗则为A+B所需最大资源,才能保证高峰期两个服务正常运行。换用云平台方案后,可以对资源进行细粒度管理,将物理服务器资源,分解成虚拟机进行资源管理。在A服务高峰期,可以相应关闭B服务相关实例,以减少计算资源消耗。
( A4 S) [; v: p+ ?7 u1 l线上服务,可以考虑使用虚拟机或容器技术实现。
( x5 @0 |- O5 A# A/ c2.为公司研发和测试,提供虚拟机资源, B2 D5 g% e: F& a1 B
对于互联网公司线上服务来说,RD和QA都需要一套线下环境,来对真实场景进行开发和模拟测试。0 Y, s: y) s% n1 K, A
开发和测试环境,需要完全的隔离,基于此种考虑,使用虚拟机来做开发和测试环境目前是最好的选择。
7 A+ D1 n, @. I. I3.解决运维部门对资源的分配瓶颈
1 n" U2 ]4 m9 M# Z2 ?有云平台之前,WEB应用的上线和下线,都需要运维人员来部署和回收服务器资源,对于运维部门来说,需要有专人解决机器的安装和配置、DNS设置、前端代理服务器的配置等问题。研发部门则需要在研发流程结束后,进入排单流程,等待运维将机器安装并调试,交付之后,才能进行WEB应用上线。5 J' T3 B q2 r, V. ]" v6 @( y
云平台可以以模板的形式,将虚拟机做成模板,需要上线的时候,可以迅速以此模板为基础,克隆一台新的VM进行交付。回收资源的时候,删除相应VM即可。
/ B/ |3 |. A& a* }6 i A4.为公司内部提供文件服务器,提供公司内部员工上传和下载文件的权限,用于公司内部文件共享,建立公司内部知识库体系。
, R/ r( ^" J) q1 I% T私有云落地选型4 M; M) H/ w: V# Z& y
OpenStack & CloudStack
0 W9 V0 A' [, j7 k( h. [作为两大主流开源云平台,OpenStack和CloudStack各具优势。8 W% Z& }( U- T9 D+ S1 ^8 L
CloudStack是从cloud.com公司的产品转向开源,从产品化方面来说,本身是个比较成熟的产品,安装和部署都很方便,且提供了完整的升级流程,可以便于将来和社区保持同步。然而随着社区版本的不断更新和兼容各家产品,CloudStack也逐渐变得庞大。以公司搭建私有云落地方案而言,很多功能无用且显得多余。 q+ P3 J5 S5 t* [/ ]
OpenStack开放至今,并没有完成产品化发行,优势在于其插件化的框架,因为技术框架允许自由的选择可用插件,私有云落地方案中,可以只选择需要的组件进行安装。因为框架允许插入不同组件,所以OpenStack社区也获得了更多厂商的支持,社区活跃度也比较高。在企业实施落地方案的时候,可以有更多的选择余地,对遇到的问题,也有了更多更快的响应。: H* J) A: X5 x( d5 Q
考虑到将来公司还需要进一步开发所需要的组件,并且需要对云平台进行针对性的调优,例如虚拟机的IO、CPU绑定等操作,而不只是依赖于开源社区的版本,OpenStack的框架则是更好的选择。CloudStack如果进行二次开发,代码未合并入社区版本的时候,升级则需要再次merge代码,重复工作比较多。OpenStack则可以做成插件,在升级OpenStack版本的时候,保持插件的可用。* h" [; ^$ j" e* E
由于OpenStack的产品化不成熟,搭建落地到将来的升级,以及后续的二次开发,都需要进行不少的开发和测试人力投入。对于互联网公司来说,因为有着比较成熟的运维团队和研发团队,开发和测试在人力资源成本方面计算,并不是特别大的开销。
& u3 j, `2 m5 ?8 P1 [: k9 a4 `最终的选择,更倾向于OpenStack。
4 \ W* z( h8 k; C) W: V( {$ Q; `KVM & XenServer & VMWare
* ^3 M+ K4 T6 a& SOpenStack原生对KVM支持更加完善。
& B8 A/ ~0 s; L) E7 O, C/ vKVM也是比较成熟的虚拟化平台,于2006年写入Linux内核,且在Redhat 6以后,转向对KVM的支持而非之前大力推广Xen的虚拟化方案。
2 d. V; N. f% J0 u: rKVM相比较于Xen,更小,更轻量级,更方便管理。' w& t& H* I$ g/ b
XenServer是Citrix将之前的商业版本开源而来,其产品成熟,功能和管理界面更加友好。但OpenStack对于XenServer的管理却并不完善。
3 K$ e: M& V0 M' ]VMware是商业软件,在虚拟化平台中,目前应该属于IO和稳定性都最优化的方案。OpenStack中,因为VMware本身提供了相应的driver,对VMware的支持也比较成熟。最终放弃VMware的原因,是因为其授权比较昂贵。
5 b; b3 s. A( {2 O* t6 z7 W目前暂定的方案,以KVM和XenServer为主,具体使用哪种方案,需要后续进行各版本的测试对比。
/ d2 t# o! X* e5 \7 k+ A" oCentOS & Ubuntu
% a9 L5 Q' c+ LOpenStack社区对Ubuntu支持比较完善,Ubuntu更新速度快,内核版本比较新,可以支持更高版本的KVM,对OpenStack使用者来说,Ubuntu可以提供更好的性能。
) `/ Y0 l& G8 c2 b就系统的稳定性而言,CentOS来自Redhat商业版本的重新编译,稳定性和系统优化以及兼容性方面,CentOS有着比较完善的测试和发型流程。CentOS 7 以后,也换用了 Linux 3.x内核版本。
6 _5 q$ e- E& V# s S6 s鉴于系统可靠性的选择和之前公司的技术积累,还是选用CentOS系列,比Ubuntu管理更为方便。3 ~7 A! T! i* A# ~' g7 ~4 h
结论目前公司选型,基于OpenStack+KVM/XenServer+CentOS6.5/7.0 实施私有云落地。/ D' K/ L# m; u) L R
KVM和XenServer的选择,最终还需要进一步测试才能决定使用方案。 评价个人意见,OpenStack和CloudStack作为两大开源云平台,各自有其擅长的领域。
! l3 O. P: e# ^, c: E! IKVM、XenServer、VMware之争也是各执一词。
! o' d5 S6 |4 O9 A& b真正选项到实施落地方案,还是要看公司内部技术积累+将来的技术投入+财力来进行选型。 注:相关网站建设技巧阅读请移步到建站教程频道。 |
|