软件架构基础:定义、期望与发展
1. 为何关注软件架构基础
在当今不断变化的软件开发世界中,软件架构并非唯一处于动态变化的部分。新技术、新技巧和新能力层出不穷,过去十年间,未发生改变的事物反倒比发生的变化更容易列举。软件架构师需在这个持续变动的生态系统中做出决策,由于一切都在改变,包括决策的基础,架构师应重新审视一些早期有关软件架构写作中提及的核心公理。
例如,早期关于软件架构的资料未考虑DevOps的影响,因为当时它尚未出现。在研究架构时,就像理解艺术一样,必须结合背景。许多架构师的决策基于他们所处环境的实际情况。20世纪后期的架构主要目标之一是最有效地利用共享资源,因为当时所有基础设施,如操作系统、应用服务器和数据库服务器等都很昂贵且商业化。
假设在2002年走进一家数据中心,告诉运营主管要构建一种每个服务都运行在独立机器上且有独立数据库的架构(即现在的微服务架构),这在当时的成本是难以想象的。但随着开源技术的出现以及DevOps革命带来的工程实践更新,如今构建这样的架构变得合理可行。所以,所有架构都是其背景的产物。
2. 软件架构的定义
行业内对“软件架构”的精确界定一直存在困难。一些架构师将其视为系统的蓝图,另一些则定义为开发系统的路线图。然而,这些常见定义的问题在于,难以明确蓝图或路线图具体包含什么。例如,架构师分析架构时,具体分析哪些内容呢?
软件架构由以下几个要素组成:
- 系统结构 :指系统所采用的架构风格类型,如微服务、分层或微内核等。但仅通过结构描述架构并不全面。例如,当架构师说“这是一个微服务架构”时,只是提及了系统结构,而非完整的架构。要全面理解
超级会员免费看
订阅专栏 解锁全文
170万+

被折叠的 条评论
为什么被折叠?



