一家中型互联网公司的架构演进之路

在云原生架构出现之前,大家谈论最多的是微服务架构。有的企业可能只有一种架构,有的企业经历过多种架构的演变。架构的选择与企业当前所处的阶段

有很大关系,好的架构都是为了解决当下企业面临的业务问题而诞生的。

引用王小川老师在中国计算机大会(CNCC)分享的一句话: “技术与业务的关系就像汽车,汽车有三大组件—车轮、发动机、方向盘,分别代表了3种技术与业务的关系,分别是技术支持、技术驱动、技术颠覆。 ”95%的企业是技术支持型企业,一般都是先追求业务的快速迭代试错,架构一般会滞后于业务的发展,在架构跟不上业务的迭代速度,或有巨大的历史技术债务出现时,技术架构才会进行新一轮的迭代。 同时,没有任何一个架构是“银弹”,凡是能够解决当下企业面临的问题的架构就是好架构。

本章首先介绍企业级架构的演变过程,包括大 部分企业都会经历的单体架构、分布式架构、微服务架构,以及最近几年比较火爆的中台架构; 然后结合自如的业务特性介绍自如技术架构的历史变迁,还原一个中型互联网公司的架构演进之路。 相信很多读者在读完本章后,能够找到自己企业的影子。

2.1技术架构的演进

什么是架构?架构有哪些特点?架构有哪些分类?一万个读者可能有一万个答案。

本节将从架构的定义出发,介绍几类常见的架构形态及其演变路径,从单体到分布式、从分布式到微服务、从微服务到中台。并不是最新的架构就是最好的,符合企业当下业务形态的架构才是好架构。那么,如何选择符合自己业务的架构呢?让我们从了解每个架构的特点开始。

2.1.1架构的定义与分类

1.架构的定义

架构(Architecture)这个词源自建筑行业,以下引用百度百科的描述。

软件架构(Software Architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。

通俗地来讲,技术架构就是对软件系统各个维度进行不同模块化的抽象,通过抽象使原本复杂的工程变得易于理解和分工实现。就像泰勒提出的科学管理,通过标准化的作业流程和分工,原本混沌复杂的软件工程被拆分出前端、后端、质量、运维等多个岗位。以后端为例,根据不同的岗位职责,按照康威定律又被拆分出不同的组织,比如订单组、用户组、交易组等,进而使整体的生产力大大提升。因此,架构的本质是抽象分类,进而指导软件系统的实现。

2.好的架构特征

通常好的架构要能够支持高并发、高可用、高扩展。这些都是架构设计中应该关注的特性。除此之外,好的架构还应该关注如下特性。

可用性和可靠性。由于软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。可用性和可靠性虽然是两个不同的属性,但本质都是为了提升业务连续性,使企业的业务尽可能不中断。

高性能。高性能体现了架构在同样的物理配置下的业务支撑能力,更高的吞吐量、更低的响应时间意味着对用户更快速地响应。

易维护性。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映给现有系统。一个易于维护的系统可以有效降低技术支持的费用。

可扩展性。市场和用户总是在不断变化的,为了适应业务的高速迭代,尤其是一些2B企业的个性化需求,架构要求能够在最小的改动成本下满足更多的需求。这要求架构可以根据客户群的不同和市场需求的变化进行调整。

安全性。随着《个人信息保护法》和《数据安全法》的出台,信息安全已经成为架构设计中最重要的因素,安全合规不容小觑。

3.架构的分类

我们常听到各种关于架构的名词,比如业务架构、功能架构、应用架构、技术架构、物理架构等,很多读者可能分不清,这里我们简单梳理一下这几个架构的区别。

(1)业务架构

业务架构一般是指业务的关键流程、组织形式、信息流。以电商为例,业务架构包括选品、采购、仓储、物流、供应商、订单等一系列的业务版块。业务架构体现的主要是业务模式和流程,核心是定义业务痛点,厘清功能需求和非功能性需求。

(2)功能架构

功能架构一般是指产品具备的细分功能。例如,电商系统的功能架构可细分为用户管理、登录注册、商品管理、仓库管理、订单管理、购物车管理、支付管理等核心模块。功能架构图体现的是一个产品的核心功能模块。

(3)应用架构

应用架构一般是指根据业务场景设计出应用的层次结构,制定好应用间的调用、交互方式,确保它们能够融合在一起并满足业务需要。比如,电商系统的应用架构可能有用户中心、权限中心、登录系统、商品中心、搜索引擎、推荐体系、订单系统、交易系统等。应用架构体现的是用什么样的微服务去支持功能的实现。

(4)技术架构

技术架构一般是指实现应用架构的关键技术栈,如Spring Cloud、ZooKeeper、RocketMQ、Redis、MySQL、Elasticsearch等中间件,以及各种核心流程的时序图、状态图等信息。

(5)物理架构

物理架构一般是指从物理视角来看IDC中的物理拓扑关系,如防火墙、Nginx、网络、应用服务器、数据库间的调用和数据流转关系。物理架构关注的是如何通过硬件配置硬件和网络来配合软件系统达到可靠性、

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值