1.2 解决方案架构的演进
解决方案架构随着技术的现代化而演进。今天,随着互联网的广泛应用、高带宽网络的出现、存储成本的降低,以及计算机的普及,解决方案架构设计与几十年前相比发生了天翻地覆的变化。
早在互联网时代之前,大多数解决方案设计都专注于提供胖桌面客户端,当系统无法连接到互联网时,它能够在低带宽的情况下运行并离线工作。
这项技术在近十年不断演进。面向服务的架构(Service-Oriented Architecture,SOA)开始形成分布式设计,应用程序开始从单体转向现代的N层架构,其中前端服务器、应用服务器和数据库都运行于独立的计算机和存储之上。这些SOA主要是通过一种基于XML的消息传递协议来实现的,这种协议称为简单对象访问协议(Simple Object Access Protocol,SOAP)。这主要是遵循客户端-服务器的模式来创建服务。
在这个数字化时代,基于微服务的解决方案设计越来越流行,它基于JavaScript对象符号(JavaScript Object Notation,JSON)的消息传递和表示层状态转移(Representational State Transfer,REST)服务。这些Web API不需要基于XML的SOAP来支持其接口,而是依赖于基于Web的HTTP,如POST、GET、UPDATE、DELETE等。不同的架构模式详见第6章。
微服务架构解决了敏捷环境中不断变化的需求。在敏捷环境中,任何解决方案的变化都需要快速地适应和部署。组织必须敏捷才能在竞争中保持领先地位。这迫使解决方案架构必须更加灵活(与项目发布周期较长的瀑布模型相比)。
基于Web的微服务架构是由几乎无限的资源所推动的,这种资源可以从云供应商那里获得,并且可以在几分钟甚至几秒内进行扩展。由于解决方案架构师和开发人员即使失败也不会造成任何损失,因此创新、试验和变革变得越来越容易。