什么是软件堆栈?
软件堆栈是应用程序运行所需的程序或组件的集合。它类似于Network 的 OSI 模型,它包含七层,每一层协作在互联 上传输数据。软件堆栈也不例外。在这里,每个组件在应用程序执行中都起着至关重要的作用。
软件堆栈
软件堆栈的复杂性取决于应用程序的功能。这意味着它可以包括来自云提供商/SaaS 供应商的组织的自定义本地资源或服务/解决方案。
软件堆栈的可定制性意味着没有固定的标准或方法。但是,软件堆栈旨在为应用程序开发、操作、交付和维护提供必要的功能集。软件堆栈可以简单到由操作系统、编程语言工具、数据库和应用程序组成,也可以通过添加更多组件(如计算、 络、用户界面、虚拟化和抽象物理资源)而变得复杂。
不同的软件堆栈层
由于每个组件都有不同的功能需要满足,因此软件堆栈可以大致分为三层。
表示层: 表示层处理通过基于 Web 的应用程序门户或 站访问的用户界面。
逻辑层: 逻辑层负责两个重要任务:
使用业务规则和应用程序逻辑满足应用程序请求。
在表示层和数据层之间传输数据。
数据层:最后,我们有一个处理应用程序服务器端方面的数据层。它将信息传递给逻辑层,然后根据应用程序和业务规则进行计算,然后再将其发送到表示层。
您可以对每一层使用不同的技术来实现其预期目标。例如,表示层需要 HTML5、CSS和 JavaScript等前端技术。同样,数据层也可以选择MongoDB、MySQL等数据库技术。至于逻辑层,可以选择Python、Java、C#等编程语言进行编码。
开发人员不必专注于应用程序开发的各个方面。任何应用程序开发主要分为两个组件:后端和前端。一些开发人员专注于后端开发,而另一些则专注于前端开发。但是,全栈开发人员可以两者兼得。您可以将应用程序的前端视为表示层。它侧重于用户体验和界面,需要使用前端技术进行开发。后端开发人员创建逻辑层,该层使用后端编程语言和工具与表示层交互。
流行的软件堆栈
市场上有许多成熟的软件堆栈。一些受欢迎的包括:
MEAN and MEVN
MEAN 代表 MongoDB、Express、Angular 和 Node.js。它是一个现代 Web 开发堆栈。它是独一无二的,因为它不依赖于任何操作系统,这要归功于 Node.js,一个服务器端脚本平台。其他组件包括MongoDB、NoSQL 文档数据库和用于前端开发的 Angular.JS。这里,Express.JS 是 Node.js 的 Web 框架。
MEVN
MEVN 是 MEAN 的流行替代品。在这里,Vue.js 是一个轻量级、简约的 JavaScript 框架,它取代了 Angular.js。由于其简约的方法,MEVN 是高度可定制的,但依赖于由其 区开发和管理的第三方插件。
软件堆栈与技术堆栈
技术堆栈覆盖的范围比软件堆栈更大,因为它包括信息技术 (IT) 生态系统中的硬件和软件组件。这意味着技术堆栈包括部署和管理应用程序所需的所有内容。技术堆栈可以包括:
贮存
联
中间件
数据库
硬件
软件组件
组织可以使用不同的技术堆栈来管理和部署应用程序。
存储堆栈:服务器堆栈包括数据库软件、运行时环境和 Web 服务软件。
云基础设施堆栈:云基础设施堆栈是最灵活的,因为它支持通过附加组件添加更多功能,例如安全、监控、分析等。在其核心,云基础设施 slack 由一个平台和抽象的基础设施、服务和应用程序组成。
服务器堆栈: 另一方面,存储堆栈包括使用服务器软件在服务器上运行的虚拟化和 络组件。
营销堆栈: 营销堆栈由内容营销系统(CMS)、客户关系管理软件(CRM)、跟踪解决方案、分析解决方案和电子邮件平台组成。
经常问的问题?
问:软件堆栈是否可定制?
答: 软件堆栈旨在为开发人员开发、交付和操作应用程序提供必要的功能集。它是可定制的,可以简单也可以复杂。
问:核心软件堆栈组件是什么?
答: 尽管软件堆栈是可定制的,但它确实具有核心组件。它包括数据库、编程语言支持工具、操作系统和应用程序。
问:什么是单一软件堆栈?
答:单一软件堆栈由单一供应商开发和管理。这意味着软件堆栈是生态系统的一部分,提供效率但不灵活。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!