云端运维架构实践学习(一)
随着云计算的到来,传统IT已经向DT变革。云计算具有低成本、高稳定性、高效率、可灵活扩展等诸多优点,已经在逐渐淘汰传统IDC的IT模式。未来,云计算将成为互联网的基础设施。作为一名运维工程师,在云计算领域学习运维架构技术实践是十分必要的,下面谈谈自己在这方面学习及以及思考。
一、云平台的选型
在云端部署业务服务时,首先要考虑的就是选择一个什么样的云平台落地,不同云平台厂商其业务方向、平台稳定性、平台安全性、价格等不同也会导致选择的多种多样。
参考Gartner发布的2020年全球IaaS报告,可以看到排名前三甲为亚马逊、微软、阿里云,占比分别为40.8%、19.7%、9.5%。2020年国内云市场的竞争也逐步进入白热化,阿里云以绝对的优势高居榜首。
随着这几年云计算的普及,各个云厂商的市场占比逐渐明朗化。下面就几大云厂商的特点进行分析:亚马逊云平台起初在国内落地及业务的开展并不顺利,近几年在国内大力发展份额,在有国际云资源的需求,是不错的选择;阿里巴巴在电商领域拥有海量用户、海量数据、高访问量/高并发的业务场景,也拥有一流的技术实力,阿里云在在整体稳定性、安全性、性价比、产品功能等方面的综合性能处于国内领先水平;腾讯云有一个特点-游戏,相比于其他云平台,腾讯云在部署游戏类业务会更具有优势,比如腾讯游戏在运维领域累积的“蓝鲸”运维自动化平台,就无缝对接了腾讯云;华为是全球领先的信息与通信解决方案供应商,其优势在于通信硬件设备,华为云的优势和特点是企业级私有化解决方案。
二、系统技术选型
技术选型主要包括软件技术选型以及系统软件选型两方面介绍。
首先选择好对应的云厂商和云产品之后,在云端我们应该选择什么样的软件技术来开展业务开发以及后期业务迭代呢?通过查询世界编程语言排行榜,如图3所示。原则上,任何编程语言都能在云端环境中运行。
可以看出用的比较多的还是C、Java等具有Web框架的语言,以及Python、PHP所代表的脚本语言,主要原因是云平台适合分布式应用,而这些热门的编程语言更加轻量化,方便分布式处理。
在选择了对应的软件技术来做业务开发后,最终需要确认使用什么系统架构技术来进行云端运维部署,其核心内容主要包含云端网络、云端Web服务器、云端负载均衡、云端存储、云端数据库6个大类。由于篇幅有限,本文主要介绍云端负载均衡方面。
在开源的软件负载均衡中,应用最为广泛的为LVS、Nginx、HAProxy,阿里云的SLB(Server Load Balancer)即基于Nginx及LVS。其在双十一和新冠期间阿里云负载均衡表现颇为不俗。
阿里云当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务,架构图如图4所示。
四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
阿里云七层负载均衡采用的Tengine,其本质就是Nginx。Tengine是阿里巴巴发起的Web服务器项目,在Nginx的基础上,针对大访问量网站的需求,Tengine添加了很多高级功能和特性。
云计算运维岗位涉及到云计算平台能否顺利、平稳地运行,因此运维工程师需要掌握的知识结构也相对比较丰富,既涉及到传统的网络运维知识,还涉及到虚拟化、管控、存储、安全等相关知识。
如何在云端更加轻松的部署、配置和管理应用。如何利用工具轻松地在云中快速部署和管理应用程序,同时可以自动处理容量预配置、负载均衡、Auto Scaling和应用程序状况监控,这是对运维人员的新要求。
参考资料:
http://tengine.taobao.org/ https://www.tiobe.com/tiobe-index/ https://www.fxbaogao.com/dt?keywords=%E5%85%A8%E7%90%83IAAS&order=2 《阿里云运维架构实践秘籍》 作者:中国农业银行研发中心 陈放
(版权归原作者所有,侵删)
点击下方“阅读原文”查看更多