阿里云弹性容器实例产品 ECI ——云原生时代的基础设施

1. 什么是 ECI

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

2. ECI 与 ECS 的关系

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

图1  ECI 产品定位

3. ECI 的优势

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

3.1. 弹性

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

图2  依托弹性计算的资源调度与库存管理

3.2. Serverless

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

图3  Serverless 让用户专注自身业务

3.3. 安全

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

图4  更加安全的运行环境

3.4. 易用性

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

图5  镜像缓存优化前后时间对比

4. 未来已来

云原生时代已经到来,弹性容器实例产品 ECI 作为阿里云云原生时代的基础设施,会继续秉持阿里云普惠的云计算理念为广大云原生用户提供高质量的服务。通过在资源调度、库存管理、安全沙箱技术等方面的不断优化,为广大用户打造更加安全,更低成本,更易用的 Serverless 云原生基础设施。

原文链接
本文为云栖社区原创内容,未经允许不得转载。

阿里云弹性容器实例产品 ECI ——云原生时代的基础设施的更多相关文章

  1. 阿里云宣布进入 Serverless 容器时代,推出弹性容器实例服务 ECI

    摘要: 阿里云宣布弹性容器实例 ECI(Elastic Container Instance)正式商业化. 为了应对业务高峰,打算提前多久执行ECS扩展?买了ECS虚拟机,容器规格不能完美装箱怎么办? ...

  2. 阿里云宣布 Serverless 容器服务 弹性容器实例 ECI 正式商业化

    摘要: 阿里云宣布弹性容器实例 ECI(Elastic Container Instance)正式商业化,ECI 是阿里云践行普惠的云计算理念,将 Serverless 和 Container 技术结 ...

  3. 阿里云ECI如何6秒扩容3000容器实例?

    引言 根据最新CNCF报告,有超过90%的用户在生产环境使用容器,并且有超过80%的用户通过Kubernetes管理容器.是不是我们的生产环境上了K8s就完美解决了应用部署的问题?IT界有句俗语,没有 ...

  4. Serverless助力AI计算:阿里云ACK Serverless/ECI发布GPU容器实例

    ACK Serverless(Serverless Kubernetes)近期基于ECI(弹性容器实例)正式推出GPU容器实例支持,让用户以serverless的方式快速运行AI计算任务,极大降低AI ...

  5. 如何将离线计算业务的成本降低65%——弹性容器服务EKS「竞价实例」上线

    在容器化的应用场景中,大数据计算是其中很大并且业务应用在逐渐增加的一个热门领域,包括越来越多的人工智能企业,都在使用容器技术来支持业务中的大量计算任务.降低成本.提升资源利用率也是当前这部分用户非常期 ...

  6. 虚拟节点轻松应对 LOL S11 百万并发流量——腾竞体育的弹性容器实践

    作者 刘如梦,腾竞体育研发工程师,擅长高并发.微服务治理.DevOps,主要负责电竞服务平台架构设计和基础设施建设. 詹雪娇,腾讯云弹性容器服务EKS产品经理,主要负责 EKS 虚拟节点.容器实例相关 ...

  7. 阿里云弹性裸金属服务器-神龙架构(X-Dragon)揭秘

    在5月16日的飞天技术会新品直播中,特别邀请了业界知名大咖狒哥以及阿里云虚拟化资深专家旭卿作为现场直播的嘉宾.本次直播主要从产品背景到“X-Dragon架构”,从硬件设备到软件应用来深度的剖析“X-D ...

  8. 阿里云异构计算发布:轻量级GPU云服务器实例VGN5i

    阿里云发布了国内首个公共云上的轻量级GPU异构计算产品——VGN5i实例,该实例打破了传统直通模式的局限,可以提供比单颗物理GPU更细粒度的服务,从而让客户以更低成本.更高弹性开展业务.适用于云游戏. ...

  9. 2019阿里云开年Hi购季基础云产品分会场全攻略!

    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶段.3月04日-3月16日的新购满返+5折抢购阶段.3月16日-3 ...

随机推荐

  1. Linux Kernel C语言编程范式

    介绍 不同的编程语言具有不同的抽象原语(如下),有的原语抽象层次低,有的原语抽象层次高.其中函数式.DSL是这几年十分热门的编程语言概念. 过程式抽象原语:变量 对象式抽象原语:对象 函数式抽象原语: ...

  2. lua 文件编译相关工具

    -- 编译一个代码文件 -- loadfile (lua_State *L, const char *filename); -- 将一个文件加载为lua代码块,仅编译不执行,返回值为编译后的 -- 代 ...

  3. python多线程和多进程使用

    # 多线程 from concurrent.futures import ThreadPoolExecutor # 多进程 from concurrent.futures import Process ...

  4. Springboot搭建SSM+JSP的web项目

    Springboot搭建SSM+JSP的web项目 一:创建项目结构: 项目结构分为三个部分: 1 后端项目开发文件: 包: Util         工具包 Mapper      db层 Serv ...

  5. js与jq基础记录

    1.在js传递参数中含加号(+)的处理方式: 只需要把js中传过去的+号替换成base64 编码 %2B:encodeURI(str).replace(/\+/g,'%2B'). 2.随机产生8位随机 ...

  6. 微信小程序如何发送短信验证码,无需搭建服务器

    自从微信小程序提供云开发支持,开发者无需搭建后台服务器,使用微信提供的核心API就可以实现应用功能,此时就需要小程序能够自己发送短信,比如短信验证码,榛子云短信(http://smsow.zhenzi ...

  7. 算法与数据结构(八) AOV网的关键路径(Swift版)

    上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...

  8. 详解AMD规范及具体实现requireJS在工程中的使用

    前面的话 由CommonJS组织提出了许多新的JavaScript架构方案和标准,希望能为前端开发提供统一的指引.AMD规范就是其中比较著名一个,全称是Asynchronous Module Defi ...

  9. [Swift]LeetCode215. 数组中的第K个最大元素 | Kth Largest Element in an Array

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

  10. [Swift]LeetCode413. 等差数列划分 | Arithmetic Slices

    A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...