前言
这是我参与【第五届青训营】伴学笔记创作活动第七天,今天的学习内容主要是架构的一些基础定义和基础用法,和架构实战。
正文
-
架构定义:适用于软件整体结构与组件的抽象描述,用于指导软件各个方面的设计。
-
单机架构:把所有功能都是现在一个进程里,并部署在一台机器上。优点:简单;缺点:C10K problem;运维需要停服
-
单体架构:分布式部署。
-
垂直应用架构:按应用的垂直分的单体。优点:水平扩容,运维不需要停服。问题:职责太多,开发效率不高;爆炸半径大。(分工协作)
-
SOA:将应用的不同功能单元抽象为服务,定义服务之间的通信标准。
-
微服务架构:SOA的去中心化演进方向。问题:数据一致性,高可用,治理,解耦VS过微(水平切分)
-
企业级后端架构后端架剖析:云计算:是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模熟悉分析和存储的基石。
-
云原生:为组织(公司)在公有云,自由云,混合云等新型动态环境中,构建和运行可弹性拓展的应用提供了可能性。
弹性计算资源类型:服务资源调度:微服务,大服务;计算资源调度:在线(热销榜单),离线(热销榜单更新);消息列队:在线(削峰,解耦),离线(大数据分析)。
弹性存储资源类型:经典:对象,大数据;关系型数据库,收银记录;元数据:服务发现;NoSQL:kv。
DevOps:是云原生时代软件交付的利器,贯穿整个软件开发周期,结合自动化流程,提高软件开发,交付效率。
通信标准:HTTP,RPC;微服务中间件RPC vs HTTP:性能,服务治理,协议可解释性(云原生场景下微服务大可不必在企业逻辑实现符合通信标准的交互逻辑,而是交给框架来做)
服务网络:微服务之间通讯的中间层,高性能网络代理,业务代码和治理解耦;相比较于RPC/HTTP框架:异构系统治理统一化,与业务进程解耦,生命周期易管理。
-
企业级后端架构的问题: 基础设层面:物理资源有限(机器,带宽),资源利用率受制于部署服务。用户层面:网络通信较大,网络抖动导致运维成本提高,异构环境下,不同实例资源水位不均。
离在资源并池:核心收益:降低物理资源成本,提供更多的弹性资源,增加收入,解决思路:离在资源并池。在线业务特点:IO密集型为主,潮汐性,实时性。离线业务的特点:计算密集型占大多数,非实时性。
自动扩缩容:核心收益:降低业务成本,解决思路:自动扩容缩,利用在线业务的潮汐性自动扩缩容。
微服务亲和性部署:核心收益:降低业务成本,提高服务可用性。解决思路:微服务亲和性部署:将满足亲和性条件的容器调度到一台宿主机,微服务中间件与服务网络通过共享内存通信,服务网络控制面实施灵活,动态的流量调度。
流量治理:核心收益:提高为服务调用容错性,容灾,进一步提高开发效率,DevOps发挥到极致。解决思路:基于微服务中间件&服务网格的流量治理:熔断,重试,单元化,复杂环境(功能,预览)的流量调度。
CPU水位负载均衡:核心收益:打平易购环境算力差距,为自动扩缩容提高正向收入。解决思路:CPU水位负载均衡;laaS(提供资深探针),服务网络(动态负载均衡)。