2020亚马逊云计算的轨迹线
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

容器服务

AWS打造容器服务体系,Amazon EKS这块拼图有多重要?

作者 | 冯垚

近年来,随着云计算、大数据、物联网、人工智能等技术的驱动,企业数字化转型正在全球范围内普及。转型的浪潮正在重塑企业的业务战略,根据IDC 2019年数据显示,未来数年内企业或组织将会有超过50%的信息技术支出用于数字化转型,外加上2020年新冠疫情的影响,数字化转型更将成为企业或组织的必经之路。

对于企业数字化转型而言,应用就是生产力。原先如何落地实施数字化转型始终考验着企业或组织,而如今随着数字业务灵活性的加速,新架构、集成技术和模式已经从前沿转变为主流应用。对于开发者而言,由于企业或组织对于灵活、低成本、弹性伸缩的架构越发倚重,单体应用在面对新需求时已经显得力不从心。

正因如此,微服务作为一种开发的基础架构和组织方法,如今备受追捧。微服务架构具有敏捷、灵活扩展、轻松部署、技术自由、可重复使用的代码、弹性的优势。其实,微服务架构的概念本身并不是新事物,但为何始终没能真正流行?归根结底,是由于传统的本地化部署使微服务落地变得较为复杂。随着云计算的风靡,真正“解放了”微服务,更好的扩展性、伸缩性与可靠性让微服务的普及成为了必然。

而提到云计算,Amazon当然是这个时代的开创者。众所周知2006年AWS正式上线了EC2、S3等核心产品,预示着云计算时代的开始。但鲜为人知的是,早在2001年AWS就已经开始了现代化应用架构的实践。当时Amazon采用了一套成熟的架构“单体应用程序 +Oracle数据库”,但随着电商平台的繁荣,产品从上市到发布的时间成为了企业发展迫在眉睫的瓶颈。

AWS的微服务实践

Amazon提出了经典的Two pizza teams概念。Two pizza teams含义为两块披萨饭量的小组,代表着这个团队足够小,同时单个团队仅负责相应的微服务,有充分的权限来进行相应产品的开发,并通过解耦来提升产品开发的敏捷性。而不同团队间利用DevOps技术来构建一系列小型且灵活的应用团队,进一步加快团队对于产品的开发过程和节奏。

Two pizza teams将所有应用程序的API保持一致,并且拥有不同服务的所有权,这也就实现了面向服务的SOA架构,而它的本质同样是微服务。随着Amazon电商平台逐渐转向微服务,AWS将不同的代码库重构为小型的、集中的、单用途的服务,实现了单一的代码库重构为面向服务的体系架构。如今,在Amazon官网上已有上万个微服务在支撑整个电商平台的运行,并且每年的部署次数超过六千万次。

可见AWS率先实践微服务,让其奠定了当今的电商与IT领域的行业地位。而微服务之所以能成为当下的主流架构,AWS认为,一方面,在云时代微服务满足了开发者对于应用程序特定功能的开发需求,成为了现代化应用的最佳选择;另一方面,容器为微服务提供了最理想的实现方式,帮助开发者实现了敏捷开发、持续集成与持续发布。

AWS建设容器服务体系

容器在应用交付的过程中有着先天的优势。自2016年后随着Docker热潮的逐渐冷却,容器技术逐渐进入下一阶段:如何管理大规模的容器化部署、编排和管理。而如今,当初Swarm、Kubernetes以及Mesos三分天下的场景早已不在,Kubernetes遥遥领先坐稳了霸主地位。根据sysdig发布的2019年容器使用报告显示,已有77%的用户正在使用Kubernetes技术。

Kubernetes的大获全胜,使得Kubernetes的实际应用不断增多,其存在的IP分配、安全合规、使用场景等问题也层出不穷,自此各大云厂商将精力投入到Kubernetes平台的研发当中,并不断完善。与此同时,由于Kubernetes既可在本地运行,也可在云平台运行,如何在两种生产环境中来构建Kubernetes的应用,如何利用生产环境中的特性来帮助企业进行数字化转型,也给各大云厂商提出了不小的挑战。

Amazon作为领先的云厂商,积极拥抱容器化,围绕容器服务打造产品体系。2015年,AWS率先推出了Amazon ECS全托管容器调度管理服务,其为AWS原生Docker容器解决方案。随后,为了进一步支持开源的Kubernetes的发展,相继推出了Amazon EKS与AWS Fargate。AWS的容器产品涵盖从底层容器镜像仓库到上层应用网络,支持容器化的全生命周期。

众多的容器产品组合,可以为企业或组织量身定做在云端的容器服务和容器管理。首先最底层AWS提供Amazon ECR容器镜像仓库的服务;其次,容器可以运行在两种位置上,其一在Amazon EC2虚拟机上构建容器服务,其二选择AWS Fargate构建无服务器的容器服务;接着,在容器的管理层,AWS提供Amazon ECS和Amazon EKS两种方式。最后,在最上层AWS支持不同的服务网格和服务发现,包括Amazon Cloud Map与AWS App Mesh。

EKS正在成为体系核心

虽然AWS基于开源Kubernetes的容器服务起步较晚,但其发展速度却是最快的,各国开发者对于AWS的容器服务认可度也是越来越高。根据Nucleus Research在2019年进行的调查显示,82%的云端Kubernetes工作负载运行在AWS云服务之上。

AWS顺势而为,2020年3月13日,将Amazon EKS在宁夏西部云数据技术有限公司运营的AWS中国(宁夏)区域和北京光环新网科技股份有限公司运营的AWS中国(北京)区域正式商用,更好的为中国开发者提供Kubernetes平台和应用程序的容器化的服务。

Amazon EKS从结构上来看,EKS平台不仅仅是一项完全托管的Kubernetes服务,更像是AWS容器产品的集大成“者”。

第一,EKS集群可以选择在Amazon EC2虚拟机上构建容器服务,或者使用AWS Fargate构建无服务器的容器服务。使用AWS Fargate时,开发者无需预置和管理服务器,可以保证每个应用程序按需付费,并通过设计隔离应用程序提高安全性。

第二,EKS与诸如Amazon CloudWatch、Auto Scaling组、AWS Identity and Access Management (IAM) 和Amazon Virtual Private Cloud (VPC) 之类的服务深度集成,为开发者带来监控、扩展和负载平衡应用程序的无缝体验。

第三,EKS与AWS App Mesh集成,并提供Kubernetes原生体验,以使用服务网格功能并为应用程序带来丰富的可观察性、流量控制和安全功能。

Amazon EKS从设计理念上来看,Amazon EKS区别于其他Kubernetes服务,从设计之初便定位于企业级、完全托管的Kubernetes的解决方案,旨在帮助开发者在云端轻松运行Kubernetes。此外,EKS提供Kubernetes原生的体验,始终保持和社区同步更新,并且积极将改进意见回馈给Kubernetes开源社区。

更多的,开发者使用Amazon EKS框架时,还将获得:

• 更全面的安全服务:Amazon EKS集成了AWS的安全服务,实施AWS安全责任共担模式,并结合多项技术保证EKS服务的安全运行。例如:IAM进行身份和验证的管理、CloudTrail进行Kubernetes日志的管理、ACM进行证书的管理、KMS进行密钥的管理等。

• 更简便的管理方式:Amazon EKS可以帮助Kubernetes集群进行节点预配置和全生命周期管理。EKS负责来进行Amazon EC2节点的创建和管理,同时构建起自动伸缩的节点组Auto Scaling Group,并且同时执行健康检查,减轻开发者在后端的管理压力。

• 更高可用性:Amazon EKS提供托管的控制平面,控制平面包含至少两个API服务器的节点和跨三个可用区运行的三个etcd的节点,保证EKS Master Node的高可用构建。同时Amazon EKS会自动检测并且替换掉状况不佳的控制平面的实例,以消除单点故障。

Amazon EKS可以较好的满足开发者对于现代化应用构建的需求。然而,不同于传统的生产资源的集群管理工具,Kubernetes项目其最大的价值,乃在于它的API兼容能力和以此为基础“控制器”模式。在这个体系的指导下,使得Amazon EKS可以满足丰富的支持工具。

• 机器学习工具:Kubeflow是一套Kubernetes的机器学习工具,Amazon EKS可与Kubeflow进行整合,来构建深度学习平台。需要强调的是,在Amazon SageMaker中同样也提供一系列Kubernetes的Operator相关工具,可方便开发者将EKS和Kubeflow、SageMaker进行无缝连通。更是有助于容器开发人员和机器学习开发人员,构建相关的机器学习容器化实践。

• 企业迁移:Amazon EKS提供一系列迁移的最佳实践和方法,帮助开发者将基于Kubernetes的容器平台向EKS进行迁移。对于企业或组织而言,集群迁移可以将工作委托给AWS处理,无需自行管理Kubernetes控制平面,有效的减轻企业的数字化转型难度。

• 数据分析平台:在大数据领域,Amazon EKS可基于Spark构建数据分析平台,利用Kubernetes原生模式来构建Spark数据分析平台。另外,EKS还可利用R语言平台,基于Shiny和EKS构建R应用平台,帮助开发者进行数据分析应用的构建。

在落地实践上,对于Amazon EKS来说同样不成问题。一方面EKS保持了Kubernetes平台的速度、稳定性、可扩展性以及与平台的良好集成度,另一方面搭配AWS云服务的加持,使其在全球广泛应用,包括金融、社交媒体、电子商务等。而如此庞大的用户基数,也正是EKS得以不断优化的关键。

AWS脚踏实地,遵循“优良的平台架构是企业转型升级的保证”的理念,深耕于企业的数字化转型与应用现代化领域。随着Amazon SageMaker、Amazon EKS等产品在中国区正式商用,AWS也希望通过技术的力量帮助更多的中国企业渡过难关,成功实现企业的现数字化转型,加速新经济的落地。