Pertimbangan untuk sarana kontrol multipenyewa

Azure

Solusi multipenyewa memiliki beberapa bidang, dan masing-masing memiliki tanggung jawabnya sendiri. Bidang data memungkinkan pengguna akhir dan klien berinteraksi dengan sistem. Sarana kontrol adalah komponen yang mengelola tugas tingkat lebih tinggi di semua penyewa, seperti kontrol akses, provisi, dan pemeliharaan sistem untuk mendukung tugas administrator platform Anda.

Artikel ini menyediakan informasi tentang tanggung jawab sarana kontrol dan cara merancang sarana kontrol yang memenuhi kebutuhan Anda.

Diagram that shows a logical system design. A single control plane provides management across multiple tenant-specific data planes.

Misalnya, pertimbangkan sistem pembbukuan untuk mengelola catatan keuangan. Beberapa penyewa menyimpan catatan keuangan mereka dalam sistem. Saat pengguna akhir mengakses sistem untuk melihat dan memasukkan catatan keuangan mereka, mereka menggunakan data plane. Sarana data kemungkinan merupakan komponen aplikasi utama untuk solusi Anda. Penyewa Anda mungkin menganggapnya sebagai cara untuk menggunakan sistem untuk tujuan yang dimaksudkan. Sarana kontrol adalah komponen yang menyetor penyewa baru, membuat database untuk setiap penyewa, dan melakukan operasi manajemen dan pemeliharaan lainnya. Jika sistem tidak memiliki sarana kontrol, administrator harus menjalankan banyak proses manual. Atau tugas sarana data dan sarana kontrol akan dicampur bersama-sama, yang terlalu mempersulit solusi.

Banyak sistem kompleks termasuk sarana kontrol. Misalnya, sarana kontrol Azure, Azure Resource Manager, adalah sekumpulan API, alat, dan komponen back-end yang bertanggung jawab untuk menyebarkan dan mengonfigurasi sumber daya Azure. Sarana kontrol Kubernetes mengelola banyak tugas, seperti penempatan pod Kubernetes pada simpul pekerja. Hampir semua solusi software as a service (SaaS) memiliki sarana kontrol untuk menangani tugas lintas penyewa.

Saat Merancang solusi multipenyewa, Anda perlu mempertimbangkan sarana kontrol. Bagian berikut ini menyediakan detail yang Anda butuhkan untuk mencakup dan merancang sarana kontrol.

Tanggung jawab sarana kontrol

Tidak ada satu templat untuk sarana kontrol atau tanggung jawabnya. Persyaratan dan arsitektur solusi Anda menentukan apa yang perlu dilakukan oleh sarana kontrol Anda. Dalam beberapa solusi multipenyewa, sarana kontrol memiliki berbagai tanggung jawab dan merupakan sistem yang kompleks dengan haknya sendiri. Dalam solusi multipenyewa lainnya, sarana kontrol hanya memiliki tanggung jawab dasar.

Secara umum, sarana kontrol mungkin memiliki banyak tanggung jawab inti berikut:

  • Menyediakan dan mengelola sumber daya sistem yang diperlukan sistem untuk melayani beban kerja, termasuk sumber daya khusus penyewa. Sarana kontrol Anda mungkin memanggil dan mengatur alur penyebaran yang bertanggung jawab atas penyebaran, atau mungkin menjalankan operasi penyebaran itu sendiri.
  • Konfigurasi ulang sumber daya bersama untuk mengetahui penyewa baru. Misalnya, sarana kontrol Anda mungkin mengonfigurasi perutean jaringan untuk memastikan bahwa lalu lintas masuk dipetakan ke sumber daya penyewa yang benar, atau Anda mungkin perlu menskalakan kapasitas sumber daya Anda.
  • Simpan dan kelola konfigurasi setiap penyewa.
  • Menangani peristiwa siklus hidup penyewa, termasuk penyewa onboarding, pemindahan, dan offboarding.
  • Lacak penggunaan setiap penyewa fitur Anda dan performa sistem.
  • Ukur konsumsi setiap penyewa sumber daya sistem Anda. Metrik konsumsi mungkin menginformasikan sistem penagihan Anda, atau mungkin digunakan untuk tata kelola sumber daya.

Jika Anda menggunakan model penyewa yang sepenuhnya multipenyewa dan tidak menyebarkan sumber daya khusus penyewa, sarana kontrol dasar mungkin hanya melacak penyewa dan metadata terkait. Misalnya, setiap kali penyewa baru mendaftar ke layanan Anda, sarana kontrol dapat memperbarui rekaman yang sesuai dalam database sehingga sisa sistem dapat melayani permintaan penyewa baru.

Sebaliknya, misalkan solusi Anda menggunakan model penyebaran yang memerlukan infrastruktur khusus penyewa, seperti model penyewa tunggal otomatis. Dalam skenario ini, sarana kontrol Anda mungkin memiliki tanggung jawab tambahan, seperti menyebarkan atau mengonfigurasi ulang infrastruktur Azure setiap kali Anda onboarding penyewa baru. Sarana kontrol solusi Anda mungkin perlu berinteraksi dengan sarana kontrol untuk layanan dan teknologi yang Anda gunakan, seperti Azure Resource Manager atau sarana kontrol Kubernetes.

Sarana kontrol yang lebih canggih mungkin juga mengambil lebih banyak tanggung jawab:

  • Lakukan operasi pemeliharaan otomatis. Operasi pemeliharaan umum termasuk menghapus atau mengarsipkan data lama, membuat dan mengelola indeks database, dan memutar rahasia dan sertifikat kriptografi.
  • Alokasikan penyewa ke penyebaran atau stempel yang ada, yang terkadang disebut penempatan penyewa.
  • Menyeimbangkan kembali penyewa yang ada di seluruh stempel penyebaran.
  • Integrasikan dengan solusi manajemen pelanggan eksternal, seperti Microsoft Dynamics 365, untuk melacak aktivitas pelanggan.

Cakupan sarana kontrol

Anda perlu mempertimbangkan dengan cermat berapa banyak upaya yang harus dihabiskan untuk membangun sarana kontrol untuk solusi Anda. Sarana kontrol sendiri tidak memberikan nilai pelanggan langsung, sehingga mungkin tidak mudah untuk membenarkan upaya rekayasa pengeluaran untuk merancang dan membangun sarana kontrol berkualitas tinggi. Namun, ketika sistem Anda tumbuh dan menskalakan, Anda akan semakin membutuhkan manajemen dan operasi otomatis untuk dapat mengikuti pertumbuhan Anda.

Dalam situasi tertentu, Anda mungkin tidak memerlukan sarana kontrol penuh. Situasi ini mungkin berlaku jika sistem Anda akan memiliki kurang dari lima penyewa. Sebagai gantinya, tim Anda dapat mengambil tanggung jawab sarana kontrol dan dapat menggunakan operasi dan proses manual untuk onboarding dan mengelola penyewa. Namun, Anda masih harus memiliki proses dan tempat terpusat untuk melacak penyewa Anda dan konfigurasinya.

Tip

Jika Anda memutuskan untuk tidak membuat sarana kontrol penuh, ada baiknya untuk menjadi sistematis tentang prosedur manajemen Anda:

  • Dokumentasikan proses Anda secara menyeluruh.
  • Jika memungkinkan, buat dan gunakan kembali skrip untuk operasi manajemen Anda.

Jika Anda perlu mengotomatiskan proses di masa mendatang, dokumentasi dan skrip Anda dapat membentuk dasar sarana kontrol Anda.

Saat Anda tumbuh di luar beberapa penyewa, Anda mungkin akan mendapat manfaat dari memiliki cara untuk melacak setiap penyewa dan menerapkan pemantauan di seluruh armada sumber daya dan penyewa Anda. Anda mungkin juga melihat bahwa tim Anda menghabiskan jumlah waktu dan upaya yang meningkat pada manajemen penyewa. Atau Anda mungkin melihat bug atau masalah operasional karena inkonsistensi dengan cara anggota tim melakukan tugas manajemen. Jika situasi ini terjadi, ada baiknya mempertimbangkan untuk membangun sarana kontrol yang lebih komprehensif untuk mengambil tanggung jawab ini.

Catatan

Jika Anda menyediakan manajemen penyewa layanan mandiri, Anda memerlukan sarana kontrol di awal perjalanan Anda. Anda dapat memilih untuk membuat sarana kontrol dasar dan mengotomatiskan hanya beberapa fungsionalitas yang paling umum digunakan. Anda dapat secara progresif menambahkan lebih banyak kemampuan dari waktu ke waktu.

Merancang sarana kontrol

Setelah menentukan persyaratan dan cakupan sarana kontrol, Anda perlu merancang dan merancangnya. Sarana kontrol adalah komponen penting. Anda perlu merencanakannya dengan hati-hati, sama seperti Anda akan merencanakan elemen lain dari sistem Anda.

Sarana kontrol yang dirancang dengan baik

Karena sarana kontrol adalah sistemnya sendiri, penting untuk mempertimbangkan kelima pilar Azure Well-Architected Framework saat Anda mendesainnya. Bagian berikut menyoroti beberapa area tertentu untuk difokuskan.

Keandalan

Sarana kontrol seringkali merupakan komponen penting misi. Sangat penting bagi Anda untuk merencanakan tingkat ketahanan dan keandalan yang dibutuhkan sarana kontrol Anda.

Pertimbangkan apa yang terjadi jika sarana kontrol Anda tidak tersedia. Dalam kasus ekstrem, pemadaman sarana kontrol dapat mengakibatkan seluruh solusi Anda tidak tersedia. Bahkan jika sarana kontrol Anda bukan satu titik kegagalan, pemadaman mungkin memiliki beberapa efek berikut:

  • Sistem Anda tidak dapat melakukan onboarding penyewa baru, yang dapat memengaruhi penjualan dan pertumbuhan bisnis Anda.
  • Sistem Anda tidak dapat mengelola penyewa yang ada, yang menghasilkan lebih banyak panggilan ke tim dukungan Anda.
  • Anda tidak dapat mengukur konsumsi penyewa atau menagihnya untuk penggunaannya, yang mengakibatkan hilangnya pendapatan.
  • Anda tidak dapat menanggapi insiden keamanan dengan menonaktifkan atau mengonfigurasi ulang penyewa.
  • Hutang pemeliharaan terakumulasi, yang menyebabkan kerusakan jangka panjang pada sistem. Misalnya, jika solusi Anda memerlukan pembersihan data lama setiap malam, disk Anda dapat terisi atau performa Anda dapat menurtur.

Tentukan tujuan tingkat layanan untuk sarana kontrol Anda, termasuk target ketersediaan, tujuan waktu pemulihan (RTO), dan tujuan titik pemulihan (RPO). Tujuan yang Anda tetapkan untuk sarana kontrol Anda mungkin berbeda dari tujuan yang Anda tawarkan kepada pelanggan Anda.

Ikuti panduan Azure Well-Architected Framework untuk membangun solusi yang andal di seluruh sistem Anda, termasuk sarana kontrol Anda.

Keamanan

Sarana kontrol sering kali merupakan sistem yang sangat istimewa. Masalah keamanan dalam sarana kontrol dapat memiliki konsekuensi bencana. Tergantung pada desain dan fungsionalitasnya, sarana kontrol mungkin rentan terhadap berbagai jenis serangan, termasuk yang berikut:

  • Sarana kontrol mungkin memiliki akses ke kunci dan rahasia untuk semua penyewa. Penyerang yang memiliki akses ke sarana kontrol Anda mungkin dapat memperoleh akses ke data atau sumber daya penyewa.
  • Sarana kontrol sering dapat menyebarkan sumber daya baru ke Azure. Penyerang mungkin dapat mengeksploitasi sarana kontrol Anda untuk menyebarkan sumber daya mereka sendiri ke dalam langganan Anda, yang berpotensi dikenakan biaya ekstensif.
  • Jika penyerang berhasil membawa sarana kontrol Anda offline, mungkin ada kerusakan segera dan jangka panjang pada sistem Anda dan bisnis Anda. Lihat Keandalan misalnya konsekuensi dari sarana kontrol yang tidak tersedia.

Saat Anda merancang dan menerapkan sarana kontrol, penting bagi Anda untuk mengikuti praktik terbaik keamanan dan membuat model ancaman yang komprehensif untuk mendokumentasikan dan mengurangi potensi ancaman dan masalah keamanan dalam solusi Anda. Untuk informasi selengkapnya, lihat panduan Azure Well-Architected Framework untuk membangun solusi yang aman.

Keunggulan operasional

Karena sarana kontrol adalah komponen penting, Anda harus mempertimbangkan dengan cermat bagaimana Anda menyebarkan dan mengoperasikannya dalam produksi.

Seperti bagian lain dari solusi Anda, Anda harus menyebarkan instans non-produksi sarana kontrol Anda sehingga Anda dapat menguji fungsionalitasnya secara menyeluruh. Jika sarana kontrol Anda melakukan operasi penyebaran, pertimbangkan bagaimana sarana kontrol non-produksi Anda berinteraksi dengan lingkungan Azure Anda, dan langganan Azure mana yang Anda sebarkan sumber daya non-produksinya.

Anda juga harus merencanakan bagaimana Anda mengatur akses tim Anda ke sarana kontrol Anda. Ikuti praktik terbaik untuk hanya memberikan izin yang dibutuhkan anggota tim untuk melakukan tugas mereka. Selain membantu menghindari insiden keamanan, pendekatan ini membantu mengurangi efek kesalahan konfigurasi yang tidak disengaja.

Komponen

Tidak ada satu templat untuk sarana kontrol, dan komponen yang Anda desain dan bangun bergantung pada kebutuhan Anda. Umumnya, sarana kontrol terdiri dari API dan komponen pekerja latar belakang. Dalam beberapa solusi, sarana kontrol mungkin juga menyertakan antarmuka pengguna.

Mengisolasi sarana kontrol Anda dari beban kerja penyewa

Ini adalah praktik yang baik untuk memisahkan sumber daya sarana kontrol Anda dari yang digunakan untuk melayani sarana data penyewa Anda. Misalnya, Anda harus mempertimbangkan untuk menggunakan server database terpisah, server aplikasi, dan paket Azure App Service, dan komponen lainnya. Sering kali merupakan ide yang baik untuk menyimpan sumber daya sarana kontrol Anda dalam grup sumber daya Azure terpisah dari sumber daya khusus penyewa.

Dengan mengisolasi sarana kontrol Anda dari beban kerja penyewa, Anda mendapatkan beberapa keuntungan:

  • Anda dapat mengonfigurasi penskalakan secara terpisah. Misalnya, sarana kontrol Anda mungkin memiliki persyaratan sumber daya yang konsisten, dan sumber daya penyewa Anda mungkin menskalakan secara elastis tergantung pada kebutuhan mereka.
  • Ada sekat antara kontrol dan bidang data Anda, yang membantu mencegah masalah tetangga yang bising menyebar di antara bidang solusi Anda.
  • Sarana kontrol biasanya merupakan sistem dengan hak istimewa tinggi yang memiliki tingkat akses tinggi. Dengan memisahkan sarana kontrol dari bidang data, Anda mengurangi kemungkinan bahwa kerentanan keamanan mungkin memungkinkan penyerang untuk meningkatkan izin mereka di seluruh sistem Anda.
  • Anda dapat menyebarkan konfigurasi jaringan dan firewall terpisah. Sarana data dan sarana kontrol biasanya memerlukan berbagai jenis akses jaringan.

Mengatur urutan operasi jangka panjang

Operasi yang dilakukan sarana kontrol sering berjalan lama dan melibatkan koordinasi antara beberapa sistem. Operasi ini juga dapat memiliki mode kegagalan yang kompleks. Saat Anda merancang sarana kontrol, penting untuk menggunakan teknologi yang sesuai untuk mengoordinasikan operasi atau alur kerja yang berjalan lama.

Misalnya, saat Anda melakukan onboarding penyewa baru, sarana kontrol Anda menjalankan tindakan berikut secara berurutan:

  1. Menyebarkan database baru. Tindakan ini adalah operasi penyebaran Azure. Mungkin perlu waktu beberapa menit untuk menyelesaikannya.
  2. Perbarui katalog metadata penyewa Anda. Tindakan ini mungkin melibatkan menjalankan perintah terhadap database Azure SQL.
  3. Kirim email selamat datang ke penyewa baru. Tindakan ini memanggil API pihak ketiga untuk mengirim email.
  4. Perbarui sistem penagihan Anda untuk mempersiapkan faktur penyewa baru. Tindakan ini memanggil API pihak ketiga. Anda telah melihat bahwa itu terputus-putus gagal.
  5. Perbarui sistem manajemen hubungan pelanggan (CRM) Anda untuk melacak penyewa baru. Tindakan ini memanggil API pihak ketiga.

Jika ada langkah dalam urutan yang gagal, Anda perlu mempertimbangkan apa yang harus dilakukan, seperti:

  • Coba lagi operasi yang gagal. Misalnya, jika perintah Azure SQL Anda di langkah 2 gagal dengan kesalahan sementara, Anda dapat mencobanya kembali.
  • Lanjutkan ke langkah berikutnya. Misalnya, Anda mungkin memutuskan bahwa itu dapat diterima jika pembaruan ke sistem penagihan Anda gagal, karena tim penjualan Anda akan menambahkan pelanggan secara manual.
  • Abaikan alur kerja dan picu proses pemulihan manual.

Anda juga perlu mempertimbangkan seperti apa pengalaman pengguna untuk setiap skenario kegagalan.

Mengelola komponen bersama

Sarana kontrol perlu mengetahui komponen apa pun yang tidak didedikasikan untuk penyewa tertentu, tetapi sebaliknya dibagikan. Beberapa komponen mungkin dibagikan di antara semua penyewa dalam stempel. Komponen lain mungkin dibagikan di antara semua stempel di suatu wilayah, atau bahkan dibagikan secara global di semua wilayah dan stempel. Setiap kali penyewa di-onboarding, dikonfigurasi ulang, atau di-offboarding, sarana kontrol Anda perlu mengetahui apa yang harus dilakukan dengan komponen bersama ini.

Beberapa komponen bersama mungkin perlu dikonfigurasi ulang setiap kali penyewa ditambahkan atau dihapus. Misalnya, Anda memiliki profil Azure Front Door yang dibagikan secara global. Jika Anda menambahkan penyewa dengan nama domain kustom, sarana kontrol Anda mungkin perlu memperbarui konfigurasi profil untuk merutekan permintaan untuk nama domain tersebut ke aplikasi yang benar. Demikian pula, ketika penyewa di-offboarding, sarana kontrol Anda mungkin perlu menghapus nama domain kustom dari profil Azure Front Door untuk menghindari serangan pengamanan subdomain.

Komponen bersama mungkin memiliki aturan penskalakan kompleks yang perlu diikuti oleh sarana kontrol Anda. Misalnya, Anda mengikuti pendekatan pengemasan bin untuk menyebarkan database penyewa Anda. Saat penyewa baru di-onboarding, Anda menambahkan database Azure SQL baru untuk penyewa tersebut, lalu Anda menetapkannya ke kumpulan elastis Azure SQL. Anda mungkin telah menentukan bahwa Anda perlu meningkatkan sumber daya yang dialokasikan ke kumpulan Anda untuk setiap database kesepuluh yang Anda tambahkan. Saat Anda menambahkan atau menghapus penyewa, sarana kontrol Anda perlu mengevaluasi ulang konfigurasi kumpulan dan memutuskan apakah akan mengubah sumber daya kumpulan. Saat Anda mencapai jumlah maksimum database yang dapat Anda tetapkan ke satu kumpulan elastis, Anda perlu membuat kumpulan baru dan mulai menggunakan kumpulan tersebut untuk database penyewa baru. Sarana kontrol Anda perlu bertanggung jawab untuk mengelola masing-masing komponen bersama ini, menskalakan dan mengonfigurasi ulang setiap kali sesuatu berubah.

Ketika sarana kontrol Anda mengelola komponen bersama, penting untuk mengetahui kondisi balapan, yang dapat terjadi ketika beberapa operasi terjadi secara paralel. Misalnya, jika Anda onboarding penyewa baru pada saat yang sama bahwa Anda melakukan offboard penyewa yang berbeda, Anda perlu memastikan bahwa status akhir akhir Anda konsisten dan memenuhi persyaratan penskalaan Anda.

Menggunakan beberapa sarana kontrol

Dalam lingkungan yang kompleks, Anda mungkin perlu menggunakan beberapa sarana kontrol, masing-masing dengan area tanggung jawab yang berbeda. Banyak solusi multipenyewa mengikuti pola Stempel Penyebaran dan penyewa shard di beberapa stempel. Saat Anda menggunakan pola ini, Anda dapat membuat sarana kontrol terpisah untuk tanggung jawab global dan stempel.

Tip

Berkoordinasi di beberapa sarana kontrol rumit, jadi cobalah untuk meminimalkan jumlah sarana kontrol yang Anda bangun. Sebagian besar solusi hanya membutuhkan satu sarana kontrol.

Sarana kontrol global

Sarana kontrol global biasanya bertanggung jawab atas manajemen keseluruhan dan pelacakan penyewa. Sarana kontrol global mungkin memiliki tanggung jawab berikut:

  • Penempatan penyewa. Sarana kontrol global menentukan stempel mana yang harus digunakan penyewa. Ini mungkin membuat penentuan ini berdasarkan faktor-faktor seperti wilayah penyewa, pemanfaatan kapasitas setiap stempel, dan persyaratan tingkat layanan penyewa.
  • Onboarding penyewa dan manajemen siklus hidup. Tanggung jawab ini termasuk melacak semua penyewa di semua penyebaran.

Sarana kontrol stempel

Sarana kontrol stempel disebarkan ke setiap stempel penyebaran dan bertanggung jawab atas penyewa dan sumber daya yang dialokasikan untuk stempel tersebut. Sarana kontrol stempel mungkin memiliki tanggung jawab ini:

  • Membuat dan mengelola sumber daya khusus penyewa dalam stempel, seperti database dan kontainer penyimpanan
  • Mengelola sumber daya bersama, termasuk memantau konsumsi sumber daya bersama dan menyebarkan instans baru saat mendekati kapasitas maksimumnya
  • Melakukan operasi pemeliharaan dalam stempel, seperti manajemen indeks database dan operasi pembersihan

Setiap sarana kontrol stempel berkoordinasi dengan sarana kontrol global. Misalnya, misalkan penyewa baru mendaftar. Sarana kontrol global awalnya bertanggung jawab untuk memilih stempel untuk sumber daya penyewa. Kemudian, sarana kontrol global meminta sarana kontrol stempel untuk membuat sumber daya yang diperlukan untuk penyewa.

Diagram berikut menunjukkan contoh bagaimana kedua sarana kontrol mungkin hidup berdampingan dalam satu sistem:

Diagram that shows a logical system design. The design has a global control plane and stamp control planes.

Sarana kontrol penyewa

Penyewa mungkin menggunakan sarana kontrol tingkat penyewa untuk mengelola sumber daya logis atau fisik mereka sendiri. Sarana kontrol penyewa mungkin memiliki tanggung jawab berikut:

  • Manajemen konfigurasi khusus penyewa, seperti akses pengguna
  • Operasi pemeliharaan yang dimulai penyewa, seperti mencadangkan data atau mengunduh cadangan sebelumnya
  • Manajemen pembaruan, jika Anda mengizinkan penyewa untuk mengontrol pembaruan mereka sendiri ke aplikasi mereka

Diagram berikut menunjukkan sistem kompleks yang memiliki sarana kontrol global, sarana kontrol stempel, dan sarana kontrol untuk setiap penyewa:

Diagram that shows a logical system design. The design has a global control plane, stamp control planes, and a control plane for each tenant.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

  • John Downs | Teknisi Pelanggan Utama, FastTrack untuk Azure

Kontributor lain:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya