Azure Cosmos DB postaje bez poslužitelja

Azureov Cosmos DB jedan je od temelja platforme koji pokreće mnoge ključne usluge. Dizajniran od temelja kao distribuirana baza podataka, implementira niz različitih modela dosljednosti koji vam omogućavaju da mijenjate performanse i kašnjenje za svoje aplikacije. Zatim postoje različiti modeli za rad s podacima, od poznatih NoSQL i SQL API-ja, podrške za Mongo DB-ov API, do Gremlin-a, mehanizma za upite baze podataka grafova.

Cosmos DB ima dovoljno da podrži najčešće scenarije razvoja oblaka, pružajući vam dosljednu podatkovnu platformu koja može dijeliti podatke na globalnoj razini. Microsoft ga često opisuje kao "bazu podataka planetarne razmjere", odgovarajući opis.

Alternativa bez poslužitelja osiguranoj propusnosti

Uza sve blagodati, Cosmos DB ima i nekih loših strana; ne najmanje njegov trošak. Iako postoji relativno ograničena besplatna opcija, pokretanje u širokom opsegu može biti skupo, a to morate uzeti u obzir prilikom izrade aplikacija oko nje. Izrada proračuna za jedinice zahtjeva za Cosmos DB složen je postupak koji se teško može ispraviti prvi put, posebno kada se u obzir uzima skaliranje, bilo ručno ili automatski.

Microsoft je već neko vrijeme pokrenuo pregled opcije bez poslužitelja za Cosmos DB, na temelju svog osnovnog SQL API-ja. Zanimljiva je alternativa tradicionalno predviđenim opcijama. Naplaćuje vam samo kada pokrene zahtjev i suspendira vašu instancu kada se ništa ne događa. Bit će dodatnih kašnjenja u operacijama baze podataka, jer se vaša instanca mora okretati kad je suspendirana. Naravno, za pohranu se naplaćuje, ali to je isto s bilo kojom Azure bazom podataka. Početno suđenje sada je prošireno na sve Cosmos DB API-je, s općom dostupnošću koja nije predaleko u budućnosti.

Dodavanje opcije bez poslužitelja u Cosmos DB ima puno smisla za mnoge vrste radnih opterećenja gdje primate zahtjeve u malom broju i u skupinama. Za malo radno opterećenje s nepravilnim obrascem poslovanja, model određivanja cijena zasnovan na potrošnji ima puno smisla - i dugoročno može uštedjeti znatnu količinu novca jer se ne zalažemo za osigurani protok.

Troškovi su niski: platite 0,282 USD po jedinici zahtjeva bez poslužitelja, za čak milijun PŽP-a u obračunskom ciklusu. Ako trebate pouzdaniji poslužitelj, možete postaviti zonu dostupnosti, iako to povećava troškove za 1,25x. To je još uvijek razuman posao, a ono što izgubite u predvidljivosti, dobit ćete nižim troškovima. Troškovi skladištenja ostaju isti i za ručni i za automatski omogućeni protok.

Početak rada s Cosmos DB bez poslužitelja

Uskočiti je dovoljno jednostavno. Kao i standardni Cosmos DB račun, morat ćete ga dodijeliti pretplati i dodati svoju instalaciju bez poslužitelja u grupu resursa. Zatim odaberite API koji planirate koristiti za upite, a kada se od vas zatraži da odaberete način kapaciteta, odaberite bez poslužitelja, a ne predviđenu propusnost. Napokon ga povežite s regijom, imajući u vidu da bez poslužitelja možete koristiti samo u jednoj Azure regiji; nema mogućnosti za geo-suvišnost. Nećete ga moći koristiti ni sa besplatnim slojem.

Jednom kada se pokrene vaša instalacija bez poslužitelja, možete koristiti njene API-je za učitavanje podataka i postavljanje upita. Kao i standardni primjerak Cosmos DB-a, možete graditi JavaScript funkcije i okidače koji se izvode unutar baze podataka, kao i koristiti mnoge različite API-je za upravljanje upitima.

Cosmos DB bez poslužitelja uskoro bi se trebao pomaknuti s pregleda i dodaje podršku za sve svoje API-je, čak i za nedavni API Cassandra. Kako je to javni pregled, možete ga postaviti i istražiti njegovo djelovanje izravno s Azure portala. Iako u pregledu nema podrške za ARM ili drugu infrastrukturu kao alate za postavljanje koda, premda bi to trebalo biti kad usluga bude općenito dostupna. Ne možete automatizirati konfiguraciju i implementaciju, pa ih zasad nećete moći koristiti kao dio cjevovoda CI / CD-a (kontinuirana integracija / kontinuirana isporuka), jer će implementacije trebati biti ručne.

Građevinski kod s Cosmos DB-om bez poslužitelja

Jedno mjesto na kojem biste trebali dobiti veliku vrijednost od poslužitelja Cosmos DB paralelno je s Azure Functions. Dva okruženja bez poslužitelja dobro surađuju i idealna su za burne, male količine aplikacija vođenih događajima. Cosmos DB bez poslužitelja može brzo povećati od nule do 5000 jedinica zahtjeva u sekundi, pa ako pišete kôd koji koristi funkcije za praćenje stanja pogrešaka ili drugih upozorenja, to je opcija za brzo prikupljanje i spremanje podataka.

Microsoft preporučuje da ga koristite kao dio razvojnog okruženja u kojem bilježite podatke o zahtjevima koji su vam potrebni za vašu cjelovitu aplikaciju. Budući da je pružanje zahtjeva jedinicama crna umjetnost, implementacija bez poslužitelja koja se izvodi sa svim vašim kodom u bazi podataka koristan je razvojni alat. Možete postaviti operativno okruženje, pokrenuti svoje testove, zabilježiti broj korištenih zahtjeva, a zatim te podatke koristiti za pružanje protoka za implementaciju proizvodnje.

Razumijevanje ograničenja bez poslužitelja

Postoje ograničenja upotrebe računa Cosmos DB bez poslužitelja. Možda je najvažnije da nemate pristup implementacijama više regija, jer se računi bez poslužitelja izvode samo u jednoj regiji. To je ograničenje koje ima smisla: Implementacije Multiregion Cosmos DB trebaju istodobno pokretanje više instanci radi interregionalne replikacije i dosljednosti. Ako se instance bez poslužitelja izvode samo kada obrađuju zahtjeve, tada nema jamstva da će druga regija biti na mreži za obradu replikacije. Kao rezultat, postoje promjene u cilju usluge Cosmos DB za instance bez poslužitelja, s očekivanim zapisima od 30 ms ili manje, a očitavanjem od 10 ms ili manje.

Drugo ključno ograničenje je maksimalno 5.000 zahtjevanih jedinica u sekundi. Ponovno, to bi trebalo biti dovoljno za većinu jednostavnih ili razvojnih implementacija, ali zahtijeva da pripazite na svoje aplikacije i budete spremni za prelazak na predviđenu instancu Cosmos DB ako redovito prelazite svoja ograničenja. Istodobno, svaki spremnik bez poslužitelja može pohraniti samo 50 GB podataka i indeksa. Microsoft nudi alate na Azure portalu za pomoć u nadgledanju operacija, kao i na Azure Monitoru.

Dodavanje opcije bez poslužitelja u Cosmos DB odgovara na mnoga pitanja o cijeni. Za scenarije s niskom potrošnjom u kojima vam nije potrebna globalna pokrivenost, to bi trebao biti vaš prvi izbor. Prebacite se na upotrebu predviđene propusne instance samo kada budete mogli razumjeti obrazac zahtjeva vaše aplikacije i ako možete proračun u skladu s tim.