Bagikan melalui


Ulasan Azure Well-Architected Framework – Azure Cosmos DB for NoSQL

Artikel ini menjelaskan praktik terbaik untuk Azure Cosmos DB untuk NoSQL. Praktik terbaik ini memastikan bahwa Anda dapat menyebarkan solusi di Azure Cosmos DB yang efisien, andal, aman, dioptimalkan untuk biaya, dan secara operasional sangat baik. Panduan ini berfokus pada lima pilar keunggulan arsitektur dalam Well-Architected Framework:

Panduan ulasan ini mengasumsikan bahwa Anda memiliki pengetahuan kerja tentang Azure Cosmos DB dan berpengalaman dengan fitur-fiturnya. Untuk informasi selengkapnya, lihat Azure Cosmos DB untuk NoSQL.

Prasyarat

Memahami pilar Well-Architected Framework dapat membantu menghasilkan arsitektur cloud berkualitas tinggi, stabil, dan efisien. Kami menyarankan agar Anda mulai dengan meninjau beban kerja Anda menggunakan penilaian Tinjauan Kerangka Kerja Azure Well-Architected.

Untuk konteks selengkapnya, tinjau berbagai arsitektur referensi yang mencerminkan pertimbangan dari panduan ini dalam desainnya. Arsitektur ini termasuk, tetapi tidak terbatas pada:

Keandalan

Seperti halnya layanan cloud apa pun, kegagalan dapat terjadi baik di layanan maupun sisi beban kerja. Tidak mungkin untuk mencegah semua potensi kegagalan, tetapi ini adalah tujuan yang lebih baik untuk meminimalkan efek yang dapat dimiliki satu komponen yang gagal pada seluruh beban kerja Anda. Bagian ini mencakup pertimbangan dan rekomendasi untuk meminimalkan konsekuensi dari kegagalan satu kali.

Daftar periksa desain

  • Pertimbangkan bagaimana tingkat konsistensi dan mode replikasi yang Anda pilih memengaruhi tujuan titik pemulihan (RPO) dalam pemadaman di seluruh wilayah.
  • Desain penyebaran akun database Anda sehingga mencakup setidaknya dua wilayah di Azure. Selain itu, distribusikan akun Anda di beberapa zona ketersediaan saat ditawarkan dalam wilayah Azure Anda.
  • Evaluasi strategi penulisan multi-wilayah dan wilayah tunggal untuk beban kerja Anda. Untuk penulisan wilayah tunggal, rancang beban kerja Anda agar memiliki setidaknya wilayah baca kedua untuk failover. Aktifkan failover otomatis untuk skenario penulisan wilayah tunggal dan baca multi-wilayah. Untuk penulisan multi-wilayah, bandingkan tradeoff dalam kompleksitas dan konsistensi terhadap keuntungan menulis ke beberapa wilayah. Tinjau ekspektasi selama pemadaman regional untuk akun tulis satu wilayah dan multi-wilayah.
  • Aktifkan failover yang dikelola layanan untuk akun Anda.
  • Rancang pengujian ketersediaan tinggi end-to-end untuk aplikasi Anda.
  • Telusuri proses pencadangan umum termasuk, tetapi tidak terbatas pada; pemulihan titik waktu, pemulihan dari operasi destruktif yang tidak disengaja, memulihkan sumber daya yang dihapus, dan memulihkan ke wilayah lain pada titik waktu tertentu. Konfigurasikan akun dengan pencadangan berkelanjutan, memilih periode retensi yang sesuai berdasarkan kebutuhan bisnis Anda.
  • Jelajahi panduan merancang aplikasi tangguh, tinjau kebijakan coba lagi default untuk SDK, dan rencanakan penanganan kustom untuk kesalahan sementara tertentu. Panduan ini akan memberikan praktik terbaik untuk membuat kode aplikasi tahan terhadap kesalahan sementara.

Rekomendasi

Rekomendasi Keuntungan
Distribusikan akun Azure Cosmos DB Anda di seluruh zona ketersediaan (jika tersedia). Zona ketersediaan menyediakan daya, jaringan, dan pendinginan yang berbeda yang mengisolasi kegagalan perangkat keras ke subset replika Anda. Azure Cosmos DB memiliki beberapa replika yang mencakup satu zona ketersediaan acak saat fitur zona ketersediaan tidak digunakan. Jika fitur zona ketersediaan digunakan, replika mencakup beberapa zona ketersediaan.
Konfigurasikan akun Azure Cosmos DB Anda untuk menjangkau setidaknya dua wilayah. Mencakup beberapa wilayah mencegah akun Anda sepenuhnya tidak tersedia jika ada pemadaman wilayah yang terisolasi.
Aktifkan failover yang dikelola layanan untuk akun Anda. Failover yang dikelola layanan memungkinkan Azure Cosmos DB mengubah wilayah tulis akun beberapa wilayah untuk mempertahankan ketersediaan. Perubahan ini terjadi tanpa interaksi pengguna. Pahami tradeoff dengan failover yang dikelola layanan dan rencanakan failover paksa jika perlu. Untuk informasi selengkapnya, lihat membangun aplikasi yang sangat tersedia.
Validasi ketersediaan dengan menguji failover secara manual dengan failover yang dikelola layanan untuk sementara dinonaktifkan. Menonaktifkan failover pengelolaan layanan untuk sementara memungkinkan Anda memvalidasi ketersediaan tinggi end-to-end aplikasi Anda dengan failover manual yang dimulai menggunakan skrip atau portal Azure. Setelah itu, Anda dapat mengaktifkan kembali failover yang dikelola layanan.

Definisi Azure Policy

Keamanan

Keamanan adalah bagian penting dari arsitektur apa pun yang dapat dengan mudah diabaikan untuk kenyamanan. Memperkuat keamanan beban kerja akhir Anda dengan mempertimbangkan berbagai praktik terbaik keamanan di muka sebelum sumber daya pertama atau bukti konsep dibuat. Bagian ini mencakup pertimbangan dan rekomendasi untuk mengurangi jumlah kerentanan keamanan untuk beban kerja akhir Anda.

Daftar periksa desain

  • Kurangi area serangan permukaan dengan merancang untuk menggunakan titik akhir privat sesuai dengan garis besar keamanan untuk Azure Cosmos DB.
  • Buat peran, grup, dan penugasan untuk akses sarana kontrol dan bidang data ke akun Anda sesuai prinsip akses hak istimewa terkecil. Pertimbangkan untuk menonaktifkan autentikasi berbasis kunci.
  • Menilai kepatuhan dan sertifikasi tingkat layanan dalam konteks persyaratan data pribadi global saat ini.
  • Mengenkripsi data tidak aktif atau bergerak menggunakan kunci yang dikelola layanan atau kunci yang dikelola pelanggan (CMK).
  • Mengaudit akses pengguna, pelanggaran keamanan, dan operasi sumber daya dengan log sarana kontrol..
  • Pantau keluarnya data, perubahan data, penggunaan, dan latensi dengan metrik data plane.

Rekomendasi

Rekomendasi Keuntungan
Terapkan, minimal, garis besar keamanan perlindungan data dan manajemen identitas. Buka garis besar keamanan termasuk manajemen identitas dan perlindungan data. Terapkan rekomendasi untuk mengamankan akun Azure Cosmos DB Anda.
Nonaktifkan titik akhir publik dan gunakan titik akhir privat jika memungkinkan. Hindari meninggalkan titik akhir publik yang tidak perlu atau tidak digunakan yang tersedia untuk serangan area permukaan ke akun Anda.
Gunakan kontrol akses berbasis peran untuk membatasi akses sarana kontrol ke identitas dan grup tertentu dan dalam cakupan penugasan yang ditentukan dengan baik. Gunakan kontrol akses berbasis peran untuk mencegah akses yang tidak diinginkan ke akun Anda. Tetapkan peran dan izin yang sesuai untuk pengguna atau aplikasi yang mengakses Azure Cosmos DB.
Buat titik akhir dan aturan jaringan virtual untuk membatasi akses ke akun. Terapkan titik akhir layanan jaringan virtual dan aturan firewall untuk membatasi akses ke akun Azure Cosmos DB Anda. Gunakan kelompok keamanan jaringan (NSG) untuk mengontrol lalu lintas masuk dan keluar ke dan dari sumber daya Azure Cosmos DB. Membatasi akses ke jaringan tepercaya dan menerapkan langkah-langkah keamanan jaringan yang sesuai membantu melindungi data Anda dari akses yang tidak sah.
Ikuti praktik pengembangan perangkat lunak terbaik untuk akses aman ke data. Ikuti praktik pengodean aman dan lakukan tinjauan kode aman saat mengembangkan aplikasi yang berinteraksi dengan Azure Cosmos DB. Lindungi dari kerentanan keamanan umum seperti serangan injeksi, scripting lintas situs (XSS), atau referensi objek langsung (IDOR) yang tidak aman. Terapkan validasi input, kueri berparameter, dan penanganan kesalahan yang sesuai untuk kode status HTTP umum untuk mencegah risiko keamanan.
Pantau log sarana kontrol untuk pelanggaran. Pemantauan membantu Anda melacak pola akses dan log audit, memastikan bahwa database Anda tetap aman dan mematuhi peraturan perlindungan data yang relevan. Memantau metrik data-plane juga dapat membantu mengidentifikasi pola yang tidak dikenal yang mungkin mengungkapkan pelanggaran keamanan. Untuk informasi selengkapnya, lihat daftar periksa keamanan untuk database Azure.
Mengaktifkan Microsoft Defender untuk Azure Cosmos DB Pertahanan Microsoft mendeteksi upaya untuk mengeksploitasi database di akun Azure Cosmos DB for NoSQL Anda. Defender mendeteksi potensi injeksi SQL, pola akses yang mencurigakan, dan potensi eksploitasi lainnya.

Definisi Azure Policy

Pengoptimalan biaya

Karakteristik beban kerja Anda dan implementasi solusi Anda dapat memengaruhi biaya akhir berjalan di Azure. Pertimbangkan driver utama seperti strategi partisi, tingkat konsistensi, replikasi, dan jenis tulis Anda saat merancang beban kerja Anda. Saat mengukur beban kerja Anda, pertimbangkan sifat baca/tulis data Anda, ukuran item rata-rata, normalisasi, dan TTL. Bagian ini mencakup pertimbangan dan rekomendasi untuk menyederhanakan biaya untuk beban kerja Anda.

  • Rancang kebijakan pengindeksan yang mempertimbangkan operasi dan kueri yang biasa Anda buat dalam beban kerja Anda.
  • Tentukan kunci partisi atau set kunci partisi yang memiliki nilai yang memiliki kardinalitas tinggi dan tidak berubah. Gunakan panduan dan praktik terbaik yang ada untuk membantu memilih kunci partisi yang sesuai. Selain itu, pertimbangkan kebijakan pengindeksan Anda saat menentukan kunci partisi.
  • Pilih skema alokasi throughput yang sesuai untuk beban kerja Anda. Tinjau manfaat throughput standar dan skala otomatis yang didistribusikan di tingkat database atau kontainer. Selain itu, pertimbangkan tanpa server jika sesuai. Tinjau pola lalu lintas beban kerja Anda dalam konteks memilih skema alokasi throughput.
  • Pertimbangkan tingkat konsistensi karena berkaitan dengan beban kerja Anda. Selain itu, pertimbangkan apakah sesi klien harus mengubah tingkat konsistensi default.
  • Hitung penyimpanan data keseluruhan yang diharapkan untuk beban kerja Anda. Ukuran item dan indeks semuanya memengaruhi biaya penyimpanan data Anda. Kalkulasi dampak replikasi dan pencadangan pada biaya penyimpanan.
  • Buat strategi untuk menghapus item lama yang tidak lagi digunakan atau diperlukan secara otomatis. Jika diperlukan, ekspor item ini ke solusi penyimpanan berbilang lebih rendah sebelum dihapus.
  • Evaluasi kueri anda yang paling umum yang meminimalkan pencarian lintas partisi. Gunakan informasi ini untuk menginformasikan proses pemilihan kunci partisi atau menyesuaikan kebijakan pengindeksan.

Rekomendasi

Rekomendasi Keuntungan
Pantau pemanfaatan dan pola RU. Gunakan metrik untuk memantau konsumsi RU dari awal solusi Anda. Gunakan kueri dan teknik penelitian data lainnya untuk menemukan antipattern dalam kode aplikasi Anda.
Sesuaikan kebijakan pengindeksan Anda untuk dipetakan ke beban kerja Anda. Kebijakan pengindeksan default mengindeks semua jalur dalam item, dan kebijakan ini dapat berdampak signifikan pada konsumsi dan biaya RU. Gunakan kebijakan pengindeksan yang dirancang hanya berdasarkan jalur yang perlu Anda indeks untuk kueri umum Anda. Untuk beban kerja tulis-berat, nonaktifkan pengindeksan otomatis kolom yang tidak digunakan dalam kueri.
Pilih kunci partisi yang ideal untuk beban kerja Anda. Kunci partisi harus mendistribusikan konsumsi throughput dan penyimpanan data secara merata di seluruh partisi logis. Pilihan juga harus meminimalkan jumlah kueri lintas partisi yang tidak terbatas. Hindari partisi panas yang menerima jumlah lalu lintas yang tidak proporsional, karena partisi yang tidak seimbang dapat meningkatkan biaya throughput dan kesalahan sementara. Gunakan kueri pencarian yang paling umum untuk menentukan kunci partisi potensial yang kemungkinan hanya menjalankan kueri partisi tunggal atau lintas partisi terikat.
Gunakan throughput tanpa server atau yang disediakan, provisi manual, atau skala otomatis, di tingkat database atau kontainer jika sesuai untuk beban kerja Anda. Bandingkan jenis throughput yang disediakan dan pilih opsi yang sesuai untuk beban kerja Anda. Umumnya, beban kerja yang lebih kecil dan dev/test mungkin mendapat manfaat dari throughput tanpa server atau throughput bersama manual di tingkat database. Beban kerja misi penting yang lebih besar mungkin mendapat manfaat dari throughput yang disediakan yang ditetapkan di tingkat kontainer.
Konfigurasikan tingkat konsistensi default untuk aplikasi Anda. Jika sesuai, turunkan tingkat konsistensi default dalam sesi klien. Anda mungkin tidak selalu perlu mengubah tingkat konsistensi default standar atau menimpanya dalam sesi klien. Pertimbangkan biaya yang lebih tinggi yang terkait dengan bacaan pada tingkat konsistensi yang lebih kuat.
Untuk beban kerja dev/test, gunakan emulator Azure Cosmos DB. Emulator Azure Cosmos DB adalah opsi untuk dev/test dan integrasi berkelanjutan yang dapat menghemat biaya beban kerja umum ini untuk tim pengembangan Anda. Emulator juga tersedia sebagai gambar kontainer Docker.
Menggunakan operasi batch transaksi Partisi desain untuk memanfaatkan operasi batch transaksional dalam kunci partisi logis untuk penyisipan. Gunakan operasi batch di SDKS sisi klien untuk menyisipkan, memperbarui, atau menghapus beberapa dokumen dalam satu permintaan transaksi. Langkah ini dapat mengurangi jumlah permintaan individu dan akhirnya dapat menyebabkan efisiensi throughput yang lebih baik.
Gunakan proyeksi untuk mengurangi biaya throughput dari kumpulan hasil kueri besar. Kueri penulis untuk hanya memproyeksikan jumlah bidang minimal yang diperlukan dari kumpulan hasil. Jika perhitungan pada bidang diperlukan, evaluasi biaya throughput untuk melakukan perhitungan tersebut sisi server versus sisi klien.
Hindari menggunakan kueri lintas partisi yang tidak terbatas. Evaluasi dan tulis kueri untuk memastikan kueri tersebut mencari dalam satu partisi logis jika memungkinkan. Gunakan filter kueri untuk mengontrol partisi logis mana yang menjadi target kueri. Jika kueri harus mencari di seluruh partisi logis, batasi kueri untuk hanya mencari subset partisi logis alih-alih pemindaian penuh.
Terapkan time-to-live (TTL) untuk menghapus item yang tidak digunakan. Gunakan TTL untuk menghapus data secara otomatis yang tidak lagi diperlukan. Kelola biaya penyimpanan dengan menghapus data yang kedaluwarsa atau kedaluwarsa. Jika perlu, ekspor data yang kedaluwarsa ke solusi penyimpanan dengan biaya lebih rendah.
Pertimbangkan penyimpanan analitik untuk agregasi berat. Penyimpanan analitik Azure Cosmos DB secara otomatis menyinkronkan data Anda ke penyimpanan kolom terpisah untuk mengoptimalkan kueri agregasi, pelaporan, dan analitik besar.

Definisi Azure Policy

Keunggulan operasional

Beban kerja harus dipantau setelah disebarkan untuk memastikan beban kerja berfungsi sebagaimana mestinya. Selanjutnya, pemantauan beban kerja dapat membantu membuka efisiensi baru tidak segera jelas selama fase perencanaan. Dalam skenario bencana, data diagnostik adalah kunci untuk mengungkap mengapa insiden tingkat keparahan tinggi mungkin terjadi. Bagian ini mencakup pertimbangan dan rekomendasi untuk memantau peristiwa dan karakteristik beban kerja Anda.

Daftar periksa desain

  • Menyusun strategi pemantauan log dan metrik untuk membedakan antara beban kerja yang berbeda, menandai skenario luar biasa, melacak pola dalam pengecualian/kesalahan, dan melacak performa komputer host.
  • Desain beban kerja besar untuk menggunakan operasi massal jika memungkinkan.
  • Tentukan beberapa pemberitahuan untuk memantau pembatasan, menganalisis alokasi throughput, dan melacak ukuran data Anda.
  • Rancang strategi pemantauan untuk ketersediaan solusi Anda di seluruh wilayah.
  • Buat dan terapkan praktik terbaik untuk mengotomatiskan penyebaran akun dan sumber daya Azure Cosmos DB for NoSQL Anda.
  • Rencanakan ambang batas metrik yang diharapkan berdasarkan partisi dan desain indeks. Pastikan bahwa ada rencana untuk memantau metrik tersebut untuk menentukan seberapa dekat metrik tersebut dengan ambang batas yang direncanakan.

Rekomendasi

Rekomendasi Keuntungan
Pastikan pengembang aplikasi menggunakan SDK pengembang versi terbaru. Setiap Azure Cosmos DB untuk NoSQL SDK memiliki versi minimum yang direkomendasikan. Untuk informasi selengkapnya, lihat .NET SDK dan Java SDK.
Buat pengidentifikasi di aplikasi klien untuk membedakan beban kerja. Pertimbangkan bendera, seperti akhiran agen pengguna, untuk mengidentifikasi beban kerja apa yang harus dikaitkan dengan setiap entri log atau metrik.
Ambil diagnostik tambahan menggunakan SDK pengembang. Gunakan teknik injeksi diagnostik untuk setiap SDK untuk menambahkan informasi tambahan tentang beban kerja bersama metrik dan log default. Untuk informasi selengkapnya, lihat .NET SDK dan Java SDK.
Buat pemberitahuan yang terkait dengan sumber daya komputer host. masalah Koneksi ivitas dan ketersediaan mungkin terjadi karena masalah komputer host sisi klien. Pantau sumber daya seperti CPU, memori, dan penyimpanan pada komputer host dengan aplikasi klien menggunakan Azure Cosmos DB untuk NoSQL SDK.
Gunakan fitur massal SDK klien untuk operasi besar. Skenario yang memerlukan manfaat throughput tingkat tinggi dari penggunaan fitur massal SDK. Fitur massal secara otomatis mengelola dan batch operasi untuk memaksimalkan throughput.
Buat pemberitahuan untuk pembatasan throughput. Gunakan pemberitahuan untuk melacak pembatasan throughput di luar ambang batas yang diharapkan. Seiring waktu, tinjau dan sesuaikan pemberitahuan saat Anda mempelajari selengkapnya tentang beban kerja Anda sehubungan dengan Azure Cosmos DB. Metrik Konsumsi RU yang Dinormalisasi adalah metrik yang mengukur persentase pemanfaatan throughput yang disediakan pada database atau kontainer. Jika metrik ini secara konsisten berada di 100%, permintaan kemungkinan mengembalikan kesalahan sementara.
Lacak performa kueri menggunakan metrik. Gunakan metrik untuk melacak performa kueri teratas Anda dari waktu ke waktu. Evaluasi apakah ada efisiensi yang dapat ditemukan dengan memperbarui kebijakan pengindeksan th atau mengubah kueri. Jika performa kueri buruk, pecahkan masalah performa dan terapkan praktik terbaik kueri. Untuk informasi selengkapnya, lihat tips performa kueri.
Gunakan templat untuk menyebarkan sumber daya akun secara otomatis. Pertimbangkan templat Azure Resource Manager, Bicep, atau Terraform untuk mengotomatiskan penyebaran akun Anda dan sumber daya berikutnya. Pastikan tim Anda menggunakan templat yang sama untuk disebarkan ke lingkungan nonproduksi lainnya.
Lacak metrik utama untuk mengidentifikasi masalah umum dalam beban kerja Anda. Gunakan metrik tertentu untuk menemukan masalah umum dalam beban kerja Anda termasuk, tetapi tidak terbatas pada; Pemanfaatan RU, pemanfaatan RU berdasarkan partisi, pembatasan, dan volume permintaan berdasarkan jenis. Untuk informasi selengkapnya, lihat memantau referensi data.

Definisi Azure Policy

Efisiensi kinerja

  • Tentukan garis besar performa untuk aplikasi Anda. Ukur berapa banyak pengguna dan transaksi bersamaan yang mungkin perlu Anda tangani. Pertimbangkan karakteristik beban kerja seperti alur pengguna rata-rata, operasi umum, dan lonjakan penggunaan.
  • Teliti kueri Anda yang paling umum dan paling kompleks. Identifikasi kueri yang menggunakan beberapa pencarian, gabungan, atau agregat. Pertimbangkan kueri ini dalam pertimbangan desain apa pun untuk kunci partisi atau kebijakan pengindeksan.
  • Untuk kueri yang paling umum, tentukan jumlah hasil yang Anda harapkan per halaman. Angka ini akan membantu meresmikan jumlah item yang di-buffer untuk hasil yang telah diambil sebelumnya.
  • Teliti pengguna target Anda. Tentukan wilayah Azure mana yang paling dekat dengan wilayah tersebut.
  • Identifikasi kueri yang menggunakan satu atau beberapa bidang pengurutan. Selain itu, identifikasi operasi yang berdampak pada beberapa bidang. Sertakan bidang ini secara eksplisit dalam desain kebijakan pengindeksan.
  • Desain item sehingga dokumen JSON yang sesuai sesecil mungkin. Mempertimbangkan pemisahan data lintas beberapa item jika perlu.
  • Identifikasi kueri pada array anak dan tentukan apakah mereka adalah kandidat untuk subkueri yang lebih efisien.
  • Tentukan apakah beban kerja Anda memerlukan penyimpanan analitis. Pertimbangkan penyimpanan dan layanan analitik seperti Azure Synapse Link untuk kueri yang sangat kompleks.
Rekomendasi Keuntungan
Konfigurasikan throughput Anda berdasarkan garis besar performa Anda. Gunakan alat seperti kalkulator kapasitas untuk menentukan jumlah throughput yang diperlukan untuk garis besar performa Anda. Gunakan fitur seperti skala otomatis untuk menskalakan throughput aktual Anda agar lebih cocok dengan beban kerja Anda yang sebenarnya. Pantau konsumsi throughput aktual Anda setelahnya dan lakukan penyesuaian.
Gunakan teknik pengoptimalan di sisi klien dan server jika sesuai. Manfaatkan cache terintegrasi bawaan. Konfigurasikan SDK untuk mengelola berapa banyak item yang diambil sebelumnya (di-buffer) dan dikembalikan untuk setiap halaman.
Sebarkan Azure Cosmos DB untuk NoSQL ke wilayah yang paling dekat dengan pengguna akhir Anda. Kurangi latensi dengan menyebarkan Azure Cosmos DB untuk NoSQL ke wilayah yang paling dekat dengan pengguna akhir Anda sebanyak mungkin. Manfaatkan replikasi baca untuk memberikan performa baca berkinerja terlepas dari cara Anda mengonfigurasi tulis (satu atau beberapa wilayah). Konfigurasikan SDK (.NET/Java) untuk lebih memilih wilayah yang lebih dekat dengan pengguna akhir Anda.
Konfigurasikan SDK untuk mode Langsung. Mode langsung adalah opsi yang disukai untuk performa terbaik. Mode ini memungkinkan klien Anda untuk membuka koneksi TCP langsung ke partisi dalam layanan dan mengirim permintaan langsung tanpa gateway perantara. Mode ini menawarkan performa yang lebih baik karena ada lebih sedikit lompatan jaringan.
Nonaktifkan pengindeksan untuk operasi massal. Jika ada banyak operasi insert/replace/upsert, nonaktifkan pengindeksan untuk meningkatkan kecepatan operasi saat menggunakan dukungan massal dari SDK yang sesuai. Pengindeksan dapat segera diaktifkan kembali nanti.
Buat indeks komposit untuk bidang yang digunakan dalam operasi kompleks. Indeks komposit dapat meningkatkan efisiensi operasi pada beberapa bidang berdasarkan urutan besarnya. Dalam banyak kasus, gunakan indeks komposit untuk ORDER BY pernyataan dengan beberapa bidang.
Optimalkan komputer klien host untuk SDK. Untuk kasus yang paling umum, gunakan setidaknya 4-core dan memori 8-GB pada mesin host 64-bite menggunakan SDK (.NET/Java). Selain itu, aktifkan jaringan yang dipercepat pada komputer host.
Gunakan pola singleton untuk CosmosClient kelas di sebagian besar SDK. Gunakan kelas klien di sebagian besar SDK sebagai singleton. Kelas klien mengelola siklus hidupnya sendiri dan dirancang untuk tidak dibuang. Membuat dan membuang instans secara konstan dapat mengakibatkan penurunan performa.
Pertahankan ukuran item kurang dari 100 KB . Item yang lebih besar lebih banyak throughput konsumen untuk operasi baca dan tulis umum. Kueri pada item yang lebih besar yang memproyeksikan semua bidang juga dapat memiliki biaya throughput yang signifikan.
Gunakan subkueri secara strategis untuk mengoptimalkan kueri yang menggabungkan himpunan data besar. Kueri yang menggabungkan array anak dapat meningkat dalam kompleksitas jika beberapa array terlibat dan tidak difilter. Misalnya, kueri yang menggabungkan lebih dari dua array setidaknya 10 item masing-masing dapat diperluas menjadi 1.000+ tuple. Optimalkan ekspresi gabungan mandiri dengan menggunakan subkueri untuk memfilter array sebelum menggabungkan array dalam item. Untuk kueri lintas partisi, optimalkan kueri Anda untuk menyertakan filter pada kunci partisi untuk mengoptimalkan perutean kueri Anda ke jumlah partisi sekecil mungkin.
Gunakan beban kerja analitis untuk kueri yang paling kompleks. Jika Anda sering menjalankan agregasi atau menggabungkan kueri melalui kontainer besar, pertimbangkan untuk mengaktifkan penyimpanan analitik dan melakukan kueri di Azure Synapse Analytics.

Definisi Azure Policy

Sumber daya ekstra

Pertimbangkan lebih banyak sumber daya yang terkait dengan Azure Cosmos DB untuk NoSQL.

Panduan Azure Architecture Center

Panduan Cloud Adoption Framework

Langkah berikutnya