YiTian Elastic Compute Service (ECS) instances that use the Arm-based YiTian710 CPU architecture significantly improve computing, storage, and network performance. You can migrate applications from x86 platforms to a YiTian ECS instance to obtain better cloud service experience. This topic describes the procedure, scenarios, and usage for migrating applications to a YiTian ECS instance.
Background information
YiTian ECS instances
YiTian ECS instances include ECS instances that use the Arm-based YiTian 710 CPU architecture. YiTian ECS instances perform fast path acceleration on chips to greatly improve storage performance, network performance, and computing stability. The instances are suitable for various scenarios, such as cloud native applications, video encoding and decoding, high-performance computing, CPU-based machine learning, and gaming services.
g8y, c8y, and r8y instance families use the Arm-based YiTian 710 CPU architecture. You can learn about instance types and metrics, such as computing, storage, network metrics by referring to the following topics:
Necessity for migration
YiTian ECS instances use the Arm architecture that is different from the x86 architecture. Before you deploy a program whose source code is developed for an x86 platform on a YiTian ECS instance, you must recompile the program and optimize the code as needed to improve performance.
Migration process
The process of migrating applications from an x86 platform to a YiTian ECS instance involves the following main steps:
Prepare before migration
Plan the operating system, select basic software, and configure hardware resources of the instance that you want to migrate. Check whether the code contains x86-related assembly instructions or hardware and feature dependencies and whether third-party libraries provide Arm versions. You also need to perform compatibility tests.
Compile and migrate software
Install compilers and software versions based on the programming language, and then recompile the code.
Migration scenarios
Software compilation and migration scenarios involve the following types of software:
Source code software: developed by developers or enhanced based on open source software. Most in-house software uses the following types of programming languages:
Compiled language: typically includes C++ and Go. These languages compile source code into architecture-specific binary files. The files must be recompiled after migration. For more information, see Use Make and CMake to build files and Migrate C or C++ code.
Interpreted language: typically includes Java and Python. Files compiled from source code in these languages are independent of architectures and can theoretically run across architectures. If a native library is introduced in an interpreted language, such as when a Java application uses Java Native Interface (JNI) to call a dynamic-link library that is developed in C, the application is related to an architecture and must be recompiled. For more information, see Migrate Java code and Migrate Python.
Open source software: downloaded from open source communities without modification or comes with operating systems. Most open source software is supported by the Arm-based YiTian platform. You can directly use open source software provided in operating systems. For more information, see Migrate open source software.
Procedure
Before you migrate software from the x86 platform to the YiTian ECS instance, prepare environmental resources, including the instance, operating system, and basic software. Perform the following steps:
Step 1: Create a YiTian ECS instance
For more information, see Create an instance on the Custom Launch tab. Take note of the parameters described in the following table.
Parameter | Description |
Instance family |
|
Image |
|
Step 2: Migrate software
Software to be migrated includes in-house software and open source software. The following table describes the recommended versions of compilers, runtime libraries, and applications. Install and use the software based on your business requirements.
Category | Software | Recommended version | Description |
Compilers | GCC | GCC 10.2.1 | We recommend that you 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 | We recommend that you use Dragonwell for better performance and support. | |
Golang | Go 1.18+ | SDKs for Go are optimized for Arm architectures. We recommend that you use the following versions:
| |
Python | 3.8 | Python 2.7 reached EOL on January 1, 2020. Python 3.6 reached EOL on December 23, 2022. We recommend that you use Python 3.7 or later. | |
PHP | 7.4+ | Supported by the community. | |
Containers | Kubernetes | Kubernetes 1.22 Containerd 1.5.0+ | Supported by the community. |
Web applications | NGINX | The version that comes with the recommended operating system | Maintained and supported by the operating system provider. |
HTTPd | The version that comes with the recommended operating system | Maintained and supported by the operating system provider. | |
NodeJS | The version that comes with the recommended operating system | Maintained and supported by the operating system provider. | |
Databases | MySQL | The version that comes with the recommended operating system | Maintained and supported by the operating system provider. |
Redis | The version that comes with the recommended operating system | Maintained and supported by the operating system provider. | |
Big data | Hadoop | Hadoop 3.3.1 | Supported by the community. |
Spark | Spark 3.2 | Supported by the community. | |
Hive | Hive 3.1 | Supported by the community. | |
Elasticsearch | ES 7.12 | Supported by the community. | |
Others | Gromacs | Latest version | Supported by the community. |
BWA | Latest version | Supported by the community. | |
Gatk | 4.3.0.0 | Supported by the community. |
Step 3: Perform post-migration compilation
Refer to the following guides to compile and build software based on your business requirements.
Migrate source code
Use open source software, such as NGINX, MySQL, Redis, TensorFlow, and PyTorch, on YiTian ECS instances.
References
View the CPU architecture
Run the uname -m
or arch
command to view the CPU architecture. The command output varies based on the architecture:
aarch64
indicates the Arm architecture.x86_64
indicates the x86 architecture.
View detailed CPU information
Run the lscpu
command to view detailed CPU information. The command output varies based on the architecture.
Arm
x86
View operating system information
The operating system information differs between x86 and Arm architectures. Run the cat /proc/version
command to view the operating system information and compiler version. The command output varies based on the architecture.
x86
Arm