后端架构的学习 | 青训营笔记

77 阅读3分钟
这是我参与「第五届青训营」伴学笔记创作活动的第 7 天

架构

定义

架构指软件架构。

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

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

单机架构

把所有功能都实现在一个进程里,部署在一台机器上。

优点是简单,缺点是运维要停服,只适用于预研或初创阶段。

垂直切分

把进程部署在多个机器上,引入负载均衡层,尝试解决单机服务的水平扩容、运维停服问题。

水平切分

面向服务架构指将应用的不同功能单元抽象成服务,定义服务之间的通信标准。

服务的发展有中心化和去中心化两个发展方向,去中心化最终的形态就是微服务架构。

需要解决数据一致性,高可用,运维等问题。

企业级后端架构剖析

云计算

云计算是指通过软件自动化管理,提供计算资源的服务网络。

有IaaS、PaaS、SaaS和FaaS架构。

云原生

云原生计算。

代表技术有容器化,服务网络、微服务、不可变基础架构和声明式API。

提供弹性资源:虚拟化容器和快速扩缩容。

微服务架构:业务功能单元解耦和统一的通信标准。

DevOps:敏捷开发和CI/CD。

服务网络:业务与治理解构,异构系统的治理统一化和复杂的治理能力。

企业级后端架构的挑战

后端架构需要面对一些问题。

基础设施层面,物理资源是有限的,资源利用率受制于部署服务。

用户层面,网络通信开销大,网络抖动导致运维成本高和异构环境下不同实例资源水位不均。

离在线资源并池

根据离线业务和在线业务的不同特点,设计混合资源池,可以降低物理成本,提供更多的弹性资源和增加收入。

需要解决同一台机器离在线隔离的问题。

自动缩扩容

利用在线业务的潮汐性自动扩缩容。

需要明确扩缩容依据的指标

微服务部署

将满足亲和性条件的容器调度到一台宿主机,可以通过内存通信,降低业务成本和提高服务的可用性。

流量治理

提高微服务调用的容错性,提高容灾能力。

CPU负载均衡

解决异构环境算力差异的问题。

架构实战

自适应静态权重

采集宿主机的物理资源信息,调整容器注册的权重。

优点是复杂度低,可用性高,微服务中间件无适配成本。

缺点是无紧急回滚能力,和缺乏运行时自适应能力。

自适应动态权重

微服务化,引入消息队列削峰和解耦,切分离在线链路和梳理强弱依赖。

可以使用一致性哈希解决数据一致性问题,使用纯内存的在线分析引擎进行实时策略计算,使用消息队列解耦和削峰。