组织承担数字转型举措,尽可能利用技术来支持业务运营。因此,必须为由库存管理,采购行动,供应商管理,工资单,广告/销售广告,建筑空间管理和车辆舰队管理等组织开展的各种业务运营开发了许多申请。
即使在数字转换项目之前,组织也使用许多IT系统。这些可以是商业系统,可以在云VMS(例如AWS,Azure等)上部署在内部部署的数据中心或作为SaaS系统消费(例如Salesforce,NetSuite等)。此外,组织可能具有一些定制开发系统,用于某些特定的业务操作(例如,使用Spring Boot,.NET,GO等开发)。此外,组织可以具有多个数据库,包含有关不同实体和应用程序的信息。
虽然大多数这些系统可以与中央用户存储(例如LDAP / AD)连接以获取用户信息,但每个应用程序必须在提供其服务之前进行身份验证用户。这些系统中的每一个都将提供一些服务(例如API),并且必须从未授权和不受控制的访问中保护这些服务接口。此外,由于这些系统中的大多数不存在于隔离并且需要与其他系统交互,因此需要在部署内执行许多集成。最后,当部署变得更大,更复杂时,监视和故障排除任务变得越来越复杂。
作为数字转换计划的结果,有必要将这些不同的现有系统,数据存储,业务流程和物理实体(可能在可能的情况下集成并提供针对组织业务运营量身定制的无缝用户体验。如果我们参加超市链的一个例子,以下几乎是来自此类计划的可能使用案例很少:
最重要的是,应该可以向组织的IT平台引入新服务,并将那些与现有服务的努力集成。
现在让我们考虑一个通用架构,用于为这种数字转换计划构建IT平台(图1)。
> Figure 1: Architecture for digital transformation platform
让我们考虑这个平台的主要组成部分:
此图层在内部部署后端系统,基于文件的系统,数据存储和SAAS系统中执行所有集成活动。它可以执行协议桥接,消息转换,消息富集,内容验证,服务编排等,以便在后端系统之间实现集成流。
该层部署在内部网络中,并且应该可以使用安全连接(例如,VPN,受保护的端点等)以将未部署在数据中心内未部署的系统集成。通常可以根据需要缩放集成层的组件以匹配负载(例如,通过利用基础架构提供的基础设施提供的功能,例如Kubernetes Pod自动缩放和AWS自动缩放组)。此外,还可以根据分离业务服务和负载的要求部署多个集成群集。
API网关拦截到部署的传入流量,以强制执行安全性和其他策略以及捕获API使用统计信息。可以根据需要部署一个或多个API网关集群,以基于不同的客户端(例如,常规用户和合作伙伴)隔离API流量,并强制执行相关的网络安全策略(例如,将合作伙伴API网关限制为合作伙伴的IP范围)。
API网关通常部署在内部网络中,传入流量通过放置在DMZ内的负载均衡器路由到API网关。但是,还可以根据组织的策略在DMZ中部署外部面向API网关。类似于集成层,也可以通过利用基础设施提供的自动缩放功能来自动缩放API网关集群。
API管理平面有助于API发布,策略定义,应用程序注册,API订阅和API生命周期管理活动。该层与API网关群集交互,以便发布API定义并交换API授权信息。由于API管理层通常为API创建者提供Web门户,API用户和管理员,可能需要通过放置在DMZ内的负载均衡器来促进访问(例如,如果外部用户需要订阅API)。
IAM图层为整个部署提供用户管理,身份验证和授权(策略评估)函数。以下是IAM层可以提供与上述区域相关的一些特定功能:
通常,IAM图层也部署在内部网络中,并根据需要集群以满足可扩展性和高可用性要求。由于IAM图层为用户提供门户/接口,可能需要通过放置在DMZ内的负载均衡器提供外部访问。
一些业务运营需要多个步骤与用户进行许多交互。示例是选择供应商,批准大订单,处理客户投诉等。这些操作可能具有需要用户输入的一个或多个批准步骤或步骤。此类业务运营(或这些操作的部分)可能必须以标准工作流语言(如BPMN或BPEL)为模型的工作流实现。
BPM系统支持这些人面向工作流的部署,执行,管理和分析。部署BPM系统后,它可以通过集成层与其他业务系统和用户门户集成。此外,类似于任何其他业务系统,BPM系统还可以利用IAM层提供的SSO和其他IAM功能(例如,将用户分配给工作流任务)。
部署中的所有系统,包括API层,集成层,IAM层,BPM系统以及后端系统,应提供监控其行为的机制。这包括收集和分析日志,收集和总结运行指标和追踪多个系统的追踪消息。可观察性层通过从所有系统中收集日志,指标和痕迹并提供部署的统一视图来执行这些任务。因此,如果部署中出现问题,管理员不必单独检查每个系统,因为它们可以通过登录可观察性层来获取所有信息。
组织可以具有跨多个地理位置(例如,在多个州或国家)的用户基础。在这种情况下,可能需要在靠近客户端位置的多个数据中心或云区域中部署业务服务,以满足性能和规则性要求。这里讨论的体系结构可以在这种情况下扩展,以支持多个数据中心/云区域,如图2所示。在这种情况下,通常只有在其他数据中心中只能部署API网关集群和集成层集群。API管理平面,IAM层,BPM系统和部署在主数据中心中的可观察性层可以由所有其他数据中心使用。
> Figure 2: Extending the deployment across multiple data centers
随着API网关和集成组件处理部署的主要运行时负载,在大多数情况下,具有其他组件的单个部署不会影响性能。此外,具有单个管理和监视层自然地支持集中执行的这些任务。
到目前为止,我们已经讨论了一种可用于数字转换项目的架构。现在我们可以查看该架构如何用于构建业务应用程序。
开发业务应用程序时,我们可以首先考虑需要暴露的API。这可以在Open API规范中建模并在API层中部署。可以将API部署为原型,以便客户端应用程序开发人员可以开始测试它们并提供反馈。
然后我们可以专注于后端实现。通常,许多新应用程序可以使用现有的业务服务组成。在这种情况下,我们可以在集成层中实现新应用程序的大多数部分。如果新应用程序需要复杂的逻辑,除了集成之外,我们还必须在编程平台(例如,Spring Boot,Go,.NET .ED)中实现某些部分,并使用集成层将其与系统的其余部分集成。另一种选择是使用集成聚焦的编程语言,例如芭蕾舞女演员,因此可以在同一平台中实现复杂的逻辑和集成。
所有客户端应用程序和后端系统都可以使用IAM层执行身份验证(例如,对于客户端应用程序)和授权,而不实现每个应用程序中的这些功能。同样,所有应用程序都可以将日志,指标和痕迹发布到可观察性层,以便能够集中监控部署。最后,有必要维护CI / CD管道来构建,测试和部署与新应用程序相关的所有工件,从而可以在源控制系统中维护API定义,应用程序逻辑和集成工件,并通过受控部署流部署。
来源:
https://www.toutiao.com/i6974214573561889291/