这是我参与「第五届青训营 」笔记创作活动的第7天
1 什么是架构
2 企业级后端架构剖析
3 企业级后端架构的挑战
4 后端架构实战
1 什么是架构 -定义
又称软件架构 整体结构与组件的抽象描述 指导软件各个方面设计
方法选择上起至关重要指导作用
架构重要性
-问题
-单机 优点 : 简单 问题: C10K problem 运维需要停服
-单体、垂直应用|垂直切分 单体架构:分布式部署 垂直应用架构:按应用垂直切分 优点:水平扩容 运维不需要停服 问题: 职责太多,开法效率不高 爆炸半径大
-SOA、微服务|水平切分 Service-Driented Architecture 1将应用不同功能单元抽象为服务 2定义服务间的通信标准 微服务架构:SOA去中心化演进方向
问题: 数据一致性 高可用 合作? 治理 容灾? 解耦vs过微 成本高 值当?
小结 架构演进初衷 需求越来越大 增加人手 越做越复杂 终归分工合作
演进思路:一口吃不下 终归切分 垂直切分 水平
2 企业级后端架构剖析
-背景 扩大规模 店面 师傅 工作重心
-云计算 通过软件自动化管理 提供计算资源的服务网络 现代互联网大规模熟悉分析和存储的基石 基础: 虚拟化技术-整租vs合租 编排方案-业主vs租赁平台 架构: IaaS (Infrastructure as a Service) PaaS(Platform as a Service) SaaS(Software as a Service) FaaS(Function as a Service)
-云原生 为组织在公有云、自由云、混合云等新型的动态环境中,构建运行可弹性拓展的应用提供了可能 弹性资源: 虚拟化容器 快速扩缩容 微服务架构: 业务功能单元解耦 统一的通信标准 DevOps:敏捷开发 CVCD 服务网络:业务与治理解构 异构系统治理统一化 复杂治理能力
弹性计算资源 资源类型: 服务资源调度 微服务 大服务 计算资源调度 在线 离线 消息队列 在线 离线
弹性存储资源 资源类型: 经典 对象 大数据 关系型数据库 元数据 服务发现 NoSQL KV
总结 将存储资源当成副武一样
DevOps 云原生时代交付利器 贯穿软件开发周期 结合自动化流程 提高软件开发交付效率
微服务架构 通信标准 HTTP RPC(RESTful API) 微服务中间件(Trift,gRPC) 性能 服务治理 协议可解释性
云原生场景下 微服务不必在业务逻辑中实现符合通信标准的交互逻辑 而是交给框架来做
服务网格 微服务间通讯的中间层 高性能网络代理 业务代码与治理解耦
相较于RPCHTTP框架 异构系统治理统一化 与业务进程解耦,生命周期易管理
云原生蛋糕店 架构 售卖 蛋糕制作 会员激励 满意度分析 研发新品