导读:
本文摘自于阿里云MVP、驻云科技运维总监乔锐杰撰写的《阿里云运维架构实践秘籍》一书,本文主要结合上云迁移最常见的运维热门需求,并通过真实的客户案例,向大家进一步分享云端运维架构的实践干货。
上云的诉求
上云迁移是在云端中比较常见的运维场景,伴随云计算的普及,越来越多的客户都将部署在物理硬件中的运行的业务运维迁移到云端。
客户背景:杭州某知名网上私人订制礼品购物平台年成立。
年12月的某日,该客户联系到我们。因为它的机房机柜于年2月到期,所以想把资源迁移上云。客户的需求很明确,希望我们根据平台已有的数据及特性,兼顾成本与性能,给予他们最佳的云架构/资源方案。
前期技术调研
经过我们前期的调研,初步了解到了客户的一些基本情况,如下所示。
运维团队规模(4人):运维1人、运维架构师1人、网络工程师1人
客户研发/测试团队规模:30人
客户电信机房资源:
3个机柜
40台左右硬件服务器(DELL-R为主,其中两台16核/96GB的内存用于XEN虚拟化)
Mbps(独享)
IDC机房架构
由图可以看出传统电商的架构环境:
由于电商环境存在大量商品图片,所以CDN是必不可少的。
服务器端、前端采用Nginx+Varnish作为二级缓存,主要减少CDN回源访问的压力。
后端业务系统名称包括designe/kderp/search/res/seo/oc/img等十余项,采用的开发语言主要为Java、PHP、Python。操作系统主要为CentOs为主,少量Windows环境为辅。
图片源文件等,主要通过NFS进行磁盘挂载共享,图片数据量2T+。
数据库缓存端主要采用Redis作为数据库缓存,减少数据库压力。
数据库端主要为MySQL,采用硬件服务器上面部署MySQL主从。
三大运维痛点
从客户角度来讲,传统运维有三大痛点:
虽然云的确在成本、扩展、灵活性、快捷等方面有很大优势。但是,对云产品、云架构的灵活运用,是有一定技术门槛的。关于如何利用云资源设计出低成本高性能的架构,是个经验性的技术活。
由于客户没有7*24监控响应中心,往往导致出现报警情况时不能及时联系上运维,并立即响应解决,运维的7*24无法得到保障。
客户有4个运维人员,成本高昂也是最实质性的痛点。
通过洽谈,双方最终在12月底确定了合作意向。我们为客户提供上云架构方案+上云迁移+7*24监控+7*24运维服务(我方运维为主,客户运维为辅)来解决客户痛点。
上云迁移的挑战性
关于此客户上云迁移,我们主要遇到以下三大挑战:
挑战一:时间短。客户机房2月到期,而每年的2月14日(情人节)是一年中的业务高峰期。由于商务合作的时间点确定下来时已经到12月底了,所以项目排期比较紧,我们需要在1月中旬(仅两周)完成项目的上云迁移、测试及正式上线,并预留两周作为观察过渡期。
挑战二:业务系统及技术环境较多。通过梳理得知,客户有十余个业务系统,Nginx、Varnish、Tomcat、PHP、Python、Redis、MySQL等技术环境较多,这些大大增加了迁移难度。
挑战三:零配置文档、零规范。由这个挑战点可知,客户在某些方面是很不规范的。例如,一个经历了8年运维的系统,居然在运维配置文档、运维手册方面没有建立一份文档,仅仅有几张零碎的架构图。另外,在主机名、防火墙、配置文件规范等方面更是杂乱无章。在迁移期间还遇到过一件不可思议的事情—客户忘记了机房交换机密码,这给我们的迁移工作带来了极大的难度和挑战。
七步搞定上云迁移
年1月4日,作为运维负责人的我,和2名架构师、1名DBA、1名高级运维及2名中级运维,在当天下午开车前往杭州,进行项目周期为两周的上云迁移工作。
第一步:项目启动
年1月5日,这是来到客户公司正式开展工作的第一天。这一天我们的工作内容主要是确定双方参与项目人员的职责,制订项目通讯录,确定项目实施计划及项目周期(项目周期为12天)。
第二步:系统架构梳理及评估
接下来,进入项目迁移实施期间(时间节点:年1月6日—年1月7日),首先我们需要对原系统进行评估,并且制订云上架构。原系统评估的内容涉及系统架构、软件模块架构、业务架构、接口以及调用依赖关系、性能评估、上云迁移目标等。云上架构内容涉及上云后的系统架构、软件架构、业务架构、性能目标、上云难点等。
云上架构
云上架构与IDC架构的区别如下:
(1)加入SLB保障架构灵活扩展性
在前端我们加入了SLB负载均衡。在原IDC架构中,域名解析到不同的Nginx+
Varnish上,然后经过前端静态缓存,再转发到后端对应的业务服务器上。加入SLB后,此架构变得更加灵活。即将所有域名先绑定到SLB上,然后转到后端Nginx,通过Nginx做虚拟主机等七层更灵活的控制。
(2)采用TCP层SLB保障性能
在实践中,面对高并发性能要求的场景时,我们发现HTTP层的负载均衡,相比TCP层的负载均衡,在性能上面有很大差距。HTTP层负载均衡只能达到万级别并发,而TCP层的负载均衡能达到几十万级,甚至上百万级的并发量。所以在电商等网站应用中,对于SLB,我们优先选择TCP层。
(3)采用低成本高效率的按量带宽
在IDC机房,Mbps的独享电信带宽,一年的成本大概是1Mpbs/元/月×12个月×=24万。而在云端,采用1Gpbs峰值的BGP多线SLB带宽,在带宽质量上面提升了几个量级。另外,带宽费用采用按量付费,大大降低了成本。
(4)数据库优先采用RDS,低成本高效率
在IDC硬件上采用MySQL主从手动部署并维护的模式,使得后期的维护管理成本很大。即我们要监控及维护主从状态,并且在出现问题时需要及时处理,保障业务对数据库读写的连续性。在采用RDS后,这些问题都可以自动化解决。即对数据库主从的监控、备份、后期维护、故障切换等,都是全自动。
第三步:迁移方案
在进行系统架构梳理及评估的同时,我们还对迁移方案进行了确认(时间节点:年1月6日—年1月7日),即如何将应用、数据迁移至云端。同时我们还确认了系统割接上线的流程及对应的时间节点。最后,在迁移方案中,我们确认了客户云上资源清单(23台ECS、2台RDS、1台SLB)及具体的服务器配置。
关于迁移方案,具体的实践要点内容如下。
上云实践1:云计算的优势在于分布式
在实践中很多用户喜欢把单台云主机跟同等配置的传统物理服务器相比较,其结果往往是用户抱怨云主机的性能如何的糟糕。但是传统物理服务器,在多核高频CPU等方面的性能,真的可以把云主机比下去吗?不一定。何为“云计算”,关键字在于“云”,即“分布式”是“云计算”最大的优势。所以在实践中,我们不要只追求单台机器的性能,而是要通过分布式的设计思想来保障业务的高性能。在此项目中,服务器的标准配置都是4核8GB,也有大多数服务器采用2核4GB的配置。我们通过分布式充分压榨了单台服务器的资源,从而最大限度地保障了最终的低成本(后面会详细给出相关费用)。
在迁移方案中,图片文件迁移的方案具有一定的难度。一方面,线下图片数据目录的数据量有2T多,而线上单块磁盘最多只能支持1T的容量(当前