为什么定义参考模型

之前我的工作,大部分时间都是聚焦在某个产品/团队,为他们提供微服务/DevOps的实施及指导。进入公司后,同时参与了多个产品团队的改造研讨。其中最大的不同在于:

在面对一个团队的时候,范围聚焦,可以集中梳理问题并全方位跟进;

但是,当同时面对多个团队时,尤其是业务背景、技术积累、团队规模、复杂度不尽相同的团队,如何快速有效的推进?

因此,如何能最大化地为多团队提供支撑,帮助他们有效实施微服务并持续获得收益,成为挑战。

微服务的概念看似浅显易懂,但实际上却涉及敏捷实践、架构演进、领域建模、持续交付、DevOps等多个维度的方法论与实践。在整个演进过程中,持续交付、DevOps、演进式架构成为有效实施微服务的必备能力。

于是,根据之前的经验和总结,通过对微服务实施过程中不同维度的思考,梳理了《微服务实施参考模型》,旨在帮助微服务实施的团队获取如下关键内容:

(1) 全方位诊断当前系统是否适合微服务化。

(2) 清楚了解服务化实施的当前状态以及遇到的瓶颈。

(3) 制定切实可行的阶段性目标(这一点非常重要,微服务带来的各种好处不言而喻。但是如何有效的按阶段推进,如何梳理最佳实践并进行大规模复制,其实是有不少坑要趟的)。

(4) 帮助团队梳理中长期的目标并在更大范围内复制(产品线、部门级别) 。

微服务实施参考模型包括什么

微服务实施参考模型主要包括如下四部分内容:

1). 适用性评估

真实世界里,不存在"One size fits all"的解决方案。虽然微服务有诸多迷人的优势,但它的弊端和挑战也是我们在决策时必须要考虑的风险。对于遗留系统的改造场景,至少要考虑"新业务"、"现有业务"、"数据的独立与依赖性"、"双模IT集成"等内容。所以,如何评估现有的产品或者业务,是否适合大规模的微服务化改造,从哪些维度能够帮助我们思考并鉴别风险,是×××长征的第一步。

2). 成熟度评估

经过上面的评估,已经确定了微服务对产品的适用度。那接下来,团队的当前状态如何,能多大程度的投入?过去是否有积累的敏捷或者持续交付实践,接下来的实施面临哪些挑战?第一步从哪些角度入手?

这些是很多团队面临的困惑。

通过定义三大关键、五个等级及八个维度,成熟度参考能帮助团队了解当前微服务的状态,明确短期目标并定义中长期目标,同时为团队提供清晰的路标。

3). 技能与工具图谱

清楚了短期目标、中长期目标,接下来的部分就是如何落地。在微服务落地的过程中,会涉及到很多工具、技能以及相关的实践。因此,该部分旨在提供落地过程中的语言、框架、工具以及实践指导。

另外,为了完善服务落地时能力提升的活动,我们也提供了对于服务演进过程中需要工具的视频或者素材,帮助团队快速上手并获得相关能力。同时,更深层次的目标,其实也是希望团队能在熟悉这个流程后,根据自身实践,打造适合团队自己的技能图谱。

取得的效果

目前《微服务实施参考模型》在多个团队取得了良好的效果。

基于《微服务实施参考模型》,在业务支撑工具团队的新版本,对微服务实施过程中定义26+项实践改进,包括服务演进、数据拆分、监告警、基于契约的集成验证、可视化任务管理等,团队在3个月内将单服务上线周期从35天降低到14天。同时,在提交频率、平均提交行数、CI构建时间和单元测试覆盖率上有显著的提升。

在某云服务团队中,通过《微服务实施参考模型》定义的成熟度阶段参考与阶段实施,团队定义了10多项改进实践,在服务自启动、持续集成、服务间测试联调、敏捷实践和测试环境搭建上有显著的效率提升。

复用借鉴方式

对于还未开始实施微服务的团队,可以基于《微服实施参考模型》的适用度评估部分,对现有系统进行多维度的检查,尽早识别微服务过程中的风险;根据评估后的结果,团队内也可以探讨并决定多大范围的实施微服务;

对于已经开始实施微服务的团队,可以基于《实施参考-成熟度模型》进行成熟度的检查,在架构与技术、组织与文化以及流程与工具三大类、全功能团队、敏捷实践、服务拆分与设计、运维与监控、服务测试、持续集成等多个维度,分析短板,并基于成熟度的不同阶段,制定循序渐进的改进目标。

对于微服务过程中遇到的工具和平台问题,譬如看板(DevLean)、服务间契约测试(Pact)、基础设施的自动搭建(Infrastructure as code),可以参考技能图谱,里面提供了视频以及分享材料。

对于演进过程中遇到的疑惑,可以参考我们提供的案例,获得相关的参考。

转载于:https://blog.51cto.com/14281216/2377324

CTO为何要微服务评估的更多相关文章

  1. 我所理解的SOA和微服务

    本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...

  2. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  3. [转]微服务(Microservice)那点事

    WHAT – 什么是微服务 微服务简介 这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可 ...

  4. SOA和微服务

    SOA和微服务 SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上的区别,两者说到底都是对外提供接口的一种架构设计方式.我倒觉得微服务其实就是随着互联网的发展,复杂的平 ...

  5. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

  6. 基于Kubernates微服务案例

    企业业务上云的三种架构 容器的三个视角 从运维角度 数据工程师角度 开发角度微服务化 12 Factor Related Reference: https://kubernetes.io/https: ...

  7. 为什么 kubernetes 天然适合微服务

    最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发三大容器平台从功能方面来看,最后简直是一摸一样.(可参考<容器平台选型的十大模式: ...

  8. Spring Cloud微服务笔记(一)微服务概念

    微服务概念 一.什么是微服务架构 微服务,是一个小的.松耦合的分布式服务. 为什么需要微服务: 1)单体系统部署在一个进程中,修改了一个小功能,为了部署上线就会影响其他功能. 2)单体应用各个功能模块 ...

  9. 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训

    [编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...

随机推荐

  1. 转载:Docker源码分析(一):Docker架构

    原文地址: http://www.infoq.com/cn/articles/docker-source-code-analysis-part1  作者:孙宏亮 1 背景 1.1 Docker简介 D ...

  2. 查找 mysql 配置文件 my.cnf

    $ locate my.cnf 看看你的linux上有多少个my.cnf,一般都配置为/etc/my.cnf

  3. 关于android中数据库的创建以及基础的增删改查的相应操作

    这里主要是掌握一些基本的相应的知识,具体的是阿金是等到明天在进行. 相应的知识点如下: 对于数据库中的一些常识.SQLite 没有服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使 ...

  4. 计算机网络协议,IPV4数据报分析

    一.IP数据报结构分析 1.整体结构 一个IP数据报由首部和数据两部分组成. 首部的前一部分固定长20字节,这是所有IP数据报必须具有的:在首部的固定部分后面是一些可选字段,其长度是可变的. IP数据 ...

  5. Linux 文件管理篇(一 档案读写)

    由第一行开始显示文件内容        cat 由最后一行开始显示文件内容        tac 一页一页的显示文件内容            more 一页一页的显示文件内容(可以向前翻页)     ...

  6. ArrayList、LinkedList和Vector源码分析

    ArrayList.LinkedList和Vector源码分析 ArrayList ArrayList是一个底层使用数组来存储对象,但不是线程安全的集合类 ArrayList的类结构关系 public ...

  7. GhostNet: 使用简单的线性变换生成特征图,超越MobileNetV3的轻量级网络 | CVPR 2020

    为了减少神经网络的计算消耗,论文提出Ghost模块来构建高效的网络结果.该模块将原始的卷积层分成两部分,先使用更少的卷积核来生成少量内在特征图,然后通过简单的线性变化操作来进一步高效地生成ghost特 ...

  8. windows上jmeter目录结构功能

    1.bin :存储了jmeter的可执行程序,如启动 2.lib:存储了jmeter的整合的功能(如.jar文件程序) 3.启动jmeter:双击bin\apachejmeter.jar jmeter ...

  9. curl 交叉编译 支持http2和openssl

    touch run.sh chmod 755 run.sh mkdir build cd build ../run.sh run.sh #!/bin/bash #cd /build ../config ...

  10. Netty:ChannelFuture

    上一篇我们完成了对Channel的学习,这一篇让我们来学习一下ChannelFuture. ChannelFuture的简介 ChannelFuture是Channel异步IO操作的结果. Netty ...