架构初探 | 青训营笔记

88 阅读2分钟

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

架构

1.架构含义

架构即软件架构,是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。简单说,可以认为软件架构指软件系统的顶层结构。有三种架构的方式:

①单机:把所有功能都实现在一个进程里,并部署在一台机器上。单体架构的特点是所有代码逻辑都耦合在一个项目中。

  • 优点: 简单
  • 问题:运维需要停服

②垂直应用架构: 按应用垂直切分的单体。垂直架构相较于单体架构而言,进行了部分解耦,但是不够彻底,在各个子系统相互依赖的代码和模块中,存在重复代码拷贝和模块功能重复开发的情况。

  • 优点:水平扩容、运维不需要停服
  • 问题:职责太多,开发效率不高、爆炸半径大

③面向服务的架构(SOA) 面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。

面向服务的架构主要由两种:以企业服务总线(ESB)为代表的 SOA 和以 RPC 为代表的 SOA。

2.企业级后端架构剖析

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

基础:

  • 虚拟化技术
  • 编排方案

架构: laaS (Infrastructure as a Service) 、PaaS (Platform as a Service)、 SaaS (Software as a Service)、 FaaS (Function as a Service)

②云原生技术

云原生为组织(公司)在公有云、自由云、混合云等新型的动态环境中,构建和运行可弹性拓展的应用 提供了可能。

③计算资源

弹性计算资源类型:

  • 服务资源调度(微服务、大服务)
  • 计算资源调度(在线、离线)
  • 消息队列(在线、离线)

弹性存储资源类型:

  • 经典(对象、大数据)
  • 关系型数据库
  • 元数据:服务发现
  • NoSQL

总结:将存储资源当成服务一样

3.企业级后端架构的挑战

挑战

①基础设施层面

  • 物理资源是有限的:机器、带宽
  • 资源利用率受制于部署服务

②用户层面

  • 网络通信开销较大
  • 网络抖动导致运维成本提高
  • 异构环境下,不同实例资源水位不均

核心收益:

  • 降低物理资源成本
  • 提供更多的弹性资源,增加收入

解决思路: 离在线资源并池

  • 在线业务的特点:IO密集型为主,潮汐性、实时性
  • 离线业务的特点:计算密集型占多数,非实时性