Kako najbolje iskoristiti besplatni nivo Azure Cosmos DB-a

Azureov Cosmos DB jedna je od najboljih karakteristika. Multimodelna distribuirana baza podataka daje vam temelj za izgradnju uistinu izvornih aplikacija u oblaku sa nizom modela dosljednosti koji se mogu preslikati na način na koji vaša aplikacija radi. Ali nije lako započeti, a loše konfigurirana ili dizajnirana aplikacija može brzo postati skupa.

Dobro je vidjeti da Cosmos DB sada ima besplatnu razinu koja vam može pomoći da započnete s postavljanjem aplikacija izvan ograničenog razvojnog okruženja. Nova razina nije velika: temelji se na minimalnoj konfiguraciji za Cosmos DB i nudi 400 RU / s (jedinice zahtjeva u sekundi) i 5 GB prostora za pohranu, s čak 25 spremnika u zajedničkoj bazi podataka protoka. To je više nego dovoljno za malu aplikaciju koja primjerice nudi više čitanja nego što piše i ne oslanja se na jake modele dosljednosti.

Morate biti svjesni da, iako je Cosmos DB multiregion, u besplatnom sloju možete pokretati samo jednu bazu podataka od 400 RU / s. U praksi vas to ograničava na jednu regiju, jer će svaka od dodatnih regija trebati vlastiti primjerak od 400 RU / s, a one će se naplaćivati ​​po standardnim cijenama za te regije, po satu.

Početak rada s besplatnim Cosmos DB-om

Morat ćete stvoriti novi račun da biste iskoristili besplatni nivo; nije dostupan kao opcija naplate za postojeće programe. Besplatni nivo od 400 RU / s najmanji je iznos koji se može osigurati u bazi podataka Cosmos DB. To vam daje oko 1 milijardu čitanja mjesečno, što bi trebalo biti dovoljno da vašu aplikaciju pokrenete ili omogućite postavljanje i pokretanje interne distribuirane baze podataka kao dio pilot projekta. Jednom kada dođete do ruba svoje besplatne naknade za PŽP, možete dodati veći kapacitet u blokove od po 100 PŽ / s, naplaćeni po satnici.

Vrijedno je razumjeti što je RU baza podataka Cosmos. PŽP je jedinica zahtjeva, a naplaćeni PŽP mjera je predviđene propusnosti vaše baze podataka, koja pokriva sve njene operacije. To uključuje čitanje, pisanje, ažuriranje, brisanje i još mnogo toga. Microsoft sugerira da je 1 RU / s jednak jednom na kraju dosljednom (najsporija i najmanje obrađivačka razina dosljednosti dostupna na Cosmos DB) u sekundi stavke od 1 KB. Za pisanje iste stavke od 1 KB u sekundi je 5 RU / s. Što je operacija složenija, to više RU / s troši.

Razumijevanje potrošnje jedinica zahtjeva

Teško je točno reći koliko će PŽP aplikacija potrošiti. Međutim, možete razmišljati o ograničenjima Cosmos DB-a koja mogu utjecati na PŽP-ove koje koristi vaša baza podataka. Prvo morate uzeti u obzir veličinu svojih predmeta. Što je veća stavka, to više RU / s koristi za čitanje ili pisanje. Slično tome, indeksiranje troši RU / s, a ako koristite zadani model indeksiranja, resursi potrebni za pisanje stavki povećat će se kad dodate više u svoju bazu podataka. Zatim je vaš izbor modela konzistentnosti, s jakim i ograničenim ustajanjem koji trebaju približno dva puta više RU / s za čitanje od ostalih, manje strogih modela Cosmosa DB.

S ograničenim brojem PŽP-a dostupnih u besplatnom sloju, možda ćete htjeti zaobići ta ograničenja kako biste potrošnju sveli na najmanju moguću mjeru. Jedna je mogućnost isključiti sve indeksiranje za svoju bazu podataka, iako ćete u praksi možda radije ograničiti indeksiranje na određena svojstva na svakom spremljenom JSON dokumentu. Istodobno, morate razmotriti kako vaša aplikacija funkcionira i je li bolje koristiti nešto poput dosljednosti sesija kako biste poboljšali percepciju performansi korisnika, a istovremeno smanjili korištene RU / s.

Kako se RU / s temelje na aktivnostima, možete koristiti dizajn upita kako biste potrošnju sveli na najmanju moguću mjeru. To bi moglo podrazumijevati ograničavanje broja rezultata po upitu, kontrolu količine podataka koje pohranjujete ili upotrebu što manje korisnički definiranih funkcija, pohranjenih postupaka i okidača.

Postavljanje baze podataka je dovoljno jednostavno. Na Azure portalu izradite novi Cosmos DB račun, a iz Azure Data Explorera stvorite novu bazu podataka. Započnite s davanjem ID-a, a zatim osigurajte njegovu propusnost. Postavite ovo na 400 RU / s. Veći iznosi prikazivat će procjene troškova, no dok postavljate besplatnu instancu, ovo nije potrebno isprobati. Niste ograničeni na Portal; možete koristiti Azure CLI, PowerShell ili čak programski iz Cosmos DB SDK-a.

Izrada aplikacija na besplatnoj razini Cosmosa DB

U Cosmos DB-u baza podataka je skup spremnika koji se koriste za obradu particija u Azure regiji i distribuciju po regijama u kojima koristite bazu podataka. Svaka baza podataka može se konfigurirati da bude određeni model: NoSQL (i MongoDB i Cassandra), SQL, Gremlin i tablice. Većina aplikacija radit će s njom kao baza podataka NoSQL dokumenata koja sprema JSON podatke.

Nakon što postavite bazu podataka i odaberete model, možete zamisliti Cosmos DB spremnik kao način na koji se baza podataka skalira. Izvan slobodnog sloja, možete postaviti protok u RU / s na osnovi kontejnera; u besplatnom sloju dijelite taj protok kroz sve spremnike u vašoj bazi podataka, tako da ne možete predvidjeti protok za bilo koji određeni spremnik. Primjeri koji se plaćaju imaju pridruženi SLA, zbog čega vam omogućuju postavljanje protoka za svaki spremnik.

Ovakav rad preko spremnika ekvivalentan je korištenju klastera u NoSQL bazi podataka i dobro funkcionira za ovu vrstu radnog opterećenja. Korištenjem istog particijskog ključa u svim vašim spremnicima, Cosmos DB će automatski dijeliti protok kroz njih. Ovaj pristup možete koristiti s 25 spremnika besplatnog sloja kako biste smanjili uska grla za korisnike svoje aplikacije. Ako se prema njoj ponašate kao prema izoštrenoj, klasteriranoj NoSQL bazi podataka, trebalo bi vam biti relativno lako uključiti je u svoje aplikacije, koristeći je za hostiranje pokazivača na drugi sadržaj, a ne na sam sadržaj.

Rad s besplatnom ponudom usluga može biti nezgodan, ali ako poduzmete razumne mjere predostrožnosti, nova razina Cosmos DB-a trebala bi se koristiti kao dio pozadine aplikacije. Možda ćete morati žrtvovati neke značajke skalabilnosti usluge, ali to ne bi trebalo značajno utjecati na aplikacije ako donosite pažljive odluke u vrijeme dizajna.

Važno je razmisliti o tome kako iskoristiti distribuiranu bazu podataka kao što je Cosmos DB, umjesto da na nju jednostavno prenesete svoja postojeća opterećenja - teško da će se ona dobro podudarati. Umjesto toga, shvatite ovo kao svoju priliku za izgradnju distribuirane aplikacije uistinu izvorne za oblak. U ovom je slučaju 400 RU / s više nego dovoljno za pokretanje nove aplikacije i pokretanje rada s razumnim brojem korisnika.