这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
什么是架构
架构是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。通俗的说就是实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用。架构就是设计软件时首先要做的事。如果地基没打好,后面的设计就会出现各种各样的问题。只有地基(架构)坚实了,在后面的设计过程中才会更加的顺畅和设计的软件更加的高效。
SOA(Service-Oriented Architecture)
- 将应用的不同功能单元抽象为服务
- 定义服务之间的通信标准 微服务架构:SOA的去中心化演进方向。
架构的演进
- 初衷就是将任务需求量变得越来越大,用到的人手也越来越多,设计的也越来越复杂,就要实现分工合作。
- 演进思路就像是切蛋糕一样,蛋糕越来越大,一口吃不下终归要切分蛋糕。
-
- 竖着切(垂直切分)
-
- 横着切(水平切分)
后端架构剖析-云计算
云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模数据分析和存储的基石。架构:Iaas、PaaS、SaaS、FaaS.
后端架构剖析-云原生
云原生技术为组织(公司)在公有云、自有云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能。
- 弹性资源:虚拟化容器、快速扩缩容。
- 微服务架构:业务功能单元解耦、统一的通信标准。
- DevOps:敏捷开发、DI/CD。
- 服务网格:业务与治理结构、异构系统的治理统一化、复杂治理能力。
后端架构的挑战
- 基础设施层面:物理资源是有限的(机器、带宽)、资源利用率受制于部署服务。
- 用户层面:网络通信开销较大、网络抖动导致运维成本提高、异构环境下,不同实例资源水位不均。
- 离在线资源并池
- 自动扩缩容
- 微服务亲合性部署
- 流量治理
- CPU水位负载均衡
设计CPU水位负载均衡
- 自适应静态权重
- 自适应动态权重 Aipha
- 自适应动态权重 Beta
- 自适应动态权重 Release
总结
在设计架构时,没有最好的架构,只有最适合的架构。在设计架构时需注意需求先行(弄清楚要解决什么问题)、进行业界调研(业界都有哪些解决方案可供我们参考)、技术的选型(内部/社区都有哪些基础组件)、异常情况(考虑清楚哪些异常情况出现该怎么解决)。 通过这节课程也是了解了技术经理、架构师在工作设计架构时考虑的因素和大体的设计。也只是了解了一下架构方面的内容,对于老师在讲解深刻的知识点的时候还是听不懂在说什么。只能是有个印象,在将来遇到时觉得比较熟悉。学起来就会更加的感兴趣一些。