Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat layanan pembantu yang mengirim permintaan jaringan atas nama layanan atau aplikasi konsumen. Anggaplah layanan duta besar sebagai proksi di luar proses yang dikolokasikan dengan klien.
Gunakan pola Ambassador untuk mengalihkan tugas-tugas konektivitas klien umum seperti pemantauan, pencatatan, perutean, dan keamanan seperti Transport Layer Security (TLS), serta pola ketahanan dengan cara yang tidak bergantung pada bahasa. Perluas kemampuan jaringan aplikasi warisan, atau aplikasi lain yang sulit dimodifikasi, dengan menggunakan pola Duta. Tim khusus juga dapat menggunakan pola Duta Besar untuk mengimplementasikan fitur-fitur tersebut.
Konteks dan masalah
Aplikasi berbasis cloud yang tangguh memerlukan fitur seperti pemutusan sirkuit, perutean, pengukuran dan pemantauan, dan pembaruan konfigurasi terkait jaringan. Jika tim pengembangan tidak mempertahankan kode atau tidak dapat dengan mudah memodifikasinya, mungkin sulit atau bahkan tidak mungkin untuk memperbarui aplikasi warisan atau pustaka kode yang ada untuk menambahkan fitur-fitur ini.
Panggilan jaringan mungkin juga memerlukan konfigurasi substansial untuk koneksi, autentikasi, dan otorisasi. Saat beberapa aplikasi menggunakan panggilan ini di berbagai bahasa dan kerangka kerja, Anda harus mengonfigurasi panggilan secara terpisah untuk setiap instans. Tim pusat dalam organisasi Anda mungkin perlu mengelola fungsionalitas jaringan dan keamanan. Dengan basis kode besar, mungkin berisiko bagi tim tersebut untuk memperbarui kode aplikasi yang tidak dikenal.
Solusi
Masukkan kerangka kerja dan pustaka klien ke dalam proses eksternal yang bertindak sebagai proksi antara aplikasi Anda dan layanan eksternal. Untuk memberikan kontrol atas fitur perutean, ketahanan, dan keamanan dan untuk menghindari pembatasan akses terkait host, sebarkan proksi pada lingkungan host yang sama dengan aplikasi Anda. Gunakan pola duta besar untuk menstandarkan dan memperluas instrumentasi. Proksi dapat memantau metrik performa, seperti latensi atau penggunaan sumber daya, di lingkungan host yang sama dengan aplikasi.
Anda dapat mengelola fitur yang dilepaskan ke duta besar secara independen dari aplikasi. Anda dapat memperbarui dan memodifikasi duta besar tanpa mengganggu fungsionalitas warisan aplikasi. Terpisah, tim khusus juga dapat menerapkan dan memelihara fitur keamanan, jaringan, atau autentikasi yang telah dipindahkan ke duta besar.
Anda dapat menerapkan layanan duta sebagai sidecar untuk menyertai daur hidup aplikasi atau layanan yang menggunakan. Atau, jika beberapa proses terpisah pada host umum berbagi duta besar, Anda dapat menyebarkannya sebagai daemon atau layanan Windows. Jika layanan konsumsi dikontainerisasi, buat duta sebagai kontainer terpisah pada host yang sama dan siapkan tautan yang sesuai untuk komunikasi.
Masalah dan pertimbangan
Pertimbangkan poin-poin berikut saat Anda memutuskan cara menerapkan pola ini:
Proksi mengakibatkan latensi overhead. Pertimbangkan apakah menggunakan pustaka klien yang secara langsung diakses oleh aplikasi adalah pendekatan yang lebih baik.
Pertimbangkan kemungkinan dampak termasuk fitur umum dalam proksi. Misalnya, duta besar dapat menangani percobaan ulang, tetapi pendekatan itu mungkin tidak aman kecuali semua operasi idempotensi.
Pertimbangkan mekanisme yang dapat digunakan klien untuk meneruskan beberapa konteks ke proksi dan kembali ke klien. Misalnya, sertakan header permintaan HTTP untuk menolak coba lagi atau tentukan jumlah maksimum waktu untuk mencoba kembali.
Pertimbangkan cara mengemas dan menyebarkan proxy.
Pertimbangkan apakah akan menggunakan satu instans bersama untuk semua klien atau instans untuk setiap klien.
Kapan menggunakan pola ini
Gunakan pola ini ketika:
Anda harus membangun serangkaian fitur konektivitas klien umum untuk beberapa bahasa atau kerangka kerja.
Anda harus mengalihkan masalah konektivitas klien lintas fungsi ke pengembang infrastruktur atau tim lain yang lebih khusus.
Anda harus mendukung persyaratan konektivitas cloud atau kluster dalam aplikasi warisan atau aplikasi yang sulit diubah.
Anda harus mendukung protokol atau pola konektivitas yang tidak mudah ditangani oleh gateway API, jala layanan, atau kontrol masuk dan keluar standar.
Pola ini mungkin tidak cocok ketika:
Latensi permintaan jaringan sangat penting. Proksi memperkenalkan overhead minimal, dan overhead ini dapat memengaruhi aplikasi.
Fitur konektivitas klien digunakan oleh satu bahasa. Dalam hal ini, opsi yang lebih baik mungkin merupakan pustaka klien yang didistribusikan ke tim pengembangan sebagai paket.
Fitur konektivitas tidak dapat digeneralisasi dan fitur-fitur ini memerlukan integrasi yang lebih dalam dengan aplikasi klien.
Platform aplikasi Anda mendukung solusi bawaan, seperti jala layanan, untuk menangani kemampuan TLS bersama (mTLS), manajemen lalu lintas, dan kebijakan. Gunakan solusi ini alih-alih membuat solusi duta kustom.
Desain beban kerja
Evaluasi cara menggunakan pola Duta Besar dalam desain beban kerja untuk mengatasi tujuan dan prinsip yang tercakup dalam pilar Azure Well-Architected Framework. Tabel berikut memberikan panduan tentang bagaimana pola ini mendukung tujuan setiap pilar.
| Pilar | Bagaimana pola ini mendukung tujuan pilar |
|---|---|
| Keputusan desain Keandalan membantu beban kerja Anda menjadi tangguh tidak berfungsi dan memastikan bahwa memulihkan ke keadaan yang berfungsi penuh setelah kegagalan terjadi. | Pola ini memperkenalkan titik mediasi komunikasi jaringan, sehingga Anda dapat menambahkan pola keandalan ke komunikasi jaringan, seperti mencoba kembali atau buffering. - RE:07 Perlindungan Diri |
| Keputusan desain keamanan membantu memastikan kerahasiaan, integritas, dan ketersediaan data dan sistem beban kerja Anda. | Dengan pola ini, Anda dapat menerapkan keamanan pada komunikasi jaringan yang tidak dapat ditangani klien secara langsung. - SE:06 Kontrol jaringan - Enkripsi SE:07 |
Jika pola ini memperkenalkan kompromi di dalam pilar, bandingkan dengan tujuan pilar lain.
Example
Diagram berikut menunjukkan aplikasi yang membuat permintaan ke layanan jarak jauh melalui proksi duta besar. Duta besar menyediakan perutean, pemutusan sirkuit, dan pengelogan. Ini memanggil layanan jarak jauh dan kemudian mengembalikan respons ke aplikasi klien.
Di lingkungan kontainer, duta besar ini akan berjalan sebagai kontainer sespan di samping kontainer aplikasi. Di lingkungan yang tidak kontainer, Anda akan menerapkannya sebagai proses lokal atau layanan Windows pada host yang sama.