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

如果你想要参考一个实例,不妨收听一下重型网络 433:深入 AWS 中转网关。这个讲座详细介绍了一个复杂的 AWS 功能(中转网关)是如何从客户需求发展而来的。

随着顾客需求的不断增大,AWS 也在不断推出更多的产品,不知不觉 AWS 已经走在了公共云行业的前列。

下面是整个采访的一些总结:

亚马逊喜欢细化团队。过去亚马逊内部只有一个统一的组织和软件架构 (perl/mason/c++),但随着规模的扩大这个模式很难再发挥作用,于是他们将这个架构按照单独服务的形式进行了重构,整个组织也全部分拆成了小于十人的小团队。团队本身是完全独立的,他们提供一个端到端的服务,并且负责所有服务相关的工作:与客户接触、开发、测试以及后续的技术支持等。

亚马逊钟爱自动化。亚马逊开发部门几乎自动化了所有事情:构建、发布以及部署。每一次提交的变更都自动推送到生产环境,这一开始很令大家担心,但其实无非就是把手工做的工作自动化了而已,使其每次都以相同的方式执行。为确保证生产环境正常进行,我们在自动化过程中增加了很多不同的测试:集成测试、基于浏览器和网络的测试以及负载测试等;我们也监测了自动化的整个过程。结果表明,通过自动化我们可以更频繁更及时地推出更新,从而可以做到更多的、质量更好的发布。

推荐阅读