Alibaba Service Mesh (ASM) mendukung dua mode data plane: mode Sidecar dan mode Ambient. Topik ini menjelaskan cara memilih mode data plane yang tepat untuk kebutuhan Anda.
Mode Sidecar
Dalam mode Sidecar, setiap pod di kluster disuntikkan dengan proxy Envoy yang memproses semua lalu lintas masuk dan keluar dari pod tersebut.
ASM telah menggunakan mode Sidecar sejak rilis awalnya. Selama beberapa versi, mode Sidecar terus diperbaiki berdasarkan umpan balik pengguna, menghasilkan solusi yang matang dan stabil.
Rute lalu lintas
Rute lalu lintas dalam mode Sidecar ditunjukkan pada gambar berikut:
Mode Ambient
Mode Ambient diperkenalkan oleh komunitas Istio pada tahun 2022 untuk mengatasi keterbatasan bawaan mode Sidecar. Pod aplikasi tidak lagi memiliki proxy Envoy. Sebagai gantinya, kemampuan Lapisan 4 dan Lapisan 7 diimplementasikan melalui Ztunnel tingkat node dan Waypoint yang diterapkan secara independen. Mulai dari ASM 1.25, mode Ambient siap digunakan dalam skenario single-cluster.
Pengenalan fungsi
Proxy Lapisan 4, yang disebut Ztunnel, dikembangkan dalam bahasa Rust dan dirancang untuk menangani lalu lintas Lapisan 3 dan Lapisan 4, seperti mTLS, verifikasi identitas, otorisasi Lapisan 4, dan observabilitas. Ztunnel diterapkan sebagai Daemonset, dengan pod pada node yang sama berbagi satu Ztunnel. Semua lalu lintas masuk dan keluar dari pod diproses oleh Ztunnel.
Proxy Lapisan 7, yang disebut Waypoint, diimplementasikan berdasarkan Envoy dan diterapkan sebagai Deployment, terpisah dari aplikasi bisnis. Peningkatan dan instalasinya tidak memerlukan perubahan apa pun pada pod bisnis. Anda dapat memilih untuk mengaktifkan proxy Waypoint untuk layanan atau pod tertentu, dan beberapa layanan atau pod dapat menggunakan kembali proxy Waypoint yang sama. Setelah mengaktifkan proxy Waypoint, semua permintaan ke layanan atau pod pertama-tama diteruskan ke proxy Waypoint ini, dan berbagai fungsi Lapisan 7 yang Anda konfigurasikan akan dieksekusi di Waypoint.
Tidak memerlukan injeksi Sidecar adalah fitur utama mode Ambient, yang menurunkan ambang batas penggunaan dan pemeliharaan mesh. Anda hanya perlu menambahkan label pengaktifan Ambient ke namespace tertentu untuk segera mendapatkan kemampuan mTLS dan observabilitas Lapisan 4. Jika Anda memerlukan kemampuan Lapisan 7 yang lebih canggih, Anda dapat secara selektif menerapkan Waypoint untuk aplikasi tertentu atau namespace.
Rute lalu lintas
Jalur lalu lintas dalam mode Ambient ditunjukkan di bawah ini:
Perbandingan fitur
Fitur | Mode Sidecar | Mode Ambien |
Manajemen lalu lintas | Seluruh fitur Istio tersedia. | Seluruh fitur Istio tersedia (memerlukan pengaktifan Waypoint). |
Keamanan | Seluruh fitur Istio tersedia. | Seluruh fitur Istio tersedia: mTLS dan keamanan Lapisan 4 didukung secara default. Otorisasi Lapisan 7 memerlukan pengaktifan Waypoint. |
Observabilitas | Seluruh fitur Istio tersedia. | Seluruh fitur Istio tersedia: Observabilitas Lapisan 4 didukung secara default. Observabilitas Lapisan 7 memerlukan pengaktifan Waypoint. |
Metode startup | Tambahkan label auto-injection ke namespace dan mulai ulang semua pod untuk menambahkan Sidecar. | Tambahkan label ke namespace. Tidak perlu memulai ulang pod. |
Metode upgrade | Mendukung upgrade in-place dan upgrade canary. Memerlukan memulai ulang semua pod bisnis untuk menyuntikkan versi baru Sidecar. | Mendukung upgrade in-place. Komponen data plane ditingkatkan bersama dengan control plane. Tidak perlu memulai ulang pod bisnis. |
Manajemen siklus hidup | Proxy dikelola oleh pengembang aplikasi. | Administrator platform mengelola proxy. Pengembang aplikasi tidak perlu mengetahui keberadaan proxy. |
Pemanfaatan sumber daya | Setiap pod memiliki proxy Lapisan 7, sehingga sulit mencapai pemanfaatan sumber daya yang tinggi. | Proxy Waypoint dapat menyesuaikan sumber daya dan penskalaan secara independen. Bahkan seluruh namespace atau kluster dapat menggunakan Waypoint yang sama. Ini memungkinkan pemanfaatan sumber daya yang lebih tinggi. |
Biaya sumber daya rata-rata | Besar | Kecil |
Latensi rata-rata (berdasarkan data komunitas Istio) | 0,63ms~0,88ms | Tanpa Waypoint: 0,16ms~0,20ms Dengan Waypoint: 0,40ms~0,50ms |
Frekuensi penguraian Lapisan 7 | Dua kali (client Sidecar dan server Sidecar) | Tanpa Waypoint: 0 kali Dengan Waypoint: 1 kali |
Dukungan skenario skala besar | Memerlukan penyesuaian ruang lingkup konfigurasi untuk setiap Sidecar guna mengurangi volume konfigurasi. | Tidak memerlukan penyesuaian. Hanya konfigurasi yang diperlukan dikirimkan secara default. |
Dukungan protokol "Server First" | Memerlukan konfigurasi eksplisit. | Didukung secara default. |
Dukungan Kubernetes Job | Karena terikat dengan siklus hidup pod, situasinya lebih kompleks. | Dukungan transparan. |
Model keamanan | Terkuat: setiap workload memiliki kunci sendiri. | Kuat: setiap Ztunnel hanya memiliki kunci workload untuk node tersebut. |
Apakah pod yang terganggu dapat mengakses kunci mesh | Ya. | Tidak. |
Mode Ambient mengadopsi arsitektur yang memisahkan Lapisan 4 dan Lapisan 7, dan mendukung pengaktifan kemampuan Lapisan 7 secara selektif. Desain ini memungkinkan Anda menghindari biaya pemrosesan Lapisan 7 ketika fungsionalitas Lapisan 7 tidak diperlukan.
Saat ini, pencampuran mode Sidecar dan mode Ambient belum siap untuk produksi. Jika Anda ingin menggunakan mode Sidecar dan mode Ambient dalam mesh yang sama, pod antar mode tidak dapat saling memanggil.
Mode Ambient saat ini tidak mendukung pengelolaan beberapa kluster secara bersamaan.
Tentang kemampuan Lapisan 4 dan Lapisan 7 mode Ambient
Pemrosesan lalu lintas Lapisan 7 memiliki overhead yang jauh lebih tinggi dibandingkan Lapisan 4. Jika persyaratan layanan dapat dipenuhi dengan fungsionalitas Lapisan 4 saja, Anda dapat sepenuhnya menghindari Waypoint untuk lalu lintas layanan tersebut, yang dapat secara signifikan mengurangi penggunaan sumber daya mesh dan meningkatkan kinerja. Berikut ini menjelaskan kemampuan umum Lapisan 4 dan Lapisan 7 dari Ambient.
Dimensi | Kemampuan Lapisan 4 | Kemampuan Lapisan 7 |
Keamanan |
|
|
Observabilitas |
|
|
Routing | Penyeimbangan beban tingkat koneksi TCP, pemutusan sirkuit, pembatasan laju, timeout, dan retry. |
|
Ekstensibilitas | N/A | Wasmplugin |