Module 04 · Software Architecture, Design, and Patterns
Application Deployment Environments应用部署环境
学习目标
观看完本视频后,您将能够:
- 列举不同类型的预生产环境并阐明其目的;
- 区分生产环境与其他应用环境;
- 对比并分析不同的部署选项。

什么是应用环境?
应用环境 是运行应用所需的硬件和软件资源的组合。具体包括:
- 应用代码和/或各个组件或模块的二进制可执行文件;
- 运行应用所需的软件栈,例如依赖的模块、库、第三方应用、中间件,以及操作系统;
- 网络组件和基础设施;
- 物理或虚拟硬件,包括计算、处理、内存和存储资源。

预生产环境类型
应用环境会根据应用生命周期的不同阶段有所不同。预生产环境是应用在准备生产环境时所处的各种平台。常见的预生产环境包括:
- 开发环境(Development)
- 质量保证环境(QA)
- 预发布环境(Staging)

1.开发环境(Development)
开发环境是应用程序正在被积极编码的环境。很多时候,它仅仅是开发者的工作站。
2.质量保证环境(QA)
质量保证(QA)环境,也称为测试环境,是让 QA 团队测试应用组件的地方,确保代码和功能符合质量标准。
3.预发布环境(Staging)
预发布环境是尽可能接近生产环境的环境,但不面向最终用户。它用于验证应用在接近实际使用环境中的表现,确保生产环境部署前没有问题。
生产环境
生产环境(Production) 是应用运行的实际环境,包含硬件和软件的完整解决方案。生产环境用于服务所有的最终用户。
与预生产环境不同,生产环境必须考虑应用的负载,因为这是面向大量用户(可能是成千上万或数百万用户)的环境,特别是在企业级应用中。
此外,生产环境还需要考虑非功能性需求,如安全性、可靠性和可扩展性,因此比预生产环境更加复杂。

生产环境的基础设施
部署选项
有多种选项可供选择来部署应用环境。以下是几种常见的部署方式:
1.本地部署(On-Premises)
在 本地部署 中,系统及其基础设施位于组织的物理位置,通常会放置在防火墙后以确保安全。
- 防火墙可防止未经授权的访问或数据传输。
- 如果一个组织需要对应用程序及其使用的数据进行更高的安全性或控制,它可能会选择本地部署。
- 本地部署时,组织负责系统、硬件、相关基础设施和应用运行所需的维护。
- 与云部署相比,本地部署通常成本更高。

2.云部署(Cloud Deployment)
云部署有三种主要模型:公有云、私有云 和 混合云。

a.公有云(Public Cloud)
公有云 是指在云服务提供商的硬件上,通过开放的互联网来使用应用的支持基础设施。
- 这些硬件和相关服务与其他公司共享。
- 公有云的主要提供商包括:
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
- IBM Cloud
- 公有云因其可扩展性和成本效益而广泛使用。
b.私有云(Private Cloud)
私有云 是为单一组织专门配置的云基础设施。
- 云基础设施可以在本地部署,也可以由服务提供商拥有、管理和运营。
- 例如,AWS 也可以作为私有云服务提供商。
- 私有云的主要优势是更高的安全性,并且可以根据需求完全定制。
c.混合云(Hybrid Cloud)
混合云 是结合了公有云和私有云的优势,两者无缝协作。
- 混合云模型可以优化公有云和私有云的成本、安全性、可扩展性和灵活性。
小结
在本视频中,您学习了:
- 应用环境 包括:开发环境、测试或 QA 环境、预发布环境和生产环境。
- 生产环境 需要考虑负载、安全性、可靠性和可扩展性等非功能性需求。
- 应用环境可以选择部署在传统硬件上的本地环境,也可以部署在公有云、私有云或混合云平台上。
这些不同的部署选项为应用程序提供了灵活的选择,帮助确保应用能够在合适的环境中运行,并满足用户和组织的需求!
