简化工作流:DigitalOcean App Platform 正式支持环境管理

作为开发者,DigitalOcean 的团队同样热爱构建各种各样的应用,但也深知随着应用组合不断增长,管理它们会变得越来越复杂。生产服务、staging 环境和新功能分支部署之间的界限可能变得模糊不清。快速识别哪些应用属于哪个用途,并一眼看清所有“生产”应用,已成为一项重大的组织挑战。

DigitalOcean 近期宣布一种全新的强大方式来应对这种复杂性:​**DigitalOcean App Platform (应用托管平台)现已支持环境管理(Environment Support)**​,该功能基于 DigitalOcean Projects 实现。同时,我们还推出了 App 克隆(App Cloning) 功能,只需点击几下即可复制你的应用。

通过这项新功能,你可以明确地为资源分组(即 Projects)打上特定环境标签,例如开发、Staging 或 生产,然后将你的 App Platform 应用分配到这些项目中。这样一来,你就能在控制面板或通过命令行(CLI)获得一个高层级、可筛选的全局应用视图。

如果你还没有使用过 DigitalOcean AppPlatform。我们在这里简单介绍一下。

DigitalOcean App Platform 是什么?

如果你熟悉 AWS,可以把 DigitalOcean App Platform 理解为 “AWS App Runner + Elastic Beanstalk 的简化融合版” ——一个真正开箱即用、无需配置基础设施的全托管应用平台。

就像你在 AWS 中使用 App Runner 从 GitHub 直接部署服务、或用 Elastic Beanstalk 上传代码自动运行 Web 应用一样,App Platform 允许你只需连接 Git 仓库(或上传代码),它就会自动完成构建、部署、扩缩容、HTTPS 配置、日志收集和健康监控——完全无需管理服务器、容器、负载均衡器或 CI/CD 流水线。

但它比 AWS 更进一步简化:

  • 没有 VPC、安全组、IAM 角色等底层概念;
  • 数据库、后台 Worker、前端静态站点和 API 服务可以定义在同一个应用配置中,一键部署为完整系统;
  • 通过 Projects 原生支持环境(Development/Staging/Production)分组,类似 Beanstalk 的 Environments,但集成更直观。

一句话总结来讲就是:App Platform 就像是 DigitalOcean 为你打造的“无需配置的 PaaS”——如果你曾希望 Elastic Beanstalk 能再简单一点,或者 App Runner 能直接支持数据库和多组件协同,那这就是你要的体验。

适合希望聚焦业务代码、快速上线、避免运维复杂度的团队,尤其是从 AWS 迁移或寻找更轻量替代方案的开发者。

环境管理功能的核心

逻辑简单却非常有效:

  • Project 是你资源的“容器”。你可以将 Droplet、负载均衡器、数据库和 App Platform 应用等资源归入同一个 Project。
  • Project 现在可以分配一个环境标签​。该标签正式定义了该项目的用途。
  • App Platform 应用会被分配到某个 Project 中。

通过将这三者结合,你就能将应用与特定环境关联起来,从而实现更清晰的组织结构、更精准的成本管理,以及更强大的脚本编写和自动化能力。

在云后台页面中配置环境

你可以在 DigitalOcean 控制面板中直接完成全部操作。

当你创建一个新项目时(从主仪表盘点击 “New Project”),会看到一个新的 “Environment” 下拉菜单。在这里,你可以选择​​ Development、Staging 或 Production​,以定义该项目的角色。

项目创建完成后,在 App Platform 应用创建向导中只需选择该项目即可。该应用的所有资源现在都会与这个带有环境标签的项目关联。

使用 doctl 管理环境

对于习惯在终端工作的开发者,整个流程也完全支持 DigitalOcean 的命令行工具 ​doctl​。

下面我们逐步演示完整的终端操作流程。

步骤 1:创建一个带环境标签的 Project

首先,我们创建一个新项目。doctl projects create 命令现在新增了 --environment 参数,可接受 Development、Staging​​​ 或 Production​。

# 创建一个用于staging环境的新项目
$ doctl projects create --name "saas-staging-project" \
  --purpose "Staging environment for our main SaaS app" \
  --environment "Staging"

# 输出示例
ID                                      Owner UUID                              Owner ID    Name                    
Description                                     Purpose                                   Environment    Is Default?    
Created At              Updated At
c4f2b0a8-6f17-4e6f-9b8f-1a2b3c4d5e6f    a34997bf-6ff4-4aa1-bb9f-4e4dd08ea790    8198484     saas-staging-project    
Update your project information under Settings    Staging environment for our main SaaS app    Staging        false          
2025-11-10T14:30:00Z    2025-11-10T14:30:00Z

请记下这个新项目的 ID(例如 c4f2b0a8-…)。

步骤 2:创建应用并将其分配到该项目

接下来,在创建 App Platform 应用时,使用 --project-id 参数将其分配到刚刚创建的项目中:

# 基于配置文件创建新应用,并分配到指定项目
$ doctl apps create --spec /path/to/my-staging-app.yaml \
  --project-id "c4f2b0a8-6f17-4e6f-9b8f-1a2b3c4d5e6f"

# 输出(已精简)
ID                                      Spec Name       Default Ingress    ...    Created At
01c03d96-43bb-4da9-ba54-0b215c44a498    saas-staging    ...                     2025-11-10T14:32:15

现在,这个新应用(ID 为 01c03d96-…)已在组织层面与 “Staging” 环境关联。

步骤 3:查询已部署应用所属的环境

如何查找一个已部署应用的环境?虽然这需要两次 API 调用(先获取应用的 project_id,再获取该项目的环境),但你可以轻松地在命令行中用 doctljq 将它们串联起来。

以下是一个单行命令,输入应用 ID,即可输出其所属项目和环境的摘要信息:

APP_ID="01c03d96-43bb-4da9-ba54-0b215c44a498"; doctl projects get $(doctl apps get "$APP_ID" -o json | jq -r '.[0].project_id') -o json | jq -r --arg APP_ID "$APP_ID" '.[0] | "App ID: \($APP_ID)\nProject: \(.name)\nEnvironment: \(.environment)"'

输出结果如下:

App ID: 01c03d96-43bb-4da9-ba54-0b215c44a498
Project: saas-staging-project
Environment: Staging

这样,你就能在终端中快速、可脚本化地确认任意应用的所属环境。

使用 App 克隆功能加速工作流

配合另一项新功能——​**App 克隆(App Cloning)**​,环境管理变得更加轻松。这项功能是环境标签化 Project 的完美搭档,可让你快速复制应用,快速搭建新环境。

你现在可以基于现有应用创建一个全新的应用。只需进入原应用的主页,点击 “Actions” 菜单,选择 “Clone app”。

系统会引导你进入一个创建向导,其中已预填充原应用的所有设置,包括组件、配置和未加密的环境变量。

这个完全可自定义的模板允许你在克隆过程中修改新应用的任何属性,包括源代码、实例规格、构建命令、环境变量、数据中心区域、VPC 设置以及应用名称。

例如,若要快速搭建一个测试环境,你可以直接克隆生产应用,在 “Clone App” 向导中:

  • 将 Project 更改为你的 “Staging” 或 “Development” 项目;
  • 更新环境变量,使其指向开发数据库或 staging API 密钥;
  • 为新应用命名,例如 my-app-staging

这让创建用于开发、测试或功能分支的平行环境变得前所未有的快速和可靠。

尝试开始管理你的应用

App Platform 与支持环境标签的 Projects 深度集成,加上全新的 App 克隆工作流,标志着我们在简化复杂应用部署管理方面迈出了重要一步。你现在可以一目了然地看清每个应用的用途,有效避免代价高昂的误操作,并为 CI/CD 流水线构建更加健壮的自动化能力。

如需了解更多详情,请查阅 DigitalOcean 英文官网文档:App Platform 文档Projects 文档,或者咨询 DigitalOcean 中国区独家战略合作伙伴卓普云的技术专家 aidroplet.com

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值