一、故事的开端那是2014年的12月中旬的某日,客户联系到我们。由于客户2015年2月机房机柜到期,所以想把资源迁移上云。客户联系到我们时,表示需要我们的支持。客户需求很明确,希望根据平台目前数据及特性,兼顾成本与性能给予最佳云架构/资源方案。 客户背景:2006年成立,杭州某知名网上私人订制礼品购物平台。 二、前期调研运维团队规模(4人):运维1人、运维架构师1人、网络工程师1人 客户研发/测试团队规模:30人 客户电信机房资源: - 3个机柜
- 40台左右硬件服务器(dell r410为主,其实两台16核/96G内存用于xen虚拟化)
- 200Mbps(独享)
客户环境简介: 所以从上图可以看出传统电商的架构环境:
- 由于电商环境存在大量商品图片,所以CDN是必不可少。
- 服务器端,前端采用nginx+varnish作为二级缓存,主要减少CDN回源访问的压力。
- 后端业务系统名称designe/kderp/seach/res/seo/oc/img等十余项,采用的开发语言主要为Java、php、python。操作系统主要为centos为主,少量windows环境。
- 图片源文件等,主要通过nfs进行磁盘挂载共享,图片数据量2T+。
- 数据库缓存端主要采用redis作为数据库缓存,减少数据库压力。
- 数据库端主要为mysql,采用硬件服务器上面部署mysql主从。
三、确认合作意向从客户角度来讲,有三大痛点: - 虽然云的确在成本、扩展、灵活性、快捷等方面有很大优势。但是,对云产品、云架构的灵活运用,是有一定技术门槛的。怎么样利用云资源设计出低成本高性能的架构,这是个经验性的技术活。
- 客户没有7*24监控响应中心,导致出现报警往往不能及时马上联系上运维,及立即响应解决,运维的7*24无法得到保障。
- 客户有四个运维人员,成本高昂也是最实质性的痛点。
所以通过洽谈,最终在12月底确定了合作意向(具体商务方面的细节不再这里概述)。我们为客户提供上云架构方案 + 上云迁移 + 7*24监控+7*24运维服务(我方运维为主,客户运维为辅)来解决客户痛点。 四、上云迁移的挑战性- 挑战1:时间短:客户机房2月到期,并且在每年2月14日情人节是一年中的业务高峰期。由于确定商务合作的时间点已经12月底了,所以项目排期,我们需要在1月中旬(仅两周)完成项目的上云迁移、测试、及正式上线,预留两周作为观察过渡期。
- 挑战2:业务系统较多、技术环境较多:通过梳理,客户有十余个业务系统。Nginx、varnish、tomcat、php、python、redis、mysql等技术环境较多,这远远增加了迁移难度。
- 挑战3:零配置文档、零规范:其实说到这点挑战,我是很想吐槽的。很难想象,一个做了八年运维的系统,居然在运维配置文档、运维手册方面没有一份文档,仅仅有几张零碎的架构图。另外,在主机名、防火墙、配置文件规范方面更是杂乱无章。在迁移期间还遇到件比较搞笑的事情,忘记机房交换机密码,然后网络工程师亲自破解获取最新密码。这跟我们带来的迁移难度及挑战可想而知。
五、上云迁移过完元旦后,2015年1月4号正式上班。来到公司(上海),做了些简单准备,收拾好行李。我作为运维负责人,和两名架构师、1名DBA、1名高级运维、两名中级运维,在下午开车前往杭州进行项目周期为期两周的上云迁移。 5.1、项目启动:2015年1月5日这是来到客户公司正式开展工作的第一天。这一天中,我们主要确定双方参与项目人员的职责,制定项目通讯录。并且确定了项目实施计划,项目周期为12天。 5.2、系统架构梳理及评估:2016年1月6日—2016年1月7日接下来进入是项目迁移实施期间,首先我们需要对原系统进行评估、并且制定云上架构。原系统评估的内容涉及到:系统架构、软件模块架构、业务架构、接口以及调用依赖关系、性能评估、上云迁移目标 云上架构涉及到的内容:上云后系统架构、软件架构、业务架构、性能目标、上云难点等等。其中云上架构图如下:
与IDC架构不同的是: - 上云实践1:加入SLB保障架构灵活扩展性 在前端我们加入了SLB负载均衡。在原IDC架构中,域名解析到不同nginx+varnish上,然后进过前段静态缓存,然后转发到后端对应的业务服务器。加入SLB,将此架构变得更加灵活。即将所有域名绑定到SLB,然后转到后端nginx,通过nginx做虚拟主机等七层更灵活的控制。
- 上云实践2:采用TCP层SLB保障性能 在实践中,在面对高并发性能要求的场景。我们发现HTTP层的负载均衡相比TCP层的负载均衡,性能上面有很大差距。HTTP层负载均衡只能达到万级别并发,而TCP层负载均衡能达到几十万级、甚至上百万的并发量。所以在电商等网站应用中,SLB我们优先选择TCP层。
- 上云实践3:低成本高效率的按量带宽 在IDC机房,200Mbps的独享电信带宽,一年成本大概1Mpsb/100元/月 * 12个月 * 200 =24w 。而在云端,采用1Gpbs峰值的BGP多线SLB带宽,在带宽质量上面提升了几个量级。另外,带宽费用采用按量付费,这给我们大大降低了成本。
- 上云实践4:数据库优先采用rds,低成本高效率 在IDC硬件上采用mysql主从手动部署并维护的模式,给我们带来了后期很大维护管理成本。即我们要监控及维护主从状态,并且出现问题需要及时处理,保障业务对数据库读写的连续性。采用rds后,这一切问题都自动化解决了。即,对数据库主从的监控、备份、后期维护、故障切换等等,都是全自动的。
5.3、迁移方案:2016年1月6日—2016年1月7日在进行系统架构梳理及评估的同时,我们同时开展了迁移方案的确认。即,如何将应用、数据迁移至云端。同时我们还确认系统割接上线的流程及对应的时间节点。在迁移方案中,我们确认了客户云上资源清单(23台ECS、两台RDS、一台SLB)及具体的服务器配置。 - 上云实践5:云计算的优势在于分布式 很多用户喜欢把单台云主机跟同等配置的传统物理服务器相比较,结果往往是吐槽云主机的性能是如何的糟糕。传统物理服务器,多核高频CPU等方面的性能,真的能把云主机甩上几条街。何为云计算,关键字在于“云”,即分布式是云计算最大的优势。所以在实践中,我们不要追求单台机器的性能要如何高,而是我们要通过分布式的设计思想保障业务的高性能。所以在此项目中,我们服务器的标准配置都是4核8G,也有大数服务器采用2核4G的配置。我们通过分布式充分压榨了单台服务器的资源使用,从而最大限度保障了最终的低成本(在后面详细明细了一下这块费用)。
在迁移方案中,图片文件迁移的方案有一定难度。一方面,线下图片数据目录的数据量有2T多,而线上单块磁盘只能最多支持1T的容量(当前官网单块磁盘支持32T)。另外一方面,2T的图片主要是小文件,数量特别多。怎么样把这些文件迁移到云端? - 上云实践6:lvm在磁盘管理方面的应用 在云端迁移方案中,我们购买了四块1T数据盘(每台ECS最多只能挂四块数据盘),通过
|
评论