QQ截图20150203140554
( f' Z' ]( p7 p: J编者按:作为两大主流开源云平台,OpenStack和CloudStack各具优势。CloudStack安装和部署都很方便,OpenStack框架相对开放灵活,可以根据用户需求方便的进行开发定制。本文中,博主通过自身基于OpenStack搭建公司私有云平台的实战经验 ,对OpenStack实施私有云落地的需求进行梳理,综合产生个人的观点和评价并和读者分享。
) W7 g, X$ Z& v0 V! n4 l/ ]8 K. p/ O之前一段时间的工作,基于OpenStack搭建公司私有云平台。
5 p) \0 j( T5 A/ B9 C3 b借此机会梳理了一下OpenStack实施私有云落地的需求,以飨各位读者。
5 ?2 y' e: ^. E* C私有云落地需求:
2 {/ n& x% H& V1.为公司WEB服务提供弹性负载均衡,降低硬件消耗2 o! \ i) d9 w4 c
作为互联网服务,在访问高峰时段和低谷时段,流量差异很大,各服务的高峰时段和低谷时段也处于不同时间点上,例如A服务的访问高峰期在晚上8点到11点,B服务高峰期则处于白天10点到15点。
" ?3 a6 C$ o8 A5 m+ i+ N+ @( b若以传统架构,则需要为2个服务的高峰值准备足量的运算资源,服务器消耗则为A+B所需最大资源,才能保证高峰期两个服务正常运行。换用云平台方案后,可以对资源进行细粒度管理,将物理服务器资源,分解成虚拟机进行资源管理。在A服务高峰期,可以相应关闭B服务相关实例,以减少计算资源消耗。
; l6 p' i% i9 }" l线上服务,可以考虑使用虚拟机或容器技术实现。7 |2 m. ~7 q" Q& J& T t
2.为公司研发和测试,提供虚拟机资源
' b; y9 f8 X& d0 m/ v对于互联网公司线上服务来说,RD和QA都需要一套线下环境,来对真实场景进行开发和模拟测试。3 t0 c, \, {$ D* K
开发和测试环境,需要完全的隔离,基于此种考虑,使用虚拟机来做开发和测试环境目前是最好的选择。+ X' t0 \1 ?& y( S3 K6 T0 q
3.解决运维部门对资源的分配瓶颈
; `* @) Z' V* z有云平台之前,WEB应用的上线和下线,都需要运维人员来部署和回收服务器资源,对于运维部门来说,需要有专人解决机器的安装和配置、DNS设置、前端代理服务器的配置等问题。研发部门则需要在研发流程结束后,进入排单流程,等待运维将机器安装并调试,交付之后,才能进行WEB应用上线。
# S( @8 a8 _, f! z; q云平台可以以模板的形式,将虚拟机做成模板,需要上线的时候,可以迅速以此模板为基础,克隆一台新的VM进行交付。回收资源的时候,删除相应VM即可。
5 `/ g/ u: [2 r7 v7 E) B: u- V4.为公司内部提供文件服务器,提供公司内部员工上传和下载文件的权限,用于公司内部文件共享,建立公司内部知识库体系。& B3 i4 \6 l* E* a, U/ \6 @+ b4 m
私有云落地选型
% K- r O+ ], v! MOpenStack & CloudStack% o/ W0 K+ o7 } N% d s3 _+ D
作为两大主流开源云平台,OpenStack和CloudStack各具优势。/ H( @' d1 I5 `9 ?* u
CloudStack是从cloud.com公司的产品转向开源,从产品化方面来说,本身是个比较成熟的产品,安装和部署都很方便,且提供了完整的升级流程,可以便于将来和社区保持同步。然而随着社区版本的不断更新和兼容各家产品,CloudStack也逐渐变得庞大。以公司搭建私有云落地方案而言,很多功能无用且显得多余。
: \* o' w7 O! |6 d ~. o0 S7 I4 hOpenStack开放至今,并没有完成产品化发行,优势在于其插件化的框架,因为技术框架允许自由的选择可用插件,私有云落地方案中,可以只选择需要的组件进行安装。因为框架允许插入不同组件,所以OpenStack社区也获得了更多厂商的支持,社区活跃度也比较高。在企业实施落地方案的时候,可以有更多的选择余地,对遇到的问题,也有了更多更快的响应。
, v- o, |/ T- Z/ `8 o$ k, \考虑到将来公司还需要进一步开发所需要的组件,并且需要对云平台进行针对性的调优,例如虚拟机的IO、CPU绑定等操作,而不只是依赖于开源社区的版本,OpenStack的框架则是更好的选择。CloudStack如果进行二次开发,代码未合并入社区版本的时候,升级则需要再次merge代码,重复工作比较多。OpenStack则可以做成插件,在升级OpenStack版本的时候,保持插件的可用。
z" V4 Y. J. \$ G由于OpenStack的产品化不成熟,搭建落地到将来的升级,以及后续的二次开发,都需要进行不少的开发和测试人力投入。对于互联网公司来说,因为有着比较成熟的运维团队和研发团队,开发和测试在人力资源成本方面计算,并不是特别大的开销。
3 c, Z F( {7 G4 ~" \1 X' H" m" K; h最终的选择,更倾向于OpenStack。
# {; _" ?# |$ _; l. i) G/ ?KVM & XenServer & VMWare
% Z/ i7 {* ^9 S" NOpenStack原生对KVM支持更加完善。
8 ]% e3 z% G, V' k3 T& ^KVM也是比较成熟的虚拟化平台,于2006年写入Linux内核,且在Redhat 6以后,转向对KVM的支持而非之前大力推广Xen的虚拟化方案。
* j$ L2 G) \6 j, j4 ]KVM相比较于Xen,更小,更轻量级,更方便管理。- i8 L4 M4 o' R p" F+ D
XenServer是Citrix将之前的商业版本开源而来,其产品成熟,功能和管理界面更加友好。但OpenStack对于XenServer的管理却并不完善。4 |" s& Z% Z, e
VMware是商业软件,在虚拟化平台中,目前应该属于IO和稳定性都最优化的方案。OpenStack中,因为VMware本身提供了相应的driver,对VMware的支持也比较成熟。最终放弃VMware的原因,是因为其授权比较昂贵。
* e# s) d' O9 }/ Q8 w; W% O; d: E目前暂定的方案,以KVM和XenServer为主,具体使用哪种方案,需要后续进行各版本的测试对比。
1 G& {' o' B! v0 C% `7 LCentOS & Ubuntu. u- H7 w, { y
OpenStack社区对Ubuntu支持比较完善,Ubuntu更新速度快,内核版本比较新,可以支持更高版本的KVM,对OpenStack使用者来说,Ubuntu可以提供更好的性能。
4 D& I9 t+ @3 O) B R" J就系统的稳定性而言,CentOS来自Redhat商业版本的重新编译,稳定性和系统优化以及兼容性方面,CentOS有着比较完善的测试和发型流程。CentOS 7 以后,也换用了 Linux 3.x内核版本。
# r1 J+ V, _: M/ R8 O, V. `8 s鉴于系统可靠性的选择和之前公司的技术积累,还是选用CentOS系列,比Ubuntu管理更为方便。
: \" n8 h" z7 ?结论目前公司选型,基于OpenStack+KVM/XenServer+CentOS6.5/7.0 实施私有云落地。
3 k: |6 U4 N$ T# k$ p+ k' o* ]( ~0 [KVM和XenServer的选择,最终还需要进一步测试才能决定使用方案。 评价个人意见,OpenStack和CloudStack作为两大开源云平台,各自有其擅长的领域。
8 o* U4 f$ \% lKVM、XenServer、VMware之争也是各执一词。
0 p4 d8 C- S9 I1 c真正选项到实施落地方案,还是要看公司内部技术积累+将来的技术投入+财力来进行选型。 注:相关网站建设技巧阅读请移步到建站教程频道。 |
|