Programavimas

„Azure Cosmos DB“ be serverio

„Azure“ „Cosmos DB“ yra vienas iš platformos pamatų, valdantis daugelį pagrindinių paslaugų. Sukurtas iš pagrindų kaip paskirstyta duomenų bazė, jis įgyvendina įvairių nuoseklumo modelių rinkinį, leidžiantį jums suderinti savo programų našumą ir vėlavimą. Tada yra skirtingi darbo su duomenimis modeliai, pradedant pažįstamais NoSQL ir SQL API, palaikant „Mongo DB“ API, baigiant „Gremlin“ grafikų duomenų bazių užklausų varikliu.

„Cosmos DB“ pakanka palaikyti dažniausiai pasitaikančius debesų kūrimo scenarijus, suteikiant jums nuoseklią duomenų platformą, kuri gali dalytis duomenimis visame pasaulyje. „Microsoft“ dažnai apibūdina tai kaip „planetos masto duomenų bazę“.

Neapsaugota serverio alternatyva numatytam pralaidumui

Nepaisant visų privalumų, „Cosmos DB“ turi tam tikrų trūkumų; ne tik jo kaina. Nors yra gana ribota nemokama parinktis, jos vykdymas masto gali būti brangus, ir jūs turite į tai atsižvelgti kurdami programas aplink jį. Biudžeto sudarymas „Cosmos DB“ užklausų vienetams yra sudėtingas procesas, kurį sunku ištaisyti pirmą kartą, ypač kai atsižvelgiate į mastelio keitimą rankiniu būdu arba automatiškai.

„Microsoft“ kurį laiką vykdė „Cosmos DB“ be serverio parinkties peržiūrą, remdamasi savo pagrindine SQL API. Tai įdomi alternatyva tradiciškai numatytam variantui. Tai apmokestinama tik tada, kai vykdoma užklausa, ir sustabdo jūsų egzempliorių, kai nieko nevyksta. Duomenų bazės operacijose bus papildomas vėlavimas, nes jūsų egzempliorius turi paspartinti, kai jis bus sustabdytas. Žinoma, už saugojimą reikia mokėti, tačiau tas pats ir su bet kokia „Azure“ duomenų baze. Pradinis bandymas dabar išplėstas į visas „Cosmos DB“ API, o bendras prieinamumas yra ne per toli ateityje.

Pridėjus be serverio parinktį prie „Cosmos DB“, yra daug prasmės daugeliui darbo krūvių, kai prašymus gaunate nedideliais kiekiais ir paketais. Dėl nedidelio darbo krūvio, kurio operacijos yra nereguliarios, vartojimu pagrįstas kainodaros modelis turi daug prasmės - ir ilgainiui gali sutaupyti nemažą pinigų sumą, nes nėra įsipareigojimų atidėjiniams.

Išlaidos yra mažos: mokate 0,282 USD už užklausos be serverio vienetą, už milijoną GĮ per atsiskaitymo ciklą. Jei jums reikia patikimesnio serverio, galite nustatyti prieinamumo zoną, nors tai padidina 1,25 karto. Tai vis tiek yra pagrįstas susitarimas, o tai, ką prarandate nuspėjamumui, gauna mažesnes išlaidas. Sandėliavimo išlaidos išlieka tos pačios tiek rankiniu, tiek automatiniu atsarginių duomenų perdavimu.

Darbo su „Cosmos DB“ be serverio pradžia

Šokti yra pakankamai lengva. Kaip ir įprastą „Cosmos DB“ paskyrą, turėsite ją suteikti prenumeratai ir pridėti be serverio egzempliorių prie išteklių grupės. Tada pasirinkite API, kurį planuojate naudoti užklausoms, ir paprašius pasirinkti talpos režimą, pasirinkite serverio, o ne numatytą pralaidumą. Galiausiai susiekite jį su regionu, prisimindami, kad be serverio galite naudoti tik viename „Azure“ regione; nėra galimybės atleisti geografiškai. Negalėsite jo naudoti ir su nemokama pakopa.

Kai jūsų serverio egzempliorius veikia, galite naudoti jo API, norėdami įkelti duomenis ir pateikti užklausas. Kaip ir įprastas „Cosmos DB“ egzempliorius, galite kurti „JavaScript“ funkcijas ir aktyviklius, kurie veikia duomenų bazėje, taip pat naudoti daugybę skirtingų API užklausoms tvarkyti.

„Serverless Cosmos DB“ netrukus turėtų būti perkelta iš peržiūros ir pridedama visų savo API, net ir naujausios „Cassandra“, API palaikymas. Kadangi tai yra vieša peržiūra, galite ją nustatyti ir ištirti jos veikimą tiesiai iš „Azure“ portalo. Nors peržiūroje ARM ar kita infrastruktūra, kaip kodo diegimo įrankiai, nepalaikoma, tačiau tai turėtų būti, kai paslauga bus visuotinai prieinama. Negalite automatizuoti konfigūravimo ir diegimo, todėl kol kas negalėsite jų naudoti kaip CI / CD (nuolatinio integravimo / nepertraukiamo pristatymo) vamzdyno dalies, nes diegimas turės būti rankinis.

Statybos kodas su serverio neturinčia „Cosmos DB“

Viena vieta, kurią turėtumėte gauti iš serverio neturinčios „Cosmos DB“, yra lygiagreti su „Azure Functions“. Abi aplinkos be serverių gerai veikia kartu ir idealiai tinka sprogstančioms, mažos apimties, įvykių valdomoms programoms. „Serverless Cosmos DB“ gali greitai padidinti nuo nulio iki 5000 užklausų vienetų per sekundę, taigi, jei rašote kodą, kuris naudoja Funkcijas klaidų sąlygoms ar kitiems perspėjimams stebėti, tai yra galimybė greitai rinkti ir saugoti duomenis.

„Microsoft“ rekomenduoja jį naudoti kaip kūrimo aplinkos dalį, kur kaupiate duomenis apie užklausas, kurių reikia visos apimties programai. Kadangi užklausų vienetų teikimas yra kažkas juodo meno, diegimas be serverio, veikiantis su visu jūsų duomenų bazės kodu, yra naudinga kūrimo priemonė. Galite nustatyti operacinę aplinką, paleisti bandymus, užfiksuoti naudojamų užklausų skaičių ir tada naudoti tuos duomenis, kad teiktų gamybos diegimo pralaidumą.

Supratimas be serverio apribojimų

Yra apribojimų naudojant „Server“ neturinčią „Cosmos DB“ paskyrą. Ko gero, svarbiausia yra tai, kad negaunate prieigos prie daugelio regionų diegimo, nes be serverių paskyros veikia tik viename regione. Tai yra prasmingas apribojimas: norint įgyvendinti daugelio regionų „Cosmos“ DB, reikalingi keli egzemplioriai, veikiantys vienu metu, kad tarp regionų būtų galima daugintis ir nuosekliai. Jei egzemplioriai be serverio vykdomi tik tada, kai jie apdoroja užklausas, nėra jokios garantijos, kad kitas regionas bus prisijungęs prie replikacijos. Dėl to yra pakeitimų „Cosmos DB“ paslaugų lygio objekte be serverio egzemplioriams, tikimasi, kad rašymas bus 30 ms ar mažesnis, o nuskaitytas 10 ms ar mažiau.

Kitas pagrindinis apribojimas yra daugiausia 5000 užklausos vienetų per sekundę. Vėlgi, to turėtų pakakti daugumai paprastų ar programinės įrangos diegimų, tačiau tam reikia stebėti savo programas ir būti pasirengusiems pereiti prie aprūpinto „Cosmos DB“ egzemplioriaus, jei reguliariai peržengiate savo ribas. Tuo pačiu metu kiekviename serverio talpykloje gali būti saugoma tik 50 GB duomenų ir indeksų. „Microsoft“ teikia įrankius „Azure“ portale, kurie padeda stebėti operacijas, taip pat „Azure Monitor“.

Į „Cosmos DB“ įtraukus parinktį be serverio, atsakoma į daugelį klausimų apie kainą. Mažo naudojimo scenarijams, kai jums nereikia pasaulinės aprėpties, tai turėtų būti jūsų pirmasis pasirinkimas. Pereiti prie numatyto pralaidumo egzemplioriaus naudoti tik tada, kai suprantate programos užklausos modelį ir atitinkamai galite skirti biudžetą.