Skip to content

2015 06 08 我为何要将先有业务迁移到阿里云上

2360 字
   

从3月开始到6月,一共花了三个月把所有业务迁移到云上,这里总结一下经验教训和心得。

1、最头疼的,大流量DDos攻击。

迁移到云上,最早的原因是因为攻击,公司的平台和游戏从上线到稳定运营,经历过不少的攻击,不论是注入还是DDos都会让人头疼上一段时间。最初,我们用了比较简单的办法,采用了一些脚本和日志分析工具来分析。比如使用inotify去检测新增文件里是否有木马和注入的关键字,修改php.ini屏蔽一些危险功能等。

选择的合作伙伴有包括森华易腾、世纪互联、蓝汛、网宿和睿江科技等。这些机房的带宽号称都有40-60G,然而并没有什么卵用。在遇到DDos时,最好的机房现在都有配置流量监测工具,但没有清洗工具。

大流量攻击分为两种情况

第一种情况,同一个机房内的其他公司被攻击,受攻击影响,整个机房的网络开始抖动,玩家掉线延时增加等问题都出现。机房定位到攻击源大概要花上10分钟,然后通知被攻击用户,接着就是将被攻击的IP地址拉入黑洞,注意是被攻击的IP,也就是受害者的IP,受害者被机房直接枪毙后,其他用户的网络可能就恢复稳定了,然后机房会发一封故障报告(然而并没有什么卵用)。

第二种情况就是受害者是,受害者是自己,那就可以切实感受到已经遭受攻击的情况下,再被机房补刀断网的痛苦了,那时候真是欲哭无泪,睡前来一个攻击,等确认IP地址被封之后,攻击者就去睡觉了,接着就是运维同学要加班熬夜等IP解封后恢复业务。更换IP,换机房等方法基本没用。

传统IDC防范DDos的方法大致如此,攻击者知道,只要流量超过机房能忍受的范围(因为这些机房没有配置流量清洗设备),受害者就会被封停至少6小时,有的机房甚至封24小时,然后机房的商务会给一些方案,换IP段啦,切走业务啦(变相送客),这些方案都没有什么卵用。

迁移到云里面后,首先解决第一种情况,别人被攻击不会影响到自己的业务,因为目前的云服务带有云盾之类的清洗业务;第二种情况,如果在流量不高的情况下,也是可以防下来的,如果对方深仇大恨有备而来,就需要考虑启用增值服务了,如果流量超过20G以上,自己又打算和攻击者正面钢的话,买高防IP吧。

迁移到云之后,应用防火墙也可以帮你挡下注入、跨站等攻击,这些都不用自己再雇佣安全工程师或者购买硬件防火墙去解决了,简单来说,可以降低技术拥有总成本。

2、基础设施维护成本

公司成立初期,我们对自身的业务将发展到何种程度,还没有把握,总觉得未来几年是突飞猛进的几年,计算量、存储、I/O和带宽等会有大量消耗,所以一开始自己购买硬件设备,自己寻找IDC布点,会比较合适。

但之后的发展看,带宽已经马马虎虎省着用,毕竟IDC的价格比较死,量级小的公司和他们不好谈。接着就是硬件设备了,采购渠道在合作久了之后也算能很好配合,三年之后我们发现设备需要续保,不然出现硬件故障替换硬件的事情就要自己处理。这点比较麻烦,因为服务器一旦达到200台,这部分的费用就比较惊人了,只好根据使用情况和业务的优先级去安排,贵重的服务器和关键业务需要续保,其他一般的应用,坏了就坏了,撑满5年就退休。

迁移到云之后,闲置的硬件中挑选一些高配置的内部测试使用,其余的准备二手市场卖掉,以后也省了不少维护管理的问题,总拥有成本降低。

风险和问题在于,你现在不知道自己的业务到底是运行在怎样配置的服务器上了,BIOS配置啥的都接触不到,也不知道同一台服务器上跑的其他虚拟机都有哪些业务,多少有一种不安全感,这块业务可能也会影响到传统公司的审计,对于互联网和初创公司倒是没太大的影响。

3、技术成本

在游戏业务中,对I/O需求最高的其实是后端统计分析数据用的BI系统,时不时要跑跑日志,跑跑报表,满足市场一些特殊的不定期的分析需求。而有些查询语句写的十分诡异,有时候很想雇佣一个DBA来专门维护,但平时DBA的事情又少,这个岗位太贵,不如用硬件去撑。迁移到云之后,I/O性能上升了非常多,而且慢查询日志和优化建议都是自动的,现在拿着记录去喷开发是很容易的事情,也有说服力。可以少雇佣一个人,这样就不一样了,人少管理起来简单。

大数据处理,自建hadoop集群我们曾经也测试过,但是建起来之后发现还需要处理hive,hbase等东西,已经花费1-2周,之后还需要编写mapreduce等东西,最后这个平台搭建起来后,开发们不愿意用,他们觉得用MySQL就够了,还用不上大数据,所以自搭建的环境最后撤了。最大的原因在于,需求还没有达到要进行大数据处理的程度,因为游戏能活下来就不错了,活下来的游戏有时候也是各种改,以至于你的数据分析可能只能给你上回测试的结果找台阶下,说好听点是事后分析,说难听点就是马后炮,而大数据的意义在于预测趋势和宏观判断用户在未来的消费、游戏行为,这点我们还做不到,因为懂数据的人太少太少。我们在这块没有积累,目前没有,以后也不一定会有,但这样的公司可能还是一样活的挺滋润的。

之后的时间都主要放在研究阿里云的生态上,哪些业务我们用得上,哪些可以先研究,等有需求了就开通、测试,然后上线。说白了,这些东西别人都玩烂了,在自己还没达到那种程度之前,先借助别人的肩膀,让自己轻松些。

4、运维的未来

我们已经把所有的业务都放到云上,在业务没有暴增,没有突破目前云计算的支撑量情况下,运维平时还要做什么呢?总不能天天翘脚,看看报表,瞧瞧昨天花了多少钱,跑了多少流量,扛住多少G的攻击就没事了吧。

运维最终还是不可避免的走向开发与自动化,要玩得转ansible、python和一些持续化部署工具,要能让运维平台化,能够对接多项目,能让项目成员自助去部署,去更新维护,而不需要运维也在旁边盯着干活,让运维再轻松些。

PS:换到云之后,各种奇葩网络抽风、夜里被骚扰的情况下降太多了,真的感动,泪流满面。