这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
本文接续上文笔记,本节课老师从当下企业的业务部署和解决方案出发详解现代企业级后端架构的基本构成。云计算简述
基础
云计算基本概念理解:借助云端的计算资源,部署项目或企业服务,对企业的前端与业务做支撑。
- 虚拟化技术: 将固定的硬件资源根据人为设定虚拟化为性能不同的“虚拟机”提供给客户。客户按需购买自己所需的算力和资源。
- 编排方案: 基于虚拟化技术,管理虚拟机的方案。
支撑架构
- IaaS(Infastructure as a Service) 个人理解:服务提供者管理硬件资源,并将硬件资源和管理服务打包成服务出售。
- PaaS(Platform as a Service) 个人理解:基于硬件资源配置虚拟的服务环境,将这些环境按一定的逻辑以及相应的管理服务打包成整套服务出售。
- SaaS(Software as a Service) 个人理解:比PaaS更进一步,在PaaS的基础上提供部分满足常见业务逻辑的软件配置与管理维护服务。
- FaaS(Function as a Service) 个人理解:将SaaS提供的服务进一步抽象化为提供具体功能的Function,并独立的将Function作为服务出售。 云计算技术大大减轻了企业在开发过程中所面临的各方面的成本,尤其是软硬件管理和维护成本。
云原生简述
弹性资源
云原生基于虚拟化技术提供服务的扩容与缩容服务。其中常见的弹性资源分为计算资源和存储资源。
弹性计算资源管理包括: 服务资源调度(微服务,大型服务),计算资源调度(在线, 离线), 消息队列(在线, 离线) 弹性存储服务包括: NoSQL,关系型数据库, 对象型数据库,大数据存储, 元数据存储。DevOps
全软件开发生命周期的自动化管理平台,用来提高软件的开发效率,增强协作。
微服务架构
云原生开发基于微服务架构,常见的微服务协议有gRPC, HTTP等,RPC协议往往会压缩数据,这一方面提高了微服务的性能,但是另一方面也引入了协议内容可读性的下降。同时当项目构建了大量的微服务时,这些微服务之间的关系会变的极其复杂,单纯的微服务架构无法支持云原生。
服务网格
服务网格的引入解决了上述痛点,通过建立服务网格中心与边车进程,将微服务的具体协议与整个系统中微服务的协作解耦,运维的难度大大降低,同时服务网格中心可以纵观全局来配置微服务之间调用的流量控制和记录(单个服务网格中心可能会导致单点故障,这部分肯定要做容灾的备用处理)
现代企业云原生常见问题
针对不同的业务需求,会有不同的架构设计,常见的几种问题的解决方式包括:离在线资源的并池(解决资源请求有潮汐特征的业务)、自动扩缩容、微服务亲合性部署(降低网络带宽成本, 便于流量调度),CPU水位的负载均衡(解决异构系统引入的不同“机器”属性不同)