阿波罗的故事 - 亚马逊的部署引擎

||评论 (

自动部署是一个强大的DevOps环境的中坚力量。如果没有高效,可靠和可重复的软件更新,工程师需要将其重点从开发新的功能,以管理和调试他们的部署重定向。必威体育精装版app官网亚马逊首先面临这个挑战多年前。

当进行迁移到面向服务的架构,亚马逊重构其软件成小的独立服务,并重组其组织成小的自主团队。每队承担了一个服务的开发和运营的全部所有权,他们的工作直接与客户进行改进。必威体育精装版app官网有了这个明确的重点和控制,团队能够快速产生新的功能,但其部署过程很快成为一个瓶颈。手动部署的步骤放缓人为错误造成的发布和推出的bug。很多球队开始完全自动化的部署,以解决这个问题,但这不是那么简单,因为它第一次出现。

部署软件在一台主机很容易。您可以SSH到一台机器,运行脚本,得到的结果,就大功告成了。亚马逊的生产环境,然而,比这更复杂。亚马逊Web应用和Web服务的跨跨越多个数据中心主机的大型车队运行。该应用程序无法承受任何停机时间,计划或其他方式。自动部署系统需要仔细测序软件更新跨舰队,同时正在积极接收流量。该系统还需要内置的逻辑来正确地对许多潜在的故障情况作出回应。

它没有任何意义的每个小服务团队重复这项工作,所以亚马逊创建了一个名为阿波罗共享的内部部署服务。阿波罗的工作是整个主机的目标舰队可靠地部署一组指定的软件。必威体育精装版app官网开发人员可以定义他们的软件安装过程中的一台主机,而阿波罗将协调各主机间的整个船队的更新。这使得开发人员可以轻松到“按钮”部署他们的开必威体育精装版app官网发主机应用程序进行调试,到分段环境试验,终于到生产到发布的更新给客户。增加的效率和自动化部署的可靠性除去瓶颈,使团队能快速交付新功能,为他们服务。

随着时间的推移,亚马逊一直依靠和显着改善阿波罗改进络绎不绝燃料我们的网站和网络服务。成千上万的亚马逊开发者使用阿波罗每天部署必威体育精装版app官网各种软件,从Java,Python和Ruby应用程序,以HTML网站,为本地代码的服务。仅在过去的12个月中,阿波罗用于50M部署到开发,测试和生产的主机。必威体育精装版app官网这是一个平均超过一个部署每秒的。

亚马逊内的广泛使用阿波罗带动增加了许多有价值的功能。它可以在其中仅主机的一小部分是在同一时间采取离线升级舰队执行滚动更新,允许应用程序部署期间仍然可用。如果机群跨独立的数据中心分布,阿波罗将条带滚动更新同时部署到在每个位置的主机的当量数。这样可以使舰队平衡,在任何突发事件的情况下,最大限度地提高冗余。当船队扩展到处理更高的负载,阿波罗自动安装最新版本上新增加的主机软件。

阿波罗还跟踪单个主机上的详细部署状态,并将该信息在许多情况下利用。如果故障主机的更新次数越过配置的阈值,它会影响应用可用性之前阿波罗会自动停止部署。在接下来的部署,例如快速回滚到前一个版本,阿波罗将先更新这些故障的主机,从而使整个船队到健康状态尽可能快地。必威体育精装版app官网开发人员可以监控正在部署和查看他们的历史来回答像重要的问题:“当被此代码部署到生产环境,以及哪些主机正在运行的呢?”或“什么版本的应用程序在生产上个星期运行?”

我们的许多客户,因为他们增加他们的应用程序更新的速度都面临着类似的问题。他们已经问我们是怎么做的,因为他们要优化他们的流程来实现相同的快速交货。由于自动部署是敏捷软件交付的基本要求,我们创建了一个名为新服务AWS CodeDeploy

CodeDeploy可以让你在现有的应用程序安装逻辑插件,然后配置在您的EC2实例的船队所需的部署策略。CodeDeploy将策划舰队部署,监控状态,并给你一个清晰的仪表盘,控制和跟踪您的所有部署的照顾。它简化和标准化的软件发布过程,使开发者可以专注于自己最擅长的路技术的新功能为他们的客户。必威体育精装版app官网杰夫·巴尔的博客文章包括使用CodeDeploy的大演练,是一个良好的开端,以获得该服务有更深的了解。

AWS CodeDeploy是一套旨在帮助客户ALM服务首先建立一个高效的云开发过程。必威体育精装版app官网我们期待着分享更多的内部流程和亚马逊使用了敏捷软件交付工具。阿波罗仅仅是一块较大的一整套解决方案。我们想听到的方式,你认为我们可以帮助你提高分娩过程中,所以请与产品团队的CodeDeploy论坛直接连接。

评论

博客评论由Disqus