架构初探-谁动了我的蛋糕| 青训营笔记

68 阅读2分钟

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

站在巨人的肩膀上才能看得更远

1. 架构是什么

(1)架构又称软件架构

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

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

(2)单机

😋 软件系统需要具备对外提供服务,单机,就是把所有功能都实现在一个进程里,并部署在一台机器上

😋 优点:简单

😋 缺点:运维需要停服

image.png

(3)单体、垂直应用 | 垂直切分

image.png

(4)SOA、微服务 | 水平切分

image.png

(5)小结

① 演进初衷
😋 需求量越来越大,增加人手
😋 业务流程越来越复杂,分工合作

② 演进思路
😋 垂直切分
😋 水平切分

2. 企业级后端架构剖析

(1)云计算

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

😋 基础:虚拟化技术、编排方案

image.png

(2)云原生

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

image.png

😋 弹性计算资源类型

① 服务资源调度
😎 微服务
😎 大服务

② 计算资源调度
😎 在线
😎 离线

③ 消息队列
😎 在线:削峰、解耦
😎 离线:大数据分析

😋 弹性储存资源类型

image.png

😋 DevOps

image.png

😋 微服务架构

image.png

😋 服务网络

image.png

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

😋 基础设施方面

① 物理资源有限
😎 机器
😎 带宽

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

😋用户层面

😎 网络通信开销比较大
😎 网络抖动导致运维成本提高
😎 异构环境下,不同实例资源水位不均

(1)离在线资源并池

image.png 😋 核心收益

① 降低物理资源的成本

② 提供更多的弹性资源,增加收入

👨‍🏫 在线业务的特点

① IO 密集型为主

② 潮汐性、实时性

👨‍🏫 离线业务的特点

① 计算密集型占多数

② 非实时性

(2)自动扩缩容

😋 核心收益:降低业务成本

😋 思路:利用在线业务潮汐性自动扩缩容

image.png

(3)微服务亲合性部署

image.png

(4)流量治理

😋 核心收益

😎 提高微服务调用容错性
😎 容灾
😎 进一步提高开发效率, DevOps 发挥到极致

image.png

(5)Cpu 水位负载均衡

image.png

4. 后端架构实战

(1)自适应静态权重

image.png

(2)自适应动态权重

😋 Alpha image.png

😋 Beta

image.png 😋 Release

image.png

没有最好的架构,只有最合适的架构

如何做架构设计?

😋 需求先行

😋 业界调研

😋 技术选型

😋 异常情况

Have a good time!