这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天,今天学习了架构的基本知识,以蛋糕店的例子了解了架构,还需要在实践里慢慢理解。
架构:
一、 基本概念:
架构,又称软件架构
是有关软件整体结构与组件的抽象描述
用于指导软件系统各个方面的设计
实现一个软件的方法很多,架构在方法选择上起着至关重要的指导作用
架构就像地基,地基坚实了,大厦才能造得高
分类:
单机:把所有功能都实现在一个进程里,部署在一台机器上
优点:简单
缺点:C10K problem 维护需要停服
单体架构:分布式部署
垂直应用架构:按应用垂直切分的单体
优点:水平扩容,运维不需要停服
问题:职责太多,开发效率不高。爆炸半径大
SOA:
1. 将应用的不同功能单位抽象为服务
2. 定义服务之间的通信标准
微服务架构:SOA的去中心化演进方向
问题:数据一致性、高可用、治理
思路:
垂直切分:分布式
水平切分:分层/模块化
二、 企业级后端架构剖析:
云计算:指通过软件自动化管理,提供计算机资源服务网络,是互联网大规模分析和储存的基石。
基础:虚拟化技术,编排方案
架构:
IaaS 买房子
PaaS 全包
SaaS 弹性资源平台构建的云服务
FaaS 类似OJ平台,实现函数即可
云原生:为组织在工有云,自由云,混合云等新型的动态环境中,构建和运行可弹性扩展的应用。
弹性资源
服务资源
计算资源:在线&&离线
消息队列:在线:消峰&&离线:数据分析
存储资源:对象存储
DevOps:提高软件开发交付效率开发运营
自动化测试、回滚
服务网格:微服务之间通讯的中间层,网络代理,业务与治理解耦
实现了异构系统治理统一
service mesh数据面进行通信
微服务:
RPC性能高:有压缩
RPC自带服务治理:eg超时、熔断
可解释性:HTTP用JSON,解释性好