这是我参与「第五届青训营」伴学笔记创作活动的第 7 天
架构
定义
架构指软件架构。
是有关软件整体结构与组件的抽象描述。
用于指导软件系统各个方面的设计。
单机架构
把所有功能都实现在一个进程里,部署在一台机器上。
优点是简单,缺点是运维要停服,只适用于预研或初创阶段。
垂直切分
把进程部署在多个机器上,引入负载均衡层,尝试解决单机服务的水平扩容、运维停服问题。
水平切分
面向服务架构指将应用的不同功能单元抽象成服务,定义服务之间的通信标准。
服务的发展有中心化和去中心化两个发展方向,去中心化最终的形态就是微服务架构。
需要解决数据一致性,高可用,运维等问题。
企业级后端架构剖析
云计算
云计算是指通过软件自动化管理,提供计算资源的服务网络。
有IaaS、PaaS、SaaS和FaaS架构。
云原生
云原生计算。
代表技术有容器化,服务网络、微服务、不可变基础架构和声明式API。
提供弹性资源:虚拟化容器和快速扩缩容。
微服务架构:业务功能单元解耦和统一的通信标准。
DevOps:敏捷开发和CI/CD。
服务网络:业务与治理解构,异构系统的治理统一化和复杂的治理能力。
企业级后端架构的挑战
后端架构需要面对一些问题。
基础设施层面,物理资源是有限的,资源利用率受制于部署服务。
用户层面,网络通信开销大,网络抖动导致运维成本高和异构环境下不同实例资源水位不均。
离在线资源并池
根据离线业务和在线业务的不同特点,设计混合资源池,可以降低物理成本,提供更多的弹性资源和增加收入。
需要解决同一台机器离在线隔离的问题。
自动缩扩容
利用在线业务的潮汐性自动扩缩容。
需要明确扩缩容依据的指标
微服务部署
将满足亲和性条件的容器调度到一台宿主机,可以通过内存通信,降低业务成本和提高服务的可用性。
流量治理
提高微服务调用的容错性,提高容灾能力。
CPU负载均衡
解决异构环境算力差异的问题。
架构实战
自适应静态权重
采集宿主机的物理资源信息,调整容器注册的权重。
优点是复杂度低,可用性高,微服务中间件无适配成本。
缺点是无紧急回滚能力,和缺乏运行时自适应能力。
自适应动态权重
微服务化,引入消息队列削峰和解耦,切分离在线链路和梳理强弱依赖。
可以使用一致性哈希解决数据一致性问题,使用纯内存的在线分析引擎进行实时策略计算,使用消息队列解耦和削峰。