GO架构初探day7 | 青训营笔记

103 阅读2分钟

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

01.什么是架构

架构,又称软件架构,

是有关软件整体结构与组件的抽象描述

用于指导软件系统各个方面的设计

单体、垂直应用|垂直切分

单体架构:分布式部署

垂直应用架构:按应用垂直切的单体

优点:

水平扩容

运维不需要停服

问题:

职责太多,开发效率不高

爆炸半径大

SOA、微服务|水平切分

SOA(Service-Oriented Architecture)

1.将应用的不同功能单元抽象为服务

2.定义服务之间的通信标准

微服务架构:SOA的去中心化演进方向

问题:

数据一致性

装货台共交付了多少蛋糕?

高可用

这么多师傅,如何合作?

治理

烤箱坏了,怎么容灾?

解耦vs 过微

运维成本高了,值当么?

小结

架构的演进初衷:好比做蛋糕。

需求量越来越大,终归要增加人手

越做越复杂,终归要分工合作

架构的演进思路:就像切蛋糕。蛋糕越来越大,一口吃不下终归要切分。

竖着切(垂直切分)

横着切(水平切分)

02企业级后端架构剖析

云计算

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

基础:

虚拟化技术–整租vs合租

编排方案–业主vs 租赁平台

架构: laaS (lnfrastructure as a Service)

买房子vs房屋租赁平台

PaaS (Platform as a Service)

清包vs全包

Saas (Software as a Service)

从零培训vs雇佣培训过的师傅

Faas (Function as a Service)

纯手工制作vs蛋糕机批量生产

03.企业级后端架构的挑战

问题

挑战:

基础设施层面

物理资源是有限的

机器

带宽

资源利用率受制于部署服务

用户层面

网络通信开销较大

网络抖动导致运维成本提高

异构环境下,不同实例资源水位不均

04.后端架构实战

自适应静态权重

方案:

采集宿主机物理资源信息

调整容器注册的权重

优势

复杂度低

完全分布式,可用性高

微服务中间件无适配成本

缺点:

无紧急回滚能力

缺乏运行时自适应能力