API Namespace di Google App Engine memudahkan pemisahan data Google App Engine Anda. API ini diimplementasikan melalui fungsi appengine.Namespace
, dan digabungkan dalam API yang didukung namespace tertentu.
Saat Anda menetapkan namespace di pengelola namespace, API ini akan mendapatkan namespace saat ini dan menggunakannya secara global. Anda dapat secara eksplisit mendeklarasikan namespace secara lokal, tetapi Anda perlu berhati-hati saat mendeklarasikan namespace secara eksplisit, karena Anda berisiko menimbulkan kebocoran data dan bug lainnya secara tidak sengaja. Permintaan App Engine apa pun dapat mengakses namespace apa pun, sehingga aplikasi harus menerapkan kebijakan kontrol akses di seluruh namespace.
Anda dapat menggunakan Namespaces API untuk membangun berbagai aplikasi. Salah satu penggunaan API yang paling menarik adalah untuk aplikasi multitenant, seperti yang dijelaskan di bawah ini.
Tentang multitenancy
Multitenancy adalah nama yang diberikan untuk arsitektur software dengan satu instance aplikasi, yang berjalan di server jarak jauh, melayani banyak organisasi klien (juga dikenal sebagai tenant).
Menggunakan arsitektur multitenant menyederhanakan administrasi dan penyediaan tenant. Anda dapat memberikan pengalaman pengguna yang lebih sederhana dan disesuaikan, serta menggabungkan berbagai silo data dalam satu skema database. Hasilnya, aplikasi Anda menjadi lebih skalabel dan lebih hemat biaya seiring dengan peningkatan skala aplikasi Anda. Data menjadi lebih mudah dipisahkan dan dianalisis di seluruh tenant karena semua tenant memiliki skema database yang sama. Grup pengguna yang berbeda melihat konten kustom yang digabungkan dalam aplikasi yang lebih efisien.
Membangun aplikasi multitenant dengan API Namespace
Dengan Namespaces API, Anda dapat dengan mudah mempartisi data di seluruh tenant cukup dengan menentukan string namespace unik untuk setiap tenant. Anda cukup menetapkan namespace untuk setiap tenant secara global menggunakan pengelola namespace (bukan menyetelnya secara eksplisit untuk permintaan tertentu). API yang mendukung namespace selalu menggunakan namespace saat ini secara default.
Namespaces API terintegrasi dengan Google Workspace, sehingga Anda dapat menggunakan domain Google Workspace sebagai namespace saat ini. Karena Google Workspace memungkinkan Anda men-deploy aplikasi ke domain apa pun yang dimiliki, Anda dapat menetapkan namespace unik dengan mudah untuk semua domain yang ditautkan ke akun Google Workspace Anda.
Saat mendesain aplikasi multitenant, Anda perlu mencegah kebocoran data di seluruh namespace. Untuk informasi selengkapnya, lihat Menghindari Kebocoran Data.
API App Engine yang menggunakan namespace
App Engine saat ini mendukung namespace di API berikut:
Project contoh yang menggunakan namespace
Tersedia dua contoh aplikasi buku tamu yang menggunakan namespace:
- Python App Engine: appengine-multitenancy – Aplikasi buku tamu contoh berdasarkan namespace.
- Java App Engine: appengine-gwtguestbook-namespaces-java – Aplikasi buku tamu contoh berdasarkan namespace yang menggunakan GWT.
Penggunaan lain untuk API Namespace
Meskipun Namespaces API memungkinkan multitenancy di App Engine, API ini memiliki sejumlah kegunaan lain, termasuk:
- Membagi informasi pengguna
- Memisahkan data admin dari data aplikasi
- Membuat instance datastore terpisah untuk pengujian dan produksi
- Menjalankan beberapa aplikasi pada satu instance App Engine