Multitenancy dan Azure Database for PostgreSQL
Banyak solusi multipenyewa di Azure menggunakan sistem manajemen database relasional sumber terbuka Azure Database for PostgreSQL. Dalam artikel ini, kami meninjau fitur Azure Database for PostgreSQL yang berguna saat bekerja dengan sistem multipenyewa. Artikel ini juga menautkan ke panduan dan contoh cara menggunakan Azure Database for PostgreSQL, dalam solusi multipenyewa.
Mode penyebaran
Ada dua mode penyebaran yang tersedia untuk Azure Database for PostgreSQL yang cocok untuk digunakan dengan aplikasi multipenyewa:
- Azure Database for PostgreSQL - Server Fleksibel - Ini adalah pilihan yang baik untuk sebagian besar penyebaran multipenyewa yang tidak memerlukan skalabilitas tinggi yang disediakan oleh Azure Cosmos DB for PostgreSQL.
- Azure Cosmos DB for PostgreSQL - Layanan database terkelola Azure yang dirancang untuk solusi yang membutuhkan tingkat skala tinggi, yang sering mencakup aplikasi multipenyewa. Layanan ini adalah bagian dari keluarga produk Azure Cosmos DB.
Catatan
Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian dan dijadwalkan untuk dihentikan pada 28 Maret 2025. Tidak disarankan untuk beban kerja multipenyewa baru.
Fitur Azure Database for PostgreSQL yang mendukung multitenansi
Saat Anda membangun aplikasi multipenyewa menggunakan Azure Database for PostgreSQL, ada sejumlah fitur yang dapat Anda gunakan untuk meningkatkan solusi.
Catatan
Beberapa fitur hanya tersedia dalam mode penyebaran tertentu. Fitur-fitur ini ditunjukkan dalam panduan di bawah ini.
Keamanan tingkat baris
Keamanan tingkat baris berguna untuk menerapkan isolasi tingkat penyewa, saat Anda menggunakan tabel bersama. Di PostgreSQL, keamanan tingkat baris diterapkan dengan menerapkan kebijakan keamanan baris ke tabel untuk membatasi akses ke baris menurut penyewa.
Mungkin ada sedikit dampak performa saat menerapkan keamanan tingkat baris pada tabel. Oleh karena itu, indeks tambahan mungkin perlu dibuat pada tabel dengan keamanan tingkat baris diaktifkan untuk memastikan performa tidak terpengaruh. Disarankan untuk menggunakan teknik pengujian performa untuk memvalidasi bahwa beban kerja Anda memenuhi persyaratan performa garis besar Anda saat keamanan tingkat baris diaktifkan.
Informasi selengkapnya:
Penskalakan horizontal dengan sharding
Pola Sharding memungkinkan Anda untuk menskalakan beban kerja Anda di beberapa database atau server database.
Solusi yang membutuhkan tingkat skala yang sangat tinggi dapat menggunakan Azure Cosmos DB for PostgreSQL. Mode penyebaran ini memungkinkan sharding horizontal penyewa di beberapa server (simpul). Dengan menggunakan tabel terdistribusi dalam database multipenyewa, Anda dapat memastikan semua data untuk penyewa disimpan pada simpul yang sama, yang meningkatkan performa kueri.
Catatan
Mulai Oktober 2022, Azure Database for PostgreSQL Hyperscale (Citus) telah diubah namanya menjadi Azure Cosmos DB for PostgreSQL dan dipindahkan ke keluarga produk Cosmos DB.
Informasi selengkapnya:
- Merancang database multi-penyewa menggunakan Azure Cosmos DB for PostgreSQL
- Tabel terdistribusi
- Memilih kolom distribusi dalam tabel terdistribusi.
- Panduan untuk menggunakan Citus untuk aplikasi multipenyewa.
Pengumpulan koneksi
Postgres menggunakan model berbasis proses untuk koneksi. Model ini membuatnya tidak efisien untuk mempertahankan sejumlah besar koneksi diam. Beberapa arsitektur multipenyewa memerlukan sejumlah besar koneksi aktif, yang akan berdampak negatif pada performa server Postgres.
Pengumpulan koneksi melalui PgBouncer diinstal secara default di Azure Database for PostgreSQL - Server Fleksibel.
Informasi selengkapnya:
- PgBouncer di Azure Database for PostgreSQL - Server Fleksibel
- Pengumpulan koneksi di Azure Cosmos DB for PostgreSQL
- Langkah-langkah untuk memasang dan mengatur pengumpulan proksi koneksi PgBouncer dengan Azure DB for PostgreSQL
Autentikasi Microsoft Entra
Azure Database for PostgreSQL - Server Fleksibel mendukung autentikasi koneksi menggunakan ID Microsoft Entra. Fitur ini memungkinkan beban kerja aplikasi di lingkungan multipenyewa untuk mengautentikasi ke database dengan menggunakan perwakilan layanan khusus penyewa atau identitas terkelola, yang berarti bahwa akses database dapat dilingkupkan ke penyewa individual. Dengan menggabungkan autentikasi ID Microsoft Entra dengan kebijakan keamanan baris tertentu penyewa, Anda dapat mengurangi risiko aplikasi mengakses data penyewa lain dari dalam database multipenyewa. Informasi selengkapnya:
- Autentikasi Microsoft Entra dengan Azure Database for PostgreSQL - Server Fleksibel
- Menyambungkan dengan identitas terkelola ke Azure Database for PostgreSQL - Server Fleksibel
Kontributor
Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.
Penulis utama:
- Daniel Scott-Raynsford | Strategi Teknologi Mitra
Kontributor lain:
- John Downs | Insinyur Perangkat Lunak Utama
- Arsen Vladimirskiy | Teknisi Pelanggan Utama, FastTrack untuk Azure
- Paul Burpo | Insinyur Pelanggan Utama, FastTrack untuk Isv Azure
- Assaf Fraenkel | Insinyur Senior/Arsitek Data, Azure FastTrack untuk ISV dan Start-up
Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.
Langkah berikutnya
Tinjau pendekatan penyimpanan dan data untuk multi-penyewaan.