Izveidojiet modernu lietojumprogrammu, izmantojot mērķtiecīgi izveidotas AWS datu bāzes

Nodrošina Amazon tīmekļa pakalpojumi





Vienreizēju, monolītu datu bāzu laiki ir aiz muguras. Kā norāda Verners Vogels, Amazon.com tehnoloģiju vadītājs un viceprezidents, teica, Reti viena datu bāze var atbilst vairāku atšķirīgu lietošanas gadījumu vajadzībām. Agrāk tīmekļa lietojumprogrammas tika veidotas, izmantojot LAMP steku (Linux, Apache, MySQL un PHP), kur daudzām dažādām pieredzēm tika izmantota viena datu bāze. Turpretim mūsdienu tīmekļa lietojumprogrammas no tādiem klientiem kā Expedia, Airbnb un Capital One neizmanto vienu datu bāzi — tās izmanto vairākus dažādu veidu datu bāzes.

Patiešām, izstrādātāji mūsdienās veido ļoti izplatītas lietojumprogrammas, izmantojot daudzas mērķtiecīgi izveidotas datu bāzes . Savā ziņā izstrādātāji dara to, ko viņi prot vislabāk — sadalot sarežģītas lietojumprogrammas mazākās daļās —, kas ļauj viņiem izvēlēties pareizo rīku pareizajam darbam.



Šajā emuāra ziņojumā mēs apspriežam AWS mērķtiecīgi izveidotas datubāzes un to, kā tās izmantot, lai radītu bagātīgu pieredzi saviem klientiem. Mēs arī apskatām detalizētu piemēru par šīm datu bāzēm, kas nodrošina dažādas lietojumprogrammas iespējas, un piedāvājam rīkus, kas jums nepieciešami, lai dažu minūšu laikā izveidotu lietotni.

AWS klienti mums saka, ka vēlas izveidot mērogojamas, augstas veiktspējas un funkcionālas lietojumprogrammas, kurām ir īpaša veiktspēja un biznesa vajadzības. Pēdējo vairāku gadu laikā esam reaģējuši uz šīm klientu vajadzībām, ieviešot jaunus pakalpojumus, piemēram, Amazon Neptūns grafiku datu bāzēm, Amazone-Aurora pilnībā pārvaldītām, komerciāla līmeņa relāciju datu bāzēm, kā arī arvien pilnveidotai funkciju kopai, piemēram, Amazon Aurora bez servera . Vietnē AWS re:Invent 2018, AWS paziņoja vairāki jauni papildinājumi un līdzekļi mūsu mērķtiecīgi izveidoto datu bāzu saimei:

2019. gada janvārī AWS paziņoja Amazon DocumentDB (ar MongoDB saderību). Ar šiem papildinājumiem izstrādātāji ir izvēle relāciju, atslēgu vērtību, dokumentu, atmiņas, meklēšanas, grafiku, laikrindu un virsgrāmatas datu bāzes, lai tās atbilstu to individuālajiem lietošanas gadījumiem. Katra no šīm datu bāzēm ir izveidota tā, lai tā būtu īstais rīks pareizajam darbam.



Kā AWS klienti izmanto speciāli izveidotas datu bāzes

Kā AWS klienti izmanto visas šīs īpaši izveidotās datu bāzes? AWS re:Invent 2018 mēs prezentējām AWS datu bāzes: pareizais rīks pareizajam darbam . Šajā sesijā mēs apspriedām, kā AWS klienti kopā izmanto dažādas datu bāzes, lai saviem klientiem nodrošinātu bagātīgu, visaptverošu pieredzi.

Sesijā mēs parādījām demonstrāciju, kas sniedz reālu piemēru tam, kā klienti veido lietojumprogrammas, izmantojot AWS mērķtiecīgi izveidotu arhitektūru. Demonstrācijā ir izklāstīts, kā interneta veikala mājvieta (šajā gadījumā grāmatnīca) tiek veidota uz vairākām datu bāzēm, no kurām katra attiecas uz atšķirīgu lietošanas gadījumu. Tālāk seko demonstrācijas klips, sākot no 21:43.

Kā risināt dažādus lietošanas gadījumus ar dažādiem mērķiem izveidotām datubāzēm

Iepriekšējā klipā tika demonstrēta tiešsaistes grāmatnīcas demonstrācijas programma (skatiet nākamo ekrānuzņēmumu). Tāpat kā jebkurai modernai, pilnai tīmekļa lietojumprogrammai, šai lietojumprogrammai ir vairāki dažādi lietošanas gadījumi, tostarp produktu katalogs, produktu meklēšana, vislabāk pārdoto produktu saraksts un sociālie ieteikumi.



1. attēls

1. attēls: AWS grāmatnīcas demonstrācijas lietotnes ekrānuzņēmums

Sāksim ar preču kataloga lietošanas gadījumu. Kad lietotājs piekļūst grāmatnīcas interneta veikalam, viņš, iespējams, redzēs produktu sarakstu. Produkti parasti satur unikālus identifikatorus un atribūtus, piemēram, aprakstus, daudzumus, atrašanās vietas un cenas. Tehniskā nozīmē šāda veida atribūtu izgūšanas metode bieži ir atslēgas vērtības meklēšana, kuras pamatā ir produkta unikāls identifikators. Tas nozīmē, ka lietojumprogramma var izgūt šos citus atribūtus, ja tiek nodrošināts produkta unikālais identifikators. Šis lietošanas gadījums padara Amazon DynamoDB lieliski iederas kā izturīga grāmatnīcas produktu kataloga ierakstu sistēma, jo DynamoDB nodrošina ātru, paredzamu veiktspēju jebkurā mērogā atslēgas vērtību meklēšanai. Izmantojot DynamoDB, produktu katalogu var sākt ar dažiem simtiem produktu un paplašināt līdz miljardiem produktu bez nepieciešamības pārveidot vai mainīt datu bāzes.

Otrs lietošanas gadījums ir ļaut klientiem meklēt produktu katalogā. Kad klienti ierodas grāmatnīcā, viņi vēlas atrast produktu, ko viņi plāno iegādāties, vai meklēt katalogā, lai atrastu savu nākamo lielisko lasāmvielu. Mūsdienu pasaulē lietotāji tiek apmācīti efektīvi meklēt atslēgvārdus, lai atrastu to, ko viņi meklē. Amazon Elasticsearch pakalpojums (Amazon ES) ir datu bāzes tehnoloģija, kas risina šīs lietotāju vajadzības. Izmantojot dabiskās valodas iespējas, slīpētu navigāciju un sakārtotus rezultātus, Amazon ES palīdz klientiem produktu katalogā ātri atrast vajadzīgās preces.



Grāmatnīcas lietojumprogrammai produktu katalogs (DynamoDB) ir jāsinhronizē ar Amazon ES meklēšanas indeksu. Ikreiz, kad produkts tiek pievienots, atjaunināts vai noņemts no kataloga produktu tabulas DynamoDB, izmaiņas ir jāatspoguļo arī Amazon ES meklēšanas rādītājā. Viens vienkāršs veids, kā to izdarīt, ir izmantot Amazon DynamoDB straumes ar AWS Lambda lai asinhroni atjauninātu Amazon ES indeksu katru reizi, kad DynamoDB produktu katalogā tiek veiktas izmaiņas.

Trešais lietošanas gadījums ir vislabāk pārdoto preču saraksts produktu katalogam, kas ļaus grāmatnīcas lietotājiem redzēt, kuras ir 20 visvairāk iegādātās grāmatas. Šai pieredzei ideālā datubāze ļauj grāmatnīcai uzturēt līderu sarakstu, neveicot garus un dārgus summēšanas vaicājumus par visiem pirkumiem katru reizi, kad lietotājs atsvaidzina tīmekļa lapu. Amazon ElastiCache priekš Redis nodrošina tieši to, kas ir nepieciešams, tostarp iebūvētas, atmiņā esošās datu struktūras, piemēram, sakārtotas kopas, kas ļauj grāmatnīcai ātri un efektīvi izveidot labāko pārdevēju sarakstu. Lai to palaistu, grāmatnīca var izmantot DynamoDB Streams (līdzīgi produktu meklēšanas lietošanas gadījumam) no pasūtījumu tabulas, lai atjauninātu jaunāko statusu ElastiCache ikreiz, kad tiek iegādāta jauna prece. Tā kā ir pieejams labāko pārdevēju saraksts, grāmatnīca daļu no tā var parādīt arī savā tīmekļa vietnes mājaslapā. Turklāt, tā kā dati ir atmiņā un ir pieejami, izmantojot iebūvētās sakārtotās kopas, grāmatnīcā būs mikrosekundes lasīšanas latentums vaicājumiem, kas iekļauti vislabāk pārdoto preču sarakstā.

Ceturtais lietošanas gadījums ir sociālo ieteikumu sniegšana, lai palīdzētu grāmatnīcas klientiem atrast kontekstuāli piemērotāku saturu — šajā gadījumā saturu, pamatojoties uz to, ko viņu draugi ir iegādājušies. Tā kā sociālie ieteikumi atrodas grāmatnīcas mājaslapā un citās vietnes lapās, ieteikumiem ir jābūt ātriem. Turklāt, vietnei augot, risinājumam ir jāpievieno vairāk produktu, lapu un lietotāju. Ar šīm prasībām mērķtiecīga grafiku datu bāze, piemēram, Amazon Neptūns ir dabiski piemērots, lai pārvietotos pa saitēm datos, sniedzot ieteikumus, kuru pamatā ir sociālie sakari un saistītās pirkšanas aktivitātes. Neptune nodrošina nepieciešamo funkcionalitāti un veiktspēju, kas mums ir nepieciešama, lai ātri izveidotu un izpildītu vaicājumus, lai šķērsotu diagrammas attiecības, un tas tiks mērogots, vietnei (un lietojumprogrammai) augot, neapdraudot veiktspēju.

Lai iegūtu un atjauninātu visu šo informāciju, interneta veikala mājaslapa veic virkni dažādu API izsaukumu. Šeit ir redzams, kā lietojumprogramma izskatās aizmugursistēmā, izmantojot Amazon API Gateway un AWS Lambda:

2. attēls

2. attēls: AWS grāmatnīcas demonstrācijas programmas arhitektūras shēma

Šai grāmatnīcas lietojumprogrammai mēs novērtējām lietojumprogrammas galvenos lietošanas gadījumus un izvēlējāmies labāko datubāzi katram lietošanas gadījumam. Mērķtiecīgi izveidotas datubāzes ļauj izveidot mērogojamu, augstas veiktspējas un funkcionālas aizmugursistēmas infrastruktūras, lai darbinātu jūsu lietojumprogrammas, katrā lietošanas gadījumā izmantojot vispiemērotāko komponentu. Izmantojot šo pieeju, jūs varat izveidot līdzīgu arhitektūru ar saviem resursiem.

Iedarbiniet to

Katram klientam, kurš izveido tīmekļa lietojumprogrammu, ir jāiziet gandrīz tieši tāds pats komponentu izvēles process, taču tā ir tikai puse no panākumiem. Varbūt vēl svarīgāk ir tas, ka pēc vēlamās arhitektūras izvēles viņiem katru reizi ir jāveido kopa no nulles. Tas lika mums aizdomāties: kāpēc gan nepadarīt arhitektūru vienkāršāku? Tā kā tik daudz klientu veic ļoti līdzīgu procesu, kā mēs varam to vienkāršot? Kā mēs varam palīdzēt klientiem, kuri joprojām atrodas mācību vai izpētes fāzē, dažu minūšu laikā izveidot un palaist pilnu lietojumprogrammu, izmantojot šīs īpaši izveidotās datu bāzes?

Lai atbildētu uz šiem jautājumiem, mēs izveidojām singlu AWS CloudFormation veidne, lai automatizētu visas šīs grāmatnīcas demonstrācijas lietojumprogrammu kaudzes izveidi tikai dažās minūtēs. Turklāt mēs padarījām visu avota kodu, attēlus un datu paraugus pieejamus vietnē GitHub lai jūs varētu izvietot, izpētīt, modificēt un paplašināt.

3. attēls

3. attēls: AWS grāmatnīcas demonstrācijas lietotņu krātuve ir ieslēgta GitHub

Kā mēs parādījām re:Invent sesijā, AWS grāmatnīcas demonstrācijas lietotne ir strādājoša lietojumprogramma, kas izmanto četras īpaši izveidotas datu bāzes, lai nodrošinātu jaudīgu, funkcionālu lietotāja pieredzi. Lietojumprogrammu varat izvietot savā AWS kontā ar dažiem klikšķiem, izmantojot AWS CloudFormation (lai iegūtu plašāku informāciju, skatiet failu readme.md vietnē GitHub ). Pēc izvietošanas savā kontā varat izpētīt datu kopas pakalpojumā Amazon DynamoDB, Amazon Elasticsearch, Amazon ElastiCache for Redis un Amazon Neptune. Failā readme.md ir iekļautas papildu darbības, kas soli pa solim izskaidro, kā to izdarīt, kā arī komentāri par to, kā viss sader kopā. Varat izmantot lietotni kā smilšu kasti vai mācību rīku, lai izpētītu, kā šāda arhitektūra sader kopā, vai kā sākuma veidni, lai izveidotu savu lietojumprogrammu.

Ko darīt, ja manas pieteikuma prasības atšķiras?

AWS grāmatnīcas demonstrācijas lietotne ir tikai viens piemērs tam, kā varat izmantot īpaši izveidotas datu bāzes, lai izveidotu mērogojamu un augstas veiktspējas pilnas kaudzes lietojumprogrammu, piemēram, tīmekļa veikalu. Ja vēlaties sākt ar šo steku kā bāzes līniju, bet jūsu lietošanas gadījums ir vairāk piemērots relāciju datu bāzei (piemēram, Amazon RDS), varat modificēt lietojumprogrammu, lai tā izmantotu to. Ja vēlaties izmantot ElastiCache kešatmiņai pirms dažiem citiem datu bāzes komponentiem, lai uzlabotu veiktspēju, varat pievienot arī to. Patiesībā mēs aicinām jūs izmantot dakšiņu repo un modificējiet demonstrācijas lietojumprogrammu, lai izpētītu jomas, par kurām vēlaties uzzināt vairāk. Varat apmainīt datu bāzes tipus, izmēģināt dažādus komponentus un ielādēt savus resursus un datus. Ja izstrādājat kaut ko interesantu, kas, jūsuprāt, būtu vērtīgs citiem, lūdzu, iesniedziet izvilkšanas pieprasījumu, lai mēs varētu pagarināt demonstrāciju.

Ja jūsu lietojumprogramma ir diezgan atšķirīga, bet jūs joprojām meklējat pamata pilnas kaudzes lietojumprogrammu, ko papildināt, AWS grāmatnīcas demonstrācijas lietotne ir veidota, pamatojoties uz AWS pilnas kaudzes veidne (pieejams arī uz GitHub ). AWS Full-Stack Template nodrošina pamatpakalpojumus, komponentus un santehniku, kas nepieciešama pamata tīmekļa lietojumprogrammas izveidei un darbībai, ietaupot jūsu laiku un palīdzot koncentrēties uz jūsu lietojumprogrammas atšķirībām. Varat izmantot AWS Full-Stack veidni, lai izveidotu jebkuru lietojumprogrammu, ko plānojat, neatkarīgi no tā, vai tas ir ceļojumu rezervēšanas rīks, emuārs vai cita tīmekļa lietotne. AWS grāmatnīcas demonstrācijas lietotne ir tikai viens piemērs tam, ko varat izveidot, izmantojot AWS pilnas kaudzes veidne .

Nākamajā reizē, kad izmantosit lietojumprogrammu, mēģiniet iedomāties, kura datu bāze ir aiz aizkariem. Vairāk nekā iespējams, ir vairākas datu bāzes (un citi pakalpojumi), kas darbojas kopā, lai nodrošinātu jūsu pieredzi. Ja vēlaties uzzināt vairāk un sākt būvēt, izmēģiniet kādu no šīm pilnas kaudzes lietojumprogrammām. Ar nepacietību gaidīsim, ko jūs uzbūvēsit!

paslēpties