博客

为云重新构建平台

拜伦·麦克诺特缩略图
拜伦·麦克诺特
2023 年 4 月 13 日发布

架构师帮助定义执行业务数字战略所需的流程护栏和技术能力,这通常包括将 Web 应用程序和 API 基础设施(API 网关、服务网格和开发人员门户)发展为基于云的平台。

在实践中,有“提升和转变”、“重构”(或“重新架构”)和“重新平台化”方法,而决定采取哪种架构之旅取决于几个因素。 例如,可以安全地实现多少耦合内聚。 高度内聚和松散耦合的 API 应该是目标,因为它提供了稳定的接口和抽象级别——保护系统免受实现修改的级联效应的影响,否则在进行单一设计更改时就需要进行这种修改。 这使得架构的不同部分可以独立发展。

将现有的单体应用分解为微服务并将其迁移到云中是实现现代化的明智选择,因为这种方法使 API 提供商和 API 消费者能够更有效地发展他们的系统。

在这里,我们将探讨一个假设的案例研究,其中一个组织通过将传统系统重构为基于 API 的架构并将其重新平台化为云来实现其现代化。

发展成为基于 API 的系统

对传统系统进行现代化改造意味着什么? 任何数字化转型过程中的共同步骤都是为客户提供正确的交易接触点,这至少意味着要创建一个移动应用程序。但还有更多事情要做。 在新的数字经济中,随着企业通过“构建、借用或购买”来扩大其数字思维份额和客户群,上市时间的压力迅速增加了第三方集成的数量。

如果我们深入研究现代化在实践中是如何实现的,我们会发现它涉及流程技术——即自动部署和增强系统以实现持续交付和验证(流程),以及将遗留的 Web 应用程序发展为基于 API 的面向服务的架构(技术)。 此外,API 网关等 API 基础设施有助于通过强大的流量管理和安全功能确保有效部署到云环境中。

这里我们分析一个假设的数字化登陆案例,涉及两个阶段:

  1. 将传统系统和单片应用重新设计为 API 驱动的架构
  2. 使用 API 基础设施将系统发展为云平台

在我们的假设示例中,会议系统支持创建与会者帐户 ( create account )、查看可用会话 ( review session ) 和预订出席情况 ( book session ) 等功能。 客户通过网络浏览器与会议系统进行交互。 例如,预订会议:

在底层,客户与 Web应用进行交互,该应用程序向会议应用发送 API 调用。 会议应用使用 SQL 查询后端数据存储:

有多种需求推动着对传统会议系统进行现代化改造:

  1. 支持移动应用程序
  2. 将服务拓展至全球市场
  3. 降低当前托管系统的私有数据中心的运营成本

制定了一个高层计划:

  1. 使用 API 网关向消费者公开 Attendee 服务
  2. 使用服务网格重构会话功能(查看/预订)
  3. 将 Attendee 服务移至云

采取措施将 Attendee 组件重构为独立服务。 会议系统现在有两个流量接口:

  1. 顾客与会议系统(南北
  2. 会议系统和与会者系统(东西方

然后,部署 API 网关以促进可扩展、可维护、安全的流量管理,包括 SSL/TLS 终止、身份验证和速率限制:

接下来,提供服务网格,将传统会议系统中的会话功能重新用于新的会话服务。 服务网格提供细粒度的路由控制,确保可靠性,并高效地为服务到服务 API 通信代理流量,以方便查看和预订与会者的会话:

最后,是时候将 Attendee 服务和 API 网关迁移到云端了。 当组织从现有的本地基础设施迁移时,这种方法可以避免大规模的返工,同时还可以利用云原生服务:

为了将本入门书付诸实践并使您的旧版应用程序现代化,请查看《掌握 API 架构》电子书,以了解发展为基于 API 的系统的最佳实践。