

微服务和DevOps实施-方案思考(10.25)
source link: https://www.tuicool.com/articles/RVjUbqQ
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在去年6月我做过传统企业微服务架构转型的PPT方案制作的思考,但是里面基本上没有谈到DevOps方面的内容,今天再基于微服务和DevOps实施来谈下整体的解决方案制作思路应该是如何的,在这里我们先整理一个基于当前我们已有的项目进行微服务和DevOps转型的实践案例来整理这个PPT方案。
1. 转型前项目现状和问题分析
我们可以拿一个当前实际的单体应用系统来进行这次微服务架构转型的案例整理,因此在介绍后面的解决方案前重点还是要把当前的项目现状和背景讲清楚,把实际在开发和过程管理中的面临的问题讲清楚,有了问题才需要去思考如何解决,这样的解决方案才是和问题和目标匹配的。
单体应用当前现状- 应用功能架构,技术架构,开发框架
研发过程管理现状- 项目任务管理,配置管理,需求管理,测试和缺陷管理,版本发布
当前已经完成实践- 开发框架标准化,持续集成,产品和实施版本分离,共性组件的技术平台化
当前面临主要问题- 前期开发,后期运维,前后方协同,交付效率,系统后期扩展能力方面
2. 整体解决思路
对于整体解决方案,首先我们要对当前现状和问题进行分析,实际上是包括了应用系统架构层面,研发过程管理层面,还有就是持续集成和交付层面。而这三个方面正好是对应了当前主流的几个最佳实践,即分别是微服务架构,Scrum敏捷项目管理和开发,DevOps持续集成和研发运维一体化。
那么要来讲整体解决方案,首先要做的是对三个方法论进行简单介绍,让听众要能够抓住这三个方法论中的本质,也就是我们经常说的最小化概念模型。
微服务架构介绍(基本定义,和传统架构区别,主流微服务开发框架和核心组件)
敏捷方法论介绍(基本定义,原则和价值观,核心过程实践,常见支撑工具等)
DevOps介绍(基本定义,当前成熟度模型,主流的开源工具链)
问题和解决方案对应(我们当前的问题如何映射到三个解决方案上面的)
总体解决方案思路01 (动态构图,覆盖从需求,研发到交付运维的全生命周期视角)
总体解决方案思路02 (静态构图,即整体架构构图,应该能体现出研发管理,DevOps,微服务三块内容)
实施思路 (从解决方案能看出关键就是两步,搭建好平台,一个就是拆解现有单体应用为微服务)
3. 从单体应用到微服务架构
在前面整体解决方案一定要介绍清楚,通过问题分析和整体解决思路,后续的实施就是两件事情,一件就是搭建支撑平台,一个就是将单体应用拆分为微服务。那么第3,4两个部分内容正好是这两件事情的进一步细化讲解,对于单体应用到微服务,本身又拆分为两个独立的思路,其一就是要如何拆分?其二就是拆分后选择微服务开发框架如何进行开发。那么就分开对两件事情进行讲解。
3.1 业务中台构建-对应到微服务架构如何拆分
中台概念介绍(大中台小前台,业务中台和数据中台,中台如何支撑前台)
中台微服务模块划分(理论方法介绍一页,实际最终项目划分结果一页)
中台微服务接口识别(接口识别方法一页,实际当前识别的接口清单和目录库一页)
构建中台能力中心(架构图,构建中台能力服务中心,同时基于API网关对中台能力进行开放)
3.2 微服务模块开发
开发框架选型(介绍基于SringCLoud开发框架进行单个微服务模块的设计开发)
微服务API接口设计(介绍采用标准的Http Rest API接口,并说明接口设计方法,是否接口先行)
开发持续集成 (介绍Jekins使用,自动构建,构建完成后自动发布到容器)
多模块间协同(介绍不同小组开发的模块间如何进行接口协同,包括协同方式等)
4. DevOps支撑平台建设和实践
在第3部分的微服务架构转型和开发中,可以看到我们实际上已经做了一些研发过程改进,持续集成和容器化改造等工作,但是不系统,未集成。而这是我们构建一个完整的DevOps支撑平台的初衷。即希望构建一个支撑平台,能够将研发过程管理,持续集成交付乃至后续的运维管控治理全部协同起来,减少在过程协同中的断点,进一步实现整个过程的自动化,灵活可配置化,进一步实现研发和测试间高效协同协同,实现研发和运维间的高效协同,实现后端产品研发和前方项目交付间的高效协同。
4.1 DevOps支撑平台核心能力
DevOps支撑工具链(先介绍下在整个DevOps支撑过程中涉及到的开源工具支撑链)
DevOps支撑平台整体架构(架构图,覆盖研发管理,微服务,DevOps持续集成和底层容器平台)
研发过程管理(介绍研发过程管理方案,比如采用禅道或者Jira,还是自研实现研发过程管理)
容器化PaaS(需要对Docker+K8s来实现容器化PaaS和资源调度用一页来说明)
微服务或API网关(需要一页来说,采用zuul还是开源的Kong网关定制来作为整体架构中API网关)
4.2 DevOps支撑平台对关键业务场景的支撑
在这些讲解清楚后,不用去逐个详细介绍DevOps平台的功能点,最好以关键业务场景或问题驱动介绍。
持续集成和交付(重点讲解整个流水线设计和自动化编译,构建,打包过程)
研发和测试协同(重点讲解研发管理工具和DevOps平台间的协同)
测试自动化实现(重点讲解下测试自动化如何实现的)
环境迁移和前方发版(重点讲解环境迁移,版本提前,灰度发布等)
研发过程度量(重点讲解研发过程度量,当前做了哪些内容,后续还准备做哪些内容)
后期性能监控(重点讲解后期的性能监控,服务链监控,日志采集和分析)
5. 项目实施完成收益分析
最后一部分重点是对项目实施后的收益或效果进行分析,最好能够又明确的数据来说明。比如整个持续集成周期缩短多少,人为打包部署工作量降低多少,交付效率提升多少,项目管理可视化程度提升多少多个方面进行说明再进行微服务架构实施和DevOps转型后取得的收益情况。
Recommend
-
147
DevOps这个词在近年来可谓大火。从2014年底我开始给一些企业做持续交付/DevOps相关的评估和咨询,似乎每个企业都表示想要推行DevOps,或者说他们正在做DevOps。这把火蔓延的速度远远超过当年敏捷在IT行业的传播。然而有些企业管理者对DevOps的认知让我们意识到,由于...
-
103
正如我们所知,DevOps最近几年很风靡,很多企业正在如火如荼的推行它。然而,你可曾想过,从传统到敏捷、再到DevOps,开发模式的不断革新对测试提出了怎样的挑战? 最近我们项目在实施DevOps,因此想趁热打铁,就DevOps模式下如何做测试,谈一谈自己的认知。
-
53
在上篇文章,主要对DevOps的一些关键概念做了进一步解释和说明。对于DevOps实践,今天主要对一些零散的点做记录,在年后准备对基于我们的DevOps支撑平台进行DevOps实践写一系列的文章。 该系列文章具体的内容预计会包括:...
-
70
-
34
在9.18日自己谈过一篇DevOps平台实施收益和价值的文章,在当时主要提到了以下三点 1. 企业研发管理过程的标准化和规范化 2...
-
58
今天谈下DevOps实施带来的另外一个关键价值,就是企业信息化的云迁移和乃至全面云化。 如何来理解,对于IaaS云平台大家都比较清楚已经发展了很多...
-
34
无论任何规模的公司,都可以通过软件来变革技术团队定义成功的具体方式,进而从中获得更大业务价值。更重要的是,通过定义自己所开发的软件如何向客户提供价值,这种做法也可用来定义自己的成功。以“拒绝”为代价的“入场券”和“稳定性”已经...
-
42
【51CTO.com快译】众所周知,DevOps是一个软件开发与交付的过程。它可以协助强调产品管理、软件开发和运营专业人员之间的沟通、以及跨职能的协作。 我们根据以往数十年在IT行业,特别是基础架构方面积累的经验,精心挑选了十二种...
-
19
DevOps正在被越来越多的企业认可和采用,它的原则和实践不但适用于创业公司,对大型软件企业或软件开发部门也同样适用,至少在当前阶段有广泛的适用性。面对一个IT创业公司或是传统的软件开发企业,如何开展DevOps转型工作呢? 在实施DevOps之前,必须明...
-
7
十个你现在需要实施的DevOps Pipeline最佳实践 作者:岱军 2024-03-14 11:15:58 DevOps Pipeline是一套由 DevOps 团队实施的实践和流程,用于快速可靠地构建、测试和部署软件。它是现代软件开发的关键组成部分,使...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK