微服务与 DevOps 代表着两波重要的技术发展趋势, 并不断给企业带来实际价值. 这两种实践有着共同的核心 -- 为企业提供更好的敏捷性与执行效率. 也正因为如此, DevOps 成为实现微服务的关键因素.
微服务与 DevOps 息息相关
DevOps 致力于持续监控, 测试并部署软件, 微服务架构的本质则在于模块化属性, 即通过小型单一服务执行单一功能. 从这个角度来看, 模块化软件很容易适应 DevOps 结构, 允许开发者轻松实现增量式变更. 单一微服务天然更易于升级, 构建, 测试, 部署与监控, 这正是 DevOps 希望达成的关键目标. 因此, 只要项目采用基于微服务的结构, DevOps 就能显著加快交付速度并提升交付质量.
此外, DevOps 实践还要求将大问题拆分成多个较小的部分, 再由团队逐一加以解决. 从这个角度看, 微服务更加与 DevOps 息息相关, 二者同样要求小型团队对企业服务做出功能性变更, 且微服务高度强调在低复杂度环境下由增强型小规模团队完成实施与协作. 在低复杂度环境的支持下, 我们得以建立持续交付管道并保持稳定的部署流程. 同样的, 容器化微服务同样可以加快部署与内置功能实现速度, 确保新服务能够立即在任意系统上运行.
自动化运营不仅增强了微服务方法, 同时也建立起适应性更好, 更易于扩展, 能够快速执行部署的良好环境. 将 DevOps 与微服务融合至开发与测试流程中, 能够切实增加团队的产出与服务质量.
敏捷开发中的 DevOps 与微服务
此外, DevOps 与微服务方法还有着相似的组织结构与开发文化, 而且也都对云基础设施及自动化体系有着天然亲和性. 二者在开发, 速度与可扩展性层面提出了相似的要求, 而这一切都高度契合敏捷开发的基本思路.
敏捷方法还顺理成章地强调对微服务中两大核心概念的支持: 持续集成 (CI) 与持续交付(CD). 持续交付提出以质量为中心的理念, 要求加快对生产成果的变更, 由此加快部署流程.
基于微服务的架构总是会带来这样或那样的改变, 这些改变也得到现代应用程序开发者们的欣然接受. 基于微服务的架构让生产效率得到惊人的提升, 同时也给那些对灵活性及可扩展性要求极高的应用程序提供了更强大的解决方案.
微服务给 DevOps 带来众多收益, 例如提升了敏捷性, 缩短构建, 测试与部署周期; 增强了可靠性与可用性, 缩短新版本的发布周期; 改进了可扩展性与可修改性, 灵活支持更多新型框架, 数据源及其他资源; 优化了管理性, 并降低团队规模, 提升团队独立性.
总结
微服务能够支持开发与运营层面的各类通用工具集, 以此为基础让 DevOps 更轻松地保持运营, 解决问题, 将 DevOps 的生产力推向新的高峰. 正所谓 DevOps 微服务一相逢, 便胜过单体无数.
来源: http://developer.51cto.com/art/202101/642397.htm