跳转到节

什么是应用程序体系结构?

复制URL

应用程序体系结构描述了用于设计和构建应用程序的模式和技术。该体系结构为您提供了构建应用程序时要遵循的路线图和最佳实践,以便最终获得结构良好的应用程序。

软件设计模式可以帮助您构建应用程序。模式描述了问题的可重复解决方案。

模式可以链接在一起,以创建更通用的应用程序架构。您可以使用现有的设计模式,而不是完全自己创建架构,这也可以确保事情按照预期的方式运行。

作为应用程序架构的一部分,将同时提供前端和后端服务。前端开发关注应用程序的用户体验,而后端开发则侧重于提供对数据、服务和其他现有系统的访问,以使应用程序正常工作。

架构是构建应用程序的起点或路线图,但您需要做出架构中没有捕获到的实现选择。例如,第一步是选择编写应用程序的编程语言。

有许多编程语言用于软件开发。某些语言可用于构建某些类型的应用程序,例如用于移动应用程序的Swift或用于前端开发的JavaScript。 

与HTML和CSS一起使用的JavaScript目前是web应用程序开发中比较流行的编程语言之一。 

其他流行的编程语言包括Ruby、Python、Swift、TypeScript、Java、PHP和SQL等。构建应用程序时使用的语言取决于应用程序的类型、可用的开发资源和需求。 

历史上,应用程序是作为单个代码单元编写的,其中所有组件共享相同的资源和内存空间。这种建筑风格被称为整体。

现代应用程序架构通常是松散耦合的,使用微服务和应用程序编程接口(API)连接服务,为云应用程序提供基础。 

云计算开发是一种加快构建新应用程序、优化现有应用程序并跨私有云、公共云和混合云提供一致开发和自动化管理体验的方法。

在决定为新应用程序使用哪个应用程序架构时,或者在评估当前架构时,请从确定战略目标开始。

然后,您可以设计支持您的目标的体系结构,而不是首先选择一个体系结构并尝试使应用程序适合该结构。 

考虑您希望发布更新以满足客户或运营需求的频率,以及业务目标或开发需求所需的功能。 

快速向客户提供新服务和新功能的能力是公司能够提供的关键竞争优势之一。更快的开发可以让企业更频繁地发布新功能,并在发现漏洞后立即推出更新。

有许多不同类型的应用程序体系结构,但根据服务之间的关系,目前最突出的是:单片和N层体系结构(紧密耦合)、微服务(解耦)、事件驱动体系结构和面向服务的体系结构(松散耦合)。

分层或N层体系结构是一种传统的体系结构,通常用于构建本地和企业应用程序,并且经常与遗留应用程序相关联。

在分层体系结构中,有几个层或层,通常是3层,但可以有更多层组成应用程序,每个层都有自己的责任。 

层有助于管理依赖关系和执行逻辑功能。在分层体系结构中,层是水平排列的,因此它们只能调用下面的层。 

一个层既可以只调用它正下方的层,也可以调用它下方的任何层

与遗留系统相关的另一种体系结构类型是一个单一应用程序堆栈,其中包含该应用程序中的所有功能。这在服务之间的交互以及如何开发和交付服务方面是紧密耦合的。 

更新或扩展单个应用程序的单个方面对整个应用程序及其底层基础结构都有影响。 

对应用程序代码的单个更改需要重新发布整个应用程序。因此,更新和新版本通常每年只能发生一次或两次,并且可能只包括常规维护,而不是新功能。 

相比之下,更现代的体系结构试图通过功能或业务能力来划分服务,以提供更大的灵活性。

微型服务既是一种体系结构,也是一种编写软件的方法。通过微服务,应用程序被分解成最小的组件,相互独立。每个组件或流程都是一个微服务。

微服务是分布式和松散耦合的,因此它们不会相互影响。这对动态可伸缩性和容错都有好处:单个服务可以根据需要进行扩展,而不需要繁重的基础设施,或者可以在不影响其他服务的情况下进行故障切换。

使用微服务架构的目标是更快地交付高质量的软件。您可以同时开发多个微服务。而且,由于服务是独立部署的,因此在进行更改时,您不必重新构建或重新部署整个应用程序。 

这导致更多的开发人员同时处理各自的服务,而不是更新整个应用程序,从而减少了开发时间,并能够更频繁地发布新功能。

连同API和开发运营团队、容器化微服务是云应用程序的基础。

对于事件驱动系统,事件的捕获、通信、处理和持久性是解决方案的核心结构。这与传统的请求驱动模型不同。

事件是指系统硬件或软件的任何重大事件或状态变化。事件源可以来自内部或外部输入。

事件驱动架构支持最小耦合,这使得它成为现代分布式应用程序体系结构的一个很好的选择。

事件驱动架构由事件生产者和事件消费者组成。事件生成器检测或感知事件,并将事件表示为消息。它不知道事件的使用者或事件的结果。

检测到事件后,它通过事件通道从事件生产者传输到事件消费者,事件处理平台在事件通道中异步处理事件。

事件驱动的体系结构可以基于发布/子模型或事件流模型。

发布/订阅模型基于对事件流的订阅。使用此模型,在事件发生或发布后,会将其发送给需要通知的订阅者。

这与事件消费者不订阅事件流的事件流模型不同。相反,它们可以读取流的任何部分,并可以随时加入流。

事件从物联网(IoT)设备、应用程序和网络等事件源发生时被捕获,从而允许事件生产者和事件消费者实时共享状态和响应信息。

面向服务的体系结构(SOA)是一种成熟的软件设计风格,类似于微服务体系结构风格。 

SOA将应用程序构造为离散的、可重用的服务,这些服务通过企业服务总线(ESB)进行通信。 

在此体系结构中,每个围绕特定业务流程组织的单个服务都遵循通信协议(如SOAP协议、ActiveMQ或Apache Thrift),并通过ESB平台公开自己。总之,通过ESB集成的这套服务被前端应用程序用来为业务或客户提供价值。

云计算应用程序还有很多工作要做。

Red Hat的解决方案通过将单片应用程序分解为微服务、对其进行管理、协调和处理其创建的数据来帮助您提高业务灵活性,以帮助您的团队更快地向客户提供高质量的解决方案。 

当您创建新的业务应用程序时,您可以考虑未来,构建敏捷的并且易于扩展云计算应用程序-并从一开始就将其与其他业务集成。

观看这个网络研讨会系列从专家角度了解如何在Red Hat®OpenShift®上使用企业级数据平台构建、运行、部署应用程序并使其现代化。

没有必要彻底检修现有系统以获得有意义的好处。通过开源、开放标准和我们多年的经验,我们可以帮助您找到适合您的组织的基于微服务的解决方案。

通过我们的开源产品组合,包括Red Hat®Enterprise Linux®红帽OpenShift、和Red Hat应用程序服务我们认为,Red Hat具有独特的优势,可以与那些必须进行变革以在快节奏、软件驱动的市场中竞争的公司合作。

继续阅读

第条

有状态与无状态

某个东西是有状态的还是无状态的取决于记录与它的交互状态的时间以及该信息需要如何存储。

第条

什么是Quarkus?

Quarkus是一个Kubernetes-native Java堆栈,用于Java虚拟机(JVM)和本地编译,专门为容器优化Java。

第条

什么是无服务器?

Serverless是一种云计算开发模型,允许开发人员构建和运行应用程序,而无需管理服务器。

有关云应用程序的更多信息

产品

一个企业应用程序平台,具有一套统一的测试服务,可根据您选择的基础设施将应用程序推向市场。

资源

电子书

云主动与混合云:战略指南

播客

《命令行英雄》第九季第八集:
“所有人现在都在一起”

电子图书

云计算应用程序的路径

培训

免费培训

使用微服务架构开发云计算应用程序