DevOps: A Software Architect`s Perspective
4. 整体架构
4.1 DevOps实践是否需要架构调整
从DevOps实践的五个分类来看:将运维的需求(可能是在日志、监控和支撑事故处理等领域上)纳入系统、确保开发更多的负责相关事故处理、要求所有人员执行部署过程这三种会对原有架构进行小修改;若使用持续部署,将带来最深远的架构修改;像开发应用程序代码一样开发基础设施代码,这实践不会影响应用程序代码,可能会影响基础设施代码架构。
4.2 架构结构总览
模块:一个具有一致功能的代码单元;
组件:一个可执行单元;
编译器/解释器 将 模块 转化为 二进制文件,构建器 将 二进制文件 转化为 组件。
服务:用以定义 提供服务的组件;
客户端:用以定义 请求服务的组件;
为大幅度减少组件进入生产的时间,需要架构支持:
- 可以部署不需要与其他团队的显式协作;
- 让不同版本的同一个服务同时运行在生产中,可以让不同团队成员无需与该团队的其他成员协作就可以部署;
- 错误发生时执行的回滚能支持多种形式的现场测试;
微服务架构是满足以上需求的架构风格。
三种架构设计决策,(每个决策都是基础设施设计的一部分,可进行全局设计),这些决策可以去除团队间协作的需求:协作模式、资源管理和架构元