DevPod is an online integrated development environment (IDE) provided by Function Compute. It provides a cloud-based development experience similar to a native Visual Studio Code (VS Code) environment. You can write, debug, and deploy code directly in the cloud without configuring a complex local environment. This topic describes the features of DevPod and explains how to configure and use DevPod in the Function Compute console.
Overview and advantages
As an integrated cloud development environment, DevPod provides the following core advantages:
Ready to use: Launch a cloud IDE with one click. No local configuration is required.
VS Code-like experience: Reduces the learning curve with a familiar interface and user experience.
Online collaboration: Allows team members to develop and debug in a unified environment.
Consistent environments: Ensures that your development, testing, and production environments are consistent.
Persistent storage: Stores core data independently from the instance to ensure data security and reliability.
Image building and reuse: Solidifies the development environment for fast deployments and easy sharing.
Limits
Note the following limits when you use DevPod:
Runtime support: DevPod currently supports only custom image runtimes.
Operating system: An AMD64-based Linux system with glibc 2.28 or later. Recommended base images include
debian:10,ubuntu:20.04,centos:8, or later versions.Pre-installed tools: The
curlcommand must be pre-installed.User permissions: The default user is
root.GPU compatibility: Function Compute GPUs use driver version 570.133.20, which corresponds to CUDA user-mode driver version 12.8. For optimal compatibility, we recommend that you use CUDA Toolkit 11.8 or a later version. The version must not exceed the CUDA user-mode driver version that is provided by the platform. For more information, see GPU driver version upgraded from 550.54.15 to 570.133.20.
Configure a DevPod in the console
Prerequisites
A function is created. For more information, see Create a function.
Procedure
Log on to the Function Compute console. In the left-side navigation pane, click Functions.
In the top navigation bar, select a region. On the Functions page, click the function that you want to manage.
On the function details page, click the Code tab, and then click Create DevPod.
In the DevPod interface, you can write and test function code and install third-party dependencies as needed.
Persistent storage
All DevPod instances mount a NAS directory at /mnt/<function_name>. Data in this directory persists even after the instance is destroyed. This feature makes DevPod ideal for storing important files, such as model weights and training data, especially for AI development.
DevPod enables the following environment variables by default:
HF_HOME=/mnt/<function_name>/hf
MODELSCOPE_CACHE=/mnt/<function_name>/modelscope
OLLAMA_MODELS=/mnt/<function_name>/ollamaPersistent storage has the following features:
It will not be included in the image during the creation process.
The content is retained even if the DevPod is deleted.
This feature is suitable for storing large model files to help control the image size.
Remotely debug HTTP services
DevPod lets you expose a locally running HTTP service through a proxy. This feature is useful for remote debugging or frontend integration testing.
Procedure
Start an HTTP service in the DevPod terminal. For example:
python -m http.server 9000Click Access Development Environment in the console to obtain the proxy address. The address uses the following format:
https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/Access the service at this address:
curl https://<devpod-id>.cn-<region>.ide.fc.aliyun.com/proxy/9000/
Notes
For frontend single-page applications (SPAs), such as those built with React or Vue that rely on absolute paths, static resources may fail to load. This issue occurs because of the proxy path prefix /proxy/9000/.
Build and save images
Image building and ACR integration
You can package the complete environment of a running DevPod instance, including code, dependencies, and configurations, into a container image. You can then push the image to Alibaba Cloud Container Registry (ACR) to solidify and reuse the environment.
Limits:
You can build images only on DevPod instances that are in the running state.
The ACR instance must be in the same region as the DevPod. ACR Personal Edition supports cross-region creation. However, to avoid network latency and push failures, we strongly recommend that you use an instance in the same region.
ACR edition selection
When you save an image, you can choose between ACR Personal Edition and Enterprise Edition.
Attribute | ACR Personal Edition | ACR Enterprise Edition |
Cost | Free | Billed based on the instance type (Billing overview) |
Network access | Accessed over the public network. No VPC configuration is required. | Must be in the same VPC as the DevPod. Accessed over the internal network for better security and stability. |
Performance and reliability | Affected by public bandwidth. Pushing large images (5 GiB or larger) may fail. | High-speed internal network transfer. Suitable for large images and production environments. |
Scenarios | Personal learning, feature validation, and small-scale testing. | Team collaboration, production deployments, high availability, and cross-region distribution. |
Prepare an ACR instance
Personal Edition: Go to the ACR console and make sure that an active Personal Edition instance is available in the same region as your DevPod.
Enterprise Edition: Go to the ACR console. Create or make sure that an Enterprise Edition instance, a namespace, and an image repository are available in the same VPC as your DevPod instance.
Build an image
In the console, click Export Image.
Set the ACR type to Personal Edition or Enterprise Edition, and configure the following parameters:
Configuration item
Description
ACR Region
Select the region where your ACR instance is located. This must be the same region as your DevPod.
ACR Namespace
Select one of your existing namespaces.
ACR Image Repository
Select the target repository. It must belong to the selected namespace.
Image Name (Version)
Specify a custom image tag, such as
v1.0orlatest.Custom Excluded Paths
Specify directories to exclude from packaging, such as
/data/cache. This can prevent sensitive data leakage and reduce the image size. The system automatically excludes/.function_aiand/usr/local/share/jupyter/labextensions.Note: Content in the NAS mount directory (
/mnt/<name>) is not packaged into the image.Click OK and wait for the image to be built and pushed.
Billing
A DevPod is a Function Compute (FC) function that is deployed to your account and has a name prefixed with _DEV_POD_. Therefore, you are charged for the following items:
Function Compute fees: Charges for function invocations and resource usage. For more information, see Billing overview.
NAS file storage fees: Charges for the mounted NAS file system. For more information, see Billing of General-purpose NAS file systems.
Additionally, the image building feature creates an FC function in your account to assist with the build process. You are charged for the corresponding function invocations.
After you finish using a DevPod, promptly delete it and manually clean up related resources, such as NAS, to avoid unnecessary charges.
DevPod vs. WebIDE
Dimension | WebIDE | DevPod |
Supported runtimes | Python, Node.js, PHP, and custom runtimes | Only custom image runtimes |
Interface areas | Four areas: resource manager, file editor, function operations, and command-line terminal | Three areas: resource manager, command-line terminal, and file editor |
Storage limits | 5 GB per user | Fewer than 100,000 changed files, with a total size of less than 5 GB |
Persistent storage | Dedicated Edition supports NAS and OSS | Built-in NAS mount at |
VPC access | Not supported in Serverless Edition. Supported in Dedicated Edition. | Based on the function configuration |
Image building | Not supported | Supports exporting images to ACR (Personal or Enterprise Edition) |
Remote debugging | Not supported | Supports debugging through an HTTP service proxy |
AI scenario support | Not specified | Optimized for AI scenarios with preset environment variables, such as |
Edition selection | Serverless Edition or Dedicated Edition | No separate editions. All instances are dedicated. |
Primary use | Lightweight online code editing, debugging, and dependency packaging | Containerized development, image building, and AI model development |
Billing method | Serverless Edition is free. Dedicated Edition is billed per instance. | Billed based on FC function usage and NAS storage costs |
Summary:
WebIDE is a lightweight online code editor that is suitable for quickly writing and debugging function code. It supports multiple runtimes and offers a free Serverless edition, which is similar to a cloud-based VS Code Lite.
DevPod is a powerful, containerized cloud development environment that focuses on custom image runtimes and provides advanced features, such as persistent storage, image building, and remote debugging. DevPod is ideal for AI model development and scenarios that require complex environment configurations. It combines a complete cloud container, a VS Code environment, and image building tools.