CTO为何要微服务评估
为什么定义参考模型
之前我的工作,大部分时间都是聚焦在某个产品/团队,为他们提供微服务/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为何要微服务评估的更多相关文章
- 我所理解的SOA和微服务
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...
- CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
- [转]微服务(Microservice)那点事
WHAT – 什么是微服务 微服务简介 这次参加JavaOne2015最大的困难就是听Microservice相关的session,无论内容多么水,只要题目带microservice,必定报不上名,可 ...
- SOA和微服务
SOA和微服务 SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上的区别,两者说到底都是对外提供接口的一种架构设计方式.我倒觉得微服务其实就是随着互联网的发展,复杂的平 ...
- 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...
- 基于Kubernates微服务案例
企业业务上云的三种架构 容器的三个视角 从运维角度 数据工程师角度 开发角度微服务化 12 Factor Related Reference: https://kubernetes.io/https: ...
- 为什么 kubernetes 天然适合微服务
最近总在思考,为什么在支撑容器平台和微服务的竞争中,Kubernetes 会取得最终的胜出,事实上从很多角度出发三大容器平台从功能方面来看,最后简直是一摸一样.(可参考<容器平台选型的十大模式: ...
- Spring Cloud微服务笔记(一)微服务概念
微服务概念 一.什么是微服务架构 微服务,是一个小的.松耦合的分布式服务. 为什么需要微服务: 1)单体系统部署在一个进程中,修改了一个小功能,为了部署上线就会影响其他功能. 2)单体应用各个功能模块 ...
- 从面向服务架构(SOA)学习:微服务时代应该借鉴的5条经验教训
[编者按]本文作者为 Matt McLarty,通过介绍 SOA 的兴衰变化,总结了微服务应该借鉴的5条经验教训.文章系国内 ITOM 管理平台 OneAPM 编译呈现. SOA 的兴衰变化让我们更了 ...
随机推荐
- P1198 [JSOI2008]最大数(线段树基础)
P1198 [JSOI2008]最大数 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制: ...
- Linux基础:Day01
Linux操作系统的知识体系: 1.初级 2.中级 3.高级 4.*额外知识* 1.初级 1.1.OS操作系统的原理 1.2.开始了解常用的命令(系统管理的基础命令) 开机关机 时 ...
- 【PHP】流程控制
一. 顺序结构 a) PHP的脚本从上到下,从左往右的执行顺序就是顺序结构! 二. 分支结构 a) 单一的分支结构 If ( 条件表达式 ) { 程序体: } 执行过程 ...
- javascript 入门 之 bootstrap/bootstrap-table 安装方法
也和select2一样,可以有三种方法 1.远程调用CDN 2.用bower安装 3.下载 时间原因,暂时先讲第二种,其余两种,以后完善 1.进入根目录,执行bower install bootstr ...
- 搭建环境-Eclipse配置Tomcat创建Servlet总结
Descripton:Web开发:Eclipse的下载与安装,Tomcat下载和结合Eclipse的使用,Eclipse使用Servlet[记录下总结下] 一.Eclipse的下载与安装 下载地址 注 ...
- 10.6 IoStudentManager
package day11_io_student.student_demo; public class Student { private String id; private String name ...
- 合理使用CSS框架,加速UI设计进程
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/how-to-speed-up-your-d ...
- Spring Cloud 系列之 Consul 注册中心(二)
本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Consul 注册中心(一) 本篇文章讲解 Consul 集群环境的搭建. Consul 集群 上图是一个简单的 Co ...
- xml 文件 和xsd 文件的关系
XML文件和XSD文件的关系 2010-09-29 15:38 2307人阅读 评论(0) 收藏 举报 xml 1. XSD文件在某个namespace中定义element和type.此处定义的typ ...
- Jmeter连接mysql数据库?so easy!!!
一.确保mysql数据库能够通过Navicat等远程连接工具连接. 注意:一定是确保能使用navicat连接,而不是dos窗口! 比如笔者需要查询ecshop数据库下的ecs_admin_user表, ...