All Products
Search
Document Center

Enterprise Distributed Application Service:Pilih antara lingkungan penerapan ECS dan Kubernetes

Last Updated:Mar 13, 2026

Enterprise Distributed Application Service (EDAS) mendukung penerapan aplikasi di kluster Elastic Compute Service (ECS) maupun Kubernetes (K8s). Meskipun keduanya dapat menjalankan aplikasi Anda, masing-masing menawarkan fitur yang berbeda. Jika Anda sedang memilih tumpukan teknologi atau melakukan migrasi arsitektur, Anda mungkin bingung menentukan lingkungan yang tepat. Topik ini menyajikan rekomendasi dan perbandingan fitur untuk membantu Anda mengambil keputusan.

Pengenalan lingkungan penerapan

EDAS menyediakan dua lingkungan penerapan kluster untuk aplikasi: ECS dan K8s.

  • Kluster ECS dan K8s sama-sama mendukung hosting, administrasi layanan, dan observabilitas untuk aplikasi Java yang menggunakan framework layanan mikro Spring Cloud, Dubbo, atau High-Speed Service Framework (HSF).

  • Hanya kluster K8s yang mendukung hosting, administrasi layanan, dan observabilitas untuk aplikasi poliglot.

Selain itu, kedua lingkungan penerapan memiliki persyaratan yang berbeda terhadap aplikasi dan tumpukan teknologinya. Kemampuan manajemen aplikasi yang disediakan EDAS juga berbeda antara keduanya.

Rekomendasi pemilihan lingkungan penerapan

Dalam sebagian besar kasus, kami merekomendasikan penggunaan lingkungan K8s untuk menerapkan aplikasi. EDAS terintegrasi secara mendalam dengan Alibaba Cloud Container Service for Kubernetes (ACK), yang menyediakan berbagai fitur manajemen aplikasi dan memungkinkan pemanfaatan sumber daya yang lebih efisien.

Pilih lingkungan yang sesuai berdasarkan skenario Anda.

Skenario

Lingkungan

  • Aplikasi Anda berupa container image atau tidak ditulis dalam bahasa Java.

  • Anda perlu menerapkan beberapa instans pada satu node atau memerlukan penyebaran kepadatan tinggi.

  • Anda ingin menggunakan K8s untuk manajemen, misalnya dengan tool kubectl, atau menggunakan fitur-fitur lain dari K8s.

K8s environment

  • Banyak aplikasi belum dikontainerisasi.

    Keunggulan utama lingkungan ECS adalah lebih ramah terhadap penerapan non-kontainer dan memudahkan penggunaan kembali sistem O&M aplikasi yang sudah ada.

  • Aplikasi yang memerlukan performa dan stabilitas instans tunggal yang sangat tinggi.

ECS environment

Catatan

Jika Anda sudah menggunakan lingkungan ECS untuk mengelola aplikasi dan memerlukan fitur lanjutan yang disediakan K8s, Anda dapat memigrasikan aplikasi tersebut ke lingkungan K8s.

Perbandingan fitur hosting aplikasi

Tabel berikut membandingkan fitur-fitur lingkungan ECS dan K8s. 'Y' menunjukkan fitur didukung, sedangkan 'N' menunjukkan fitur tidak didukung.

Fitur

Lingkungan ECS

Lingkungan K8s

Keterangan

Deploy application

Y

Y

Lingkungan K8s mendukung lebih banyak kebijakan penjadwalan instans dan memungkinkan Anda menerapkan beberapa aplikasi pada satu node.

Start application

Y

Y

None

Stop application

Y

Y

None

Delete application

Y

Y

None

Application scaling

Y

Y

None

Reset application

Y

N

Fitur ini tidak diperlukan di lingkungan K8s. Untuk mereset aplikasi, hapus pod tersebut.

Upgrade or downgrade container

Y

Y

None

Application rollback

Y

Y

None

Automatic horizontal scaling

Y

Y

Metode dan aturan yang didukung berbeda.

Scheduled scaling

N

Y

None

Phased release

Y

Y

None

Application group

Y

N

None

Application group configuration

Y

N

None

Real-time log

Y

Y

None

Log directory

Y

Y

None

SLS log

Y

Y

None

Server Load Balancer

Y

Y

None

Health check

Y

Y

Lingkungan K8s mendukung readiness dan liveness probes, yang berbeda dari health check di lingkungan ECS.

JVM parameter settings

Y

Y

None

Tomcat configuration

Y

Y

None

Lifecycle hook

Y

Y

Lingkungan K8s mendukung hook PostStart dan PreStop, yang berbeda dari hook di ECS.

Environment variable

Y

Y

None

Canary release

Y

Y

None

Traffic monitoring

Y

Y

None

Throttling and degradation

Y

Y

Di lingkungan K8s, hal ini dapat diimplementasikan tanpa memodifikasi kode aplikasi.

Service list query

Y

Y

None

Configuration push

Y

Y

None

Event Center

Y

Y

None

Notifications

Y

Y

None

Application diagnostics

Y

Y

Kubernetes (K8s) menyediakan kemampuan pemantauan, kontrol, dan diagnostik yang lebih kuat serta terintegrasi.

Resource purchase

Y

N

None

Service Mesh

N

Y

None

Image deployment support

N

Y

None

Polyglot support

N

Y

None

NAS support

N

Y

None

FAQ

Apakah saya dapat menerapkan beberapa instans aplikasi pada satu node di lingkungan ECS?

Tidak, Anda tidak dapat melakukannya. Jika memerlukan kemampuan ini, gunakan lingkungan K8s.

Apakah saya dapat menerapkan aplikasi poliglot di lingkungan ECS?

Tidak, Anda tidak dapat melakukannya. Jika memerlukan kemampuan ini, gunakan lingkungan K8s.

Apakah operasi OpenAPI untuk lingkungan ECS dan K8s sama?

Apakah kedua lingkungan ECS dan K8s mendukung tool developer?

Ya, keduanya mendukung, tetapi konfigurasinya berbeda. Perhatikan perbedaan tersebut.

Apakah kedua lingkungan ECS dan K8s mendukung Apsara DevOps?

Bagaimana cara lingkungan K8s melakukan scale out node dengan pembelian resource?

Di lingkungan K8s, skalabilitas elastis mengacu pada penskalaan pod. Biasanya, hal ini tidak melibatkan pembelian instans ECS (node) baru atau pelepasan instans yang sudah ada.

Anda dapat menggunakan fitur Container Service untuk mengimplementasikan skalabilitas elastis node.

Jika saya menggunakan fitur mount script di lingkungan ECS, bagaimana cara migrasi ke lingkungan K8s?

Mount script untuk aplikasi ECS digunakan untuk menjalankan perintah tertentu pada tahapan spesifik proses penerapan. Anda dapat memasang skrip pada empat tahap siklus hidup: Prepare Instance, Start Application, Stop Application, dan Destroy Instance.

Kait siklus hidup yang disediakan lingkungan K8s terbatas pada PostStart dan PreStop, dan tidak secara langsung sesuai dengan siklus hidup aplikasi ECS. Oleh karena itu, saat Anda memigrasikan aplikasi yang menggunakan mount script ke lingkungan K8s, Anda harus melakukan beberapa modifikasi.

  • Untuk mount script yang dijalankan sebelum tahap Prepare Instance, tambahkan ke Dockerfile dan bangun ke dalam image.

  • Untuk mount script yang dijalankan sebelum tahap Start Application, Anda juga dapat menambahkannya ke Dockerfile dan membangunnya ke dalam image.

    Untuk sebuah pod, persiapan instance dan memulai aplikasi merupakan bagian dari proses yang sama.

  • Untuk mount script yang dijalankan setelah tahap start, konfigurasikan dalam hook PostStart.

  • Untuk mount script yang dijalankan sebelum tahap stop instance, konfigurasikan dalam hook PreStop.

  • Untuk mount script yang dijalankan setelah tahap stop instance, lakukan tugas pembersihan selama proses graceful shutdown aplikasi. Misalnya, Anda dapat menggunakan Java ShutdownHook atau mendengarkan sinyal SIGTERM. Anda juga dapat memindahkan tugas-tugas ini ke hook PreStop sesuai kebutuhan.

  • Untuk mount script yang dijalankan sebelum tahap destroy instance, lakukan tugas pembersihan selama proses graceful shutdown aplikasi. Misalnya, Anda dapat menggunakan Java ShutdownHook atau mendengarkan sinyal SIGTERM. Anda juga dapat memindahkan tugas-tugas ini ke hook PreStop sesuai kebutuhan.

    Untuk sebuah pod, menghancurkan instance dan menghentikan instance merupakan bagian dari proses yang sama.