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.
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:
-
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.
-
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 |
|
|
Image |
|
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 |
|
|
|
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:
|
|
|
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:
-
Source code migration
-
Open source software migration
Use open source software such as Nginx, MySQL, Redis, TensorFlow, and PyTorch on YiTian ECS instances.
References
Check the CPU architecture
Run uname -m or arch to check the CPU architecture. The output varies by architecture:
-
ARM: `aarch64`

-
x86: `x86_64`

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

-
x86:

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

-
ARM:
