阿里云云原生容器工程师ACP认证(十八)—阿里云弹性容器实例ECI产品概述(上云关注点)

 

ECI概述

  • 弹性容器实例 ECI(Elastic Container Instance)是阿里云在云原生时代为用户提供的基础计算服务,是阿里云云原生时代下的云计算基础设施。
  • ECI改变了以往计算服务以整台机器作为交付形态的传统,通过结合容器技术与无服务器(Serverless)技术为用户提供了一款安全便捷的 Serverless 运行服务。
  • 使用ECI的过程中用户不再需要关注繁冗的底层基础设施维护工作,仅需提供打包好的容器镜像即可运行用户服务。
  • 在颠覆传统资源交付形态的同时,用户还可以享受按实际消耗资源付费等便利,降低用户的实际使用成本。

  • ECI为Kubernetes提供了基础的容器Pod运行环境,但业务间的依赖、负载均衡、弹性伸缩、定期调度等能力依然需要Kubernetes来提供。

阿里云弹性容器实例ECI(Elastic Container Instance)

  • 是面向容器的无服务器弹性计算服务
  • 提供免运维、强隔离、快速启动的容器运行环境
  • 使用ECI无需购买和管理底层ECS服务器,让您更加关注在容器应用而非底层基础设施的维护工作。

ECI 与 ECS 的关系

作为阿里云弹性计算团队推出的云原生基础设施,ECI 定位为 ECS 同级别的计算资源类产品。依托弹性计算团队多年研发 ECS 产品积累的技术和经验,ECI 在资源弹性、安全、运维监控体系等方面继承了大量弹性计算团队在此前产品上的积累,并针对云原生时代的需求进行了有针对性的改进和优化。

在这里插入图片描述

ECI/ECS对比

  • 更低的计算成本:弹性成本要低于ECS,long run应用成本要接近ECS包年包月
  • 更高的弹性效率:ECI扩容速度要远高于ECS
  • 更大的弹性规模:与传统ECS节点扩容不同,一个大规模容器应用动辄需要数万核的弹性算力。
  • 持平的计算性能:ECI计算效能需要和同规格ECS有一致的性能表现
  • 更低的迁移成本:与现有容器应用生态完美集成
  • 更低的使用成本:全自动化安全和运维能力

ECI的关键技术

基于轻量化Micro VM的安全容器运行时

对于云产品而言,首先的考虑就是安全性。为此,ECI选择基于袋鼠云原生容器引擎和轻量化Micro VM来实现安全、隔离的容器运行时。除了运行时的资源隔离之外,不同客户之间的网络、存储、quota、弹性SLO等一系列能力也基于阿里云基础设施,实现了严格的多租隔离。

在性能方面,除了袋鼠容器引擎在OS/容器方面的高度优化之外,ECI在容器执行上优化集成了现有阿里云基础设施能力,比如支持ENI网卡直通、存储直接挂载。这些能力保障ECI中应用执行效率等于甚至略优于现有ECS运行环境。

基于 Pod 的基本调度单位和标准、开放的API接口

与Azure ACI, AWS Fargate on ECS不同,在ECI设计初期就确定了基于Pod作为Serverless容器的基本调度和运行单位,这样可以更加简单地结合上层Kubernetes编排系统。

ECI提供提供了 Pod的生命周期管理能力,包括 Create/Delete/Describe/Logs/Exec/Metrics等。ECI Pod与K8s Pod能力一致,不同之处在于其沙箱基于Micro VM而非CGroup/Namespace。这样使得ECI Pod 可以比较完美地支持各种K8s应用,包括Istio这样以sidecar方式动态注入的技术。

此外标准化的API屏蔽了底层资源池的具体实现,可以同时可以容纳底层不同形态、不同架构、不同的资源池和生产调度实现。ECI底层架构做了多次优化、迭代,比如袋鼠安全沙箱的创建可以通过神龙架构的MOC卡进行offload,但是这些对上层应用和集群编排是无感的。

此外API需要拥有足够的通用性支持在多个场景中使用,让用户在ASK/ACK、自建k8s和混合云场景中都可以充分利用Serverless容器的优势和价值。这个也是阿里云ECI和友商一个重要的不同。

ECI与ECS并池架构

通过并池我们有能力充分整合阿里云弹性计算资源池的算力,包括多种售卖模式(按量,spot,RI,Saving Plan等),多种机型供应(GPU/vGPU, 新CPU架构上线),多样化的存储能力(ESSD,本地盘)等,让ECI在产品功能,成本和规模上更有优势,满足客户对计算成本和弹性规模的强诉求。

ECI 的优势

ECI 服务依托阿里云弹性计算团队,继承了弹性计算团队在库存管理,资源调度,虚拟化,安全,操作系统及内核,存储及虚拟化网络方面的技术积累,为用户打造了安全、弹性的 Serverless 运行服务。

  • 弹性

    弹性是云计算带给用户的最大价值之一,通过将业务部署到云上,用户基础设施的扩缩容等方面能够更加灵活。而这些弹性的基础前提是云计算厂商能够具备充足的库存来满足不同用户需要的弹性。当前 ECI 服务完全构建在弹性计算整体资源调度平台之上,与 ECS 服务使用相同的库存管理与调度策略。依托弹性计算强大的库存管理系统,ECI 服务能够切实保证充足的库存,满足用户对极致弹性的需求。例如:当用户调用 ECI 的 API 来创建容器实例时 (CreateContainerGroup),ECI 的管控系统会调用弹性计算的库存模块接口获取底层相关资源的情况,资源调度模块接口会根据预先设置好的资源调度策略,挑选出当前适合容器实例放置的一台服务器上。随后 ECI 的管控系统会在这台服务器上创建用户需要的容器实例,并配置好相应的存储、网络资源。

  • Serverless

    无服务器 (Serverless) 技术的核心是将用户从繁冗的基础设施运维问题中拯救出来,让用户能够将精力专注于自身业务和服务上。用户使用传统的云计算基础设施过程中需要用户自己掌握大量的专业运维知识,对底层基础设施的规模、配置、运行时环境进行管理。ECI 通过结合容器技术和无服务器技术,将云厂商的运维边界从基础设施的整机层面提升到了容器运行时层面。随着服务边界的提升,此前需要用户自己管理的组件如操作系统,软件运行时,监控运维工具等均由 ECI 提供。在上述组件的研发和运维上,阿里云具备丰富的经验,如定制操作系统及内核,针对各类场景的性能优化,完善的运维数据采集手段等。在使用 ECI 服务后,用户不再需要关心操作系统的升级,安全漏洞的修复这些琐碎的工作。

  • 安全

    安全是公共云用户十分关注的问题,也是每个公共云厂商的生命线。安全问题可以细化为两个层面的问题,第一个层面是云平台自身的安全。这方面 ECI 继续依托虚拟化技术作为基本的安全隔离手段,继承了大量在 ECS 产品上经过多年实践检验的安全加固技术,包括针对 Hypervisor 层面各种安全补丁和各类 CVE 漏洞的修复补丁,多层次的安全防御体系以及各类安全审计数据;第二个层面是用户自身的安全问题。此前用户需要自行维护虚拟机中的操作系统及其上的各类组件的安全性,定期针对操作系统和各类组件进行升级、打补丁操作来避免安全漏洞对用户自身服务的影响。在 ECI 中随着服务平面上移,从最底层的基础硬件到最上层的容器运行环境均为阿里云提供,所有组件均经过阿里云工程师的安全审核,避免因软件安全漏洞造成用户业务受到影响。

  • 易用性

    针对云原生时代用户对基础设施的诉求,我们着重改进了用户的使用体验。ECI 的一大特点是弹性,当用户业务负载增加时需要迅速扩容部署用户的服务来应对突发业务流量。因此服务的扩容部署时间直接影响用户体验。为此 ECI 服务在管控、虚拟化、镜像拉取等多个层面对交付时间进行了优化。借助与 ECS 服务共生的关系,通过优化 ECI 的管控系统能够更快的获取各类底层基础资源的情况,着重对创建链路进行优化,加快管控系统中 ECI 相关创建事件的处理速度。在容器运行环境的创建中也采用了特殊的虚拟化技术,快速批量创建实例。该技术允许我们跳过原来虚拟机系统启动的大部分流程,通过上述技术可以将实例的创建时间缩短6秒。此外,我们也对容器镜像的拉取过程进行了一定的优化。我们知道容器在启动之前首先需要将需要的镜像拉取到本地。这一过程包括镜像的拉取和解压缩两个过程。镜像拉取过程是可以并行进行的,而解压缩过程则必须要串行进行。因为容器镜像是分层的,必须要从最基础的镜像开始构建。通过镜像缓存,我们可以避免掉大部分镜像的拉取和解压缩工作。