[ 架构初探 | 青训营笔记 ]
这是我参与「第五届青训营」伴学笔记创作活动的第 7 天
零、前言:
记个笔记顺便(恰青豆还是有很多不完善也有可能对的地方还请大佬们指正
一、本堂课重点内容:
- 什么是架构
- 企业级后端架构剖析
- 企业级后端架构的挑战
- 后端架构实战
二、详细知识点介绍:
7.1 什么是架构
有关软件整体结构与组件的抽象化描述
架构演进
-
单机架构
把所有功能实现在一个进程里,部署在一台机器上
优点:简单,只有简单
-
单体架构,垂直切分
分布式部署,按应用垂直切分单体
优点:水平扩容,运维不需要停服
-
SOA(Service-Oriented Architecture),微服务
把功能抽象为不同服务,并且每个服务之间有通讯标准但是soa和微服务还是有不同的,在于通讯方式,数据库设计和服务规模
优点:1.不同模块的RD可以专心于自己的业务逻辑了,开发迭代效率得到显著提高
2.各个服务独立运维,变更操作的影响面可控,应用整体的稳定性得到了提高
7.2 企业级后端的架构剖析
云计算
其实有好多种 ass(As A Service) 课上主要介绍 Iass, Paas, Saas, Faas 这四个 【云计算】XaaS最全介绍
区别在于提供的服务程度的不同
IaaS:Infrastructure as a Service(基础设施即服务)
从上面的架构图可以看出,IaaS处于最底层,服务商提供底层/物理层基础设施资源(服务器,数据中心,环境控制,电源,服务器机房),客户自己部署和执行操作系统或应用程序等各种软件。
PaaS:Platform as a Service(平台即服务)
PaaS处于中间层,服务商提供基础设施底层服务,提供操作系统(Windows,Linux)、数据库服务器、Web服务器、域控制器和其他中间件,以及服务模型中的备份服务等中件层服务。例如IIS,.NET,Apache,MySQL …,客户自己控制上层的应用程序部署与应用托管的环境。
SaaS:Software as a Service(软件即服务)
SaaS处于最上层,服务商提供基于软件的解决方案,满足客户最终需求;如OA、CRM、MIS、ERP、HRM、CM、Office 365、iCloud、G Suite等应用,客户不需考虑任何形式的专业技术知识,获得完整的软件包,使他们的日常工作和生活变得更轻松。
FaaS:Function as a service(函数即服务)
无服务器计算,当前使用最广泛的是AWS的Lambada。
服务商提供一个平台,允许客户开发、运行和管理应用程序功能,而无需构建和维护通常与开发和启动应用程序相关的基础架构的复杂性。 按照此模型构建应用程序是实现“无服务器”体系结构的一种方式,通常在构建微服务应用程序时使用。
云原生
云原生是一种构建和运行应用程序的方法
云原生主要涉及四个方面:DevOps,弹性资源,微服务架构,服务网格
主要聊一下 DevOps :这是个组合词,Dev+Ops,就是开发和运维合体,不像开发和产品,经常刀刃相见,实际上DevOps应该还包括测试,DevOps是一个敏捷思维,是一个沟通文化,也是组织形式,为云原生提供持续交付能力。设计->开发->测试-→交付->开发->测试->交付,自动化的流程使得软件的工作流程更高效,将微服务架构的优势发挥的淋漓尽致
7.3 企业级后端架构的挑战
基础设施层面 -- 潮汐扩容
用户层面 -- 微服务亲和性部署
7.4 后端架构实战
三、总结:
这节课讲的还是偏概念方面的问题,但是对于实战只写过玩具项目真对这个没什么概念,作业有大佬设计出来了踢我一脚,我去点个赞研究一下好吧