All Products
Search
Document Center

Elastic Compute Service:Migrasi aplikasi x86 ke instans ECS YiTian

Last Updated:Aug 21, 2026

Migrasikan aplikasi x86 ke instans ECS berbasis Yitian 710 (g8y, c8y, r8y) untuk meningkatkan kinerja komputasi, penyimpanan, dan jaringan.

Latar Belakang

Apa itu instans ECS YiTian?

Instans ECS YiTian adalah instans ECS berbasis arsitektur ARM Yitian 710 yang menggunakan akselerasi fast-path tingkat chip untuk meningkatkan kinerja komputasi, penyimpanan, dan jaringan. Instans ini cocok untuk skenario seperti aplikasi cloud-native, pengkodean dan dekoding video, komputasi kinerja tinggi (HPC), pembelajaran mesin berbasis CPU, dan layanan game.

Catatan

Keluarga instans berbasis Yitian 710 mencakup g8y, c8y, dan r8y. Untuk tipe instans dan metrik kinerja, lihat:

Mengapa melakukan migrasi?

Instans ECS YiTian menggunakan arsitektur ARM, yang berbeda dari x86. Untuk men-deploy kode sumber x86 pada instans YiTian, Anda harus mengompilasi ulang dan menerapkan optimasi khusus arsitektur.

Langkah-langkah migrasi

Migrasi aplikasi dari x86 ke YiTian melibatkan dua langkah:

  1. Persiapan pra-migrasi

    Rencanakan sistem operasi, perangkat lunak dasar, dan sumber daya perangkat keras. Periksa kode Anda untuk instruksi assembly atau dependensi perangkat keras khusus x86. Verifikasi versi ARM dari pustaka pihak ketiga dan lakukan pengujian kompatibilitas.

  2. Kompilasi dan migrasi perangkat lunak

    Instal kompilator dan versi perangkat lunak yang sesuai untuk bahasa pemrograman Anda, lalu kompilasi ulang.

Skenario migrasi

Migrasi perangkat lunak biasanya melibatkan dua skenario:

  • Perangkat lunak kode sumber: Perangkat lunak yang Anda kembangkan atau tingkatkan berdasarkan proyek open source. Bahasa-bahasa tersebut terbagi menjadi dua kategori:

    • Bahasa terkompilasi: Bahasa seperti C++ dan Go dikompilasi menjadi biner khusus arsitektur dan memerlukan kompilasi ulang setelah migrasi. Lihat File build Make/CMake dan Migrasi bahasa C/C++.

    • Bahasa terinterpretasi: Bahasa seperti Java dan Python menghasilkan bytecode yang independen terhadap arsitektur dan secara teori dapat dijalankan lintas arsitektur. Namun, jika melibatkan pustaka native—misalnya, aplikasi Java yang memanggil pustaka dinamis C melalui JNI—maka aplikasi tersebut menjadi bergantung pada arsitektur dan harus dikompilasi ulang. Lihat Migrasi bahasa Java dan Migrasi bahasa Python.

  • Perangkat lunak open source: Perangkat lunak yang diunduh dari komunitas open source tanpa modifikasi, atau perangkat lunak yang termasuk dalam ekosistem OS Anda. Sebagian besar perangkat lunak open source sudah mendukung platform ARM YiTian dan dapat langsung diinstal dari manajer paket OS Anda. Lihat Migrasi perangkat lunak open source.

Prosedur migrasi

Siapkan sumber daya lingkungan yang diperlukan, termasuk instans ECS, sistem operasi, dan perangkat lunak dasar, lalu ikuti prosedur berikut:

Langkah 1: Buat instans ECS YiTian

Lihat Buat instans kustom. Perhatikan parameter berikut:

Parameter

Deskripsi

Instance type

  • g8y (Disarankan)

  • c8y

  • r8y

Image

  • Alibaba Cloud Linux

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

    • 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

    Catatan

    CentOS 7 telah mencapai EOL. Tidak disarankan.

  • Debian

    • Debian 11.5 64-bit for ARM

    • Debian 11.2 64-bit for ARM

    • Debian 10.13 64-bit for ARM

      Catatan

      Debian 10.13 telah mencapai EOL. Tidak disarankan.

Langkah 2: Migrasi perangkat lunak

Tabel berikut mencantumkan versi yang direkomendasikan untuk kompilator, pustaka runtime, dan aplikasi. Instal sesuai kebutuhan.

Kategori

Perangkat Lunak

Versi yang direkomendasikan

Deskripsi

Compiler

GCC

gcc 10.2.1

Gunakan GCC 10 atau versi lebih baru untuk peningkatan kinerja signifikan.

LLVM

LLVM 13/clang 13

  • Memerlukan glibc 2.17 atau versi lebih baru.

  • Menggunakan libstdc++ (dari GCC 6/9 atau versi lebih baru) sebagai pustaka runtime C++.

  • Bergantung pada paket RPM LLVM 13 dan gcc-c++.

Glibc

glibc 2.32

Tidak ada

JDK

Dragonwell 11 atau OpenJDK 11

Dragonwell lebih disarankan karena kinerja dan dukungan yang lebih baik.

Golang

go 1.18+

SDK Go terus dioptimalkan untuk ARM. Gunakan versi terbaru:

  • Go 1.16 meningkatkan kinerja operasi atomik ARM dan penyalinan data.

  • Go 1.18 meneruskan parameter melalui register alih-alih stack, memberikan peningkatan kinerja 10% pada ARM.

Python

3.8

Python 2.7 mencapai EOL pada 1 Januari 2020. Python 3.6 mencapai EOL pada 23 Desember 2022. Gunakan Python 3.7 atau versi lebih baru.

PHP

7.4+

Didukung komunitas

Container

K8s

K8s 1.22 Containerd 1.5.0+

Didukung komunitas

Web application

Nginx

Gunakan versi yang disertakan dengan OS.

Dikelola oleh distributor OS

httpd

Gunakan versi yang disertakan dengan OS.

Dikelola oleh distributor OS

NodeJS

Gunakan versi yang disertakan dengan OS.

Dikelola oleh distributor OS

Database

MySQL

Gunakan versi yang disertakan dengan OS.

Dikelola oleh distributor OS

Redis

Gunakan versi yang disertakan dengan OS.

Dikelola oleh distributor OS

Big data

Hadoop

Hadoop 3.3.1

Didukung komunitas

Spark

Spark 3.2

Didukung komunitas

Hive

Hive 3.1

Didukung komunitas

ElasticSearch

ES 7.12

Didukung komunitas

Others

Gromacs

Versi terbaru

Didukung komunitas

BWA

Versi terbaru

Didukung komunitas

Gatk

4.3.0.0

Didukung komunitas

Langkah 3: Kompilasi dan build

Kompilasi dan build perangkat lunak Anda berdasarkan panduan berikut:

Referensi

Periksa arsitektur CPU

Jalankan uname -m atau arch untuk memeriksa arsitektur CPU. Output bervariasi tergantung arsitektur:

  • ARM: `aarch64`

    [  t@iUf682 xxx         ~]# uname -m
    aarch64
    [  t@iUf682 xxx         ~]# arch
    aarch64
    
  • x86: `x86_64`

    [root@iZbp144worxxx : ~]# uname -m
    x86_64
    [root@iZbp144worxxx : ~]# arch
    x86_64
    

Periksa informasi CPU detail

Jalankan lscpu untuk melihat informasi CPU detail. Output bervariasi tergantung arsitektur:

  • ARM:

    [root@iZuf682t1xxx ~]# lscpu
    Architecture:        aarch64
    Byte Order:          Little Endian
    CPU(s):              4
    On-line CPU(s) list: 0-3
    Thread(s) per core:  1
    Core(s) per cluster: 4
    Socket(s):           1
    Cluster(s):          1
    NUMA node(s):        1
    Vendor ID:           ARM
    BIOS Vendor ID:      Alibaba Cloud
    Model:               1
    Model name:          Neoverse-N1
    BIOS Model name:     virt-rhel7.6.0
    Stepping:            r3p1
    BogoMIPS:            50.00
    NUMA node0 CPU(s):   0-3
    Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
    
  • x86:

    [  @iZbp14x         ~]# lscpu
    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                16
    On-line CPU(s) list:   0-15
    Thread(s) per core:    2
    Core(s) per socket:    8
    Socket(s):             1
    NUMA node(s):          1
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 106
    Model name:            Intel(R) Xeon(R) Platinum 8369B CPU @ 2.90GHz
    Stepping:              6
    CPU MHz:               2899.998
    BogoMIPS:              5799.99
    Hypervisor vendor:     KVM
    Virtualization type:   full
    L1d cache:             48K
    L1i cache:             32K
    L2 cache:              1280K
    L3 cache:              49152K
    NUMA node0 CPU(s):     0-15
    Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni pclmulqdq monitor ssse3 fma cx16 pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch cpuid_fault invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves wbnoinvd arat avx512vbmi avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid fsrm arch_capabilities
    

Periksa informasi OS

Jalankan cat /proc/version untuk memeriksa versi OS dan kompilator. Output bervariasi tergantung arsitektur:

  • x86:

    [root@iZbp144worxxx ~]# cat /proc/version
    Linux version 4.19.91-26.1.al7.x86_64 (mockbuild@x86-003.build.alibaba.cm10) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)) #1 SMP Tue Jul 26 17:52:28 CST 2022
    
  • ARM:

    [root@iZuf682t          ~]# cat /proc/version
    Linux version 5.10.134-12.al8.aarch64 (mockbuild@r75e11320.cm10.tbsite.net) (gcc (GCC) 10.2.1 20200825 (Alibaba 10.2.1-3 2.32), GNU ld version 2.35-12.2.al8) #1 SMP Tue Sep 6 07:11:41 UTC 2022