暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

互联网项目调优之公有云与私有云

运维沙龙 2019-11-08
149

       与互联网公司人员交流,很多公司会选择云服务器,有些公司也会选择自建部署私有云,那么我们的互联网项目在服务器的选择上,我们如何着手?

       在过去5年,公有云市场犹如狂风卷大浪,席卷了互联网市场的大部分计算需求,很多公司都会考虑项目“上云”,觉得简便、快速。一般来说,互联网项目创业初期,大概个“416G”左右的服务器,就能解决创业初期的需求,能完成软件架构的基本部署,非常好的支持了项目初期的发展。在项目市场初步推广试水完毕后,面临着访问量上升的情况,这个时候,就不是416G能解决的问题,如果是直接横向扩展,必然面临着成本的直线上升。

       企业自己购买服务器,以基本“CPU-2670V2*2、内存256g - DDR3REG-ECC-1866MHZ3.5-15K-硬盘600g*4-RAID10”普通配置来计算,CPU-2.5G-20核-40线程,256G内存,1000G存储空间,可以在算力上满足很大的突发需求。一般BGP机柜托管成本大约1200//台,那么首年成本大概是2.5/基本带宽,第二年大概是1.5/台含基本带宽,也就是第二年只有机房托管的月成本。多台服务器硬件采用openstack(KVMQEMU)虚拟化或者 Rancher(docker)虚拟化做私有云管理平台,做到资源共享和故障转移,在面对业务突发方面,计算能力上的支持会强很多。

       一般发展初期过后的互联网企业在互联网项目的部署需求上,会考虑以下几个方向:

1、 成本

2、 支持业务突发能力

3、 稳定性

4、 安全防护

 

在成本方面,与服务器硬件需要多少台有关系,需要多大计算能力有关系,基本有几个方向,CPU计算能力、内存大小和IO、磁盘IO能力、网络IO能力。那么企业自己独立占有的服务器硬件,是完全拥有计算能力的。

 

在支持业务突发能力方面,CPU硬核心、多线程,面对大量并发的时候,要求计算速度快,流水线多,能1秒内完成的工作就1秒内完成,避免拥堵积压。

 

稳定性方面,硬件的可靠性是重点,但是再好的硬件也有宕机的时候,那么虚拟化管理软件就比较有管理优势,迅速的在存活的机器上把服务拉起来支持业务开展,显得尤为重要。

 

安全防护方面,企业一般无法独立完成,一般采用服务商的DDOS清洗。现在各IDC机房基本都能完成流量清洗,而且流量清洗是骨干网清洗或者源头清洗(源路清洗),也就是流量到达机房前就清洗,不然整个机房会出现堵塞。CC这个情况一般需要互联网企业对用户访问做进一步识别,然后在项目架构的负载均衡单元前端做阻断。市场上,云服务商会提供类似DDOS防护服务,自购服务器托管的可以由托管机房处理DDOSCC则需要企业自己做深入调试,甄别用户访问行为,避免前端负载均衡单元做误处理。

 

自购托管,以5台服务器硬件为例:

CPU200线程2.5G

内存:1280G

硬盘:5000G

成本:5台硬件购买加机房托管。第1年成本大概15万元,第2年成本大概是8/年,第3年成本大概也是8/年。前3年的企业拥有成本大概是30。且企业能独占服务器硬件的计算能力,后期进一步可以扩展服务器的内存及硬盘,而且企业可以拥有固定资产。

 

公有云与之相对应,公有云需要416G的云机50个到80个,成本大约30/年到48/年,后续每年的成本都是30/年到48/年,前3年的企业拥有成本是90144

注:50个是按CPU算,80个是按内存算。

 

那么,从企业前3年的拥有成本来计算,一目了然。

 

那么,公有云是不是就不可取呢?当然不是。在互联网项目初期,公有云有时间成本上和计算资源成本上是有优势的;在互联网项目发展期,在企业自有服务器的基础上,面对公司项目的访问量突增或者短期的市场推广行为,公有云是可以快速的开启,去应对突发突增访问量的,相关访问量完毕后,则再做进一步考虑。

 

那么私有云(也可以称为:企业级虚拟化),要自建两个部分:

第一个部分,譬如要采用Openstack(KVMQEMU)虚拟化 或者 Rancher(docker)虚拟化做私有云管理平台,达到管理资源共享和实施故障转移的目标,这个目前在开源软件上越来越成熟,如下:

Openstack(KVMQEMU)相关的开源项目如下:

Mirantis-Fuel9.0https://www.mirantis.com/software/openstack/download/

Redhat-RDOhttps://www.rdoproject.org/install/packstack/

 

Docker 相关的开源项目:

Rancher(Docker)https://github.com/rancher/rancher

Wayne(Docker)https://github.com/Qihoo360/wayne

 

第二个部分,是要做一套负载均衡前端,譬如有检测后端存活、有过滤URL方面的不良访问等功能,可以采用如下开源项目:

Tengine(Nginx)http://tengine.taobao.org/

Kong(Nginx)https://konghq.com/install/


还有一些开源项目可满足其他方面的需求,这里就不一一列举了。

    

    终归来讲,企业采用公有云还是私有云,具体看企业对服务器等计算能力方面的评估。如果企业对计算能力或者功能方面要求比较多,那么私有云加公有云是不错的选择;如果企业是发展初期,项目还在开发测试阶段,或者试水阶段,那么使用公有云可以降低企业成本。如果企业有其他一些特殊的要求,譬如金融行业,就另当别论。


请关注微信公众号“运维沙龙”,

或者加QQ216589280

 

欢迎大家参与技术讨论。

“运维沙龙”现征集技术文章,

因为会以您的名义发布,所以请您署上您的名字。

(当然您也可以选择匿名)。

也可以带上您的照片和简历,只为更方便分享技术经验。

来稿请邮件发送到:emailtoyou@qq.com,

或者加QQ好友:77810419

谢谢您的支持!技术世界有您真好!



长按二维码、扫码关注微信公众号运维沙龙


文章来源于网友投稿、网络转载、自写自撰等,

如果有争议请联系。

文章转载自运维沙龙,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论