微服务下的持续交付环境
背景 随着互联网行业的兴起,敏捷开发、Devops被越来越多的公司提及或实施,力求有效地降低交付过程所耗费的成本并提高交付的效率。 持续交付通过建立自动化的构建、测试、部署机制,实现业务快速上线的过程。 在微服务架中,由于每个服务都是一个独立的,可部署的单元,由一个服务或多个服务组合对外提供服务,服务拆分粒度更细、服务之间依赖更加的复杂,服务的开发、测试、上线也必将带来更大的挑战。 微服务环境下持续交付面临的挑战 任何事情都有两面性,在享受微服务便利的同时,也必须面对微服务交付所带来的挑战。 经常听到大家聊到微服务架构时,聊得最多的是服务的拆分、实施微服务时采用的框架、技术选型、K8S、SpringCloud等等,所见到微服务架构项目,大多都没有真正做到“服务的独立部署”。 这里的的“独立部署”并不仅仅是简单的自动化部署,自动化部署相对简单,通过一些自动化工具、脚本等我们可以做到自动化部署。而微服务为什么不能简单的做到独立部署,不是“不能部署”而是“不敢部署”。 微服务依赖关系错综复杂,没有依赖的统一管理和依赖检查。 微服务是虽然在物理上被拆分成多个小的服务,但从交付角度来看仍以一个整体对外提供服务。 无统一的视图对开发、测试、生产环境的各个阶段进行管理。 服务上线后无完备的手段对服务的监控、安全、容灾、扩缩容、流量保护等。 因此微服务的实施不光是Devops的过程