全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

通过提前bake Docker镜像加快基础设施的启动速度

我之前概述过加速AWS基础设施启动的方法。本文中谈到的方法可以进一步减少大约50%的时间,即在应用运行前,预先bake(pre-bake)所需服务。

我们的微服务应用托管于Docker容器,可以从Docker仓库或私有仓库中拉取(pull)。不像在Ubuntu服务器上使用bash脚本进行安装和配置,每个应用所对应的独立Docker镜像可以单独复制到所需实例。这意味着在处理较大负载时可以快速添加实例,如果此方法可行,值得在组织中推广应用。

用户体验的头一件事是演示流程,展示应用如何为团队的Github 分支(branches)创建环境。我们预先为应用demo在EC2 AMI创建单独镜像。这样,我们仅为需要运行应用的用户启动Docker容器。

可扩展IT自动化工具Ansible可以完成大部分工作。我们用它运行各种简单任务,如更新服务器host文件,生成证书,拉取需要的Docker镜像。举个例子,我们可以运行指定命令以及使用在Ansible YAML设置文件中的指定变量。在bake镜像时,Ansible拉取Docker镜像方法如下:

- name: pulling docker images

 become: true

 command: docker pull {{ item }}

 with_items:

  - "registry.runnable.com/runnable/image-builder:{{ IMAGE_BUILDER_VERSION }}"

  - "swarm:{{ SWARM_VERSION }}"

  - "google/cadvisor:{{ CADVISOR_VERSION }}"

考虑到bake到EC2镜像的东西必须是唯一的,否则如果每个镜像都有相同的标志文件,就没有办法加以区分。为了将Docker安装到AMI以及将容器bake到AMI,我们需要删除Docker key.json文件和Docker pid file。Docker在下次启动时还会生成这些文件,所以删掉也没关系。

实例必须和用户链接,这样我们才能协助他们的应用以及确定他们所使用的资源量。为了使实例在部署之后更加个性化,我们将亚马逊SSM代理bake到镜像中,这样就可以实现在第一时间与实例进行交互。为用户分配和配置实例的速度越快,内部DNS和路由配置允许应用访问的速度也就越快。

对于预先bake Docker镜像到亚马逊AMI这种做法,尽管目前支持它的理由还比较有限,但还是值得推广到几乎所有的架构。特别是Runnable这种一个实例可以对应各种应用、数据库和服务的情况,只要你知道实例在部署时需要什么,就可以使用上述方法。可以使用多个AMI来填补所有角色需要,或者只用一个有多个Docker镜像的实例,这些镜像不被运行也没有资源消耗。这种做法对高可用基础设施的扩展速度非常有帮助,可以将其缩短到数秒钟。

需要运行什么,就bake什么,这种做法理解起来很简单。由于存在重复的问题,我们还不能做到先发制人的准备好证书和指定配置,不过这些都是不计算在等待时间内的小进程。网络传输,也可能有磁盘I/O通常在服务器创建和启动新的Docker容器的过程中耗费较多时间,因此减少这类时间消耗能显著的提高启动速度。另外,这些考虑并非只针对特定产品。创建预先bake的AMI这种做法对任何团队来说,都能在创建新实例的时候节省等待时间。


# docker  # 镜像  # 国内镜像仓库  # bake  # Docker镜像  # 简单谈谈Docker镜像的使用方法  # Docker 下载镜像慢的问题解决方法  # 利用Docker制作Nginx+PHP镜像的步骤详解  # Docker for windows pull镜像文件的安装位置改变的方法  # 两种方式创建docker镜像的启动容器时区别介绍(总结篇)  # Docker push镜像失败解决方法  # Docker在CentOS7下不能下载镜像timeout的解决办法(图解)  # 深入了解docker(docker镜像、容器、仓库的基本概念)  # Docker创建镜像两种方法详解  # 亚马逊  # 多个  # 所需  # 越快  # 就可以  # 基础设施  # 他们的  # 都有  # 也就  # 也没  # 还会  # 还不  # 先发制人  # 你知道  # 将其  # 也可  # 能在  # 我们可以  # 时间内 


相关文章: 实现虚拟支付需哪些建站技术支撑?  移民网站制作流程,怎么看加拿大移民官网?  浅析上传头像示例及其注意事项  黑客如何利用漏洞与弱口令入侵网站服务器?  如何选择网络建站服务器?高效建站必看指南  c# 在高并发场景下,委托和接口调用的性能对比  太原网站制作公司有哪些,网约车营运证查询官网?  如何制作一个表白网站视频,关于勇敢表白的小标题?  C#如何使用XPathNavigator高效查询XML  建站之星安装需要哪些步骤及注意事项?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  ,怎么用自己头像做动态表情包?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  宝塔建站教程:一键部署配置流程与SEO优化实战指南  javascript中对象的定义、使用以及对象和原型链操作小结  如何在阿里云部署织梦网站?  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  潮流网站制作头像软件下载,适合母子的网名有哪些?  自助网站制作软件,个人如何自助建网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  北京网站制作的公司有哪些,北京白云观官方网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  c++怎么用jemalloc c++替换默认内存分配器【性能】  专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?  上海网站制作开发公司,上海买房比较好的网站有哪些?  建站主机选购指南:核心配置与性价比推荐解析  制作国外网站的软件,国外有哪些比较优质的网站推荐?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星在线版空间:自助建站+智能模板一键生成方案  济南专业网站制作公司,济南信息工程学校怎么样?  如何获取开源自助建站系统免费下载链接?  手机网站制作与建设方案,手机网站如何建设?  如何有效防御Web建站篡改攻击?  宝塔面板创建网站无法访问?如何快速排查修复?  如何彻底卸载建站之星软件?  如何在宝塔面板创建新站点?  如何用景安虚拟主机手机版绑定域名建站?  宝塔建站助手安装配置与建站模板使用全流程解析  广平建站公司哪家专业可靠?如何选择?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  如何快速查询域名建站关键信息?  三星网站视频制作教程下载,三星w23网页如何全屏?  如何通过山东自助建站平台快速注册域名?  建站为何优先选择香港服务器?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  TestNG的testng.xml配置文件怎么写  建站之星后台管理系统如何操作? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。