211service.com
Sukurkite modernią programą naudodami specialiai sukurtomis AWS duomenų bazėmis
Pateikė „Amazon“ žiniatinklio paslaugos
Vieno dydžio, visiems tinkančių, monolitinių duomenų bazių laikai jau už nugaros. Werneris Vogelsas, CTO ir Amazon.com viceprezidentas, sakė, Retai kada viena duomenų bazė gali atitikti kelių skirtingų naudojimo atvejų poreikius. Anksčiau žiniatinklio programos buvo kuriamos naudojant LAMP krūvą (Linux, Apache, MySQL ir PHP), kur viena duomenų bazė buvo naudojama daugeliui skirtingų patirčių. Priešingai, šiandieninės žiniatinklio programos iš klientų, tokių kaip Expedia, Airbnb ir Capital One nenaudoja vienos duomenų bazės – jos naudoja kelių skirtingų tipų duomenų bazes.
Iš tiesų, kūrėjai šiandien kuria labai paskirstytas programas naudodami daugybę specialiai sukurtos duomenų bazės . Tam tikra prasme kūrėjai daro tai, ką moka geriausiai – suskirsto sudėtingas programas į mažesnes dalis – tai leidžia jiems pasirinkti tinkamą įrankį tinkamam darbui.
Šiame tinklaraščio įraše aptariame AWS specialiai sukurtas duomenų bazes ir kaip jas naudoti kuriant turtingą patirtį savo klientams. Taip pat pateikiame išsamų šių duomenų bazių, teikiančių įvairioms programoms skirtoms funkcijoms, pavyzdį ir pateikiame įrankius, kurių reikia, kad per kelias minutes sukurtumėte programą.
AWS klientai mums sako, kad nori sukurti keičiamo dydžio, didelio našumo ir funkcines programas, kurios turi specifinių našumo ir verslo poreikių. Per pastaruosius kelerius metus į šiuos klientų poreikius reaguodavome pristatydami naujas paslaugas, pvz Amazon Neptūnas grafikų duomenų bazėms, Amazonė-Aurora visiškai valdomoms, komercinio lygio reliacinėms duomenų bazėms, taip pat vis tobulėjančiam funkcijų rinkiniui, pvz., „Amazon Aurora“ be serverio . AWS re:Invent 2018, AWS paskelbė keletas naujų papildymų ir funkcijų mūsų specialiai sukurtų duomenų bazių šeimoje:
- Amazon Quantum Ledger duomenų bazė (QLDB), specialiai sukurta DK duomenų bazė.
- Amazon Timestream , laiko eilučių duomenų bazės paslauga, skirta daiktų internetui (IoT) ir operacinėms programoms.
- „Amazon DynamoDB“ talpos režimas pagal pareikalavimą , atsiskaitymo parinktis, leidžianti mokėti tik už sunaudotus išteklius.
- Pasaulinė Amazon Aurora duomenų bazė , apimantis kelis AWS regionus, tuo pačiu atkartojantis įrašus, kurių tipinė delsa yra mažesnė nei viena sekundė.
2019 m. sausio mėn. AWS paskelbė „Amazon DocumentDB“. (su suderinamumu su MongoDB). Su šiais priedais kūrėjai turi pasirinkimą reliacinių, raktinių reikšmių, dokumentų, atminties, paieškos, grafikų, laiko eilučių ir knygos duomenų bazių, kad atitiktų jų individualius naudojimo atvejus. Kiekviena iš šių duomenų bazių sukurta taip, kad būtų tinkamas įrankis tinkamam darbui atlikti.
Kaip AWS klientai naudoja specialiai sukurtas duomenų bazes
Kaip AWS klientai kartu naudoja visas šias specialiai sukurtas duomenų bazes? „AWS re:Invent 2018“ pristatėme AWS duomenų bazės: tinkamas įrankis tinkamam darbui . Šioje sesijoje aptarėme, kaip AWS klientai kartu naudoja skirtingas duomenų bazes, kad savo klientams teiktų turtingą ir visapusišką patirtį.
Sesijoje parodėme demonstracinę versiją, kurioje pateikiamas realus pavyzdys, kaip klientai kuria programas naudodami specialiai sukurtą AWS architektūrą. Demonstracijoje aprašoma, kaip internetinė parduotuvė (šiuo atveju knygynas) yra sukurta ant kelių duomenų bazių, kurių kiekviena skirta skirtingam naudojimo atvejui. Toliau pateikiamas demonstracinės versijos klipas, prasidedantis 21:43.
Kaip spręsti skirtingus naudojimo atvejus naudojant skirtingos paskirties duomenų bazes
Ankstesniame klipe buvo demonstruojama internetinio knygyno demonstracinė programa (žr. toliau pateiktą ekrano kopiją). Kaip ir bet kurioje modernioje, visos žiniatinklio programos, šioje programoje yra keli skirtingi naudojimo atvejai, įskaitant produktų katalogą, produktų paiešką, geriausių pardavėjų sąrašą ir socialines rekomendacijas.
Figūra 1: AWS knygyno demonstracinės programos ekrano kopija
Pradėkime nuo produktų katalogo naudojimo atvejo. Kai vartotojas pasiekia knygyno internetinę parduotuvę, jis gali tikėtis pamatyti produktų sąrašą. Produktuose paprastai yra unikalių identifikatorių ir atributų, tokių kaip aprašymai, kiekiai, vietos ir kainos. Techniniu požiūriu šių tipų atributų gavimo metodas dažnai yra rakto vertės paieška, pagrįsta unikaliu produkto identifikatoriumi. Tai reiškia, kad programa gali gauti šiuos kitus atributus, kai pateikiamas unikalus produkto identifikatorius. Šis naudojimo atvejis daro Amazon DynamoDB puikiai tinka kaip patvari knygyno produktų katalogo įrašų sistema, nes „DynamoDB“ užtikrina greitą, nuspėjamą našumą bet kokiu mastu raktinių verčių paieškai. Naudojant DynamoDB, produktų katalogas gali prasidėti nuo kelių šimtų produktų ir išplėsti iki milijardų produktų nereikalaujant iš naujo suprojektuoti ar keisti duomenų bazių.
Antrasis naudojimo atvejis – suteikti klientams galimybę ieškoti produktų kataloge. Kai klientai ateina į knygyną, jie nori rasti produktą, kurį ketina pirkti, arba ieškoti kataloge, kad surastų kitą puikų skaitymą. Šiuolaikiniame pasaulyje vartotojai mokomi efektyviai ieškoti raktinių žodžių, kad surastų tai, ko ieško. „Amazon Elasticsearch“ paslauga (Amazon ES) yra duomenų bazės technologija, kuri išsprendžia šiuos vartotojų poreikius. Naudodama natūralios kalbos galimybes, briaunuotą naršymą ir reitinguotus rezultatus, „Amazon ES“ padeda klientams greitai rasti norimas prekes produktų kataloge.
Knygyno programa turi sinchronizuoti produktų katalogą („DynamoDB“) su „Amazon ES“ paieškos indeksu. Kai produktas įtraukiamas, atnaujinamas arba pašalinamas iš katalogo produktų lentelės „DynamoDB“, pakeitimas taip pat turi atsispindėti „Amazon ES“ paieškos indekse. Vienas paprastas būdas tai padaryti yra naudoti Amazon DynamoDB srautai su AWS lambda asinchroniškai atnaujinti Amazon ES indeksą kiekvieną kartą, kai pakeičiamas produktų katalogas DynamoDB.
Trečiasis naudojimo atvejis yra perkamiausių produktų katalogo sąrašas, kuris leis knygyno vartotojams pamatyti 20 populiariausių knygų. Šiai patirčiai ideali duomenų bazė leidžia knygynui išlaikyti pirmaujančiųjų sąrašą ir nereikia atlikti ilgų ir brangių visų pirkinių sumavimo užklausų kiekvieną kartą, kai vartotojas atnaujina tinklalapį. „Amazon ElastiCache“, skirta „Redis“. pateikia būtent tai, ko reikia, įskaitant integruotas atmintyje esančias duomenų struktūras, tokias kaip surūšiuoti rinkiniai, leidžiantys knygynui greitai ir efektyviai sudaryti perkamiausių prekių sąrašą. Kad jis veiktų, knygynas gali naudoti „DynamoDB Streams“ (panašų į produkto paieškos naudojimo atvejį) iš užsakymų lentelės, kad atnaujintų naujausią „ElastiCache“ būseną kiekvieną kartą, kai perkama nauja prekė. Turėdamas geriausių pardavėjų sąrašą, knygynas dalį jo gali parodyti ir savo svetainės pagrindiniame puslapyje. Be to, kadangi duomenys yra atmintyje ir pasiekiami naudojant integruotus surūšiuotus rinkinius, knygynas patirs mikrosekundžių skaitymo delsą užklausoms, pateiktoms perkamiausių sąraše.
Ketvirtas naudojimo atvejis – teikti socialines rekomendacijas, padedančias knygyno klientams rasti kontekstui tinkamesnį turinį – šiuo atveju turinį pagal tai, ką įsigijo jų draugai. Kadangi socialinės rekomendacijos yra knygyno pagrindiniame puslapyje ir kituose svetainės puslapiuose, rekomendacijos turi būti greitos. Be to, svetainei plečiantis, sprendimas turi būti pritaikytas daugiau produktų, puslapių ir vartotojų. Atsižvelgiant į šiuos reikalavimus, specialiai sukurta grafikų duomenų bazė, pvz Amazon Neptūnas yra natūralus pritaikymas naršyti duomenų nuorodas, įgalinant rekomendacijas, pagrįstas socialiniais ryšiais ir susijusia pirkimo veikla. „Neptune“ suteikia reikiamą funkcionalumą ir našumą, kurių mums reikia, kad galėtume greitai sukurti ir vykdyti užklausas, kad būtų galima pereiti grafiko ryšius, ir jis didės, kai svetainė (ir programa) augs, nepakenkiant našumui.
Siekdama gauti ir atnaujinti visą šią informaciją, internetinė parduotuvė atlieka daugybę skirtingų API iškvietimų. Čia pateikiamas vaizdas, kaip programa atrodo naudojant „Amazon API Gateway“ ir „AWS Lambda“:
2 pav. AWS knygyno demonstracinės programos architektūrinė schema
Šioje knygyno programoje įvertinome pagrindinius programos naudojimo atvejus ir pasirinkome geriausią duomenų bazę kiekvienam naudojimo atvejui. Tiksliai sukurtos duomenų bazės leidžia sukurti keičiamo dydžio, didelio našumo ir funkcionalias užpakalines infrastruktūras, kurios padėtų jūsų programoms, kiekvieną naudojimo atvejį sprendžiant su tinkamiausiu komponentu. Laikydamiesi šio metodo, galite sukurti panašią architektūrą savo ištekliais.
Paleiskite ir paleiskite
Kiekvienas klientas, kuriantis žiniatinklio programą, turi pereiti beveik tą patį komponentų pasirinkimo procesą, bet tai tik pusė darbo. Galbūt dar svarbiau yra tai, kad pasirinkę norimą architektūrą, jie kiekvieną kartą turi statyti krūvą nuo nulio. Tai privertė mus susimąstyti: kodėl nepalengvinus architektūros kūrimo? Kadangi tiek daug klientų atlieka labai panašų procesą, kaip galime tai supaprastinti? Kaip galime padėti klientams, kurie vis dar tik mokosi arba bando, per kelias minutes sukurti ir paleisti visą programą naudojant šias specialiai sukurtas duomenų bazes?
Norėdami atsakyti į šiuos klausimus, sukūrėme singlą AWS debesies formavimas šablonas, skirtas automatizuoti viso knygyno demonstracinės programos krūvos kūrimą nuo galo iki galo, vos per kelias minutes. Be to, mes padarėme visą šaltinio kodą, vaizdus ir duomenų pavyzdžius GitHub kad galėtumėte įdiegti, tyrinėti, modifikuoti ir išplėsti.
3 pav. Įjungta AWS knygyno demonstracinės programos saugykla GitHub
Kaip parodėme seanso re:Invent metu, AWS knygyno demonstracinė programa yra veikianti programa, kuri naudoja keturias specialiai sukurtas duomenų bazes, kad suteiktų galingą, funkcionalią vartotojo patirtį. Galite įdiegti programą savo AWS paskyroje keliais paspaudimais naudodami AWS CloudFormation (daugiau informacijos rasite faile readme.md GitHub ). Įdiegę paskyroje galite tyrinėti duomenų rinkinius „Amazon DynamoDB“, „Amazon Elasticsearch“, „Amazon ElastiCache for Redis“ ir „Amazon Neptune“. Failas readme.md apima papildomus veiksmus, kurie paaiškina, kaip tai padaryti žingsnis po žingsnio, kartu su komentarais, kaip viskas dera. Galite naudoti programą kaip smėlio dėžę arba mokymosi įrankį, kad išsiaiškintumėte, kaip tokia architektūra dera tarpusavyje, arba kaip pradinį šabloną kurdami savo programą.
Ką daryti, jei mano prašymo reikalavimai skiriasi?
AWS knygyno demonstracinė programa yra tik vienas pavyzdys, kaip galite naudoti specialiai sukurtas duomenų bazes, kad sukurtumėte keičiamo dydžio ir didelio našumo pilną programą, pvz., internetinę parduotuvę. Jei norite pradėti nuo šio krūvos kaip pradinio taško, bet jūsų naudojimo atvejis labiau tinka reliacinei duomenų bazei (pvz., „Amazon RDS“), galite pakeisti programą, kad ji būtų naudojama. Jei norite panaudoti ElastiCache talpykloje kaupti prieš kai kuriuos kitus duomenų bazės komponentus, kad pagerintumėte našumą, galite tai pridėti. Tiesą sakant, mes raginame jus pasirinkti atpirkimo sandoris ir modifikuokite demonstracinę programą, kad tyrinėtumėte sritis, apie kurias norite sužinoti daugiau. Galite keisti duomenų bazių tipus, išbandyti skirtingus komponentus ir įkelti savo išteklius bei duomenis. Jei kuriate ką nors įdomaus, kuris, jūsų nuomone, būtų naudingas kitiems, pateikite užklausą, kad galėtume pratęsti demonstracinę versiją.
Jei jūsų programa yra visiškai kitokia, bet vis tiek ieškote pagrindinės visos programos, kurią galėtumėte sukurti, AWS knygyno demonstracinė programa yra sukurta ant AWS viso krūvo šablonas (taip pat galima rasti GitHub ). AWS „Full-Stack“ šablonas teikia pagrindines paslaugas, komponentus ir santechniką, reikalingus pagrindinei žiniatinklio programai sukurti ir veikti. Taip sutaupysite laiko ir padėsite sutelkti dėmesį į programos skirtumus. Galite remtis AWS „Full-Stack“ šablonu, kad sukurtumėte bet kokią jūsų įsivaizduojamą programą, nesvarbu, ar tai kelionių užsakymo įrankis, tinklaraštis ar kita žiniatinklio programa. AWS knygyno demonstracinė programa yra tik vienas pavyzdys, ką galite sukurti naudodami AWS viso krūvo šablonas .
Kai kitą kartą naudosite programą, pabandykite įsivaizduoti, kuri duomenų bazė yra už užuolaidų. Daugiau nei tikėtina, kad yra keletas duomenų bazių (ir kitų paslaugų), kurios kartu veikia kartu, kad pagerintų jūsų patirtį. Jei norite sužinoti daugiau ir pradėti kurti, pasinaudokite viena iš šių pilno krūvo programų. Nekantriai laukiame, ką sukursite!
