All Products
Search
Document Center

Elastic Compute Service:Migrate x86 applications to YiTian ECS instances

Last Updated:May 15, 2026

Migrate x86 applications to Yitian 710-based ECS instances (g8y, c8y, r8y) for improved compute, storage, and network performance.

Background

What are YiTian ECS instances?

YiTian ECS instances are ECS instances based on the Yitian 710 ARM architecture. They use chip-level fast-path acceleration to enhance compute, storage, and network performance. They suit scenarios such as cloud-native applications, video encoding and decoding, high-performance computing (HPC), CPU-based machine learning, and game services.

Note

Instance families based on the Yitian 710 include g8y, c8y, and r8y. For instance types and performance metrics, see:

Why migrate?

YiTian ECS instances use the ARM architecture, which differs from x86. To deploy x86 source code on a YiTian instance, you must recompile it and apply architecture-specific optimizations.

Migration steps

Migrating an application from x86 to YiTian involves two steps:

  1. Pre-migration preparation

    Plan the operating system, base software, and hardware resources. Check your code for x86-specific assembly instructions or hardware dependencies. Verify ARM versions of third-party libraries and run compatibility tests.

  2. Software compilation and migration

    Install the appropriate compiler and software versions for your programming language, then recompile.

Migration scenarios

Software migration typically involves two scenarios:

  • Source code software: Software you developed or enhanced based on open source projects. The languages fall into two categories:

    • Compiled languages: Languages such as C++ and Go compile into architecture-specific binaries and require recompilation after migration. See Make/CMake build files and C/C++ language migration.

    • Interpreted languages: Languages such as Java and Python produce architecture-independent bytecode and can theoretically run cross-architecture. However, if a native library is involved—for example, a Java application calling a C dynamic-link library through JNI—the application becomes architecture-dependent and must be recompiled. See Java language migration and Python language migration.

  • Open source software: Software downloaded from open source communities without modifications, or software included in your OS ecosystem. Most open source software already supports the YiTian ARM platform and can be installed directly from your OS package manager. See Open source software migration.

Migration procedure

Prepare the required environment resources, including the ECS instance, operating system, and base software, then follow this procedure:

Step 1: Create a YiTian ECS instance

See Create a custom instance. Note the following parameters:

Parameter

Description

Instance type

  • g8y (Preferred)

  • c8y

  • r8y

Image

  • Alibaba Cloud Linux

    • Alibaba Cloud Linux 3.2104 LTS 64-bit for ARM (Preferred)

    • Alibaba Cloud Linux 3.2104 LTS 64-bit for ARM MLPS 2.0 Level 3 compliant edition

  • Anolis OS

    • Anolis 8.8 64-bit for ARM (RHCK)

    • Anolis 8.8 64-bit for ARM (ANCK) MLPS 2.0 Level 3 compliant edition

    • Anolis 8.8 64-bit for ARM (ANCK)

    • Anolis 8.6 64-bit for ARM (RHCK)

    • Anolis 8.6 64-bit for ARM (ANCK)

    • Anolis 8.4 64-bit for ARM (RHCK)

    • Anolis 8.4 64-bit for ARM (ANCK)

    • Anolis 7.9 64-bit for ARM (RHCK)

    • Anolis 7.9 64-bit for ARM (ANCK)

  • Ubuntu

    • Ubuntu 22.04 64-bit for ARM

    • Ubuntu 20.04 64-bit for ARM

    • Ubuntu 18.04 64-bit for ARM

  • CentOS 7.9 64-bit for ARM

    Note

    CentOS 7 has reached EOL. Not recommended.

  • Debian

    • Debian 11.5 64-bit for ARM

    • Debian 11.2 64-bit for ARM

    • Debian 10.13 64-bit for ARM

      Note

      Debian 10.13 has reached EOL. Not recommended.

Step 2: Migrate software

The following table lists recommended versions for compilers, runtime libraries, and applications. Install as needed.

Category

Software

Recommended version

Description

Compiler

GCC

gcc 10.2.1

Use GCC 10 or later for significant performance improvements.

LLVM

LLVM 13/clang 13

  • Requires glibc 2.17 or later.

  • Uses libstdc++ (from GCC 6/9 or later) as the C++ runtime library.

  • Depends on LLVM 13 and gcc-c++ RPM packages.

Glibc

glibc 2.32

None

JDK

Dragonwell 11 or OpenJDK 11

Dragonwell is preferred for better performance and support.

Golang

go 1.18+

The Go SDK is continuously optimized for ARM. Use the latest version:

  • Go 1.16 improves ARM atomic operation performance and data copying.

  • Go 1.18 passes parameters in registers instead of on the stack, providing a 10% performance boost on ARM.

Python

3.8

Python 2.7 reached EOL on January 1, 2020. Python 3.6 reached EOL on December 23, 2022. Use Python 3.7 or later.

PHP

7.4+

Community-supported

Container

K8s

K8s 1.22 Containerd 1.5.0+

Community-supported

Web application

Nginx

Use the version included with the OS.

Maintained by the OS distributor

httpd

Use the version included with the OS.

Maintained by the OS distributor

NodeJS

Use the version included with the OS.

Maintained by the OS distributor

Database

MySQL

Use the version included with the OS.

Maintained by the OS distributor

Redis

Use the version included with the OS.

Maintained by the OS distributor

Big data

Hadoop

Hadoop 3.3.1

Community-supported

Spark

Spark 3.2

Community-supported

Hive

Hive 3.1

Community-supported

ElasticSearch

ES 7.12

Community-supported

Others

Gromacs

Latest version

Community-supported

BWA

Latest version

Community-supported

Gatk

4.3.0.0

Community-supported

Step 3: Compile and build

Compile and build your software based on the following guides:

References

Check the CPU architecture

Run uname -m or arch to check the CPU architecture. The output varies by architecture:

  • ARM: `aarch64`

    image

  • x86: `x86_64`

    image

Check detailed CPU information

Run lscpu to view detailed CPU information. The output varies by architecture:

  • ARM:

    image

  • x86:

    image

Check OS information

Run cat /proc/version to check the OS and compiler version. The output varies by architecture:

  • x86:

    image

  • ARM:

    image