架构师之路 — 软件架构 — Overview

目录

文章目录

什么是软件架构?

软件架构是一个系统的草图,其核心价值应该只围绕一个核心命题:控制复杂性,化繁为简。

软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由组件的描述、组件的相互作用、指导组件集成的模式以及这些模式的约束组成。软件架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原理。

  • 在设计阶段:软件架构描述的对象是直接构成系统的抽象组件,以及各个组件之间的通信连接方式。
  • 在实现阶段:软件架构描述的对象是更加实际的组件模块,比如具体某个类或者对象,在面向对象领域中,组件之间的连接通常用接口来表示。

软件架构分类

架构师之路 — 软件架构 — Overview

业务架构

由业务架构师负责,也可以称为业务领域专家、行业专家。

业务架构属于顶层设计,其对业务的定义和划分会影响组织结构和技术架构。例如,阿里巴巴在没有中台部门之前,每个业务部门的技术架构都是烟囱式的,淘宝、天猫、飞猪、1688 等各有一套体系结构。而后,成立了共享平台事业部,打通了账号、商品、订单等体系,让商业基础实施的复用成为可能。

应用架构

由应用架构师负责,他需要根据业务场景的需要,设计应用的层次结构,制定应用规范、定义接口和数据交互协议等。并尽量将应用的复杂度控制在一个可以接受的水平,从而在快速的支撑业务发展的同时,在保证系统的可用性和可维护性的同时,确保应用满足非功能属性要求(性能、安全、稳定性等)。

分布式系统架构

分布式系统基本是稍具规模业务的必选项。它需要解决服务器负载,分布式服务的注册和发现,消息系统,缓存系统,分布式数据库等问题,同时架构师要在 CAP(Consistency,Availability,Partition tolerance)之间进行权衡。

数据架构

对于规模大一些的公司,数据治理是一个很重要的课题。如何对数据收集、数据处理提供统一的服务和标准,是数据架构需要关注的问题。其目的就是统一数据定义规范,标准化数据表达,形成有效易维护的数据资产,搭建统一的大数据处理平台,形成数据使用闭环。

物理架构

物理架构关注软件元件是如何放到硬件上的,包括机房搭建、网络拓扑结构,网络分流器、代理服务器、Web 服务器、应用服务器、报表服务器、整合服务器、存储服务器和主机等。

运维架构

负责运维系统的规划、选型、部署上线,建立规范化的运维体系。

上一篇:Raiden Network(一)—— Overview


下一篇:Overview of cookie persistence