- 阿里云运维架构实践秘籍
- 驻云科技 乔锐杰
- 4248字
- 2023-06-21 18:13:38
绪言 云计算带来的技术变革
传统IT正在向DT变革。未来,云计算将成为互联网的基础设施。作为技术过来人,我亲历了中国互联网时代的发展、云计算云时代的发展,以及技术人员眼中云计算所带来的技术变革。
一、中国互联网时代
“Across the Great Wall we can reach every corner in the world”(越过长城,走向世界)是1987年9月20日从北京向海外发出的中国第一封电子邮件。这也预示着,互联网时代悄然叩响了中国的大门。
1994年4月20日,中关村地区教育与科研示范网络(NCFC)通过美国Sprint公司接入国际互联网(Internet)的64K国际专线开通,标志着我国正式全功能接入国际互联网,这一年也是中国开启互联网时代的元年。
1.中国互联网起点
1994年4月20日中国实现了与国际互联网的全功能连接,但是直到1998年,我国的门户网站才兴起,中国真正意义上正式进入网络时代,这也是真正意义上的中国互联网的起点。
中国互联网巨头也大多于1998年左右成立:
❑ 网易:1997年6月;
❑ 搜狐:1998年;
❑ 腾讯:1998年11月;
❑ 新浪:1998年12月;
❑ 阿里:1999年;
❑ 盛大:1999年11月;
❑ 百度:2000年。
2.IDC/数据中心的硬件时代
2002~2012这10年期间,中国互联网得到了长足的发展。电子商务、传统互联网等都是这个时代的产物。这一时期是IDC/数据中心的硬件天下。
运维人员在日常工作中,一半精力花在跟硬件打交道、跟IDC机房打交道。“IOE”是这个时代的经典组合:服务器提供商IBM、数据库软件提供商Oracle、存储设备提供商EMC。
3.云时代
从工业时代到电气时代,再到信息网络时代,随着科技的发展,云时代是人类科技进步的阶段性时代。就如同云时代的下一个时代是人工智能,人工智能是不是人类科技的终点,答案还需探索。
2005年,Amozon宣布AWS(Amazon Web Service)云计算平台成立,这是全球云计算落地的起点。2009年,阿里云成立,这是中国互联网云计算的起点。随着这几年云计算从概念期转入落地期,云计算低成本、高稳定性、高效率、可灵活扩展等诸多优点所带来的红利让千千万万企业受益。从这几年国内几家知名云计算公司的成立,也可以看到中国云计算发展的时间年轮:
❑ 2009年,阿里云;
❑ 2011年,盛大云;
❑ 2012年,天翼云;
❑ 2013年,腾讯云、华为云;
❑ 2015年,百度云。
二、什么是云计算
从技术角度来看,云计算并不是一种新技术,它也用到了编程语言排行榜上的那些编程语言,以及数据库排行榜上的那些数据库,还有那些热门的开源技术。只不过它在虚拟化+分布式+自动化平台的基础上解决了以下问题:
❑ 稳定性:采用分布式集群部署,保障服务不宕机。
❑ 弹性扩展:按需索取,一键式秒级开通资源。
❑ 安全性:采用分布式多副本冗余部署,保障数据不丢失。
❑ 成本:一台2核4GB服务器附赠5GB抗DDoS攻击流量,费用极低。
❑ 易用性:Web管理控制台,智能化便捷操作。
不同的是,云计算是一种新的互联网模式,这种模式本质上如同IDC的IT模式。传统计算资源的使用流程是采购→机器安装配→机器上架→机器后期机房托管。而在云端,在Web界面简易的一键式操作就能获取计算资源。就如同使用水和电一样方便,按需索取。
三、云平台优化点
从本质上来讲,云计算只是一个概念,如同LDAP协议。而阿里云、腾讯云、华为云就是云计算的落地实现,如同开源工具OpenLDAP对LDAP协议的实现。云计算是面向广大用户的,对应的是一个分布式云管控平台(简称云平台),用户可以在这个云平台上管理及使用对应的云资源。众所周知,云平台具有稳定性、可弹性扩展、安全性、低成本、易用性等优点。那云平台有缺点吗?答案也是肯定的。
正如前面所说的,从技术角度来看,云平台只不过是虚拟化+分布式+自动化的一个综合类平台,所以很多相对于传统物理硬件来说比较烦琐的事情,都可以在云平台上一键自动化。正是因为它将传统上很多重复的安装配置、调优、管理维护进行产品平台化,才带来了一键式管理维护的方便性。平台化设计的一个前提就是产品封装性,封装性带来了定制灵活性的问题。比如最开始SLB七层并不支持虚拟主机的功能、RDS的MySQL不开放root权限、阿里云ECS不支持组播和广播。产品封装性带来的定制灵活性的问题在传统物理机器上是不存在的,所以这一点也是云平台的缺点。
云端产品封装性带来的灵活性的问题,可以在业务层、架构层、运维层进行协调解决:
❑ 比如,最开始对于SLB的虚拟主机的功能灵活性需求(此功能现在SLB已具备),可直接在ECS上搭建Nginx来满足。
❑ 比如,对于RDS的MySQL权限、参数修改等灵活性的需求,可以直接在ECS上搭建MySQL来满足。
❑ 比如,对于ECS组播和广播的功能、集群高可用的功能,如在ECS上搭建Oracle RAC的功能,可以通过在ECS上安装N2N等VPN软件来变通支持。当然变通做法会带来稳定性、性能等问题,这里暂不讨论。
四、云计算对技术的变革
1.技术的发展变革
云计算的普及,也促使最新热门的开源技术的普及使用。因为大家使用的大多数云产品都基于热门开源技术做了定制化开发及封装。比如,负载均衡(Server Load Balancer, SLB),其中,四层就是基于LVS(Linux Virtual Server, Linux虚拟服务器,它是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一)、七层就是基于Tengine(Tengine是由淘宝网发起的Web服务器项目,它在Nginx基础上,针对有大访问量需求的网站,添加了很多高级功能和特性)等做了对应定制化开发及优化。云计算浪潮席卷着互联网,同时在技术更新迭代、实践上也引领着变革。
(1)在技术更新迭代方面的变革
大多数运维人员都喜欢墨守成规。因为系统90%的事故都是由变更导致的,所以我们担心新的技术、新的软件版本会影响系统稳定性,觉得“最好的技术就是自己最熟悉的技术”,总是喜欢用同一版本的操作系统、同一版本的中间件,哪怕其版本的更新迭代已经进行得如火如荼。
而云计算的普及,促使我们尝试接触新的技术、新的版本、新的特性。从某种程度上来讲,甚至是逼着我们去用这些新的技术、新的版本、新的特性。比如,一方面,云计算已经成为必备IT基础设施,另一方面,云平台基本上都会下架一些旧版本,就拿操作系统来说,随着RedHat7的推出,云端很快进行了更新换代,你无法再选择一些旧的软件版本。
(2)在技术的实践变革上
2012年、2013年,云计算在国内还处于概念期。那时候我作为阿里云架构师更多的是给客户介绍这个概念,而如今,更多的是用户急切地跑来咨询:如何用云来满足自己的业务需求,如何更好地使用云的一些产品及服务。
而在日常的学习中,我看到很多书籍、技术文档等还在讲磁盘的RAID、OpenStack,基于物理硬件的部署、调优等技术。这些技术已经在被逐步淘汰,在云上,我们可能再也接触不到物理服务器。相关软件的安装配置、调优、高可用等都会由云平台来完成。未来的技术方向是我们如何更好地使用、实践这些云产品及云技术。
2.在运维技术方面的变革
在运维领域,运维自动化一直是运维技术最重要的体现,也是运维的灵魂。运维自动化一般有以下几个阶段:
❑ 人工阶段。日常运维全部靠人工来做。
❑ 脚本及工具阶段。对于日常重复的事情,我们开始尝试用脚本、工具来替代人工方式,以提升效率。
❑ 平台化阶段。用平台界面智能化操作来完成日常运维命令或执行脚本/工具,以进一步提升效率。
❑ 智能化阶段。智能运维,如自动扩容、故障自愈等,进一步减少人为参与,进一步提升运维效率。
从事运维工作这么多年,我发现大多数中小企业的自动化水平还停留在脚本及工具阶段,运维全靠人工。比如很多企业做代码发布都还是通过手动操作SCP、FTP的方式更新线上代码再重启服务,效率实在低下。云平台本身就是一个大的自动化平台,随着云平台的普及,我们的运维技术水平得到了极大的提高,让我们直接进入平台化的阶段。通过这个大的自动化云平台,我们的运维效率及质量得到了质的飞跃,我们可以将更多精力放在自身业务场景中。
3.在技术体系架构的变革
IT架构和技术架构的演变其实是相辅相成的。就比如每次微软有新的操作系统推出,背后都隐藏着Intel CPU的升级换代;苹果手机每次有新品发布,背后其实也都隐含着硬件的升级换代。产品业务越来越复杂,就需要越来越好的硬件来支持。可以说,IT的体系发展支撑着技术架构的演变。同时,技术架构的演变也推进着IT的体系发展。
IT体系会经过以下3个阶段:
1)物理机体系阶段。传统的IOE架构其实是物理机的典型代表。想使用计算资源,就需要去购买对应的硬件。
2)云计算体系阶段。在传统硬件服务器的基础上,通过虚拟化及分布式技术形成对应的云资源平台。对计算资源的使用,如同使用水和电一样,在云资源平台上按需索取即可,而不用再和底层物理硬件打交道。
3)容器体系阶段。我们既不用关注底层物理硬件,也不用关注用的云平台是AWS还是阿里云,我们的业务都能无缝过渡及运行。我们对计算资源的使用会脱离对硬件,甚至是对各个云平台的依赖。
相应地,对应的技术架构会经过以下4个阶段:
1)单机架构的阶段。IOE架构(IBM的小型机+Oracle+EMC存储)是单机架构中的典型代表,都是高配性能的计算资源,在这个阶段的架构,其业务基本上都是单机部署的。有时候数据库和业务代码甚至部署在一台高配机器上,完全要靠单机的硬件性能来支持更多的业务访问。
2)集群架构的阶段。集群架构其实是单机架构的演变。集群架构的典型技术特点就是,一般采用虚拟VIP技术(如Keeplived、Hearbeat)解决单点故障问题,让架构高可用,如图1所示。而值得注意的是,在云端,对应的云产品底层都用集群架构来保障高可用。
图1 单机架构向集群架构演变
3)分布式架构阶段。分布式架构最重要的特点就是,不管是业务代码还是数据库,都是通过多台服务器以分布式模式部署的。如果业务压力增加,那么就增加对应的服务器资源。在云计算阶段,分布式架构特别适用于云平台部署。这个架构对服务器单机的性能依赖不高,主要通过大量的云资源进行分布式快速部署,来满足业务发展和迭代需要。值得注意的是,分布式架构是集群架构的演变,很多人把集群架构和分布式架构混为一谈,这是很大的认识误区。集群的虚拟VIP技术只能将一台服务器作为热备(Backup),并且只有在主服务器故障的时候,才会切换到热备上,平时其都是处于空闲状态。而分布式架构的技术特点就是,负载均衡的引入,让不同服务器同时应对业务压力,而如图2所示。
图2 集群架构向分布式架构演变
4)微服务架构阶段。微服务架构本质上也是分布式架构,微服务其实是业务功能层面的一种切分,即切分成单个小型的独立业务功能。多个微服务通过API网关(Gateway)提供统一服务入口,对前台透明,而每个微服务也可以通过分布式架构进行部署,如图3所示。这给研发灵活性、业务后期迭代带来了极大的可扩展性,这是未来软件技术架构的主流。微服务在云平台的基础上结合Docker容器技术进行部署,能让业务、运维、架构在技术和非技术方面的稳定性、成本、效率、可扩展性等都达到最优。
图3 分布式架构向微服务架构演变