Programovanie

Ako čo najlepšie využiť bezplatnú vrstvu Azure Cosmos DB

Azure Cosmos DB je jednou z jeho najlepších funkcií. Multimodelová distribuovaná databáza vám dáva základ pre vytváranie skutočne natívnych aplikácií založených na cloudoch pomocou série modelov konzistencie, ktoré je možné mapovať na to, ako vaša aplikácia funguje. Nie je to však ľahké začať a zle nakonfigurovaná alebo navrhnutá aplikácia môže rýchlo vyjsť.

Je dobré vidieť, že Cosmos DB má teraz bezplatnú vrstvu, ktorá vám môže pomôcť začať s nasadením aplikácií mimo obmedzeného vývojového prostredia. Nová vrstva nie je veľká: vychádza z minimálnej konfigurácie pre Cosmos DB a ponúka 400 RU / s (jednotky požiadaviek za sekundu) a 5 GB úložného priestoru s až 25 kontajnermi v zdieľanej priepustnej databáze. To je viac ako dosť pre malú aplikáciu, ktorá ponúka napríklad viac čítaní ako zápisov a nezávisí od silných modelov konzistencie.

Musíte si uvedomiť, že hoci je Cosmos DB multiregionálny, vo voľnej vrstve môžete spustiť iba jednu databázu 400 RU / s. V praxi vás to obmedzuje na jeden región, pretože ďalšie regióny budú potrebovať svoju vlastnú inštanciu 400 RU / s a ​​tie budú účtované štandardnými sadzbami pre tieto regióny za hodinu.

Začíname s bezplatnou databázou Cosmos DB

Aby ste mohli využívať výhody bezplatnej úrovne, budete si musieť vytvoriť nový účet; nie je k dispozícii ako možnosť fakturácie pre existujúce aplikácie. 400 RU / s bezplatnej úrovne je najmenšia suma, ktorú je možné zabezpečiť v databáze Cosmos DB. To vám dáva asi 1 miliardu prečítaní mesačne, čo by malo stačiť na rozbehnutie vašej aplikácie alebo na nasadenie a spustenie internej distribuovanej databázy ako súčasť pilotného projektu. Keď sa dostanete na hranicu svojho bezplatného príspevku RU / s, môžete pridať ďalšiu kapacitu v blokoch po 100 RU / s, účtovaných za hodinovú sadzbu.

Stojí za to pochopiť, čo je vesmírny databázový podnik. Železničný podnik je jednotka žiadosti a fakturovaný železničný podnik je meradlom zaistenej priepustnosti vašej databázy, ktorá pokrýva všetky jej operácie. Zahŕňa to čítanie, zápis, aktualizáciu, mazanie a ďalšie. Spoločnosť Microsoft naznačuje, že 1 RU / s je ekvivalentný jednej nakoniec konzistentnej (najpomalšia a na spracovanie najmenej náročná úroveň konzistencie dostupná v serveri Cosmos DB) za sekundu 1 kB položky. Napísať rovnakú položku 1 kB za sekundu je 5 RU / s. Čím je operácia zložitejšia, tým viac RU / s ju spotrebuje.

Pochopenie spotreby jednotiek požiadavky

Je ťažké presne povedať, koľko RU / s aplikácia spotrebuje. Môžete však premýšľať o obmedzeniach Cosmos DB, ktoré môžu ovplyvniť RU / s používané vašou databázou. Najskôr je potrebné vziať do úvahy veľkosť vašich predmetov. Čím je položka väčšia, tým viac RU / s sa používa na čítanie alebo zápis. Indexovanie podobne spotrebováva RU / s a ​​ak použijete predvolený model indexovania, zdroje potrebné na zápis položiek sa zvýšia, keď do svojej databázy pridáte ďalšie. Potom je tu vaša voľba konzistenčných modelov, pričom silná aj obmedzená slepota potrebujú na čítanie zhruba dvakrát toľko RU / s ako iné, menej prísne modely Cosmos DB.

S obmedzeným počtom RU / s dostupných na bezplatnej úrovni môžete tieto obmedzenia obísť, aby ste minimalizovali spotrebu. Jednou z možností je vypnúť všetky indexovanie pre svoju databázu, aj keď v praxi môžete uprednostniť obmedzenie indexovania na konkrétne vlastnosti každého uloženého dokumentu JSON. Zároveň musíte zvážiť, ako vaša aplikácia funguje a či je lepšie použiť niečo ako konzistenciu relácie na zlepšenie vnímania výkonu používateľom pri súčasnom znížení použitých RU / s.

Pretože RU / s sú založené na činnostiach, môžete pomocou návrhu dotazu znížiť spotrebu na minimum. To by mohlo znamenať obmedzenie počtu výsledkov na dotaz, kontrolu množstva uložených údajov alebo použitie čo najmenšieho počtu funkcií definovaných používateľom, uložených procedúr a spúšťačov.

Nastavenie databázy je dosť jednoduché. Na portáli Azure vytvorte nový účet Cosmos DB a z prehľadávača údajov Azure vytvorte novú databázu. Začnite tým, že mu dáte ID a potom zabezpečíte jeho priepustnosť. Nastavte túto hodnotu na 400 RU / s. Vyššie sumy zobrazia odhady nákladov, ale pretože nastavujete bezplatnú inštanciu, nemusíte to skúšať. Nie ste obmedzený iba na portál; môžete použiť Azure CLI, PowerShell alebo dokonca programovo z vnútra Cosmos DB SDK.

Budovanie aplikácií na bezplatnej úrovni Cosmos DB

V Cosmos DB je databáza sada kontajnerov, ktoré sa používajú na spracovanie rozdelenia oblastí v oblasti Azure a distribúcie v regiónoch, v ktorých databázu používate. Každá databáza môže byť nakonfigurovaná ako konkrétny model: NoSQL (MongoDB aj Cassandra), SQL, Gremlin a tabuľky. Väčšina aplikácií s ním bude pracovať ako databáza dokumentov NoSQL ukladajúca údaje JSON.

Keď nastavíte databázu a vyberiete model, môžete si predstaviť kontajner Cosmos DB ako spôsob škálovania databázy. Mimo bezplatnej úrovne môžete nastaviť priepustnosť v RU / s na základe kontajnera; vo voľnej vrstve zdieľate túto priepustnosť vo všetkých kontajneroch vo svojej databáze, takže nemôžete predpovedať priepustnosť pre žiadny konkrétny kontajner. Platené inštancie majú priradenú SLA, a preto vám umožňujú nastaviť priepustnosť pre jednotlivé kontajnery.

Práca s kontajnermi týmto spôsobom je ekvivalentná použitiu klastra v databáze NoSQL a pre tento typ pracovného zaťaženia funguje dobre. Použitím rovnakého kľúča oddielu vo všetkých vašich kontajneroch bude Cosmos DB automaticky zdieľať priepustnosť medzi nimi. Tento prístup môžete použiť s 25 kontajnermi bezplatnej úrovne na zníženie prekážok pre používateľov vašej aplikácie. Ak ju považujete za zoskupenú databázu NoSQL s klastrami, mali by ste relatívne ľahko zahrnúť ju do svojich aplikácií a použiť ju na hostenie ukazovateľov na iný obsah ako na samotný obsah.

Práca s ponukou bezplatných služieb môže byť zložitá, ale ak prijmete rozumné preventívne opatrenia, malo by byť možné použiť novú vrstvu Cosmos DB ako súčasť koncového bodu aplikácie. Možno budete musieť obetovať niektoré funkcie škálovateľnosti služby, ale to by nemalo výrazne ovplyvniť aplikácie, ak robíte starostlivé rozhodnutia v čase návrhu.

Je dôležité premýšľať o tom, ako využiť distribuovanú databázu, ako je Cosmos DB, namiesto toho, aby ste do nej jednoducho preniesli svoje existujúce pracovné záťaže - je nepravdepodobné, že by sa dobre zhodovali. Namiesto toho o tom premýšľajte ako o príležitosti na vybudovanie skutočne cloudovej natívnej distribuovanej aplikácie. V takom prípade je 400 RU / s viac ako dosť na zavedenie novej aplikácie a jej fungovanie s primeraným počtom používateľov.