目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

X

Spring Cloud & Cloud Native 概述

简单理解微服务

 “微服务就是⼀些协同工作的小而自治的服务。” – Sam Newman

  • 小:相对于单体服务。
  • 自治:相对内聚性更强。

微服务的优点

  • 易购性:语言、存储……
  • 弹性:一个组件不可用,不会导致级联故障。
  • 扩展:单体服务不易扩展,多个较小的服务可以按需做横向扩展。(细粒度扩容性能瓶颈的服务)
  • 易于部署
  • 与组织结构对齐(每个服务对应独立的团队,职责更加清晰分明)
  • 可组合性(整个业务链路是由多个微服务相互配合完成)
  • 可替代性(升级改造时,可以用一个服务代替另外一个服务)

实施微服务的代价

  • 没有银弹!!!
  • 分布式系统的复杂性(分布式系统之间的事务、最终一致性等……)
  • 开发、测试等诸多研发过程中的复杂性
  • 部署、监控等诸多运维复杂性

如何理解云原生

 “云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。” – CNCF Cloud Native Defifinition v1.0

云原生应用要求
CouldNative

  • DevOps:开发与运维一同致力于交付高品质的软件服务于客户
    *持续交付:软件的构建、测试和发布,要更快、更频繁、更稳定
  • 微服务:以⼀组小型服务的形式来部署应用
  • 容器:提供比传统虚拟机更高的效率

Cloud Native Computing Foundation
Cloud Native Computing Foundation

The TWELVE-FACTOR APP

Reference

  • 为构建 SaaS 应用提供行之有效的方法论
  • 适用于任意语言和后端服务的开发的应用程序

了解12-Factors

  • 基准代码(Codebase):一份基准代码,多份部署。
• 使用版本控制系统加以管理
• 基准代码与应⽤保持⼀⼀对应的关系
• 尽管每个应⽤只对应⼀份基准代码,,但可以同时存在多份部署
  • 依赖(Dependencies):显式声明依赖关系。
• 12-Factor 的应⽤程序不会隐式依赖系统级的类库
• 它⼀定通过依赖清单,确切地声明所有依赖项
• 在运⾏过程中,通过依赖隔离⼯具来确保程序不会调⽤系统中存在但清单中未声明的依赖项
  • 配置(Confifig):在环境中存储配置。
  • 后端服务(Backing services):把后端服务当作附加资源。
  • 构建,发布,运行(Build, release, run):严格分离构建和运行
• 12-Facfor 应⽤严格区分构建、发布、运⾏三个步骤
• 部署⼯具通常都提供了发布管理⼯具
• 每⼀个发布版本必须对应⼀个唯⼀的发布 ID
  • 进程(Processes):以⼀个或多个无状态进程运行应用。
• 12-Factor 应⽤的进程必须⽆状态且⽆共享
• 任何需要持久化的数据都要存储在后端服务内
  • 端口绑定(Port Binding):通过端口绑定提供服务。
  • 并发(Concurrency):通过进程模型进行扩展。
  • 易处理(Disposability):快速启动和优雅终止可最大化健壮性。
• 进程应当追求最⼩启动时间
• 进程⼀旦接收终⽌信号就会优雅的终⽌
• 进程应当在⾯对突然死亡时保持健壮
  • 开发环境与线上环境等价(Dev / Prod parity):尽可能的保持开发,预发布,线上环境相同。
• 想要做到持续部署就必须缩⼩本地与线上差异
• 后端服务是保持开发与线上等价的重要部分
• 应该反对在不同环境间使⽤不同的后端服务
  • 日志(Logs):把日志当作事件流。
  • 管理进程(Admin processes):后台管理任务当作⼀次性进程运行。

认识 Spring Cloud 的组成部分

 “Spring Cloud offers a simple and accessible programming
model to the most common distributed system patterns,
helping developers build resilient, reliable, and coordinated
applications.” – Spring 官方
Spring Cloud组件

• 服务发现  
• 服务熔断  
• 配置服务  
• 服务安全  
• 服务网关  
• 分布式消息  
• 分布式跟踪  
• 各种云平台支持 (Spring Cloud Alibaba …)

作者:Soulboy