
110
|
第
5
章
更看重人的健康状态,而不是会使人筋疲力尽并最终迫使他们离职的流程。作为文化的
一部分,你应该拥抱失败——给员工失败的空间,更重要的是,你能从失败中学习。在
这种文化中,每个人的想法都应受到欣赏。你不应该对一小部分人有倾向。员工的职级
和职称并不重要,每个人都应该参与到系统的设计中来。
5.1.2 自动化
在整个软件开发生命周期里推行自动化对于实现更高的部署速度和部署一致性至关重
要。想要在几分钟内把一个刚刚实现的功能或代码变成一个在生产环境中实际可用的功
能就需要大量可靠的自动化。需要自动化的关键元素是基础设施、持续集成(CI)的流
程、构建代码后的测试、持续交付(CD)流程以及部署后的测试。理想情况下,你使用
的平台和工具可能已经内置了一些自动化功能。
回顾过去,基础设施的搭建是一个手动过程。它要求人们搭建好服务器,对其进行配
置,然后再在这上面部署应用程序,等等。手动做这些事有很多缺点,比如买硬件、安
装和管理硬件都很花钱,而且很慢。这使得它很难去对流量高峰做出及时响应,因为部
署新服务和应用所需的时间太长了。
上云的主要好处之一是基础设施可以自动化。基础设施即代码(Infrastructure as Code,
IaC)是一种用代码而不是通过手动流程来配置和管理基础设施的方法。所有的基础设
施,如服务器、网络和数据库,都用代码来处理。你可以通过编码来创建一个部署和配
置基础设施组件的流程,这个流程是可以复用的,并且是具有一致性的。例如,你可以
写一个脚本,这个脚本负责去部署服务器,并预配置不同的组件、网络、负载均衡器和 ...