杨波 06-12 微服务技术专家 eBay 开放平台 研发

12-15携程 微服务核心中间件

拍拍贷框架研发技术总监 容器云平台研发 云原生

Api 微服务 案例驱动型 课程 原理+ 编程技术结合 + 工具

Saas 多租户 开源项目  https://github.com/geektime-geekbang/staffjoy
微服务架构
一键部署k8s容器
springboot框架 研发环节 前后分离
- 需求
- 架构设计
- 框架搭建
- 服务实现
- mock + 安全测试
- 可运维架构
- 容器云部署

Spring Boot与Kubernetes云原生微服务架构实践_微服务

02丨背景说明

devops

  • 前后端分离 并行开发 技术要素
  • dubbo springcloud kubernetes 微服务 主流开发 选型
  • 中台架构 架构设计 技术栈选型
  • spring boot 封装 应对 微服务架构 与 需求
  • 登录验证 授权 安全框架
  • 网关
  • 国内 30% spring框架
  • 微服务分布式系统 测试技术
  • 分治隔离 分层测试
  • saas 多租户 租户 隔离
  • 配置 监控告警 部署 企业级可运维
  • docker 打包 > 物理/虚拟机
  • 软件工程

Spring Boot与Kubernetes云原生微服务架构实践_spring boot_02Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_03

课程背景介绍 需求说明

Spring Boot与Kubernetes云原生微服务架构实践_spring boot_04Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_05Spring Boot与Kubernetes云原生微服务架构实践_spring_06Spring Boot与Kubernetes云原生微服务架构实践_spring boot_07Spring Boot与Kubernetes云原生微服务架构实践_spring boot_08Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_09Spring Boot与Kubernetes云原生微服务架构实践_spring boot_10

目标内容

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_11Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_12Spring Boot与Kubernetes云原生微服务架构实践_spring_13Spring Boot与Kubernetes云原生微服务架构实践_微服务_14Spring Boot与Kubernetes云原生微服务架构实践_微服务_15

系统架构设计 技术栈选型

Spring Boot与Kubernetes云原生微服务架构实践_spring_16Spring Boot与Kubernetes云原生微服务架构实践_spring_17

单页Web应用(single page web application,SPA)

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_18

业务边界拆分 解耦

单块架构

Spring Boot与Kubernetes云原生微服务架构实践_spring_19

拆分时期 : 单块应用 耦合 影响 开发创新 进度

Spring Boot与Kubernetes云原生微服务架构实践_云原生_20

面向对象 面向组件

面向微服务

为何采用微服务架构

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_21

Spring Boot与Kubernetes云原生微服务架构实践_spring_22

restfui 微服务

account 微服务 注册 认证 账户信息管理

company 微服务 团队 雇员 班次 核心业务 管理

独立数据库

bot api 消息转发服务 缓冲 通知消息 代理 屏蔽可通知方式 的变更

sms

mail 通知消息微服务

whi am i 前端消息 获取 登录用户详细信息 session 用户会话

前端 mvc应用

反向代理 网关 路由访问 登录鉴权 访问控制 唯一具有 公网ip 服务 json_http

Spring Boot与Kubernetes云原生微服务架构实践_微服务_23

微服务 架构 中心总体思想

Spring Boot与Kubernetes云原生微服务架构实践_云原生_24

应对系统复杂性 分而治之

单一职责 业务划分 受控 易于变更

开发团队 快速并行 交付

逻辑独立性

子域 继续拆分服务

Spring Boot与Kubernetes云原生微服务架构实践_微服务_25

springrest 微服务

springdata gpa

mvc Thymeleaf

servlet.filter 安全路由

支持 云原生 一键部署

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_26

共享数据库 的 逻辑隔离机制 公司为 隔离单位

用户在网关鉴权 服务调用 也有相应 鉴权机制

保护 数据 隔离 安全性

架构设计和技术栈选型 数据和接口模型设计:账户服务

数据库 模型设计

账户服务

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_27Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_28

数据和接口模型设计:公司服务

Spring Boot与Kubernetes云原生微服务架构实践_微服务_29

核心业务模型 七个 表

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_30

一对多Spring Boot与Kubernetes云原生微服务架构实践_云原生_31

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_32

Spring Boot与Kubernetes云原生微服务架构实践_云原生_33

Spring Boot与Kubernetes云原生微服务架构实践_微服务_34

Spring Boot与Kubernetes云原生微服务架构实践_spring boot_35

Spring Boot与Kubernetes云原生微服务架构实践_kubernetes_36

Spring Boot与Kubernetes云原生微服务架构实践_spring boot_37

数据和接口模型设计:业务服务

技术栈 选型

Spring Boot与Kubernetes云原生微服务架构实践_spring_38

面向服务架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,
并通过这些服务之间定义良好的接口和协议联系起来。

阿里

net

谷歌

引进的 技术解决方案

分布式微服务开发框架

自成一体 架构缺乏一致性 同时维护多套体系

深入理解

Spring Boot与Kubernetes云原生微服务架构实践_微服务_39

交付 服务 需要 基础设施支撑

配置 :

一次性配置 数据库连接字符串

运行期动态配置 缓存过期时间