Kuidas AWS-i pilve abil skaleeritavat rakendust arendada? (Vaibhav Sharma) PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.

Kuidas AWS-i pilve abil skaleeritavat rakendust arendada? (Vaibhav Sharma)

Rakenduse mastaapsus on sama oluline kui selle funktsionaalsus ja kasutajaliides. See on palju kriitilisem, kui teie tarkvara teenindab tulevikus rohkem kui miljonit kasutajat. See ajaveeb õpetab teile, kuidas suurendada oma rakendust AWS-is miljoni kasutajani. Oletame
olete loonud veebirakenduse ja teil on paar klienti. Pärast mõningaid kommentaare ja ideid on teil täiesti toimiv toode. Nüüd reklaamivad teie turundustöötajad teie rakendust tooteotsingus, et saada uusi kliente. Tuhanded külastajad kasutavad seda ootamatult
teie rakendus; ühel hetkel ei saa nad seda kasutada.

Olete oma rakendust testinud ja leidnud, et see töötab. Mis siis täpselt juhtus?

"See pole viga, vaid pigem mastaapsuse probleem." Teie pilveinfrastruktuur ei ole loodud liikluse kasvades kasvama.

Olen näinud palju idufirmasid, kes eelistavad mastaapsuse asemel funktsioone. Tugevate ja skaleeritavate rakenduste väljatöötamine on iga rakenduse disaini oluline komponent. Enne süvenemist teeme esmalt kindlaks skaleeritavuse mis ja miks.

Mis on mastaapsus?

Rakenduse skaleeritavus viitab selle võimele jätkata tööd isegi siis, kui kasutajate arv või ulatus suureneb. Skaleeritavust võib aga rakendada mis tahes süsteemile, sealhulgas ettevõtetele ja meeskondadele.

Kui skaleeritavus on õigesti tehtud, suudab see kohandada suurenenud kasutajaliiklust ilma jõudlusraskusi tekitamata. Me ei pea isegi koodis või serveriarhitektuuris suuri muudatusi tegema, kui alustame õigesti.

Miks on skaleeritavus oluline?

Kaaluge oma nutitelefoni lemmikrakendust. Arvestage, et see rakendus põhjustab teile probleeme, nagu sagedased rakenduste kokkujooksmised, kehv klienditugi ja soovimatud rakendusesisesed värskendused. Mida teete selles olukorras? Kas jääte sama rakenduse juurde või hakkate paremat otsima
alternatiivid?

Ma arvan, et teine. Skaleeritavusprobleemid näevad välja umbes sellised. Nad satuvad paanikasse, kui rakenduse loojad märkavad, et nende kasutajaskond on ootamatult laienenud ja vajavad suurenenud nõudluse rahuldamiseks lisaservereid. Nad püüavad sulgeda kõiki võimalikke vahendeid
jõudluse erinevused. Kui klientidel on varem ilmnenud mitu viga, eemaldavad nad teie rakenduse ja hakkavad kasutama konkurendi rakendust.

Skaleeritavad rakendused on aga loodud kiireks laienemiseks. Need on kasutajasõbralikumad ja annavad konkurentsieelise mitte skaleeritavate programmide ees. Neil on parem jõudlus, suurem ROI ja rahulolevad kliendid.

AWS-i pilveteenuste abil skaleeritava rakenduse arendamise sammud

1. samm: pilvarhitektuuri esialgne konfigureerimine

Olete ainus, kes kasutab rakendust localhostis. Alustuseks on võimalik juurutada rakendus kastis. Alustamiseks peate kasutama
AWS teenused loetletud allpool.

● Amazon Machines Images (AMI)

Amazon Machine Image (AMI) sisaldab juhiseid eksemplari käivitamiseks, mis on pilves olev virtuaalserver. Eksemplari käivitamisel saate esitada AMI. AMI sisaldab eksemplari juurmahu malli, käivitamisõigusi
määrake, millised AWS-i kontod võivad eksemplaride käivitamiseks kasutada AMI-d, ja ploki seadme vastendus, mis määratleb köited, mis tuleb eksemplari käivitamisel lisada.

● Amazon Virtual Private Cloud (Amazon VPC)

Amazon Virtual Private Cloud võimaldab AWS-i ressursside juurutamist virtuaalses võrgus. See tagab täieliku kontrolli virtuaalse võrgukeskkonna üle, sealhulgas IP-aadressi vahemiku valiku, alamvõrgu moodustamise, marsruuditabeli ja võrgulüüsi seadistamise.

● Amazon Elastic Compute Cloud (Amazon EC2)

Amazon Elastic Compute Cloud on AWS-i pilve skaleeritav andmetöötlusvõimalus. See välistab vajaduse riistvara järele, võimaldades teil rakendusi kiiremini kujundada ja juurutada.

● Amazon Route 53

Amazon Route 53 on skaleeritav ja hästi kättesaadav pilv DNS-i veebiteenus. Amazon Route 53 ühendab kasutajate päringud AWS-i infrastruktuuriga, nagu Amazon EC2 eksemplarid, elastsed koormuse tasakaalustajad ja Amazon S3 ämbrid.

Siin on vaja suuremat kasti. Valige lihtsalt suurem eksemplari tüüp, mida nimetatakse vertikaalseks skaleerimiseks. Vertikaalne skaleerimine on alguses piisav, kuid me ei saa vertikaalselt skaleerida lõputult. Lõpuks jõuate telliskiviseinani. Lisaks ei käsitleta
tõrkevahetus ja koondamine.

2. samm: looge arvukalt hoste ja valige andmebaas

Kuna kasutajate arv kasvab ja andmeid genereeritakse, tuleb esmalt valida andmebaas. SQL-andmebaasi kasutamist on kõige parem alustada järgmistel põhjustel.

  • Tehnoloogia, mis on väljakujunenud ja kulunud.
  • Kogukonna tugi ja kõige ajakohasemad tööriistad
  • Me ei hakka oma esimese kümne miljoni kasutajaga SQL-andmebaase purustama.

Kui teie kasutajad loovad tohutul hulgal mitut tüüpi andmeid, peaksite kasutama NoSQL-i andmebaasi. Sel hetkel on teil kõik ühes ämbris. Pikemas perspektiivis on seda disaini keerulisem kasvatada ja hallata. On aeg luua mitmetasandiline
arhitektuur, et eraldada andmebaas rakendusest.

3. samm: toimingute hõlbustamiseks salvestage andmebaas Amazon Rds'ile

Kui kasutajate arv suureneb 100-ni, on andmebaasi juurutamine esimene asi, mida tuleb teha. Andmebaasi juurutamiseks AWS-is on kaks üldist suunda. Peamine võimalus on kasutada hallatavat andmebaasiteenust, näiteks Amazon Relational Database Service (Amazon
RDS) või Amazon DynamoDB ja teine ​​samm on hostida oma andmebaasitarkvara Amazon EC2-s.

● Amazon RDS

Amazon RDS (Amazon Relational Database Service) muudab relatsiooniandmebaasi pilves seadistamise, käitamise ja skaleerimise lihtsaks. Amazon RDS toetab kuut tuntud andmebaasimootorit, sealhulgas Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL ja
MariaDB.

● Amazon DynamoDB

Amazon DynamoDB on täielikult hallatav patenteeritud NoSQL-i andmebaasiteenus, mida Amazon.com pakub osana
Amazon Web Services portfell.

4. samm: saadavuse suurendamiseks looge erinevad saadavuse tsoonid

Praeguse arhitektuuri põhjal võib tekkida probleeme saadavusprobleemidega. Kui teie veebirakenduse host ebaõnnestub, võib see toimida. Seega vajate RDS-i alamandmebaasi majutamiseks teist veebieksemplari teises saadavuse tsoonis.

  • Elastne koormuse tasakaalustaja (ELB)
  • Mitu – Az juurutamine

5. samm: jõudluse parandamiseks teisaldage staatiline materjal objektipõhisesse salvestusruumi

Jõudluse ja tõhususe suurendamiseks peate RDS-ile lisama täiendavaid lugemiskoopiaid. See leevendab survet kirjutamispõhiandmebaasile. Staatilise teabe teisaldamine Amazon S3-sse ja Amazon CloudFronti võib samuti aidata vähendada veebiserverite pinget.

  • Amazon S3
  • Amazon ElastiCache
  • Amazon CloudFront
  • Amazon DynamoDB

6. samm: automaatse skaleerimise seadistamine, et automaatne nihkenõudlus rahuldada

Praegu on teie arhitektuur väikese meeskonna jaoks liiga keeruline hooldamiseks ning ilma tõhusa järelevalve ja analüüsita on raske jätkata.

  • Amazon CloudWatch
  • AWS-i pilve moodustumine
  • AWS elastne oavarrest
  • AWS OpsWorks
  • AWS CodeDeploy

7. samm: suurema paindlikkuse tagamiseks kasutage SOA-d

Suuremahuliste võrgurakenduste loomisel peate kasutama enam kui miljoni kasutaja toetamiseks teenusorienteeritud arhitektuuri (SOA).

  • Amazon Simple Queue Service (SQS)
  • Amazon Simple Notification Service (SNS)
  • AWS Lambda

Järeldus

Otsus, kuidas skaleerimisele läheneda, tuleks teha enne tähtaega, sest kunagi ei tea, millal kuulsaks saad! Veelgi enam, lehtede kokkujooksmine (või isegi viivitus) ajab teie kasutajad vihaseks ja jätab teie rakendusele kehva pildi. Lõpuks saab
mõju teie tuludele.

 Skaleeritavate veebisaitide kujundamine nõuab aega, vaeva ja märkimisväärseid investeeringuid. Exato Softwares on kõige suurepärasem lahendus ettevõtetele, kellel on nõuded ja kellel on raskusi selle täitmisega. Oleme loonud skaleeritavaid veebirakendusi klientidele, kellel on miljoneid
kasutajad. Tasuta konsultatsiooni ja hinnapakkumise saamiseks võtke meiega julgelt ühendust.

Ajatempel:

Veel alates Fintextra