为什么定义参考模型

之前我的工作,大部分时间都是聚焦在某个产品/团队,为他们提供微服务/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. P1198 [JSOI2008]最大数(线段树基础)

    P1198 [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制: ...

  2. Linux基础:Day01

    Linux操作系统的知识体系: 1.初级  2.中级  3.高级  4.*额外知识*  1.初级  1.1.OS操作系统的原理  1.2.开始了解常用的命令(系统管理的基础命令)   开机关机   时 ...

  3. 【PHP】流程控制

    一.      顺序结构 a)    PHP的脚本从上到下,从左往右的执行顺序就是顺序结构! 二.      分支结构 a)    单一的分支结构 If ( 条件表达式 ) { 程序体: } 执行过程 ...

  4. javascript 入门 之 bootstrap/bootstrap-table 安装方法

    也和select2一样,可以有三种方法 1.远程调用CDN 2.用bower安装 3.下载 时间原因,暂时先讲第二种,其余两种,以后完善 1.进入根目录,执行bower install bootstr ...

  5. 搭建环境-Eclipse配置Tomcat创建Servlet总结

    Descripton:Web开发:Eclipse的下载与安装,Tomcat下载和结合Eclipse的使用,Eclipse使用Servlet[记录下总结下] 一.Eclipse的下载与安装 下载地址 注 ...

  6. 10.6 IoStudentManager

    package day11_io_student.student_demo; public class Student { private String id; private String name ...

  7. 合理使用CSS框架,加速UI设计进程

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/how-to-speed-up-your-d ...

  8. Spring Cloud 系列之 Consul 注册中心(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建. Consul 集群 上图是一个简单的 Co ...

  9. xml 文件 和xsd 文件的关系

    XML文件和XSD文件的关系 2010-09-29 15:38 2307人阅读 评论(0) 收藏 举报 xml 1. XSD文件在某个namespace中定义element和type.此处定义的typ ...

  10. Jmeter连接mysql数据库?so easy!!!

    一.确保mysql数据库能够通过Navicat等远程连接工具连接. 注意:一定是确保能使用navicat连接,而不是dos窗口! 比如笔者需要查询ecshop数据库下的ecs_admin_user表, ...