架构初探 | 青训营笔记

76 阅读3分钟

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

一、什么是架构

软件架构,是有关软件整体与组件的抽象描述,用于指导软件系统各个方面的设计。通俗的讲,软件的架构对系统设计起着重要的指导作用,相当于地基。

单机

系统需要对外服务,单机就是使用一个进程和一台机子。单机的唯一优点就是简单,不需要互联。

单体、垂直应用

单体架构则是进行分布式部署。将进程部署到多个单机上,并引入负载均衡层。

垂直应用架构则是按应用垂直切分的单体。将负责不同模块的功能分隔开,便是垂直应用。

垂直应用的架构,解决了单机架构运维停服,水平扩展的问题。

SOA、微服务 | 水平切分

SOA全称是service oriented architecture。SOA把应用的不同功能单元抽象为服务,并定义服务之间的通信标准。

而微服务架构则是SOA架构去中心化的发展方向。

架构的演替就好像切蛋糕,垂直切分就好比竖着切,水平切分则是横着切。

二、企业级后台架构

背景

image.png

云计算

云计算是指通过软件自动化管理,提供计算资源的服务网络。是现代互联网大规模数据分析和存储的基石。通过网络云可以将无数个数据计算的处理程序分解成小程序。

云计算基础

  • 虚拟化技术 硬件、操作系统和网络,可以用整租和合租的例子来解释
  • 编排方案 虚拟机编排方案和容器编排方案。可以用业主和租聘平台的方案解释

主要有Iaas(Infrastructure)、Paas(Platform)、Saas(Software)、Faas(Function)四个架构。

云原生

云原生是云原生计算的简称,它是云计算发展至今的一种形态。

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

弹性计算资源

  • 服务资源调度
    • 微服务
    • 大服务
  • 计算资源调度
    • 在线:热销榜单
    • 离线:热销榜单更新
  • 消息队列
    • 在线:削峰、解耦
    • 离线:大数据分析

DevOps

DevOps是Dev+Ops即开发+运营的意思,DevOps使以前孤立的岗位协调连接起来,从开发到交付,贯穿整个软件开发周期。

微服务架构

微服务架构也是云原生的重要基石,它依托于功能单元,拥有便捷的扩展性。通信标准:HTTP和RPC。

服务网格

服务网格是微服务之间通信的中间层。可以进行高性能网络代理,实现业务代码和治理解耦。 与HTTP/RPC框架相比,它将异构系统治理统一化,与业务系统解耦,易于管理生命周期。