微服务平台架构分享

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微服务架构实现
团队级,自底向上开展实施 一个系统被拆分成多个服务,粒度细 无集中式总线,松散的服务架构 集成方式简单(HTTP/REST/JSON) 服务都能独立部署
12
相比传统SOA的服务实现方式,微服务更具有灵活性、可实施 性以及可扩展性,其强调的是一种独立测试、独立部署、独立 运行的软件架构模式。
PC业务统一平台
HTTP
HTTP
HTTP
前端 应用
前端 应用
前端 应用


交易类服务


微服务
客户类服务
内容服务
ESB
后台服务
移动服务
大数据服务 27
微服务在前端APP上的使用
HTML5离线 模块
Cordova
HTML5离线 模块
轻应用 (远程网页)
原生模块
Weex/React Native
APP底座(启动、登录、更新、导航、网络、JSBridge)
小, 且专注于做 一 件事情
独立的进程中
小轻量级的通 信机制
松耦合、独立 部署 14
微服务架构的好处
1、每个微服务都是一个小的,专注实现一个特定功能或商务需求的服务
2、微服务可以由一个小的开发组独立的发布(一般2到5个开发者)
3、微服务松耦合,这意味着服务之间可以独立的开发和部署
4、微服务可以由不同的开发语言开发微服务允许持续集成工具容易且灵活的自动集成部署
13
微服务架构的定义
微服务架构是一种架构模式,它提倡将单一应用程序划分 成一组小的服务,服务之间互相协调、互相配合,为用户 提供最终价值。每个服务运行在其独立的进程中,服务与 服务间采用轻量级的通信机制互相沟通(通常是基于HTTP 协议的RESTful API)。每个服务都围绕着具体业务进行构 建,并且能够被独立的部署到生产环境、类生产环境等。 另外,应当尽量避免统一的、集中式的服务管理机制,对 具体的一个服务而言,应根据业务上下文,选择合适的语 言、工具对其进行构建。
微服务架构分享
架构变迁历史
2
WEB开发早期,逻辑代码没有区分,如ASP、JSP、PHP
3
Java、.NET发展,数据访问层出现(二层架构)
4
随着面向对象、架构等理念不断发展,三层架构出现
5
虽然软件的三层架构帮助我们将应用在逻辑上分成了三层,但 它并不是物理上的分层,最终还是一个整体部署,我们称之为 单块架构应用
•当服务很多的时候管理整个系统就很麻烦
分布式事务 服务治理
16
归根结底为了敏捷
17
使用微服务改造公司核心系统
18
xxx现有架构
JBOSS中间件 (gbss-trade/…)
APP
PC
浏览器
F5
JBOSS中间件 (gbss-portal/…)
JBOSS中间件 (gbss-dealer/…)
JBOSS中间件 gbss-mobile
Oracle
Redis/Memcached
19
xxx面临的挑战
移动APP
一套代码, 存在于多个
系统
订单逻辑
PC
远程调用,没 有管理
微信
订单逻辑
订单逻辑
源码依赖,各自部署
自助终端 订单逻辑
单点
Oracle
Redis/Memcached
20
Dubbo
21
MyCat分布式数据库
22
未来面貌-工具与流程
28
SOA架构
外部系 统
第三方 生态
业务员门户
移动门户 社交门户 接触层
2
开放API平台
3
CC
MES
QMS
企业服务总线(ESB) 1
变蜘蛛网为总线架 构,解决系统之间 的连通、路由、转 换。
QMS
OA
ERP 操作平台
MQ/REST
HTTP
交易系统
CRM
适配器
HTTP
SAP
核心业务
WMS
……
移动网站
……
SO中心
PO中心
会员中心 支付中心百度文库
微服务
促销中心
学习中心
统一 认证
26
微服务架构
API Gateway
APP
REST
协议适配 监控
安全 日志
路由
业务适配层
HTTP
微信 HTTP
手机 浏览器
HTTP
WAP业务统一平台
HTTP
HTTP
HTTP
前端 应用
前端 应用
前端 应用
PC 浏览器
HTTP
6
单块架构应用的优势
7
单块架构应用的挑战 1
2 6
3
5
8
微服务架构综述
9
微服务架构产生的背景
10
微服务与SOA
SOA?
11
微服务与SOA的主要区别
SOA实现
企业级,自顶向下开展实施 服务由多个子系统组成,粒度大 企业服务总线,集中式的服务架构 集成方式复杂(ESB/WS/SOAP) 单块架构系统,相互依赖,部署复杂
源码(CODE)
打包(CI)
部署(CD)
引入分支模型,解决 手工合并代码问题
定时进行代码静态检 查、单元测试,并编 译打包
规范化各种环境定义: dev/test/staging/production
不同环境自动或者手工部署 Ci编译好的包
CAT
24
CAT-调用链路
25
xxx重构
A系统
B系统
支付系统
10、微服务可以部署在中低档的服务器上
11、易于继承第三方的服务
12、每个微服务都有自己的存储能力(也可以共享)
15
微服务架构面临的挑战
•微服务可能带来过多的操作
服务粒度与 接口粒度
•要求要有 DevOps 技能
•可能会有重复的工作 •分布式系统管理起来相对复杂
自动化运维
•由于分布式部署的问题分析问题比较困难
5、新的团队成员可以很快融入到开发中
6、微服务易于理解, 开发人员容易修改和维护, 这是因为这种架构下服务之间的代码都是独
立的,团队很小,目标明确
7、微服务允许你充分采用最新的技术(框架,编程语言,编程实践等)
8、微服务仅包含商业逻辑代码,不会混合HTML, CSS等其它UI组件
9、规模扩大时微服务很容易扩展
相关文档
最新文档