1.初识架构
架构即软件架构,在实现软件方法上具有指导作用。
单机架构:将所有功能实现在一个进程中并部署在一台机器上,优点实现方法简单,缺点C10K问题且运维需要停服
单体架构:分布式部署,多个单机架一起运行;
垂直应用架构:按应用垂直切分的单体,将不同功能的实现分离,优点水平扩容,运维不需要停服,缺点职责太多,开发效率不高,爆炸半径大。
SOA架构(Service-Oriented Architeture)将应用的不同功能单元抽象为服务,定义服务之间的通信标准。微服务架构:SOA的去中心化演进方向,该架构的问题:数据一致性,高可用性,治理,解耦过微导致运维成本过高。
2.后端架构剖析 云计算:通过软件自动化管理,提供计算资源的服务网络
基础:虚拟化技术,编排方案
架构:IaaS,PaaS,SaaS,FaaS
云原生:为组织在公有云,自由云,混合云等新型的动态环境中,构建和运行可弹性拓展的应用提供了可能 特点: 弹性资源:虚拟化容器,快速扩缩容; 微服务架构:业务功能单元解耦,统一的通信标准; DevOps:敏捷开发,CI/CD; 服务网格:业务与治理解构,异构系统的治理统一化,复杂治理能力
微服务架构的通信标准HTTP,RPC,微服务在业务逻辑中不必实现符合通信标准的交互逻辑,交给框架来做
3.后端架构的挑战 基础设施层面:物理资源有限(机器,带宽 )资源利用率受制于部署服务 用户层面:网络通信开销较大,网络抖动导致运维成本提高,异构环境下,不同实例资源水位不均
离在线资源并池: 核心收益:降低物理资源成本,提供更多的弹性资源,增加收入
在线业务的特点:IO密集型为主,潮汐性,实时性 离线业务的特点:计算密集型占多数,非实时性