亚马逊是如何进行软件开发的?这个访问告诉你( 三 )

亚马逊实现了滚动式部署。部署一直是一个很打击人的事情,不论是预生产还是在生产部署,我们需要找出每一次失败的原因。对此,亚马逊内部实现了滚动式部署。首先将服务部署一个 AZ 中的一台机器上,如果部署失败,则回滚本次操作;部署成功,则部署到另一个 AZ,进而扩展到更多的 AZ,更多的地区;一旦发现问题,则回滚到前一个可正常工作的版本。

亚马逊推崇安全为先的开发模式。开发人员需要像安全工程师一样思考,这是亚马逊文化的一部分。工程师同时也必须是开发人员、操作人员、架构师、测试人员和安全专家,为此亚马逊为开发者提供了学习所有技能的机会。罗伯特·海莱应该很喜欢这种模式,毕竟他主张人类应该掌握尽可能多的技能。在亚马逊 DevOps 也称作 DevSecsOps,因为安全已经完全融入到了整个全栈开发流程。

开发人员需要为新项目架构和安全模型负责。安全模型由安全工程师进行审查。每个开发人员都需要负责自己代码的安全隐患,因为他们离问题最近,所以也最有可能发现问题;正式开发中,代码提交会被审查,同事在提交之前也需要静态分析并给予反馈;构建过程中,也存在自动静态分析;最终发布流程,会有更多的检查,也会有金丝雀监视器对部署进行全方位测试。

推荐阅读