Go语言-架构剖析 | 青训营笔记

75 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第 6 天

前言

本文主要介绍:

云原生

概念:

技术的变革,一定是思想先行, 云原生是一种构建和运行应用程序的方法,是一套技术体系和方法论。云原生(CloudNative)是一个组合词,Cloud+Native。Cloud表示应用程序位于云中,而不是传统的数据中心;Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。

Pivotal公司的Matt Stine于2013年首次提出云原生(CloudNative)的概念;2015年,云原生刚推广时,Matt Stine在《迁移到云原生架构》一书中定义了符合云原生架构的几个特征:12因素、微服务、自敏捷架构、基于API协作、扛脆弱性;到了2017年,Matt Stine在接受InfoQ采访时又改了口风,将云原生架构归纳为模块化、可观察、可部署、可测试、可替换、可处理6特质;而Pivotal最新官网对云原生概括为4个要点:DevOps+持续交付+微服务+容器

弹性计算资源类型:

  • 服务资源调度

微服务:和面、雕花

大服务:烤箱

  • 计算资源调度

在线:热销榜单

离线:热销榜单更新

  • 消息队列

在线:削峰、解耦

离线:大数据分析

弹性存储资源类型:

  • 经典
  • 对象:宣传视频
  • 大数据:用户消费记录
  • 关系型数据库
  • 收银记录
  • 元数据
  • 服务发现:蛋糕店通讯录
  • NoSQL
  • KV:来个xx蛋糕

DevOps

DevOps是云原生时代软件交付的利器,贯穿整个软件开发周期。

结合自动化流程,提高软件开发、交付效率

通信标准:

  • HTTP (RESTful API). RPC (Thrift, gRPC)

微服务中间件 RPC vs HTTP:

  • 性能
  • 服务治理
  • 协议可解释性

云原生场景下,微服务大可不必在业务逻辑中实现符合通信标准的交互逻辑,而是交给框架来做

服务网格(Service Mesh) :

  • 微服务之间通讯的中间层高性能网络代理
  • 业务代码与治理解耦

相比较于RPC/HTTP框架:

  • 异构系统治理统一化
  • 与业务进程解耦,生命周期易管理