微服务架构设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微服务架构设计分享(一)
——微服务架构概念和基本原理
前言
整个分享过程计划分三部分组成
微服务的基本概念和原理
微服务架构技术准备
微服务架构的分布式技术组件
目录
l架构的演变过程
l微服务概念及总体架构
l微服务的优点与挑战
l如何实现微服务架构
l微服务架构实现技术
架构的演变过程---架构演变
单体架构面向服务(SOA)
前端UI 后台应用服务DB服务器前端
UI
后台应
用服务
DB服务器
后台应
用服务
后台应
用服务
前端
UI
前端
UI
DB服务器
单体集群
Tomcat (war)Tomcat(w
ar)
Tomcat(
war)
Tomcat(w
ar)
外部系统后台系统
ESB企业总线
服务服务
服务层
数据库数据库
数据库
层
前端UI前端UI
API网关
服务服务
数据库数据库
微服务微服务
微服务
Rest
API
架构的演变过程---项目管理方式&&职能演变
瀑布式的项目管理---项目集管理及BPM流程式管理—持续集成DevOps
单体应用:需求人员(BA)--开发经理(RDM)
SOA:产品经理(PD)--架构师(EA)
微服务:业务单元(BU)--架构师(EA)
架构的演变过程---为什么会架构演变
单体架构服务架构逻辑复杂隔离性差、
可用性差
模块耦合
严重
代码臃肿
高内聚
复杂性低
易于拆分
和管理
独立部署
和伸缩性
强
迭代周期
短
微服务架构的定义
微服务架构是一种架构模式,它提倡单一应用程序划分为一组小的服务,服务之间相互协调、相互配合,为用户提供最终价值,每个服务运行在独立的进程中,服务与服务之间采用轻量级的通信机制相互沟通(Restful API)。每个服务都围绕着具体业务进行构建,并且能够独立的部署到不同环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应该根据业务上下文,选择合适的语言、工具对其进行构建小且专注于做一件
事情
独立的进程
轻量级通信
独立部署,松耦合
微服务总体架构---总体架构图
服务请求
调用链路监控
日志监控
网关
服务注册与发现配置中心
授权认证容错限流
微服务
微服务数据库
数据库
微服务
Rest API
微服务总体架构---应用平台运行架构图
服务注册中心
配置中心
…可选服务
基础服务
统一用户权限接入网关统一认证
微服务A 微服务B 微服务C
管理门户监控服务
…可选服务
接入服务
业务应用
统一门户
公共服务
分布式缓存关系数据库
…可选服务
微服务总体架构---微服务架构的好处
复杂度可控技术选型更灵活可扩展性更强
独立部署
容错性通过对共享业务服务更细粒度的拆分,一个服务只需要关注一个特定的业务领域,并通过定义良好的清晰表达服务边界。
每个服务是独立的,由不同团队维护,所以可以结合业务特点自由选择技术栈。
可以根据不同服务的性能和特点,对服务节点进行扩展。
每个微服务都是独立运行的进程,可以独立部署。
在微服务架构中,如果一个节点发生故障,我们可以使故障隔离在某个服务中,其他服务可以通过降级,重试来实现应用层的容错。
微服务总体架构---微服务架构的挑战
Bug排查复杂
链路监控
分布式架构组件
复杂
服务依赖多
运维成本一次请求会经历多个不同的微服务交互,交互的链路长,每个服务产生日志,出现bug,排除设计多个不同服务日志,排查困难。
微服务数量多,不仅要单个微服务,还要监控微服务的整个链路。
由于微服务是分布式系统,涉及分布式系统的组件非常多,服务和服务之间通过网络通信,增加了技术栈的选择和通信故障管理的复杂度。
微服务数量更多,服务和服务之间的依赖会增多,要管理这些服务的依赖关系,会变更复杂
要保证数量多的服务能够正常运行,对运维要求更大。
如何实现微服务架构—微服务实现的愿景
象更换零件一样更换软件
每个微服务是一个独立的组件,用不同的技术实现、升级和更换不
同的组件,不影响其他的组件单元。就像PC中的CPU、内存、显卡、
硬盘一样,可以独立更换、升级。
如何实现微服务架构—微服务实现的应用平台目标
微服务平台的主要目标主要就是要支撑微服务应用的全生命周期管理,从需求到设计开发测试,运行期的业务数据处理和应用的管理监控等。客户
业务需求
设计开发测试发布运维系统架构设计,设计文档产出接口文档提高沟通效率,提升用户体验,快速响应变更前端应用框架,服务器容器,服务注册发现等自动化构建持续集成自动化测试自动化打包自动化部署服务监控日志管理