Azure Cosmos DB tanpa pelayan

Azure's Cosmos DB adalah salah satu asas platform, yang menyokong banyak perkhidmatan utamanya. Direka dari bawah ke atas sebagai pangkalan data yang diedarkan, ia menerapkan sekumpulan model konsistensi yang berbeza yang memungkinkan anda menukar antara prestasi dan latensi untuk aplikasi anda. Kemudian ada model yang berbeda untuk bekerja dengan data, dari API NoSQL dan SQL yang sudah biasa, untuk menyokong API Mongo DB, hingga mesin pertanyaan pangkalan data grafik Gremlin.

Cukup banyak di Cosmos DB untuk menyokong senario pengembangan awan yang paling biasa, memberikan anda platform data yang konsisten yang dapat berkongsi data pada skala global. Microsoft sering menggambarkannya sebagai "pangkalan data berskala planet," keterangan yang tepat.

Alternatif tanpa pelayan untuk throughput yang disediakan

Untuk semua faedah, Cosmos DB mempunyai beberapa kelemahan; tidak kurang juga kosnya. Walaupun ada pilihan bebas yang agak terhad, menjalankannya pada skala sangat mahal, dan anda harus mempertimbangkannya ketika membuat aplikasi di sekitarnya. Penganggaran untuk unit permintaan DB Cosmos adalah proses yang rumit yang sukar untuk dilakukan pada kali pertama, terutamanya apabila anda mempertimbangkan penskalaan, secara manual atau automatik.

Microsoft telah menjalankan pratonton pilihan tanpa server untuk Cosmos DB untuk sementara waktu, berdasarkan API SQL terasnya. Ini adalah alternatif yang menarik untuk pilihan yang disediakan secara tradisional. Ini hanya mengenakan caj kepada anda ketika menjalankan permintaan dan menangguhkan kejadian anda ketika tidak ada yang terjadi. Akan ada latensi tambahan dalam operasi pangkalan data, kerana contoh anda perlu berputar ketika ditangguhkan. Sudah tentu ada caj untuk penyimpanan, tetapi sama dengan pangkalan data Azure. Percubaan awal kini telah diperluas ke semua API Cosmos DB, dengan ketersediaan umum tidak terlalu jauh di masa depan.

Menambah pilihan tanpa server ke Cosmos DB sangat masuk akal untuk banyak jenis beban kerja di mana anda mendapat permintaan dalam jumlah kecil dan dalam kumpulan. Untuk beban kerja yang kecil dengan pola operasi yang tidak teratur, model penetapan harga berdasarkan penggunaan sangat masuk akal — dan dapat menjimatkan sejumlah besar uang dalam jangka panjang kerana tidak ada komitmen untuk memberikan hasil.

Kosnya rendah: Anda membayar $ 0.282 setiap unit permintaan tanpa pelayan, sebanyak satu juta RU dalam kitaran penagihan. Sekiranya anda memerlukan pelayan yang lebih dipercayai, anda boleh menyediakan zon ketersediaan, walaupun ini meningkatkan kos sebanyak 1.25x. Itu masih merupakan perjanjian yang munasabah, dan apa yang anda hilang dalam jangkaan, anda akan mendapat kos yang lebih rendah. Kos penyimpanan tetap sama untuk proses penyediaan manual dan automatik.

Bermula dengan Cosmos DB tanpa pelayan

Melompat cukup mudah. Seperti akaun DB Cosmos standard, anda perlu menyediakannya untuk langganan dan menambahkan contoh tanpa pelayan anda ke kumpulan sumber. Selanjutnya pilih API yang akan Anda gunakan untuk pertanyaan, dan ketika diminta untuk memilih mod kapasiti, pilih tanpa pelayan dan bukannya disediakan. Akhirnya pautkannya ke kawasan, ingat bahawa anda hanya boleh menggunakan tanpa pelayan di satu wilayah Azure; tidak ada pilihan untuk kelebihan geo. Anda juga tidak akan dapat menggunakannya dengan tahap percuma.

Setelah instance tanpa pelayan anda berjalan, anda dapat menggunakan API-nya untuk memuat data dan membuat pertanyaan. Seperti contoh standard Cosmos DB, anda dapat membangun fungsi dan pemicu JavaScript yang berjalan di dalam pangkalan data, serta menggunakan banyak API yang berbeza untuk menguruskan pertanyaan.

Serverless Cosmos DB akan segera keluar dari pratonton, dan menambahkan sokongan untuk semua APInya, bahkan untuk API Cassandra baru-baru ini. Oleh kerana ia adalah pratonton awam, anda boleh menyiapkannya dan meneroka operasinya terus dari Azure Portal. Semasa dalam pratonton tidak ada sokongan untuk ARM atau infrastruktur lain sebagai alat penyebaran kod, walaupun harus ada setelah layanan tersedia secara umum. Anda tidak dapat mengotomatisasi konfigurasi dan penyebaran, jadi Anda tidak akan dapat menggunakannya sebagai bagian dari saluran pipa CI / CD (integrasi berterusan / pengiriman berterusan) buat masa ini, kerana penyebaran perlu dilakukan secara manual.

Membina kod dengan Cosmos DB tanpa pelayan

Satu tempat yang anda mesti mendapat banyak nilai dari Cosmos DB tanpa pelayan selari dengan Azure Functions. Kedua-dua persekitaran tanpa pelayan berfungsi dengan baik dan sangat sesuai untuk aplikasi yang berpengaruh rendah, dengan volume rendah. Server tanpa kosmos DB dapat meningkatkan dengan cepat dari sifar hingga 5,000 unit permintaan sesaat, jadi jika anda menulis kod yang menggunakan Fungsi untuk mengesan keadaan ralat atau amaran lain, itu adalah pilihan untuk mengumpulkan dan menyimpan data dengan cepat.

Microsoft mengesyorkan menggunakannya sebagai bagian dari lingkungan pengembangan di mana Anda menangkap data mengenai permintaan yang diperlukan oleh aplikasi skala penuh anda. Oleh kerana penyediaan unit permintaan adalah seni hitam, pelaksanaan tanpa pelayan yang dijalankan dengan semua kod dalam pangkalan data anda adalah alat pengembangan yang berguna. Anda dapat mengatur lingkungan operasi, menjalankan pengujian, menangkap jumlah permintaan yang digunakan, dan kemudian menggunakan data tersebut untuk menyediakan throughput untuk penyebaran pengeluaran.

Memahami batasan tanpa pelayan

Terdapat batasan untuk menggunakan akaun Cosmos DB tanpa pelayan. Mungkin yang paling penting ialah anda tidak mendapat akses ke penyebaran pelbagai wilayah, kerana akaun tanpa pelayan hanya berjalan di satu wilayah. Ini adalah batasan yang masuk akal: Pelaksanaan DB Multiregion Cosmos memerlukan beberapa contoh yang dijalankan pada masa yang sama untuk replikasi dan konsistensi antara wilayah. Sekiranya kejadian tanpa pelayan hanya dijalankan ketika mereka memproses permintaan, maka tidak ada jaminan wilayah lain akan berada dalam talian untuk menangani replikasi. Akibatnya, terdapat perubahan pada objektif tahap perkhidmatan Cosmos DB untuk instance tanpa pelayan, dengan penulisan dijangka 30ms atau kurang, dan membaca 10ms atau kurang.

Batasan kunci yang lain adalah maksimum 5,000 unit permintaan sesaat. Sekali lagi, itu cukup untuk pelaksanaan yang paling sederhana atau pembangunan, tetapi ia memerlukan anda untuk mengawasi aplikasi anda dan bersedia beralih ke contoh Cosmos DB yang disediakan jika anda selalu melampaui had anda. Pada masa yang sama, setiap wadah tanpa pelayan hanya dapat menyimpan 50GB data dan indeks. Microsoft menyediakan alat di Portal Azure untuk membantu memantau operasi, dan juga di Azure Monitor.

Menambah pilihan tanpa server ke Cosmos DB menjawab banyak soalan mengenai kos. Untuk senario penggunaan rendah di mana anda tidak memerlukan liputan global, ini harus menjadi pilihan pertama anda. Beralih ke menggunakan instance throughput yang disediakan hanya ketika Anda dapat memahami pola permintaan aplikasi anda dan dapat membuat anggaran yang sesuai.