概述
微服务是一种研发模式,企业决定采用微服务架构,就必须在组织架构、管理策略、研发模式、测试、运维等领域都做出相应的调整,为微服务架构的落地创造合适的土壤。
一、微服务架构及治理特点:
1.高内聚、低耦合
从微服务的单个实体角度看,一个微服务就是一个独立的部署包,或一个独立的操作系统进程。从微服务的整体集群角度看,服务和服务之间通过网络调用进行通信,调用双方遵循服务接口契约,即服务API。所以对于一个服务来说,需要考虑的是哪些可以暴露和隐藏。如果暴露过多,服务消费方会与服务的内部实现产生耦合,这就会使得服务和消费方之间产生额外的协调工作,降低服务的自洽性。所以,从微观角度看架构,一个微服务一定是对内高内聚、对外低耦合的。
2.独享资源
微服务强调能够独立演进,互不影响,微服务架构中每个服务都有自己的数据库, 保证松耦合。这种拆分获得的好处是,各个服务可以自由选择适合自己的数据库,如果需要复杂的查询操作,可以选择关系数据库;如果需要针对海量数据进行存储及检索,可以选择NoSQL数据库,各个服务所对应的数据库不会相互影响。
3.同构or异构
微服务虽然功能单一,整体功能还是非常复杂的,为了防止这些服务管控能力干扰业务功能的简单性,在微服务架构中,会把这些管控能力抽取到微服务支撑框架中,这一点和分布式服务框架是一致的,微服务框架分两种模式。一种是基于SDK的合设部署模式,如下图基于SDK的服务框架:
4.架构治理
单个微服务逻辑简单,整个微服务集群就相对复杂了。微服务是一种自底向上的架构模式。包含
循环调用∶在单个微服务节点上,无法看到这种调用的不合理性的,只有通过梳理所有服务的整体调用关系,才可能发现这种风险点。
服务冗余∶有些微服务不再被调用了,还可能是微服务的老版本,依赖它的其他应用或者服务已经消亡了,这些服务不会再被调用,这时需要将它们找出来,并清理下线,优化线上的资源配置,如下图微服务的调用循环:
在微服务架构下,需要对服务的整体架构进行不断优化,优化架构面对成千上万的微服务节点,要靠自动化,有两种典型的手段:静态代码调用链路分析和动态线上调用依赖关系分析。
二、微服务研发治理
当应用继续拆成更小粒度的服务、微服务的时候,研发团队也会从紧耦合的大团队被拆成松耦合联系的各个小团队,在微服务模式下,团队、工程、CI构建流水线隔离了,自由演进,促进了快速迭代及灵活变更。这种自由度, 往往会在代码质量、接口契约遵循上失控。所以,针对微服务的研发,工程及代码质量治理也需要治理。对微服务的治理,不仅仅是针对线上微服务的治理,还需要对微服务项目的研发过程演变及代码质量进行治理。契约测试是一种可靠的自动化手段能够有效识别出线上大量的微服务是否依然遵循接口契约。
三、微服务测试治理
微服务测试治理主要包含单元测试及冒烟测试的挑战、集成测试的挑战。进要进行一个完整的端到端测试,必须确保整个微服务集群的调用链路中所有的主流程服务和依赖服务都部署到位,只要有任何一个微服务缺位,测试就无法进行,所以端到端测试对线上服务完备性的依赖很强。
最后
以上就是沉静蜜粉为你收集整理的微服务治理包含哪些范围?(一)的全部内容,希望文章能够帮你解决微服务治理包含哪些范围?(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复