“架”驭全局、“构”筑未来—微服务架构转型

引言

一、为什么要微服务转型

二、什么是微服务

1、概念定义

Martin Flower

In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery.

微服务是一种架构风格,提倡将应用分解成一系列足够小的服务,每个服务专注于单一的业务功能,在独立的进程中运行,服务之间边界清晰,采用轻量级通讯机制相互沟通、配合来实现完整的应用,满足业务和用户的需求。

2、微服务的特征

3、微服务的优势与挑战

三、微服务转型策略方案

1、总体目标

通过搭建和完善微服务基础支撑环境,快速推进微服务在特色场景需求中的应用,实现对业务需求的快速响应和支持,提升微服务架构治理水平,促进IT研发能力升级。

2、微服务落地关键技术点

3、微服务总体架构

4、构建基础支撑环境策略

以快速支持微服务应用转型验证和试点为目标,从构建核心支撑环境开始,逐步完善微服务基础支撑能力

5、微服务架构的应用转型策略

微服务有其适用的应用对象,不是所有应用都适合适用微服务构建,在开始一个应用的微服务改造前,我们通常需要对其进行针对性的评估分析。

可以从微服务总获益较大的系统:

  • 渠道交互类系统:指以与用户交互为主要目的系统,如各类移动应用,互联网应用,特色社会化平台应用等。
  • 记录型系统:指对所关注领域的信息以增删改查作为应用核心的系统,如CRM,ERP、OA等。

6、应用系统转型评估:建立应用转型实施评估模型,以充分评估实施过程中的技术风险和投入

在对应用进行微服务转型评估时,以业务核心价值需求为主要依据,并充分评估实施过程中的技术风险、团队能力风险,寻找突破口,并推动基础设施建设的升级。

7、微服务应用拆分方法

基于领域驱动设计(DDD)+主数据驱动设计(MDD)+现有系统建设经验相结合的方法,对现有应进行微服务拆分。

8、现有应用的微服务转型模式

1)、模式一:转型业务价值高,转型紧迫性要求高的业务需求,采用微服务新建应用

如果新需求与现有系统耦合性不高,可采用微服务技术框架建立独立的子系统。

场景:

  • 需求变化快,有快速上线,快速迭代要求的创新功能
  • 业务交易量大,高并发的热点功能
  • 访问量很大,访问频繁的公共功能

2)、模式二:有架构转型需求的现有系统,针对痛点部分采用微服务架构重构

转型目标是提升系统扩展能力,提高系统稳定性,敏捷交付。

场景:

  • 业务存在热点与边缘功能不分,横向扩展资源浪费或存在困难的,拆分出热点功能
  • 功能耦合度高,导致团队规模大,系统维护和版本升级困难的,对系统进行组件化改造,进行必要的应用拆分

3)、模式三:转型价值和紧迫性要求不高的系统,保留并通过融合架构与微服务交互

  • 对于老旧又缺乏维护的系统,无法重构为微服务架构的系统,SOA资产重用化应该是更佳的解决方案。
  • 原有应用无法改变数据存储方式。

9、优化开发流程,实现敏捷转型

微服务的特点使得它对于对敏捷开发适应强。通过优化开发流程,借助DevOps一体化工具,实现微服务敏捷开发、持续集成与持续交付的落地。

10、实现微服务自动化运营

微服务使得运维的复杂度大大提升,如何保证上万的服务、上千的容器正常运行?使用传统方式是无法保证的,如果不建立对应的平台、工具、方式、方法去管理微服务应用,将会严重影响微服务的落地。

11、提升微服务治理效率

12、组织形式转型:建立领域细分的、跨职能的研发团队

“特性团队”,即是一个领域细分的跨职能的团队。每个团队包括需求分析、方案设计、开发测试等多个角色,专注于领域逻辑,实现该领域特性的完整的端对端开发。

“组件团队”解决那些公共型的基础型的问题。该团队需具有有专门知识或能够应对具有一定技术复杂度,有相当专业门槛要求的专有功能。

典型的由多个特性团队组成的大型开发团队组织结构典型的由多个特性团队组成的大型开发团队组织结构

特性团队的组织有利于团队的沟通。每个团队分别做各自限界上下文的工作,由于工作的弱相关性带来自然而然的团队隔离。

如果同一个限界上下文的工作交给了两个不同的团队分工完成,为了合力解决问题,就必然需要这两个团队进行密切的沟通。

(0)

相关推荐

  • 从单体应用走向服务化

    之前讲解了什么是微服务:微服务的核心在于服务治理,微服务架构是将复杂臃肿的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,并交由小团队进行开发和运维,从而极大地提高了应用交付的效率 ...

  • 微服务架构概述

    架构师(JiaGouX) 我们都是架构师! 架构未来,你来不来? 一.前言 微服务(MicroServices)是一种架构风格,一个大型复杂软件应用由多个微服务和前端展示层组成.系统中的各个微服务可被 ...

  • JAVA | 什么是微服务?

    前言 最近公司某个项目的架构越来越庞大,维护起来非常难受.领导提出要把这个项目重构,在工作中需要把原来的项目重构成微服务架构,因此学习微服务相关知识,在这里记录下来,权当笔记的同时也希望能对你有启发. ...

  • 8场5胜,微服务VS单体架构

    越来越多的组织开始放弃单体应用,逐步转向微服务的架构模式–将业务流程分为多个独立的服务. 例如,在一个机票预订中,就可能涉及许多个单独的过程:在航空公司预订机票,付款,并在机票成功预订后向客户发送确认 ...

  • 单体应用到微服务架构转型-实践过程总结

    今天重点谈下传统的单体应用架构朝微服务转型实践过程中遇到的一些问题,具体的解决方法的一些思考,供大家参考. 这篇文章涉及到的项目背景为我们自己的财务共享项目,即原来是一个大单体应用,需要进行微服务架构 ...

  • 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  • 微服务架构的前世今生

    传统行业向互联网行业的转型 背景 2012年以后,因为移动互联网的兴起,随着网名数量的增多,需求变化大,用户群体大.导致已有的应用程序无法抗住大规模的并发,且版本迭代麻烦,扩展不够灵活,应对外界环境能 ...

  • 微服务架构下的API接口驱动开发,设计和集成

    今天谈下在微服务架构下,接口设计和开发方面的思考. 对于微服务架构,SOA和Http Rest API接口设计,在我前面的头条文章中均有专门的说明,因此对于基础方面的解释在本文不再重复.对于今天要写的 ...

  • Laravel 如何设计微服务架构,及如何进行微服务间沟通? | Laravel China 社区

    如题,我目前有需要用 Laravel 设计微服务架构的需求,但能找到的相关资料不多 目前已有的一个思考方向是使用 K8S 统合各个独立的 Laravel 小服务,再开放统一对外的 API Gatewa ...

  • 微服务架构-从理想到现实

    注:本文为我最近阅读<微服务架构设计模式>的一点感悟,我不准备详细去写对该书的读书笔记记录,而是结合我们自己所做的一些微服务架构实践情况做一些总结和复盘. 从单体应用到微服务 任何一个新的 ...

  • 浅谈微服务架构的设计模式

    微服务架构模式(MicroserviceArchitectPattern).近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微型服务体系结构是一种体系结构模式,它主张把单个应用分成 ...

  • 【.net core】电商平台升级之微服务架构应用实战(core-grpc)

    一.前言 这篇文章本来是继续分享IdentityServer4 的相关文章,由于之前有博友问我关于微服务相关的问题,我就先跳过IdentityServer4的分享,进行微服务相关的技术学习和分享.微服 ...

  • SOA架构和微服务架构的区别是什么?

    作者:zpoison https://blog.csdn.net/zpoison/article/details/80729052 SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西, ...