AWS容器三大新品:K8s发行版,免费镜像库和“Game Changer”AWS Proton

2020年,容器云原生技术火的不能再火了。

上半年,DOIT发布了《行业云原生应用白皮书》,下半年,阿里云发布《云原生架构白皮书》,腾讯云发布《腾讯云原生路线图手册》,华为云也提出了云原生2.0的概念,总之,2020年的舆论场上,容器云原生很火,2021年也会继续。

在2020年12月召开的AWS re:invent上,AWS并没有发白皮书,也没有造新概念,而是老老实实发布了三款产品服务:

分别是面向公众的免费容器镜像库服务ECR Public,自动化的容器和Serverless部署工具AWS Proton,以及可以让EKS本地化部署的Kubernetes发行版——EKS Distro。

三个发布都非常具有代表性,最具有突破性的是AWS Proton,它是对开发和运维人员职责的一次调整,能让开发人员更专注于开发本身,是改变行业规则(Game Changer)的发布。

此外,AWS还发布了Docker Hub的免费替代品——ECR Public,开源了EKS源码的EKS Distro(EKS-D),它将EKS延展到更多环境中,可视为AWS混合云战略的一次重要操作。

接下来,对于容器方面的三大发布做逐一的介绍。

ECR Public——Docker Hub的免费替代品

2020年11月,Docker Hub对于免费用户的容器拉取用量做了一些限制,匿名和免费注册用户每六个小时最多能发出100和200个容器镜像拉取请求,想要继续享受无限制的使用,则需要付费订阅,费用为每人 5 美元/月,相当于一个入门级vps的费用。

另外,对于存放在Docker Hub但6个月未活动的镜像,则会被删除,免费用户需要注意保持镜像的活跃度,付费用户则可以就当什么都没发生过。

Docker Hub这一决定在于想压缩成本,本身并没什么可说的,但开源社区的广大用户需要有一个能自由使用的镜像库,这时候云厂商站出来提供这种免费服务,其实是一件好事,AWS最近发布的ECR Public正是在这一背景下才诞生的。

ECR(Amazon Elastic Container Registry)是AWS原本就有的私有的容器镜像库,新的ECR Public是公开对外的镜像库服务,私有的容器镜像库严格按存储容量付费,而新的公开的ECR则有较大额度的免费空间,基本可以认为是免费服务。

从策略上来看,是在鼓励将更多镜像公开供更多人用。

所有ECR Public用户都有50GB的免费存储空间,如果超过这个限制,需要象征性的支付点费用,所有匿名拉取镜像的人每月有500GB的免费数据带宽,注册用户能获得5 TB的免费数据带宽,如果是拉取到AWS的主机里,则没有拉取限制。

ECR Public的网站(gallery.ecr.aws/)上目前已经托管了一些容器,包括一部分AWS自己的镜像,还有MySQL、Wordpress等百上千个AWS合作伙伴的镜像,比如来自Bitnami, Canonical 和 HashiCorp的镜像。

操作使用体验方面,基本跟使用DockerHub没区别,不过,ECR Public使用的时候需要安装AWS Cli,如果不是AWS用户则会觉得不太方便。好处是,由于ECR Public与AWS是集成的,比如,当AWS CodeBuild检测到修改一个ECR Public里的镜像后,会自动创建一个新的容器应用,AWS用户会觉得更方便。

ECR Public发布首先肯定会方便广大用户,尤其是AWS的用户,这算是AWS作为大型公有云服务商的一点应有的担当吧。当然,由于与AWS有一定的绑定关系,所以,这其实也是AWS在拓展自己的云原生应用生态。

AWS Proton——自动化的容器和Serverless部署工具

亚马逊AWS首席云计算企业战略顾问张侠在向中国区媒体介绍AWS Proton,将其称之为一个Game Changer(改变规则)的发布。

AWS Proton是一个帮助运维人员自动配置管理基础设施的服务,也是一个面向开发人员的Serverless应用和容器应用代码的部署服务。它能让运维人员做好运维的工作,让开发人员可以只关注应用本身,能让两方面工作相互不影响。

AWS Proton集成和协调各种各样的工具,包括基础设施配置、代码部署、监控和更新等各种工具,功能非常全面,负责编排和组织这些资源的是所谓的Template(模块),它是AWS Proton的一个非常重要的元素,包括Environment Template和Service Template两种。

运维团队负责创建Environment Template,用它来设置各种环境配置资源,从而部署一致的运行环境。

同时,运维团队会创建Service Template,设置与Environment Template兼容的基础资源,CI/CD工作流和监控方面的内容。它集成了常用的CI/CD工作流和观察工具,除了有AWS自己的相关方案,比如CodePipeline和CloudWatch,也会有第三方的工具。

开发团队使用Service Template来部署应用,如果开发者有了写好的代码,将代码与Service Template关联起来,后续工作就由AWS Proton自己完成,它会自动调用Service Template里相关的AWS服务和参数,自动把代码交给CI/CD工作流来编译、测试和部署。

部署完成后,AWS Proton会持续监控应用的运行状态,如果后续Service Template有改动,AWS Proton会让原来使用这个Template的应用按照新的Service Template升级到新版本,整个过程都处于监控状态,如果新应用有问题,可以进行回滚。

AWS Proton也是一个重磅级的发布,它能改变容器和Serverless应用的部署和迭代方式,在一致的基础设施平台上支撑成千上万个微服务和Serverless应用平稳运转,它能改变开发和运维的工作状态,让开发者和运维人员各司其职,相互不影响。

目前处于预览状态,不是特别的成熟,但大致框架是完善的。

EKS Distro——AWS的Kubernetes发行版

EKS Distro(EKS-D)是AWS的Kubernetes发行版,所谓Kubernetes发行版,主要是为了解决Kubernetes太难用的问题,发行版在Kubernetes基础上做了许多延展,让更多人能方便地用起来。目前,常见的Kubernetes发行版有Rancher,OpenShift以及KubeSphere(注:KubeSphere与EKS配合使用,已上线AWS Quick Starts)。

与这几个不同的是,AWS的K8s发行版是从公有云商用服务EKS中发展而来的。EKS是AWS托管的Kubernetes服务,它省去了用户打理Kubernetes的麻烦。但是,考虑到并不是所有人都会用云上的EKS,于是,AWS发布了EKS同款的开源软件——EKS Distro。

作为Kubernetes发行版,我认为EKS Distro的优势可以总结为以下四点:

首先,节省成本。对用户来说,既然是开源的,那意味着收费上是免费的。

其次,高自由度,用户可以在任意喜欢的环境中部署,包括本地硬件以及包括AWS在内的各种云平台上,这种自由度不仅能保护原有投资,也能更好满足多样化需求。

第三点,可以避免合规性问题。由于合规和数据安全方面的顾虑,有些数据不能迁移上云,本地部署的K8s集群就显得非常有必要。

第四点,降低管理复杂度。由于K8s大概每三到四个月就更新一次,在本地使用K8s需要花大量时间跟进K8s的更新,如果跟不上这个节奏,那将面临许多风险,比如兼容性问题和安全风险。运行着一个不被支持的K8s就好比2021年还在用Windows 7一样,心里能踏实吗?

AWS在提供EKS服务过程中自然就成了K8s的专家,知道如何提供安全、稳定、可靠的K8s服务,而这些经验都将输出到EKS的发行版中。

EKS Distro提供Amazon EKS用的安装代码,含有上游开源的Kubernetes组件和第三方工具,包括数据库、网络、存储等创建集群必要的组件,还有各种依赖包和更新补丁。EKS Distro目前已经可用,可以从Github上下载(github.com/aws/eks-dist)和测试。

更新节奏上,每当Amazon EKS更新后,EKS Distro都会很快跟进,EKS Distro所有代码都是开源的,所有工具都是开源的,同时,也提供了统一的参考配置,以便可重复构建一致的K8s环境,也便于EKS Distro与Amazon EKS保持一致,用统一的API来对接管理。

不难发现,发布EKS Distro最大的意义是延展Amazon EKS的生态,让用户在本地更多环境中建立与Amazon EKS对接的环境,让应用在云上、本地以及更多环境中运行,并能自由流动,实现混合云战略,

2021年,AWS还计划发布EKS Anywhere,将提供可安装的软件包来让用户在本地创建和运行K8s集群,会提供自动化的K8s集群生命周期管理工具,让用户可以在生产环境中进行备份、恢复、补丁、升级等操作,并尽可能保持业务的连续性。

ECS是AWS自己开发的容器服务,与EKS的定位相似。2021年,AWS还计划发布ECS Anywhere,将ECS部署在本地。

张侠介绍说,有了ECS Anywhere,客户就完全可以在on-premises环境中部署ECS的集群,通过ECS Anywhere把云上和云下的ECS都通过一套API来统一管理。

从EKS Distro,到EKS Anywhere,再到ECS Anywhere,瞄准的都是用户本地环境,都是混合云战略的一部分。

结语

三个关于容器云原生的发布中,ECR Public有助于构建容器生态,EKS Distro(EKS-D)是AWS在混合云战略上的一个重要操作。

AWS Proton将改变开发和运维人员权责界线,让开发人员更专注于开发本身,说是改变行业规则(Game Changer)的发布也不过分,权责的重新划分关系不仅是谁承担的工作量变多的问题,而且还有出了事儿谁负责的问题。但好在这一趋势越来越明显,这一转变的推进也是势在必行的。

未经允许不得转载:开心小站长 » AWS容器三大新品:K8s发行版,免费镜像库和“Game Changer”AWS Proton

相关推荐