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

杨波 06-12 微服务技术专家 eBay 开放平台 研发
12-15携程 微服务核心中间件
拍拍贷框架研发技术总监 容器云平台研发 云原生

 微服务:
 一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,
 它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。

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

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

Spring Boot与Kubernetes云原生微服务架构实践_第1张图片

02丨背景说明

devops

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

Spring Boot与Kubernetes云原生微服务架构实践_第2张图片Spring Boot与Kubernetes云原生微服务架构实践_第3张图片

课程背景介绍 需求说明

Spring Boot与Kubernetes云原生微服务架构实践_第4张图片Spring Boot与Kubernetes云原生微服务架构实践_第5张图片Spring Boot与Kubernetes云原生微服务架构实践_第6张图片Spring Boot与Kubernetes云原生微服务架构实践_第7张图片Spring Boot与Kubernetes云原生微服务架构实践_第8张图片Spring Boot与Kubernetes云原生微服务架构实践_第9张图片Spring Boot与Kubernetes云原生微服务架构实践_第10张图片

目标内容

Spring Boot与Kubernetes云原生微服务架构实践_第11张图片Spring Boot与Kubernetes云原生微服务架构实践_第12张图片Spring Boot与Kubernetes云原生微服务架构实践_第13张图片Spring Boot与Kubernetes云原生微服务架构实践_第14张图片Spring Boot与Kubernetes云原生微服务架构实践_第15张图片

系统架构设计 技术栈选型

Spring Boot与Kubernetes云原生微服务架构实践_第16张图片Spring Boot与Kubernetes云原生微服务架构实践_第17张图片
单页Web应用(single page web application,SPA)
Spring Boot与Kubernetes云原生微服务架构实践_第18张图片
业务边界拆分 解耦
单块架构
Spring Boot与Kubernetes云原生微服务架构实践_第19张图片
拆分时期 : 单块应用 耦合 影响 开发创新 进度
Spring Boot与Kubernetes云原生微服务架构实践_第20张图片
面向对象 面向组件
面向微服务

为何采用微服务架构

Spring Boot与Kubernetes云原生微服务架构实践_第21张图片

Spring Boot与Kubernetes云原生微服务架构实践_第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云原生微服务架构实践_第26张图片

共享数据库 的 逻辑隔离机制 公司为 隔离单位
用户在网关鉴权 服务调用 也有相应 鉴权机制
保护 数据 隔离 安全性

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

数据库 模型设计

账户服务
Spring Boot与Kubernetes云原生微服务架构实践_第27张图片Spring Boot与Kubernetes云原生微服务架构实践_第28张图片

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


核心业务模型 七个 表

Spring Boot与Kubernetes云原生微服务架构实践_第29张图片
一对多Spring Boot与Kubernetes云原生微服务架构实践_第30张图片
Spring Boot与Kubernetes云原生微服务架构实践_第31张图片
Spring Boot与Kubernetes云原生微服务架构实践_第32张图片
Spring Boot与Kubernetes云原生微服务架构实践_第33张图片
Spring Boot与Kubernetes云原生微服务架构实践_第34张图片
Spring Boot与Kubernetes云原生微服务架构实践_第35张图片
Spring Boot与Kubernetes云原生微服务架构实践_第36张图片

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

技术栈 选型
Spring Boot与Kubernetes云原生微服务架构实践_第37张图片

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

阿里
net
谷歌
引进的 技术解决方案
分布式微服务开发框架

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

Spring Boot与Kubernetes云原生微服务架构实践_第38张图片

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

配置 :
启动期一次性配置 数据库连接字符串
运行期动态配置 缓存过期时间
业务数量

服务发现 负载均衡:
服务分布在 不同节点上 相互调用
定位找到对方 = 服务发现(微服务架构 基本问题)

服务以 多实例方式 部署
调用方 以 负载均衡 策略 访问 目标 服务实例

容错弹性 :分布式 通过 网络 互联(不稳定、宕机、延迟、出错)

微服务系统 对外暴露 api 通过 api网关 进行管理
网关 支持 反向路由 安全鉴权 日志监控 限流 容错

高级: 蓝绿部署、A/B测试以及灰度发布

用户 认证 – 敏感操作 鉴权
服务之间 也需要 权限管控

metrics监控 : 微服务调用量 延迟 性能监控

业务指标 登录数 下单数

调用链监控: 掌握 微服务 错综复杂的 依赖关系 性能等

容器云环境 的 部署 资源调度发布

滚动发布 蓝绿发布 企业高级发布 机制

10自愈 自动伸缩 节省硬件资源
云环境 节点 宕机 漂移
微服务 自动检测 自动恢复

关注点 抽象封装—软件产品 微服务框架/平台

Netflix Google 阿里 解决方案
Spring Boot与Kubernetes云原生微服务架构实践_第39张图片

侧重点 不同

dubbo – zk(zookeeper 服务发现)
nacos 更通用

springcloud + eureka

k8s + service(服务发现+LB负载均衡)

api网关 阿里 内部 业务 耦合 不好开源

spring config 后端基于 git进行 管理

k8s 配置 可以对接 各种 存储机制

sentinel 生产级 限流平台

k8s 健康检查 启动就绪探针 机制

Dubbo、SpringCloud和Kubernetes该如何选型

横向比对
springcloud 支持 嵌入式容器

k8s 容器镜像部署 Helm打包 应用商店

k8s 支持 自动故障检测 自愈能力

进程隔离 服务隔离
Spring Boot与Kubernetes云原生微服务架构实践_第40张图片

逻辑隔离 多环境 认证授权机制

使用量限制 配额管理

蓝绿测试 流量调度能力




Spring Boot与Kubernetes云原生微服务架构实践_第41张图片

HSF (High-speed Service Framework),是在阿里巴巴内部广泛使用的分布式 RPC 服务框架。

流量治理 细致

spring 灵活组装
jvm语言栈 吃资源

k8s 活跃 微服务标配

Spring Boot与Kubernetes云原生微服务架构实践_第42张图片
面向服务架构(SOA)是一个组件模型,
它将应用程序的不同功能单元(称为服务)进行拆分,
并通过这些服务之间定义良好的接口和协议联系起来。

社区生态 + 微服务 关注点
springboot + k8s

用现成的 公有云 k8s 不 自己运维

Spring Boot与Kubernetes云原生微服务架构实践_第43张图片
Spring Boot与Kubernetes云原生微服务架构实践_第44张图片

  • 业务 与 组织 的 概念 —— 中台

2015 大中台 小前台 中台战略 阿里

业务经验 组织沉淀 抽象 封装 重用

对前台业务 强力支撑

iaas 运维 基础设施 计算 网络 存储 发布

商业能力模块 共享业务 能力 层 形成api 供上层 调用

企业 中高层 业务组织 架构 技术总监 架构师

Spring Boot与Kubernetes云原生微服务架构实践_第45张图片业务基础设施层
技术平台层
应用平台服务层
客户体验层

中台架构 通用型

Spring Boot与Kubernetes云原生微服务架构实践_第46张图片Spring Boot与Kubernetes云原生微服务架构实践_第47张图片
初创公司 不需要 创建自己的 底层 基础设施 平台

开发应用 一键部署 到 公有云

你可能感兴趣的:(#,架构师,云原生,微服务,kubernetes,架构)