架构入门 | 青训营笔记

81 阅读2分钟

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

架构的概念

架构,又称软件架构,是有关软件整体结构与组件的抽象描述。用于指导软件系统各方面的设计,实现一个软件有很多种方法,架构在方法选择上起着至关重要的指导作用。

架构的分类

  • 单机架构:将所有功能实现在一个进程里,并部署到一台机器上。优点:实现简单,但存在着C10K问题,即单机面对一万个并发链接的问题,而且在进行运维的时候,需要将服务完全停止。
  • 单体架构:在单机架构的基础上,引入负载均衡层,并且将进程部署到多台机器上,便形成了单体架构。
  • 垂直应用架构:在单体架构的基础上,将将不同应用,功能的代码从一个大的进程中分开,比如一个直播可以分为弹幕模块,礼物模块,推流模块等等。垂直应用架构解决了单体架构的水平扩容,运维停服的问题,但在数据一致性的保持上会遇到挑战。
  • SOA(面向服务的架构):将进程不同的功能单元抽象为服务,并且定义了服务之间的通信标准,SOA有两种演化的方向,中心化与去中心化。
  • 微服务架构:SOA去中心化方向演化的最终形态

常用架构

云计算:通过软件自动化管理,提供计算资源的服务网络。

常用架构有IAAS,PAAS,SAAS,FAAS

云原生:云原生技术有利于各组织在公有云、私有云,动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。

这些技术能够构建容错性好、易于管理和便于观察的松耦合系统。结合可靠的自动化手段,云原生技术使工程师能够轻松地对系统作出频繁和可预测的重大变更。