Memigrasikan Azure Spring Apps ke Azure Kubernetes Service

Catatan

Paket Basic, Standard, dan Enterprise memasuki periode penghentian pada 17 Maret 2025. Untuk informasi selengkapnya, lihat pengumuman penghentian Azure Spring Apps.

Artikel ini berlaku untuk:✅ Perusahaan Dasar/Standar ✅

Artikel ini memberikan gambaran umum tentang migrasi dari Azure Spring Apps ke Azure Kubernetes Service (AKS).

Azure Spring Apps adalah solusi platform-as-a-service (PaaS) yang dirancang khusus untuk aplikasi Spring Boot. Ini membuat penyebaran, menjalankan, dan mengelola aplikasi ini lebih mudah. Azure Spring Apps mengurus infrastruktur, penskalaan, dan pemantauan, sehingga pengembang dapat fokus pada kode mereka.

AKS adalah penawaran infrastruktur sebagai layanan (IaaS) yang menyediakan lingkungan Kubernetes yang dikelola sepenuhnya. AKS memberi Anda lebih banyak kontrol atas cara aplikasi Anda disebarkan dan dikelola. Ini mendukung berbagai aplikasi kontainer dan memungkinkan penyesuaian untuk memenuhi kebutuhan tertentu.

Memigrasikan aplikasi dari Azure Spring Apps ke AKS berarti berpindah dari lingkungan terkelola ke lingkungan yang memberi Anda lebih banyak fleksibilitas. Proses ini mengharuskan adopsi alat dan praktik baru untuk mencapai hasil yang sama pada AKS seperti yang Anda miliki dengan Azure Spring Apps.

Pemetaan konsep

Karena Azure Spring Apps dan AKS adalah jenis penawaran layanan cloud yang berbeda, tidak sepenuhnya akurat untuk memetakan konsep Azure Spring Apps langsung ke AKS. Selain itu, Azure Spring Apps bergantung pada banyak komponen internal saat digunakan di lingkungan produksi, yang tidak tercantum di sini. Diagram dan tabel berikut ini menyediakan pemetaan konsep sederhana dari Azure Spring Apps ke AKS untuk membantu Anda memahami dasar-dasarnya. Dalam lingkungan produksi nyata, Anda harus mempertimbangkan solusi yang lebih aman dan andal.

Diagram pemetaan konsep antara Azure Spring Apps dan Azure Kubernetes Service.

Layanan Azure Spring Apps Azure Kubernetes Service
Instans Layanan menghosting dan mengamankan batas untuk aplikasi dan sumber daya lainnya, dan mendukung jaringan virtual kustom. Kluster adalah unit dasar penyebaran. Dalam kluster, Namespace adalah subdivisi virtual yang digunakan untuk mengatur dan mengisolasi sumber daya. Ini berbagi infrastruktur jaringan yang mendasar yang sama yang ditentukan oleh jaringan virtual kluster. Memilih antara kluster khusus atau kluster bersama dengan namespace tergantung pada kebutuhan bisnis Anda.
Aplikasi adalah salah satu aplikasi bisnis yang berfungsi sebagai sumber daya anak dalam instans layanan. Aplikasi adalah konsep virtual di Azure Spring Apps dan terdiri dari beberapa sumber daya di AKS. Ingress mengontrol akses eksternal ke layanan dan menetapkan aturan untuk merutekan lalu lintas ke layanan yang berbeda. Layanan menyederhanakan akses ke satu set pod. Anda dapat melakukan peralihan penyebaran biru-hijau dengan memperbarui layanan Anda, sehingga menunjuk ke versi penyebaran yang berbeda menggunakan label.
Penyebaran adalah versi aplikasi. Aplikasi dapat mempunyai satu penyebaran produksi dan satu penyebaran penahapan. Deployment mengelola penerapan dan siklus hidup aplikasi atau layanan tertentu. Ini juga memungkinkan pembaruan dan pembatalan bergulir, memungkinkan perubahan aplikasi yang terkontrol dan mulus tanpa waktu henti.
Instans Aplikasi adalah unit runtime minimum yang dikelola oleh layanan. Sebuah Pod mewakili satu atau beberapa kontainer yang digabungkan dengan erat dan menghosting satu instans aplikasi atau beban kerja yang sedang berjalan.

Pertimbangan jaringan

Sebelum menyediakan kluster AKS, penting untuk mempertimbangkan pengaturan jaringan dengan hati-hati. Keputusan ini dapat secara signifikan memengaruhi performa, skalabilitas, dan keamanan aplikasi Anda.

AKS mengandalkan plugin Container Networking Interface (CNI) untuk mengelola jaringan dalam klusternya. Plugin ini menangani tugas-tugas penting seperti menetapkan alamat IP ke pod, merutekan lalu lintas di antara mereka, dan mengaktifkan komunikasi melalui Layanan Kubernetes. AKS mendukung beberapa plugin CNI yang disesuaikan dengan kebutuhan jaringan yang berbeda, memberikan fleksibilitas dalam desain kluster.

AKS menawarkan dua model jaringan utama: jaringan overlay dan jaringan datar. Jaringan overlay memberikan alamat IP privat ke pod, yang terpisah dari subnet Azure Virtual Network dari node AKS. Model ini dapat diskalakan dan menghemat alamat IP jaringan virtual tetapi menggunakan Network Address Translation (NAT) untuk lalu lintas yang meninggalkan kluster. Sebaliknya, jaringan datar menetapkan alamat IP pod langsung dari subnet Azure Virtual Network yang sama dengan simpul, memungkinkan layanan eksternal untuk mengakses pod tanpa NAT. Meskipun jaringan datar memungkinkan komunikasi pod langsung, jaringan ini memerlukan ruang alamat IP virtual yang lebih luas.

Perencanaan IP yang tepat sangat penting untuk operasi AKS yang lancar. Penting untuk memastikan subnet memiliki alamat IP yang cukup untuk semua sumber daya, menghindari rentang yang tumpang tindih, dan memberikan ruang bagi pertumbuhan di masa mendatang untuk mencegah masalah dan gangguan konektivitas. Untuk informasi selengkapnya, lihat Gambaran umum jaringan Azure Kubernetes Service CNI.

Untuk menangani lalu lintas masuk di AKS, Anda dapat menggunakan penyeimbang beban atau pengontrol akses masuk. Load balancer beroperasi pada Lapisan 4, mendistribusikan lalu lintas berdasarkan protokol dan port, sementara ingress controller bekerja di Lapisan 7, menawarkan fitur canggih seperti perutean berbasis URL dan terminasi TLS/SSL. Pengontrol Ingress mengurangi kebutuhan akan beberapa IP publik dengan mengelola lalu lintas ke beberapa aplikasi melalui satu IP. Untuk aplikasi web, pengontrol ingress lebih disukai karena menyediakan manajemen lalu lintas dan integrasi yang lebih baik dengan sumber daya Kubernetes. Untuk informasi selengkapnya, lihat NGINX Ingress Terkelola dengan penambahan fitur perutean aplikasi.

Untuk mengamankan lalu lintas jaringan di AKS, gunakan Web Application Firewalls (WAF) seperti Azure Application Gateway untuk melindungi dari serangan seperti pembuatan skrip lintas situs dan keracunan cookie, sambil mengelola perutean lalu lintas dan penghentian TLS/SSL. Selain itu, terapkan kebijakan jaringan untuk mengontrol komunikasi pod-ke-pod dengan menentukan aturan dalam manifes YAML, berdasarkan label, namespace, atau port. Kebijakan ini, yang hanya tersedia untuk simpul berbasis Linux, memastikan kontrol dan keamanan lalu lintas yang lebih baik dalam kluster. Untuk informasi selengkapnya, lihat Mengamankan lalu lintas antar pod dengan menggunakan kebijakan jaringan di AKS.

Provisikan

Untuk menyediakan kluster AKS, Anda dapat menggunakan templat portal Azure, Azure CLI, atau ARM. Proses ini biasanya melibatkan pemilihan wilayah yang diinginkan, menentukan ukuran dan jenis kumpulan simpul, dan memilih model jaringan - baik Azure CNI atau Kubenet. Anda juga harus mengonfigurasi opsi autentikasi, seperti integrasi MICROSOFT Entra ID untuk kontrol akses pengguna. Untuk pemantauan dan penskalaan, Anda dapat mengaktifkan Azure Monitor dan mengonfigurasi penskalaan otomatis berdasarkan penggunaan sumber daya. Setelah provisi, Anda dapat mengelola kluster menggunakan kubectl atau Azure CLI. Untuk instruksi terperinci tentang penyediaan AKS, kunjungi Membuat kluster AKS.

Akses dan identitas

AKS menawarkan beberapa cara untuk mengelola autentikasi, otorisasi, dan kontrol akses untuk kluster Kubernetes. Anda dapat menggunakan kontrol akses berbasis peran (RBAC) Kubernetes untuk memberi pengguna, grup, dan akun layanan akses hanya ke sumber daya yang mereka butuhkan. Untuk informasi selengkapnya, lihat Menggunakan otorisasi RBAC. AKS juga mendukung MICROSOFT Entra ID dan Azure RBAC untuk meningkatkan keamanan dan kontrol, memungkinkan Anda menetapkan dan mengelola izin dengan cara yang lebih efisien.

Untuk keamanan terbaik, sebaiknya integrasikan AKS dengan ID Microsoft Entra. Integrasi ini menggunakan protokol OpenID Connect dan OAuth 2.0 untuk autentikasi. Pengguna mengautentikasi menggunakan kredensial Microsoft Entra saat berinteraksi dengan kluster AKS, dengan izin akses mereka yang diatur oleh administrator kluster. Untuk informasi selengkapnya, lihat Mengaktifkan autentikasi identitas terkelola Azure untuk kluster Kube dengan kubelogin

ID Beban Kerja Microsoft Entra mengintegrasikan fitur asli Kubernetes dengan penyedia identitas eksternal melalui federasi OpenID Connect (OIDC). Ini menggunakan Proyeksi Volume Token Akun Layanan untuk menetapkan identitas Kubernetes ke pod melalui akun layanan yang diannotasi. Dengan token ini, aplikasi Kubernetes dapat mengautentikasi dan mengakses sumber daya Azure dengan aman menggunakan ID Microsoft Entra. Penyiapan ini bekerja tanpa hambatan dengan pustaka seperti pustaka klien Azure Identity (Azure.Identity) atau Microsoft Authentication Library (MSAL) untuk menyederhanakan autentikasi untuk beban kerja Anda. Untuk mempelajari cara menyiapkan kluster dan mengonfigurasi pod aplikasi Anda dengan identifikasi beban kerja, lihat Menyebarkan dan mengonfigurasi identitas beban kerja.

Mengontainerisasi aplikasi

Mengemas aplikasi menjadi citra kontainer sangat penting untuk penyebaran di AKS. Ini memastikan penyebaran konsisten, portabel, dan dapat diskalakan. Menggunakan gambar kontainer memberikan fleksibilitas dalam mengelola versi aplikasi yang berbeda. Ini membuat pembaruan dan pemutaran kembali lebih mudah dan meningkatkan efisiensi sumber daya dengan memungkinkan beberapa kontainer berjalan pada satu host.

Azure Spring Apps membantu pengguna membuat gambar kontainer dan menyebarkan aplikasi dengan cara yang berbeda. Anda dapat menyebarkan dari kode sumber, dari artefak bawaan seperti file JAR atau WAR, atau langsung dari gambar kontainer. Untuk mempelajari cara menyebarkan dari file JAR atau WAR, lihat Membangun gambar kontainer dari JAR atau WAR. Untuk mempelajari cara menyebarkan dari kode sumber, lihat Membuat kontainer aplikasi dengan menggunakan Paketo Buildpacks.

Untuk memantau performa aplikasi yang disebarkan di AKS, Anda dapat mengintegrasikan agen Pemantauan Performa Aplikasi (APM) selama proses kontainerisasi. Untuk informasi selengkapnya, lihat Mengintegrasikan pemantauan performa aplikasi ke dalam gambar kontainer.

Menyebarkan aplikasi dan komponen Spring Cloud

Untuk menyebarkan aplikasi ke AKS, Anda dapat menggunakan Penyebaran, yang digunakan oleh Azure Spring Apps, atau StatefulSets, tergantung pada kebutuhan aplikasi Anda. Untuk aplikasi stateless, seperti layanan mikro, Anda biasanya akan menggunakan Penyebaran, yang mengelola replika aplikasi Anda dan memastikannya berjalan dengan lancar. Jenis ini digunakan oleh Azure Spring Apps. Di sisi lain, StatefulSets sangat ideal untuk aplikasi yang membutuhkan penyimpanan persisten atau identitas stabil, seperti database atau layanan dengan kebutuhan stateful.

Selain penyebaran aplikasi, Anda juga perlu mengonfigurasi Layanan guna menyediakan akses ke pod backend Anda. Layanan adalah abstraksi yang memungkinkan Anda menentukan kumpulan pod logis dan memungkinkan akses jaringan ke sana. Kemampuan ini sangat penting untuk penyeimbangan beban dan komunikasi antar pod.

Saat menyebarkan komponen Spring Cloud, seperti Spring Cloud Config atau Spring Cloud Gateway, Anda umumnya akan menggunakan Penyebaran untuk layanan stateless. Untuk layanan backend yang memerlukan penyimpanan atau status yang stabil, Anda dapat memilih StatefulSets.

Tautan berikut ini menyediakan contoh referensi tentang cara menyiapkan proyek komponen Java berdasarkan pustaka Sumber Terbuka, membangun gambar kontainer, dan menyebarkan komponen ke AKS:

Pemantau

Pemantauan adalah bagian penting dari mengelola aplikasi yang disebarkan di AKS. AKS menyediakan berbagai alat untuk melacak dan menganalisis status kluster dan beban kerja Anda, termasuk solusi terintegrasi seperti Azure Monitor, Azure Log Analytics, dan Prometheus. Untuk informasi lebih lanjut, baca artikel berikut:

Selain Azure Monitor dan Prometheus, Anda juga dapat menggunakan solusi pemantauan lain seperti Datadog, New Relic, atau Elastic Stack (ELK). Anda dapat mengintegrasikan alat-alat ini ke dalam AKS untuk mengumpulkan log, metrik, dan jejak, menawarkan berbagai wawasan tentang performa kluster.

Panduan

Kami menyediakan tutorial berikut untuk menunjukkan pengalaman end-to-end menjalankan aplikasi di AKS. Tutorial ini dimaksudkan untuk referensi, dan karena AKS sangat fleksibel, Anda perlu memilih konfigurasi dan penyesuaian berdasarkan persyaratan spesifik Anda.