Ohjelmointi

Azure Cosmos DB menee palvelimettomaksi

Azuren Cosmos DB on yksi alustan perustajista, ja se käyttää monia sen keskeisiä palveluita. Suunniteltu alusta alkaen hajautetuksi tietokannaksi, se toteuttaa joukon erilaisia ​​yhdenmukaisuusmalleja, joiden avulla voit vaihtaa sovellusten suorituskyvyn ja viiveen välillä. Sitten on olemassa eri mallit tietojen käsittelyyn, tutuista NoSQL- ja SQL-sovellusliittymistä Mongo DB: n sovellusliittymän tukemiseen ja Gremlin-graafitietokantakyselymoottoriin.

Cosmos DB: ssä on tarpeeksi tukea yleisimpiin pilvikehitysskenaarioihin, mikä antaa sinulle yhtenäisen tietoalustan, joka voi jakaa tietoja maailmanlaajuisesti. Microsoft kuvaa sitä usein "planeettamittaisena tietokantana", sopivana kuvauksena.

Palvelimaton vaihtoehto valmistellulle suoritusteholle

Kaikista eduista huolimatta Cosmos DB: llä on joitain haittoja; ei vähiten sen kustannukset. Vaikka ilmaista vaihtoehtoa onkin suhteellisen rajoitettu, sen mittakaavassa ajaminen voi olla kallista, ja sinun on otettava se huomioon rakentaessasi sovelluksia sen ympärille. Cosmos DB -pyyntöyksiköiden budjetointi on monimutkainen prosessi, jota on vaikea saada oikein ensimmäisellä kerralla, varsinkin kun skaalaus otetaan huomioon manuaalisesti tai automaattisesti.

Microsoft on jo jonkin aikaa suorittanut Cosmos DB: n palvelimettoman vaihtoehdon esikatselun sen ydin SQL-sovellusliittymän perusteella. Se on mielenkiintoinen vaihtoehto perinteisesti tarjotulle vaihtoehdolle. Se veloittaa sinua vain, kun se suorittaa pyynnön, ja keskeyttää tapauksesi, kun mitään ei tapahdu. Tietokantatoiminnoissa on lisää viiveitä, koska ilmentymän on lisättävä, kun se on keskeytetty. Tietenkin tallennuksesta veloitetaan maksu, mutta sama on minkä tahansa Azure-tietokannan kanssa. Alkuperäinen kokeilu on nyt laajennettu koskemaan kaikkia Cosmos DB -sovellusliittymiä, ja yleinen saatavuus ei ole liian kaukana tulevaisuudessa.

Palvelimettoman vaihtoehdon lisääminen Cosmos DB: hen on järkevää monen tyyppisille työmäärille, joissa saat pyyntöjä pieninä määrinä ja erissä. Pienelle työmäärälle, jolla on epäsäännöllinen toimintamalli, kulutukseen perustuvalla hinnoittelumallilla on paljon järkeä - ja se voi säästää huomattavan määrän rahaa pitkällä aikavälillä, koska ei ole sitoutunut varaustuotantoon.

Kustannukset ovat alhaiset: Maksat 0,282 dollaria palvelimettomasta pyyntöyksiköstä jopa miljoonasta RU: sta laskutusjakson aikana. Jos tarvitset luotettavampaa palvelinta, voit määrittää saatavuusvyöhykkeen, vaikka tämä lisää kustannuksia 1,25x. Se on silti kohtuullinen sopimus, ja mitä menetät ennustettavuudessa, sitä pienemmät kustannukset. Tallennuskustannukset pysyvät samana sekä manuaalisen että automaattisen suoritustehon kanssa.

Palvelimettoman Cosmos DB: n käytön aloittaminen

Hyppääminen on tarpeeksi helppoa. Kuten tavallinen Cosmos DB -tili, joudut varaamaan sen tilaukseen ja lisäämään palvelimettoman esiintymän resurssiryhmään. Valitse seuraavaksi sovellusliittymä, jota aiot käyttää kyselyissä, ja kun sinua pyydetään valitsemaan kapasiteettitila, valitse palvelimeton palvelujen sijaan. Yhdistä se lopuksi alueeseen ja muista, että palvelinta voi käyttää vain yhdellä Azure-alueella; maantieteellistä redundanssia ei ole. Et myöskään voi käyttää sitä ilmaisen tason kanssa.

Kun palvelimetön ilmentymä on käynnissä, voit käyttää sen sovellusliittymiä tietojen lataamiseen ja kyselyjen tekemiseen. Kuten tavallinen Cosmos DB: n ilmentymä, voit rakentaa JavaScriptiä koskevia toimintoja ja laukaisimia, jotka toimivat tietokannassa, sekä käyttää sen monia erilaisia ​​sovellusliittymiä kyselyjen hallintaan.

Palvelimettoman Cosmos DB: n pitäisi pian poistua esikatselusta, ja se lisää tukea kaikille sovellusliittymilleen, jopa viimeisimmälle Cassandra-sovellusliittymälleen. Koska kyseessä on julkinen esikatselu, voit määrittää sen ja tutkia sen toimintaa suoraan Azure-portaalista. Vaikka esikatselussa ei ole tukea ARM: lle tai muulle infrastruktuurille koodin käyttöönottotyökaluina, vaikka palvelun pitäisi olla, kun palvelu on yleisesti saatavilla. Et voi automatisoida määrityksiä ja käyttöönottoa, joten et voi käyttää niitä nyt osana CI / CD (jatkuva integrointi / jatkuva toimitus) -putkea, koska käyttöönoton on oltava manuaalista.

Rakennuskoodi palvelimettomalla Cosmos DB: llä

Yksi paikka, josta sinun pitäisi saada paljon arvoa palvelimettomalta Cosmos DB: ltä, on rinnakkain Azure-toimintojen kanssa. Kaksi palvelimetonta ympäristöä toimivat hyvin yhdessä ja ovat ihanteellisia purskeisiin, pienen volyymin tapahtumavetoisiin sovelluksiin. Palvelimeton Cosmos DB voi nopeasti nousta nollasta 5000 pyyntöyksikköön sekunnissa, joten jos kirjoitat koodia, joka käyttää funktioita virhetilanteiden tai muiden ilmoitusten seuraamiseen, se on mahdollisuus tietojen keräämiseen ja tallentamiseen nopeasti.

Microsoft suosittelee sen käyttöä osana kehitysympäristöä, johon keräät tietoja pyynnöistä, joita tarvitset täysimittaiseen sovellukseen. Koska pyyntöyksiköiden valmistelu on jotain mustaa taidetta, palvelimaton toteutus, joka toimii kaikilla tietokantakoodeillasi, on hyödyllinen kehitystyökalu. Voit määrittää toimintaympäristön, suorittaa testit, kerätä käytettyjen pyyntöjen määrän ja käyttää sitten näitä tietoja tuotantotehon käyttöönottoon.

Palvelimettomien rajoitusten ymmärtäminen

Palvelimettoman Cosmos DB -tilin käytölle on rajoituksia. Ehkä tärkeintä on, että et saa pääsyä monialueisiin käyttöönottoihin, koska palvelimettomat tilit kulkevat vain yhdellä alueella. Se on järkevää rajoitusta: Usean alueen Cosmos DB -ratkaisut tarvitsevat useita ilmentymiä, jotka ovat käynnissä samanaikaisesti alueiden välisen replikaation ja yhdenmukaisuuden varmistamiseksi. Jos palvelimettomat instanssit suoritetaan vain, kun ne käsittelevät pyyntöjä, ei voida taata, että toinen alue on online-tilassa replikoinnin käsittelemiseksi. Seurauksena on, että palvelimettomille instansseille on tehty muutoksia Cosmos DB -palvelutasotavoitteeseen. Kirjoitusten odotetaan olevan 30 ms tai vähemmän ja lukevien 10 ms tai vähemmän.

Toinen keskeinen rajoitus on enintään 5000 pyyntöyksikköä sekunnissa. Jälleen tämän pitäisi riittää useimpiin yksinkertaisiin tai kehitystoteutuksiin, mutta se vaatii sinua pitämään silmällä sovelluksiasi ja olemaan valmis siirtymään provisioituun Cosmos DB -esiintymään, jos ylität rajoituksesi säännöllisesti. Samaan aikaan jokainen palvelimeton säilö voi tallentaa vain 50 Gt tietoa ja hakemistoja. Microsoft tarjoaa työkaluja Azure-portaaliin toiminnan valvomiseksi sekä Azure Monitorissa.

Palvelimettoman vaihtoehdon lisääminen Cosmos DB: hen vastaa moniin kustannuksia koskeviin kysymyksiin. Vähäisen käytön tilanteissa, joissa et tarvitse maailmanlaajuista kattavuutta, sen pitäisi olla ensimmäinen valinta. Vaihda käytettävän suoritusasteen käyttöön vain, kun pystyt ymmärtämään sovelluksesi pyyntömallin ja voit budjetoida sen mukaisesti.