Instans Elastic Compute Service (ECS) YiTian berjalan pada CPU YiTian 710 berbasis Arm, yang memberikan peningkatan signifikan dalam kinerja komputasi, penyimpanan, dan jaringan. Karena arsitektur Arm dan x86 menggunakan set instruksi yang berbeda, migrasi aplikasi Anda memerlukan penilaian tumpukan perangkat lunak, kompilasi ulang jika diperlukan, serta validasi hasilnya.
Topik ini memandu Anda melalui seluruh proses migrasi: mulai dari menyiapkan instans YiTian dan menilai komponen yang perlu dikompilasi ulang, hingga memilih versi perangkat lunak yang tepat dan memverifikasi lingkungan Anda.
Keluarga instans ECS YiTian
Instans ECS YiTian menerapkan akselerasi fast path pada level chip untuk meningkatkan I/O penyimpanan, throughput jaringan, dan stabilitas komputasi. Instans ini cocok untuk aplikasi cloud-native, pengkodean dan dekoding video, komputasi kinerja tinggi (HPC), pembelajaran mesin berbasis CPU, serta layanan gaming.
Keluarga instans berikut menggunakan arsitektur YiTian 710:
| Keluarga instans | Fokus beban kerja |
|---|---|
| g8y (direkomendasikan) | Tujuan umum |
| c8y | Dioptimalkan untuk komputasi |
| r8y | Dioptimalkan untuk memori |
Untuk spesifikasi lengkap vCPU, memori, dan jaringan, lihat g8y, keluarga instans tujuan umum, c8y, keluarga instans yang dioptimalkan untuk komputasi, dan r8y, keluarga instans yang dioptimalkan untuk memori.
Mengapa migrasi memerlukan kompilasi ulang
Arsitektur Arm menggunakan set instruksi yang berbeda dari x86. Perangkat lunak yang dikompilasi untuk x86 menghasilkan binari spesifik arsitektur yang tidak dapat dijalankan langsung di Arm. Kebutuhan kompilasi ulang bergantung pada cara perangkat lunak Anda dibangun:
| Jenis perangkat lunak | Contoh | Perlu kompilasi ulang? |
|---|---|---|
| Bahasa terkompilasi | C++, Go | Ya — binari bersifat spesifik arsitektur |
| Bahasa terinterpretasi atau JIT | Java, Python | Biasanya tidak — tetapi ya jika menggunakan pustaka native melalui Java Native Interface (JNI) atau ekstensi C |
| Paket open source | NGINX, MySQL, Redis | Biasanya tidak — sebagian besar tersedia sebagai paket Arm64 di repositori OS |
Ikhtisar migrasi
Migrasi mencakup tiga fase utama:
Penilaian dan persiapan — Inventarisasi tumpukan perangkat lunak Anda, periksa kompatibilitas, dan siapkan instans YiTian.
Migrasi dan kompilasi ulang — Instal versi compiler dan runtime yang tepat, lalu bangun ulang perangkat lunak Anda.
Verifikasi — Konfirmasi arsitektur, jalankan pengujian fungsional, dan validasi kinerja.
Langkah 1: Buat instans ECS YiTian
Buat instans ECS YiTian menggunakan Konsol ECS. Untuk langkah-langkah detail, lihat Buat instans di tab Custom Launch.
Atur parameter berikut:
| Parameter | Nilai |
|---|---|
| Keluarga instans | g8y (direkomendasikan), c8y, atau r8y |
| Image | Lihat image yang didukung di bawah ini |
Image yang didukung:
| OS | Versi |
|---|---|
| Alibaba Cloud Linux (direkomendasikan) | Alibaba Cloud Linux 3.2104 LTS 64-bit untuk Arm |
| Alibaba Cloud Linux 3.2104 LTS 64-bit untuk Arm (MLPS 2.0 Level 3) | |
| Anolis OS | Anolis 8.8 RHCK 64-bit untuk Arm |
| Anolis 8.8 ANCK 64-bit untuk Arm (MLPS 2.0 Level 3) | |
| Anolis 8.8 ANCK 64-bit untuk Arm | |
| Anolis 8.6 RHCK 64-bit untuk Arm | |
| Anolis 8.6 ANCK 64-bit untuk Arm | |
| Anolis 8.4 RHCK 64-bit untuk Arm | |
| Anolis 8.4 ANCK 64-bit untuk Arm | |
| Anolis 7.9 RHCK 64-bit untuk Arm | |
| Anolis 7.9 ANCK 64-bit untuk Arm | |
| Ubuntu | Ubuntu 22.04 64-bit untuk Arm |
| Ubuntu 20.04 64-bit untuk Arm | |
| Ubuntu 18.04 64-bit untuk Arm | |
| CentOS | CentOS 7.9 64-bit untuk Arm |
| Debian | Debian 11.5 64-bit untuk Arm |
| Debian 11.2 64-bit untuk Arm | |
| Debian 10.13 64-bit untuk Arm |
CentOS 7 telah mencapai akhir masa pakai (EOL). Kami menyarankan agar Anda tidak menggunakan versi ini.
Debian 10.13 telah mencapai EOL. Kami menyarankan agar Anda tidak menggunakan versi ini.
Langkah 2: Migrasi dan kompilasi ulang perangkat lunak
Instal compiler dan runtime sesuai bahasa pemrograman Anda, lalu bangun ulang perangkat lunak Anda. Tabel berikut mencantumkan versi yang direkomendasikan untuk tool dan aplikasi umum.
Compiler dan runtime
| Kategori | Perangkat lunak | Versi yang direkomendasikan | Catatan |
|---|---|---|---|
| Kompiler | GCC | 10.2.1 | GCC 10 atau versi lebih baru memberikan peningkatan kinerja signifikan pada Arm. |
| LLVM / Clang | 13 | Memerlukan glibc 2.17+, libstdc++ (GCC 6+ atau GCC 9+), LLVM 13, dan GCC-C++ (RPM). | |
| glibc | 2.32 | ||
| JDK | Dragonwell 11 (direkomendasikan) | 11 | Dragonwell dioptimalkan untuk Arm dan memberikan kinerja serta dukungan lebih baik dibanding OpenJDK standar. |
| OpenJDK | 11 | ||
| Go | Go | 1.18+ | Go 1.16 mengoptimalkan operasi atomik dan penyalinan memori Arm. Go 1.18 meneruskan parameter melalui register alih-alih stack, memberikan kinerja ~10% lebih baik pada Arm. |
| Python | 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 | PHP | 7.4+ |
Kontainer
| Perangkat lunak | Versi yang direkomendasikan |
|---|---|
| Kubernetes | 1.22 |
| containerd | 1.5.0+ |
Aplikasi web dan database
Komponen ini tersedia langsung dari repositori paket OS Anda. Gunakan versi yang disertakan dalam image yang Anda pilih.
| Kategori | Perangkat lunak |
|---|---|
| Web | NGINX |
| Apache HTTP Server (httpd) | |
| Node.js | |
| Database | MySQL |
| Redis |
Big data dan komputasi ilmiah
| Perangkat lunak | Versi yang direkomendasikan |
|---|---|
| Apache Hadoop | 3.3.1 |
| Apache Spark | 3.2 |
| Apache Hive | 3.1 |
| Elasticsearch | 7.12 |
| GROMACS | Terbaru |
| BWA | Terbaru |
| GATK | 4.3.0.0 |
Kompilasi kode sumber Anda
Setelah menyiapkan lingkungan, bangun ulang kode sumber Anda untuk arsitektur Arm64. Gunakan panduan yang sesuai dengan bahasa atau jenis perangkat lunak Anda:
Bahasa terkompilasi:
Bahasa terinterpretasi:
Perangkat lunak open source:
Langkah 3: Verifikasi migrasi
Setelah migrasi, pastikan instans Anda berjalan pada arsitektur Arm dan perangkat lunak Anda berfungsi dengan benar.
Periksa arsitektur CPU
Jalankan uname -m atau arch. Output menunjukkan arsitektur:
aarch64— arsitektur Arm (diharapkan pada instans YiTian)x86_64— arsitektur x86
Contoh output pada instans YiTian:

Contoh output pada instans x86:

Periksa informasi CPU detail
Jalankan lscpu untuk melihat detail CPU lengkap, termasuk arsitektur, jumlah core, dan kecepatan clock.
Arm Output:

Output x86:

Periksa versi OS dan compiler
Jalankan cat /proc/version untuk melihat versi sistem operasi dan compiler yang digunakan untuk membangun kernel. Output berbeda antar arsitektur.
x86:

Arm:
