All Products
Search
Document Center

Alibaba Cloud DevOps:Build clusters

Last Updated:Aug 20, 2026

Pipelines rely on a build cluster for tasks like code compilation and packaging. Flow provides managed public build clusters to help you quickly start your CI/CD process. You can also connect your own server resources to create self-hosted build clusters, which provide the flexibility to meet custom requirements for different business scenarios.

Build cluster comparison

Public build cluster

Managed VPC build cluster

Self-hosted build cluster

Instance source

Provided by Alibaba Cloud DevOps

Provided by Alibaba Cloud DevOps

Provided by the user

Region coverage

Singapore

Singapore

Depends on the user's hosts

Operating system

Linux

Linux

Linux/Windows/macOS

Network connection

Must connect over the public network to access resources such as code repositories, image repositories, artifact repositories, cloud hosts, and Kubernetes clusters.

Supports both public network and private VPC connections, depending on the user's VPC settings.

Depends on the user's host network settings.

Elasticity

Supports auto scaling. When multiple pipeline tasks run in parallel, each task has an independent container environment.

Supports auto scaling. When multiple pipeline tasks run in parallel, each task has an independent container environment.

No elasticity. Concurrent tasks may fail due to limited host resources.

Specifications

Multiple specifications are available: 1-core, 2-core, 4-core, 8-core, and 16-core.

Multiple specifications are available: 1-core, 2-core, 4-core, 8-core, and 16-core.

Not configurable. Depends on the user's host specifications.

Billing method

Billed based on pipeline core-minutes with a calculation factor of 1. For example, a 1-core instance running for 1 minute consumes 1 core-minute.

Billed based on pipeline core-minutes with a calculation factor of 0.8. For example, a 1-core instance running for 1 minute consumes 0.8 core-minutes.

Does not consume pipeline core-minutes. Self-hosted instances are not available on the Basic plan.

Migration scenarios

During the migration from the central site to a region site, choose a build cluster based on your migration progress. The billing methods in the preceding table apply to each option.

  • Stay on the central site: If you rely on the default public build clusters in China (Beijing), China (Hangzhou), and China (Hong Kong), keep your pipelines on the central site. These clusters are pre-configured by Alibaba Cloud DevOps, require no VPC setup, and provide the same Linux build environments that you already use.

  • Already migrated to a region site: Region sites do not provide public build clusters. You must create a managed VPC build cluster or connect your own machines as a self-hosted build cluster. A managed VPC build cluster requires your VPC to have public network access (bind an Internet NAT gateway and configure an EIP and an SNAT entry) so that Flow can pull build tasks and scheduling commands. Create the VPC and its vSwitch in the target region and verify the public network access before you create the cluster. Managed VPC build clusters are available only in specific regions and support auto scaling in the same way as public build clusters.

  • Self-hosted build clusters: Connect your own Linux hosts that can access the public network and have stable network connectivity. Build duration and concurrent tasks on a self-hosted build cluster do not consume your enterprise's build quota. Self-hosted instances are not available on the Basic plan.

Public build clusters

Public build clusters are pre-configured by Alibaba Cloud DevOps and can only connect to your code repositories, artifact repositories, image repositories, and other cloud resources over the public network.

Go to the Flow homepage and choose . On the Build Cluster Management page, you can see the public build clusters provided by Flow: the Singapore build cluster.

  • Each build task gets a new container environment, which is released when the task completes.

  • The build environment supports custom container image URLs. Alibaba Cloud DevOps provides a list of official common images, or you can specify your own image as the runtime environment.

  • You can specify the specifications of the build environment. The following options are available to meet the needs of large projects: SMALL_1C2G (30 GB disk space), MEDIUM_2C4G (30 GB disk space), LARGE_4C8G (50 GB disk space), XLARGE_8C16G (50 GB disk space), and XXLARGE_16C32G (50 GB disk space).

curl -s https://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/specified_container_checker/container_checker.sh | sh -s -- <image_url>

To increase the memory or CPU available to a build (for example, if a build task runs out of memory), go to the pipeline editor, click the target build task (for example, a Java or Node.js build task) to open its task settings panel, and set Build Environment specifications to a higher tier such as MEDIUM_2C4G or LARGE_4C8G.

If your dependent services use a whitelist, add the following IP addresses for Flow build instances:

Flow server public IP addresses

47.236.202.110, 8.219.58.226

Flow Singapore build cluster public IP addresses

47.236.13.43, 47.245.112.126, 172.30.0.0/16, 172.31.0.0/16, 172.32.0.0/16

Managed VPC build clusters

A managed VPC build cluster lets you run build tasks within your Virtual Private Cloud (VPC). This enables secure access to code repositories, artifact repositories, image repositories, and other private cloud resources. The entire process, from fetching code to deployment, can be completed within your VPC, ensuring data security and network isolation.

Note
  • Managed VPC build clusters have no pre-provisioned resources and must be created before use.

  • This feature is currently available in the following regions: Singapore.

Security benefits

For users with high network security requirements, a managed VPC build cluster provides the following benefits:

  • Attaches an elastic network interface (ENI) from your VPC to the build task at runtime.

  • Uses your VPC's network stack, enabling private network access.

  • Allows direct access to internal VPC resources, such as RDS, ECS, and self-managed middleware.

  • Prevents sensitive information from being exposed over the public network, enhancing overall security.

How it works

By creating a build cluster associated with your VPC, Flow can attach an elastic network interface (ENI) from your VPC when a pipeline build task runs. This connects the build environment to your private network. The task uses the VPC network stack, allowing it to access internal VPC resources such as databases, ECS instances, and self-hosted services. This meets requirements for high security and private network connectivity.

Create managed VPC build cluster

Prerequisites

Before you create a managed VPC build cluster, prepare the following resources:

  • An Alibaba Cloud VPC and a corresponding vSwitch.

  • Configured security group rules.

  • Your VPC must have public network access (bind an Internet NAT gateway and configure an EIP and an SNAT entry) so Flow can pull build tasks and scheduling commands.

Procedure

  1. Create a VPC service connection.

    1. Go to the Flow homepage and click .

    2. On the Service Connection Management page, click New Service Connection.

    3. In the dialog box that appears, select Virtual Private Cloud (VPC) as the service connection type and click Next.

    4. Configure the following parameters:

      • Enter a custom Service Connection Name.

      • Configure Service Authorization/Certificate.

      • Set the Scope for the service connection.

    5. After configuration is complete, click Create.

  2. Create the managed VPC build cluster.

    1. After creating the service connection, click Build Cluster Management in the left-side navigation pane.

    2. Switch to the Managed VPC Build Cluster tab and click New Build Cluster.

    3. Fill in the basic information:

      • Build Cluster Name: A custom name.

      • Tags: Used for classification and identification.

      • Visibility: Set whether the cluster is public to project members.

      • Members: Specify the members or roles that can use this build cluster.

    4. Click Next. On the VPC Association page, configure the following parameters:

      • Select a Region. This feature is available in China (Shanghai), China (Beijing), China (Shenzhen), and China (Hangzhou).

      • Select a VPC.

      • Configure a vSwitch and a security group.

      Ensure that the selected VPC can access the Alibaba Cloud DevOps website, code repositories, artifact repositories, image repositories, and other cloud resources.
  3. After the configuration is complete, click Save.

  4. Use and verify the cluster.

    After creating the cluster, select it as the execution environment for build tasks in your pipeline. If environment allocation gets stuck, check the following:

    • Whether the VPC has public network access. If the VPC lacks outbound public network access, Flow cannot deliver scheduling commands to the build environment. This typically shows up as being unable to add nodes to the cluster, or the task staying stuck in "Requesting environment" for a long time. To resolve this, bind an Internet NAT gateway to the VPC and configure the corresponding route so that the VPC has outbound public network access. For more information, see[public network](t120742.xdita#).

    • Whether the security group allows necessary outbound traffic.

    • Whether the service connection and RAM authorization are correct and valid. The account authorized in the service connection determines which VPCs are visible, so you can see only the VPCs and Enterprise instances that belong to that account. If the VPC list is empty or does not contain the VPC that you want, check whether the authorized account owns that VPC.

Use the build cluster

Go to the pipeline editor and, in the task settings, change the "Build Cluster" option to the VPC build cluster you just created. Save and run the pipeline. Flow automatically assigns a new build environment for the task and connects it to the associated VPC to complete the build and deployment.

Note

Managed VPC build clusters use compute resources from Alibaba Cloud DevOps, so their usage is billed based on core-minutes.

Self-hosted build clusters

If you have special requirements for your build environment, Flow allows you to connect your own machines as a self-hosted build cluster. You can use Alibaba Cloud ECS instances or other hosts. Flow uses containerized builds, scheduling pipeline tasks randomly to an instance in the self-hosted build cluster for execution in a suitable container environment.

Prerequisites

Ensure that your host meets the following requirements:

  • The host can access the public network.

    This is required for Runner installation callbacks, downloading build task dependencies, and other callback operations.
  • The host's operating system and architecture meet the following requirements:

    Linux

    • Supported Linux distributions: CentOS 6+, Ubuntu 16.04+, and Alibaba Cloud Linux 2/3.

    • Architecture: Supports Linux/amd64 and Linux/arm64 architectures.

    • Build environment: Supports Default VM environment.

    • Recommended configuration: 4-core 8 GB or higher.

    Windows

    • Supported Windows versions: Windows 2012, Windows 2016, Windows 2019, and Windows 2022.

    • Architecture: Supports Windows/amd64 architecture.

    • Build environment: Supports the Default VM Environment.

    macOS

    • Supported macOS versions: macOS Sonoma (14.0), macOS Ventura (13.0), and macOS Monterey (12.0).

    • Architecture: Supports macOS/amd64 and macOS/arm64 architectures.

    • Build environment: Supports the Default VM Environment.

Although you can technically connect an ECS instance that already runs production services (for example, MySQL or containerized applications) to a self-hosted build cluster without disrupting the existing services, Alibaba Cloud DevOps does not recommend reusing a production host as a build node. Build tasks can consume large amounts of CPU, memory, and I/O for short periods, which may cause performance fluctuations or unavailability of the existing services. Evaluate the resource isolation risk before reusing a production host this way.

Create self-hosted build cluster

  1. Go to the Flow homepage.

  2. Choose to go to the Self-hosted build cluster tab.

  3. Click New Build Cluster. Enter a Build Cluster Name and Tags, and then configure the Visibility and the Members who have permission to use this cluster.

  4. When you are finished, click OK to create the build cluster.

Connect a new node

  1. Go to the Flow homepage.

  2. Choose to go to the Self-hosted build cluster tab.

  3. Find the target build cluster and open its details page. Then click Add New Node.

Linux instance

You can connect a Linux instance by using one of the following methods: Install Runner Manually.

  • Install Runner Manually: Copy the Runner installation command and run it on the target machine. After a successful installation, the machine is automatically added to the cluster. Refresh the host list to see it.

    After running the installation command, the terminal outputs the full installation log. When the log shows service started and service status running, the Runner has been installed and started successfully. Example output:

    [INFO] arch=x86_64
    [INFO] version=v0.0.6
    [INFO] pkg_endpoint=http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com
    [INFO] tenant=be-yxctbiii2ml4aydisrlfozvk
    [INFO] register_token=VoiMCHPXXrdfSsxmxmUu
    [INFO] wonder_endpoint=https://gray-devops-build.aliyuncs.com
    [INFO] scan_interval=5
    [INFO] concurrency=50
    [INFO] runner_group_uuid=HY8UhW1PmS2hpw27
    [INFO] install yunxiao-runner v0.0.6
    [INFO] download yunxiao-runner from http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    [INFO] wget -t 3 -O /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    --2023-03-13 13:08:26-- http://agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com/runner-v0.0.6-linux-amd64.tar.gz
    Resolving agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com (agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com)... 59.110.185.37
    Connecting to agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com (agent-install-cn-beijing.oss-cn-beijing.aliyuncs.com)|59.110.185.37|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 13453535 (13M) [application/x-gzip]
    Saving to: '/tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz'
    
    /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64. 100%[====>] 12.83M  --.-KB/s    in 0.1s
    
    2023-03-13 13:08:27 (91.7 MB/s) - '/tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz' saved [13453535/13453535]
    
    [INFO] unpack downloaded package
    [INFO] tar -xvzf /tmp/aliyun/yunxiao/runner/runner-v0.0.6-linux-amd64.tar.gz -C /usr/local/share/yunxiao-runner
    ./
    ./v0.0.6/
    ./v0.0.6/runner
    [INFO] register tenant runner
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner register --url https://gray-devops-build.aliyuncs.com --token VoiMCHPXXrdfSsxmxmUu --tenant=be-yxctbiii2ml4aydisrlfozvk --workspace /root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner --scanInterval 5 --concurrency 50 --configPath /root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner/config --runnerGroupUUID=HY8UhW1PmS2hpw27 --autoUpgrade=true
    INFO[2023-03-13T13:08:27+08:00] [Register] options: {"URL":"https://gray-devops-build.aliyuncs.com","Token":"VoiMCHPXXrdfSsxmxmUu","Tenant":"be-yxctbiii2ml4aydisrlfozvk","Workspace":"/root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner","ScanInterval":5,"Concurrency":50,"RunnerGroupUUID":"HY8UhW1PmS2hpw27","ConfigPath":"/root/yunxiao/be-yxctbiii2ml4aydisrlfozvk/runner/config","InstanceId":"","InstanceName":"","AutoUpgrade":true,"UpgradeInterval":1200}
    INFO[2023-03-13T13:08:27+08:00] Runner config file not exists, generating...
    INFO[2023-03-13T13:08:27+08:00] bind to HY8UhW1PmS2hpw27
    INFO[2023-03-13T13:08:27+08:00] POST /api/v2/runner/register, time spent 0.19 s
    INFO[2023-03-13T13:08:27+08:00] register runner=a64e87f067fd496b9c946db45f2a144f
    INFO[2023-03-13T13:08:27+08:00] Runner register success.
    [INFO] install runner system service
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner install --tenant=be-yxctbiii2ml4aydisrlfozvk
    INFO[2023-03-13T13:08:27+08:00] service type linux-systemd
    INFO[2023-03-13T13:08:27+08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service,linux-systemd installed
    [INFO] start runner service
    [INFO] /usr/local/share/yunxiao/v0.0.6/runner start --tenant=be-yxctbiii2ml4aydisrlfozvk
    INFO[2023-03-13T13:08:27+08:00] service type linux-systemd
    INFO[2023-03-13T13:08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service started
    INFO[2023-03-13T13:08:00] Aliyun yunxiao runner-v0.0.6-be-yxctbiii2ml4aydisrlfozvk service status running
    [root@iZ2zecoxyny4bhymwfvdjmZ ~]#

Windows instance

You can connect a Windows instance by using one of the following methods: Install Runner Manually.

  • Install Runner Manually: On the Windows host, open PowerShell as an administrator and run the Runner installation command. After a successful installation, the machine is automatically added to the cluster. Refresh the host list to see it.

    The dialog displays the following PowerShell installation command example:

    New-Item -ItemType Directory -Force -Path $Env:TEMP\yunxiao-temp; Invoke-WebRequest -Uri https://agent-install-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/install_windows.ps1 -OutFile $Env:TEMP\yunxiao-temp\install.ps1;powershell -File $Env:TEMP\yunxiao-temp\install.ps1 -v 'v0.2.2' -e 'https://agent-install-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com' -t 'be-ibbxkclsin9onyk0lbzltxnt' -a 'HB7ko8rOjZwoRBZ3z7c5' -w 'https://pm08.devops.alibabacloudcs.com/flow_build' -s '5' -c '50' -r 'GvBc2wmfyeNas5Yk'

macOS instance

You can connect a macOS instance by using the Install Runner Manually method. On the macOS host, copy the Runner installation command and run it. After the Runner is installed successfully, the new machine is automatically added to the current cluster. Refresh the host list to view it.

Before running the installation command, verify that the node configuration meets the prerequisites. The installation command has a validity period. If it expires, obtain a new command.

Build cluster management

Go to the , find the target build cluster, and open its details page.

  • View the host list for the build cluster. The list displays information such as instance ID, IP address, hostname, OS/architecture, usage, Runner status, and installation progress.

  • Reinstall Runner: You can reinstall the Runner if its status is abnormal.

  • Remove Node: This only unbinds the node from the current build cluster. It does not delete the physical machine or uninstall the Runner.

  • Cluster Settings: Modify the build cluster's name, tags, and other settings.

  • Delete Cluster: This unbinds the nodes and deletes the cluster data. It does not delete the physical machines or uninstall the Runners.

Use self-hosted build cluster

Go to the pipeline editor and select the self-hosted build cluster created by your enterprise. When the pipeline runs, tasks are randomly scheduled to a build instance, and the corresponding container environment is started for execution. Build duration and concurrent tasks on a self-hosted build cluster do not consume your enterprise's build quota.

Note

When you use a self-hosted build cluster, the build environment is allocated to you for the duration of the task. You have full control over the environment and can customize its execution scripts.

Find which pipelines use a self-hosted build cluster

The Flow console does not support looking up which pipelines use a specific self-hosted build cluster, nor does it provide an API to query pipelines by cluster ID.

To manually check, open each pipeline in edit mode and inspect the runsOn field in its YAML. The format for a self-hosted build cluster is runsOn: group: private/<cluster ID>. You can find the cluster ID on the Self-hosted build cluster tab under Global Settings > Build Cluster Management. A pipeline that does not specify runsOn uses the public build cluster by default.

FAQ

Docker builds fail with a CoreCLR error or run out of memory in a public build cluster. What can I do?

Public build clusters do not support setting a separate memory limit for the Docker daemon. The only way to control the overall resources available to the build is to change the Build Environment specifications.

If your Docker build fails with a CoreCLR creation error, out-of-memory (OOM) error, or a similar memory-related error, first switch to a public build cluster with a higher Build Environment specifications tier. If the highest available tier still cannot meet your needs, use a self-hosted build cluster and connect your own Linux host, so that you can customize the host resources and the memory available to Docker.

My pipeline fails to request a build environment, or the specified image fails to pull. How do I troubleshoot this?

If you use Specify the container environment with a custom image and the pipeline fails to request a build environment (for example, the task is marked as failed or canceled shortly after being scheduled), the image most likely failed to pull. To troubleshoot:

  1. Run docker pull <image-address>:<tag> in a local Docker environment to confirm whether the image can be pulled successfully.

  2. If the pull fails, confirm that the image tag exists and is spelled correctly.

  3. Try switching to a known-good image version (for example, change dotnetcore:10.0 to 9.0) and rerun the pipeline.

  4. If the pipeline still fails after switching image versions, check your pipeline YAML configuration and your network whitelist settings.

If you use an official image, note that Alibaba Cloud DevOps replaces the build-steps-public-registry image repository address by region. If pulling an official image is slow or fails, check that the image address matches the region of the build cluster you selected.

Is the self-hosted build cluster restricted to specific regions? How do I use it in an unsupported region?

A self-hosted build cluster communicates with Alibaba Cloud DevOps over the public network and is not subject to the region restrictions that apply to managed VPC build clusters. As long as your host can access the public network, you can use a self-hosted build cluster in any region, including regions outside mainland China and regions where managed VPC build clusters are not available. No additional VPC peering configuration is required — you only need to ensure that the public network connection between your host and Alibaba Cloud DevOps is unobstructed.

References