SAE 的极致应用部署效率

简介: SAE 在应用创建、部署、重启过程中的效率优化。

头图.jpg

作者 | 文俊 阿里巴巴云原生团队
本文整理自《Serverless 技术公开课》

作为 Serverless 平台,SAE 提供了应用全托管的服务,充分利用了云原生的技术红利,以容器作为应用载体,提供了敏捷的部署、编排、弹性等能力。SAE 屏蔽了底层的基础设施,对于用户来说,感知到的最底层资源是应用实例本身,应用创建、部署等操作是用户交互的主要接口。

接下来将介绍我们在应用创建、部署、重启等过程所做的效率优化工作。

应用创建

首先是应用创建。目前,用户界面可通过镜像或 war、jar 安装包的方式部署应用,最后在平台侧,以统一打包成容器镜像的方式进行分发,然后平台去申请计算、存储、网络等 IAAS 资源,再开始创建容器执行环境和应用实例。

111.png

在这个过程中,涉及到调度、云资源创建和挂载、镜像拉取、容器环境创建、应用进程创建等步骤,应用的创建效率与这些过程紧密相关。

我们很自然而然地能想到,这其中部分过程是否能并行,以减少整个创建的耗时呢?经过对每个过程的耗时分析,我们发现其中的一些瓶颈点,并且部分执行步骤之间是解耦独立的,比如云弹性网卡的创建挂载和应用镜像拉取,就是相互独立的过程。基于此,我们将其中独立的过程做了并行化处理,在不影响创建链路的同时,降低了应用创建的时耗。

应用部署

应用的部署,即应用升级。我们知道,传统的应用部署过程可以分为以下几个步骤:

  1. 首先创建新版本的实例;
  2. 然后等待实例启动、业务进程 ready 后,接入流量,即创建对应 SLB 后端;
  3. 最后将老版本实例从 SLB 后端摘除并销毁。

在分批发布的场景下,如此继续循环下一批实例,进行滚动升级。我们能看到,在这个过程中,应用实例发生了重建,同时实例 ip 也会发生浮动。

上文我们讲到,应用实例的创建过程包括调度、云资源创建挂载、镜像拉取、容器环境创建、应用进程拉起等步骤,对于应用部署而言,完全可以不用重走一遍所有的流程,因为我们需要的仅仅是基于新的镜像,创建新的应用执行环境和进程而已。

因此,我们实现了原地部署的功能,在滚动升级过程中,保留原来待升级应用实例及其挂载的云网络、云存储资源,只更新实例的执行环境,无需经过调度、云资源创建等过程。这样,原来的部署流程也简化为:

摘流,将运行实例从 SLB 后端摘除 -> 原地升级实例 -> 接入流量

原地升级后,应用实例仍保持原来的 ip。经过测试,对于 2 实例应用,部署效率将提升4倍,将部署时长从原来的将近 1 分钟缩短到十几秒。

222.png

应用重启

最后,简单介绍下我们即将推出的原地重启功能

重启实例在某些运维场合是必要的操作,说到应用重启,我们希望类似于 linux 系统一样,可以只执行一次 reboot,而不是重建实例。具体的做法是,我们在容器环境下,通过容器引擎 API 执行一次启停操作即可。原地重启相比原地升级,省去了镜像更新和执行环境创建的过程,并且相比 ECS,容器的重启更轻量,能达到秒级。

该功能近期会上线,敬请期待。

 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514887.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家下载!《Java工程师成神之路(基础篇)》

简介: 初学Java的你还在烦恼不知道怎么去学,学习什么内容吗?那么多的技术书籍是否已经让你无从下手?别急,来看这一份完整的Java学习路径。 复制该链接到浏览器完成下载或分享:https://developer.aliyun.com…

Gartner:2021全球安全和风险支出将超1500亿美元

编辑 | 宋 慧 作者 | Gartner投稿 头图 | 付费下载于东方IC 全球信息技术研究和顾问公司Gartner预测,2021年全球信息安全和风险管理技术与服务支出预计将增长12.4%,达到1504亿美元。2020年安全和风险管理支出增长率为6.4%。 Gartner分析师认为&#xf…

四年,如何从前端小白蜕变为前端技术专家?

作者简介:珑晴——淘系技术部前端技术专家,16 年校招实习转正进入的阿里,当时是在聚划算前端团队,随着业务变化一路从聚划算到天猫至今加入淘系技术部,负责日常活动营销的同时,也多次参与大促会场&互动…

Tomcat 一键启停脚本 linux

文章目录一、脚本开发1. 编写脚本2. 修改脚本3. 赋予权限二、脚本执行2.1. 启动tomact2.2. 查看tomact状态2.3. 停止tomact一、脚本开发 1. 编写脚本 vim start-tomcat.sh添加以下内容: #!/bin/bash# description: Tomcat start/stop/status script#Location of …

从 Storm 迁移到 Flink,美团外卖实时数仓建设实践

简介: 本文主要介绍一种通用的实时数仓构建的方法与实践。实时数仓以端到端低延迟、SQL 标准化、快速响应变化、数据统一为目标。 作者:朱良 本文主要介绍一种通用的实时数仓构建的方法与实践。实时数仓以端到端低延迟、SQL 标准化、快速响应变化、数据…

Arm发布移动端v9体系新架构,CPU、GPU、IP全囊括了!

2021年5月25日晚,Arm发布了针对移动端的Armv9体系新架构,除了公布首款全面计算(Total Compute)解决方案,Arm还发布了首批基于Armv9 架构的Cortex-A CPU,为消费电子视觉体验而设计的Mali-G GPU系列&#xff…

阿里 双11 同款,流量防卫兵 Sentinel go 源码解读

简介: 本文主要分析阿里巴巴集团开源的流量控制中间件 Sentinel,其原生支持了 Java/Go/C 等多种语言,本文仅仅分析其 Go 语言实现。下文如无特殊说明,sentinel 指代 Sentinel-Go。 作者 | 于雨 apache/dubbo-go 项目负责人 本文…

工业发展 安全护航 2021年工业互联网安全发展峰会成功召开

在数字化创新日益深入的背景下,工业互联网已经成为制造企业构建敏捷、弹性的基础架构的重要转型方向。但与此同时,安全风险与威胁向OT环境渗透,产生了额外的复杂性,对于关键业务与数据带来了严重威胁,构建工业互联网安…

基于 Flink + ClickHouse 打造轻量级点击流实时数仓

作者:LittleMagic Flink 和 ClickHouse 分别是实时计算和(近实时)OLAP 领域的翘楚,也是近些年非常火爆的开源框架,很多大厂都在将两者结合使用来构建各种用途的实时平台,效果很好。关于两者的优点就不再赘…

Spring boot 2.3优雅下线,距离生产还有多远?

简介: 对于任何一个线上应用,如何在服务更新部署过程中保证业务无感知是开发者必须要解决的问题,即从应用停止到重启恢复服务这个阶段不能影响正常的业务请求,这使得无损下线成为应用生命周期中必不可少的一个环节。 前言 在生产…

发布 128 核 Altra Max,自研内核,明年推出 5nm 处理器,“性能怪兽”Ampere 搞大事?

2015 年,在英特尔就职 28 年的总裁 Renee James 辞职,正在大众纷纷猜测她将如何开启下一段旅程时,她有了创业的想法,2017 年带领新团队创立了专注于为云和边缘打造微处理器的 Ampere 公司。 在云原生浪潮下,底层硬件需…

2020亚太内容分发大会 阿里云荣获“边缘计算领航企业”奖

10月21日,第八届亚太内容分发大会在北京隆重召开。凭借在边缘计算领域的先发优势、技术实力与丰富实践,阿里云荣获“边缘计算领航企业”称号。 伴随着中国5G商用进程提速,大带宽、大连接、低时延的应用场景爆发,将催生产业变革&a…

最佳途径 | 容器规模化落地如何四步走?

随着云原生时代的发展,传统 IT 基础设施加速云化,云原生化成为云上的必然趋势。作为云原生代表技术之一,容器技术可帮助企业提升 IT 架构的敏捷性,加速应用创新,帮助企业更加灵活地应对商业发展中的不确定性。疫情期间…

elasticsearch 嵌入式_Elasticsearch 开箱指南

内容概要ES 基础介绍,重点是其中的核心概念。基础 API 实践操作。1. 基础介绍Elasticsearch (ES) 是一个数据库,提供了分布式的、准实时搜索和分析。基于 Apache Lucene,可以操作结构化数据、非结构化数据、数字类型数据、地理空间数据。数据…

最良心的 chrome 插件可以良心到什么程度?

CSDN下起了红包雨399 元智能音箱199 元天猫精灵300元现金红包/会员100元红包/会员更有千万流量曝光100%有奖......作为日常总发现 " 宝藏 " 的你总体验过一些 " 王炸 " 级别的chrome插件让你想 “ 真诚 ” 安利所以,CSDN开启了彩虹屁chrome插件…

一文教会你如何写复杂业务代码

简介: 这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该命题,我进行了比较细致的思考和研究。结合实际的业务场景,我沉淀了一套“如何写复杂业务代码”…

Day.js 常用方法

文章目录1. 初始化日期 / 时间2. 格式化日期 / 时间3. 加 / 减4. 获取某年某月的第一天或最后一天5. 获取星期几6. 获取毫秒数7. 获取时间差(默认输出的差值单位是毫秒)8. 获取时、分、秒9. 将毫秒转为时分秒10. 判断一个日期是否在另外一个日期之后 isA…

如何使用云原生数据湖,助力线上教育行业逐步智能化

简介: 阿里云基于对象存储OSS构建的数据湖解决方案,帮助企业有效消除数据孤岛的现象,让数据的价值真正被利用起来。 行业综述 线下教育行业因疫情受挫,线上教育却逆势增长 随着90年代互联网的引入,在线教育产品也依托…

caas k8s主控节点如何查询_k8s--04 部署harbor作为k8s镜像仓库

k8s实战部署harbor作为k8s镜像仓库1.实验目标部署k8s私有镜像仓库harbor把demo小项目需要的镜像上传到harbor上修改demo项目的资源配置清单,镜像地址修改为harbord的地址2.再node1上安装harbor[rootnode1 ~]# cd /opt/#上传harbor软件包[rootnode1 /opt]# rz -Erz w…

vue3中使用cookie

前端使用cookie 步骤一 编写方法cookie.ts //获取cookie、 const CooieTool {getCookie: (name: string) > {var arr, reg new RegExp("(^| )" name "([^;]*)(;|$)");if (arr document.cookie.match(reg))return (arr[2]);elsereturn null;},//设…