开发人员经验
无服务器软件开发生命周期
快速构建,测试和部署基于AWS Lambda的应用程序,以及如何为成功做好准备。
如何在Amazon Web 服务上部署软件?有很多选择。许多人坚持使用传统方法,但是云服务的灵活性(特别是具有AWS丰富的功能集,是竞争对手无法比拟的)开辟了令人兴奋的新可能性。
更具吸引力的选项之一是基于AMI的部署。 AMI代表Amazon Machine Image…AWS专有的虚拟映像格式。这是一个很好的模型,原因如下:
该模型的一个关键部分是,AMI必须是“环境独立的”……换句话说,需要在启动时设置任何与暂存和生产不同的设置。您可以使用 用户数据 轻松做到这一点。
过去,此模型面临的挑战是,一旦构建AMI,如何将其部署到自动缩放组中? Netflix对此的答案是他们的开源 阿斯加德 工具。但是,这不是轻量级的方法……您确实必须“全力以赴”使用Asgard来管理整个AWS环境。
有一个很棒的轻量级替代方案,最近通过CloudFormation 更新政策功能的发布而启用。让我退后一步。
CloudFormation允许您使用JSON模板化AWS资源...从而为整个基础架构编写脚本。您还可以在该模板中定义参数,例如,以控制启动的实例的大小。使用JSON模板,添加参数,然后启动,您现在有了“堆栈”的AWS资源。
因此,此部署模型的工作方式如下:
从那里,UpdatePolicy自动处理推出新AMI的过程。它使用三个参数执行此操作:MaxBatchSize,MinInstancesInService和PauseTime。您可以在AWS文档中阅读详细信息,但要点是,它将按照您定义的速度将新AMI缓慢推出到您的自动伸缩组中。
结果是建立了强大且轻量级的部署管道。很漂亮