Pemilihan kerangka mikro-layanan terus berkembang seiring dengan kemajuan teknologi cloud-native. Di era cloud, Kubernetes telah membentuk ulang sistem operasi dan pemeliharaan (O&M). Gateway Zuul tidak mendukung penemuan layanan kontainer dan memiliki performa lebih rendah dibandingkan gateway NGINX Ingress. Dalam hal observabilitas dan keamanan, gateway Zuul memerlukan pengembangan kustom dan integrasi. Kekurangan ini membatasi perkembangannya. Gateway cloud-native mengintegrasikan gateway lalu lintas tradisional dengan gateway mikro-layanan, menawarkan biaya layanan yang lebih rendah serta keunggulan dalam performa tinggi, integrasi tinggi, dan siap pakai. Topik ini menjelaskan cara bermigrasi layanan dari gateway Zuul ke gateway cloud-native.
Prasyarat
Gateway cloud-native telah dibuat. Untuk informasi lebih lanjut, lihat Buat Gateway Cloud-Native MSE.
Anda sudah familiar dengan gateway cloud-native. Untuk informasi lebih lanjut, lihat Kelola Layanan MSE Nacos Menggunakan Gateway Cloud-Native.
Langkah 1: Konfirmasi sumber layanan
Jika salah satu kondisi berikut terpenuhi, langsung menuju ke Langkah 2: Migrasikan Konfigurasi Gateway Zuul.
Container Service for Kubernetes (ACK) digunakan, dan penemuan layanan Kubernetes didukung.
Instance MSE Nacos telah dibeli dan digunakan sebagai registri. Instance MSE Nacos ditingkatkan ke versi yang mendukung Mesh Configuration Protocol (MCP).
Tidak ada mekanisme penemuan layanan yang digunakan, dan nama domain serta alamat IP tetap digunakan untuk menemukan layanan.
Anda dapat melakukan migrasi berdasarkan jenis sumber layanan.
Gunakan Instance MSE Nacos
Beli instance MSE Nacos. Untuk informasi lebih lanjut, lihat Buat Mesin Nacos.
Ubah konfigurasi atau kode dan daftarkan layanan Anda dengan instance MSE Nacos. Untuk informasi lebih lanjut, lihat Java SDK.
Opsional. Jika aplikasi Anda adalah aplikasi Java, lakukan migrasi menggunakan Agen Tata Kelola Mikro-layanan MSE. Untuk informasi lebih lanjut, lihat Solusi Migrasi Berbasis MSE Sync.
Gunakan Registri Bersama Enterprise Distributed Application Service (EDAS)
Gateway cloud-native mendukung registri EDAS. Anda dapat langsung menambahkan registri EDAS sebagai sumber layanan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Layanan.
Gunakan Registri Bersama Serverless App Engine (SAE)
Gateway cloud-native mendukung registri SAE. Anda dapat langsung menambahkan registri SAE sebagai sumber layanan. Untuk informasi lebih lanjut, lihat Tambahkan Sumber Layanan.
Langkah 2: Migrasikan konfigurasi gateway Zuul
Contoh konfigurasi gateway Zuul:
Konfigurasi untuk registri terkait
spring: application: name: zuul-demo cloud: nacos: discovery: server-addr: nacos-server:8848 config: enabled: falseKonfigurasi untuk routing layanan
zuul: routes: demo: path: /test/a serviceId: service-a pre: path: /auth/validation/** serviceId: service-a header: path: /auth/test requestHeadersToAdd: - key: debug_tag value: true retry: path: /app/try/** stripPrefix: false retryable: true serviceId: service-a retryable: true ignoredPatterns: - /login/api/a/v3/a - /auth/api/b service-a: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule ConnectTimeout: 1000 ReadTimeout: 8000 MaxAutoRetries: 3 MaxAutoRetriesNextServer: 2 MaxTotalConnections: 20000 MaxConnectionsPerHost: 5000 hystrix: command: service-a: execution: isolation: thread: timeoutInMilliseconds: 60000 strategy: SEMAPHORE semaphore: maxConcurrentRequests: 60000
Untuk migrasi konfigurasi gateway Zuul di Konsol MSE, lakukan langkah-langkah berikut:
Operasi Terkait Registri
Gateway cloud-native menggunakan sumber layanan untuk menghubungkan registri. Anda dapat menggunakan Konsol MSE untuk menambahkan sumber layanan dan menghubungkannya dengan layanan. Konfigurasi berlaku secara real-time. Untuk informasi lebih lanjut tentang cara menambahkan sumber layanan, lihat Tambahkan Sumber Layanan.
Operasi Asosiasi Layanan
Tambahkan layanan yang ingin dilanggan dengan mengimpor layanan. Untuk informasi lebih lanjut tentang cara menambahkan layanan, lihat Tambahkan Layanan.
Untuk informasi lebih lanjut tentang cara mengonfigurasi versi rute yang sesuai untuk layanan yang ditambahkan, lihat Kelola Versi Layanan.
service-a: ribbon: NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule ConnectTimeout: 1000 ReadTimeout: 8000 MaxAutoRetries: 3 MaxAutoRetriesNextServer: 2 MaxTotalConnections: 20000 MaxConnectionsPerHost: 5000Operasi Konfigurasi Routing
Konfigurasikan kebijakan routing untuk gateway. Untuk informasi lebih lanjut, lihat Buat Aturan Routing.
spring: cloud: gateway: routes: - id: websocket_test uri: ws://localhost:9000 order: 9000 predicates: - Path=/echo - id: default_path_to_service-a uri: lb://service-a order: 10000 predicates: - Path=/sleepGateway cloud-native mendukung beberapa kebijakan routing. Untuk informasi lebih lanjut, lihat topik berikut:
Langkah 3: Konfigurasikan metode autentikasi untuk gateway cloud-native
Gateway cloud-native mendukung beberapa metode autentikasi. Untuk informasi lebih lanjut, lihat topik berikut:
Langkah 4: Lihat dasbor data global gateway cloud-native
Anda dapat melihat dasbor data global setiap gateway cloud-native. Untuk informasi lebih lanjut, lihat topik berikut:
Langkah 5: Migrasikan trafik
Prosedur untuk migrasi trafik di sisi pemanggil:
Migrasi Iteratif di Sisi Pemanggil atau Klien: Anda dapat mengubah URL akses beberapa layanan untuk memeriksa hasil migrasi.
Migrasi Bertahap di Sisi Proxy: Anda dapat membuat langkah-langkah migrasi di sisi proxy asli berdasarkan jenis layanan. Misalnya, Anda dapat membuat langkah-langkah migrasi secara terpisah untuk layanan inti dan non-inti. Kemudian, Anda dapat bermigrasi layanan berdasarkan URL akses dalam beberapa tahap.
Migrasi Penuh Berbasis DNS: Setelah Anda menyelesaikan migrasi bertahap, Anda dapat mengaitkan nama domain asli dengan URL akses gateway cloud-native Anda.
(Recommended) Migrasi Prosedural:
Migrasikan beberapa layanan sebagai uji coba dan periksa hasil migrasi.
Migrasikan layanan inti secara berurutan.
Lakukan migrasi penuh berbasis DNS setelah Anda menyelesaikan uji stres.
Solusi migrasi | Biaya | Risiko |
Migrasi iteratif | Tinggi | Rendah |
Migrasi bertahap di sisi proxy | Sedang | Sedang |
Migrasi penuh berbasis DNS | Rendah | Tinggi |
Migrasi prosedural | Relatif rendah | Relatif rendah |
Referensi
Untuk informasi lebih lanjut tentang gateway cloud-native, lihat Ikhtisar Gateway Cloud-Native.