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 is required. Recommended base images include
debian:10,ubuntu:20.04,centos:8, or later versions. Thealpineimage is not supported.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 makes DevPod ideal for storing important files, such as model weights and training data, especially for AI development. Files outside the /mnt path are stored in local storage and may be lost if the instance restarts.
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 runtime environment of your current DevPod instance, including code, dependencies, and configurations, into a Docker image. You can then push it to Alibaba Cloud Container Registry (ACR) for storage and reuse.
Limits:
Image building can only be performed on DevPod instances that are in the running state.
The ACR instance must be in the same region as the DevPod instance. Although ACR Personal Edition supports cross-region creation, we strongly recommend using an instance in the same region to avoid network latency and push failures.
ACR edition selection
When you save an image, you can choose ACR Personal Edition or Enterprise Edition.
Feature | ACR Personal Edition | ACR Enterprise Edition | Recommended Scenario |
Fee | Free | Billed by instance type | Personal Edition is suitable for individual learning and feature validation. Enterprise Edition is suitable for production environments. |
Network Access | Public network | VPC internal network | Enterprise Edition provides higher security and more stable network access through an internal network. |
Performance | Limited by public bandwidth | High-speed internal network transfer | Enterprise Edition offers faster speeds and a higher success rate when pushing or pulling large images (such as >10 GiB). |
Prepare an ACR instance
Personal Edition: Go to the ACR console and ensure that you have an active Personal Edition instance in the same region as your DevPod.
Enterprise Edition: Go to the ACR console. Create or ensure that you have an Enterprise Edition instance, a namespace, and an image repository 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 the created ACR instance is located (must be the same as the DevPod region).
ACR Namespace
Select from the created namespaces.
ACR Image Repository
Select the target repository (must belong to the selected namespace).
Image Name (Version)
Customize the image tag, such as
v1.0orlatest.Custom Excluded Paths
You can specify directories not to be packaged (such as
/data/cache) to prevent sensitive data leakage or reduce the image size. The system automatically excludes:/.function_ai,/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
Comparison 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.