架构解析与gRPC介绍 | 青训营笔记

86 阅读2分钟

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

架构

是有关软件整体结构与组件的抽象描述。
用于知道软件系统各个方面的设计。
简单的讲,架构在实现软件的方法选择上起至关重要的指导作用。
软件系统需要具备对外提供服务。

单机架构

就是将所有功能实现在一个进程里,并部署在一台机器上。

优点

简单。

单体架构

就是分布式部署。

垂直应用架构

按照应用功能垂直切分的单体。

优点

能水平扩容。
运维时不需要停服。

SOA(Service-Oriented Architecture)

将应用的不同功能单元抽象为服务。
定义服务之间的通信标准。

微服务架构

SOA的去中心化演进方向。

云计算

通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。

架构

IaaS(Infrastructure as a Service)

基础服务,形象的理解就是租赁机器本身。

PaaS(Platform as a Service)

平台服务,形象的理解就是对机器的运维。

SaaS(Software as a Service)

软件服务,形象的理解就是提供了可以使用的成型的软件。

FaaS(Function as a Service)

函数服务,使开发者脱离底层的实例。

云原生

为组织在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的引用提供了可能。

弹性资源:虚拟化容器、快速扩缩容。

微服务架构:业务功能单元结构、统一的通信标准。

gRPC

由Google公司开发,是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计

特点

gRPC的客户端应用可以像调用本地对象一样直接调用另一台不同的机器上的服务端的应用的对象或者方法。
支持多种语言。
基于IDL文件定义服务。
通信协议基于标准的 HTTP/2 设计,支持双向流、消息头压缩、单 TCP 的多路复用、服务端推送等特性。
序列化支持 PB(Protocol Buffer)和JSON。

DevOps:敏捷开发、CI/CD。

服务网格:业务与治理解构、异构系统的治理统一化、复杂治理能力。