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

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

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

应用创建

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

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

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

应用部署

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

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

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

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

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

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

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

应用重启

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

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

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

Serverless 公众号,发布 Serverless 技术最新资讯,汇集 Serverless 技术最全内容,关注 Serverless 趋势,更关注你落地实践中的遇到的困惑和问题。

SAE 的极致应用部署效率相关推荐

  1. Serverless X OpenKruise 部署效率优化之道

    作者 | 许成铭(竞霄) Serverless 作为云计算的最佳实践.云原生发展的方向和未来演进趋势,其核心价值在于快速交付.智能弹性.更低成本.SAE(Serverless 应用引擎)作为首款面向应 ...

  2. OpenYurt v0.3.0 重磅发布:全面提升边缘场景下应用部署效率

    作者 | 张杰(冰羽) 来源|阿里巴巴云原生公众号 简介 OpenYurt 是由阿里云开源的基于原生 Kubernetes 构建的.业内首个对于 Kubernetes 非侵入式的边缘计算项目,目标是扩 ...

  3. 阿里天蝎计划 服务器部署效率提升10倍

    本文讲的是阿里天蝎计划 服务器部署效率提升10倍 7月16日,由阿里巴巴自主研发的整机柜服务器解决方案(AliRack),在中国可信云大会上首次亮相.基于天蝎技术规范的AliRack产品已规模化应用于 ...

  4. 浪潮超融合服务器虚拟机管理,浪潮联合VMware发布新一代超融合一体机,十倍提速数据中心部署效率...

    2017年10月26日,在vFORUM 2017大会上,浪潮联合VMware发布了新一代超融合架构一体机InCloud Rail系列,部署效率较传统方式提升10倍以上,IO性能提升60%.首批推出In ...

  5. sae项目服务器,基于SAE的游戏服务器: Server on SAE for RGSS Games 部署在SAE上的简易游戏服务器,为用 RMXP/VX/VA 开发的游戏提供网络服务...

    本项目已经关闭 服务端已经关闭并且不再重启,后续请访问 RGSOS on Gitlab 基于SAE的游戏服务器 重写服务端逻辑中--暂时无法正常提供服务 功能 数据库封装 封装了 SAE 上的 Mem ...

  6. 不努力提高效率,小姐姐都被人追走了:K8S一键部署了解一下?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 随着互联网时代的不断发展,开发者可能会面临这样的困境:为了解决问题.提升开发效率而竭力研发出 ...

  7. Django最新版(1.10.5)在SAE上面部署流程

    Django最新版(1.10.5)在SAE和Pythonanywhere上面部署流程 一.Django在SAE上的部署 1.注意事项: 将整个Django项目准备好,是Project,不是app. S ...

  8. 新浪云python示例_新浪SAE部署python项目

    SAE实际上就是个多节点的虚拟主机,跟云主机差不多,只不过SAE的节点比一般的云主机要多,把网站程序布署在SAE上比自己用独立的服务器稳定性和性能要高很多.将自己用python开发的博客项目放在SAE ...

  9. 如何部署SSM框架(Spring+SpringMVC+MyBatis)到SAE(新浪云服务器)图文教程

    在学习cocos2dx手游开发的过程中,为了实现用户注册.用户登陆和世界排行榜这些模块,需要用到服务器来搭建平台.以前都是 在本地搭建服务器,在本科期间使用过IIS和Tomcat,感觉在本地搭建服务器 ...

最新文章

  1. 为什么每次关机都要关闭mysql_在机器关机时关闭mysql服务实例
  2. 蚂蚁金服CTO鲁肃:支付宝成就了我,我做了很多“拧螺丝”的事儿
  3. #1413 : Rikka with String 后缀自动机 + 二级差分
  4. QWT中Qdial的入门介绍
  5. crontab没有正确重定向导致磁盘inode节点空间满
  6. DX10 Shadow Volumn Sample Code的Bug修正
  7. 另一个.NET上的文档数据库Raven[转载]
  8. Visual SourceSafe使用流程指南
  9. CAD(计算机辅助设计)
  10. Java 理论与实践: 处理 InterruptedException(转)
  11. 小兔的棋盘 (卡特兰数) 递推动规
  12. 水题 Codeforces Beta Round #70 (Div. 2) A. Haiku
  13. python 英语翻译 excel_Excel自动翻译
  14. GitHub客户端 Desktop使用
  15. 初级程序员考试大纲 (转)
  16. excel冻结窗口_怎么设置excel2007冻结窗口
  17. 京瓷打印机驱动安装教程,怎么安装方便点?
  18. AxGlyph矢量绘图软件
  19. CAD的高程注记转成Arcgis点要素(且带高程属性)
  20. 云服务器配置选择方法

热门文章

  1. 记录 grafana登录 从 go 迁移到 php
  2. 6、处理大数据对象(CLOB 数据小说+BLOG 数据图片,电影,音乐)
  3. 9、MySQL定义条件和处理程序
  4. 1.3 Integer类详解
  5. 刷算法题总结的一些结论公式
  6. Spring boot配置Servlet容器
  7. java小数点的代码_java小数位的例子
  8. 链表中环的入口结点 python_链表中环的入口结点
  9. Java 为 Excel 中的行设置交替背景色
  10. Java 集合系列(4): LinkedList源码深入解析2