架构初探 | 青训营笔记

57 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6天

本堂课重点内容

image.png

什么是架构

架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计

常见软件架构:

  • 单机
  • 单体
  • 垂直应用
  • SOA (Service Oriented Architecture)
  • 微服务 (Microservice)

单机架构也就是最基本的『架构』 单机服务的模式,除了简单之外没有任何优点。当今互联网时代,单机服务的形态一般只适合出现在预研或初创阶段,但凡业务有发展和迭代的诉求,就应该快速做架构迭代。

服务,是根据功能抽象出来的概念。比如说,处理用户登录信息的 Passport 服务,负责持久化存储的数据库服务,以及为了加快查询速度的缓存服务等

通信标准,是服务之间通信的基石。没有实现定义好的通信标准,就好比多个做蛋糕的师傅语言不通,难以协作

为了服务之间更好的通信,有两个大的发展方向:中心化和去中心化。因为中心化的方案形态较重,拓展性不佳,普及性不佳,我们跳过不讲,感兴趣的同学可以自己了解一下。而去中心化的方向,最终的形态就是微服务架构

企业级后端架构剖析

云计算

云计算是指通过软件自动化管理,提供计算资源的服务网络,是现代互联网大规模数据分析和存储的基石。

云原生

云原生,实际是云原生(计算)的简称,它是元计算发展到现在的一种形态。

它的代表技术有:

容器化

服务网格

微服务

不可变基础架构

声明式 API

云原生主要涉及四个大方面:

弹性资源:基于虚拟化容器以及灵活的编排调度机制,可以为云服务提供快速扩缩容能力,而且极大程度地提高了物理资源的利用率。在这方面,kubernetes 技术已经称为了业界的标准

微服务架构:还记得前面我们聊到的微服务架构么?没错,它也是云原生的重要基石之一。依托于功能单元解构,使得云服务具备了快速迭代的可能,业务得以迅速发展;统一的通信标准能够帮助越来越多的组件加入到云原生的大家庭,同时也使得各组件之间的交互变的更容易

DevOps:设计->开发->测试->交付->开发->测试->交付,自动化的流程使得软件的工作流程更高效,将微服务架构的优势发挥的淋漓尽致

服务网格:如果说微服务架构的重要进步,是将庞大的单体服务按照业务功能解耦开来,那么,服务网格的重要进步就是将业务逻辑与网络通信和治理解耦开来。业务不再需要关心异构系统中 RPC 中间件治理能力的不统一,也使得复杂的治理能力的落地成为可能