Hoe ontwikkel je een schaalbare applicatie met AWS Cloud? (Vaibhav Sharma) PlatoBlockchain-gegevensintelligentie. Verticaal zoeken. Ai.

Hoe ontwikkel je een schaalbare applicatie met AWS Cloud? (Vaibhav Sharma)

De schaalbaarheid van een applicatie is net zo belangrijk als de functionaliteit en gebruikersinterface. Het is veel belangrijker als uw software in de toekomst meer dan een miljoen gebruikers zal bedienen. In deze blog leer je hoe je je app kunt schalen naar 1 miljoen gebruikers op AWS. Aannemen
je hebt een webapplicatie gebouwd en hebt een paar klanten. Na wat opmerkingen en ideeรซn heb je een volledig functioneel product. Nu promoot uw marketingpersoneel uw app bij het zoeken naar producten om nieuwe klanten te werven. Duizenden bezoekers maken plotseling gebruik van
uw app; op een gegeven moment kunnen ze het niet gebruiken.

Je hebt je app getest en hebt geconstateerd dat deze functioneel is. Dus, wat is er precies gebeurd?

"Dit is geen bug, maar eerder een schaalbaarheidsprobleem." Je cloudinfrastructuur is niet gebouwd om mee te groeien naarmate het verkeer toeneemt.โ€

Ik heb veel startups gezien die voorrang geven aan functies boven schaalbaarheid. Het ontwikkelen van robuuste en schaalbare apps is een cruciaal onderdeel van elk applicatieontwerp. Laten we, voordat we dieper gaan, eerst het wat en waarom van schaalbaarheid vaststellen.

Wat is schaalbaarheid?

Schaalbaarheid van een applicatie verwijst naar het vermogen om te blijven werken, zelfs als het aantal gebruikers of het bereik toeneemt. Schaalbaarheid kan echter worden toegepast op elk systeem, inclusief bedrijven en teams.

Als de schaalbaarheid correct is uitgevoerd, kan het meer gebruikersverkeer opvangen zonder prestatieproblemen te veroorzaken. We hoeven zelfs geen grote wijzigingen aan de code of serverarchitectuur aan te brengen als we de basis goed leggen.

Waarom is schaalbaarheid belangrijk?

Overweeg een favoriete app op je smartphone. Overweeg dat deze app je problemen veroorzaakt, zoals frequente app-crashes, waardeloze klantenondersteuning en ongewenste in-app-updates. Wat ga je doen in deze situatie? Blijf je bij dezelfde app of ga je beter zoeken
alternatieven?

Ik vermoed de tweede. Schaalbaarheidsproblemen zien er ongeveer zo uit. Ze raken in paniek wanneer de makers van de app merken dat hun gebruikersbestand onverwacht is uitgebreid en hebben extra servers nodig om aan de toegenomen vraag te voldoen. Ze proberen alle mogelijke middelen om te sluiten
prestatie verschillen. Als klanten eerder meerdere fouten zijn tegengekomen, zullen ze uw app verwijderen en de app van de concurrent gaan gebruiken.

Schaalbare apps zijn echter gebouwd om snelle uitbreiding mogelijk te maken. Ze zijn gebruiksvriendelijker en bieden een concurrentievoordeel ten opzichte van niet-schaalbare programma's. Ze hebben verbeterde prestaties, een hogere ROI en tevreden klanten.

Stappen om een โ€‹โ€‹schaalbare applicatie te ontwikkelen met AWS Cloud Services

Stap 1: Eerste configuratie van cloudarchitectuur

Jij bent de enige die de app op localhost gebruikt. Het is mogelijk om te beginnen met het implementeren van een applicatie in een box. Om te beginnen, moet u de
AWS-diensten hieronder opgesomd.

โ— Afbeeldingen van Amazon Machines (AMI)

Amazon Machine Image (AMI) bevat de instructies voor het starten van een instantie, een virtuele server in de cloud. U kunt een AMI opgeven bij het starten van een instantie. Een AMI bevat een sjabloon voor het rootvolume van de instantie, startrechten die:
specificeer welke AWS-accounts de AMI mogen gebruiken om instances te starten, en een block device mapping die de volumes definieert die aan de instance moeten worden gekoppeld wanneer deze wordt gestart.

โ— Amazon Virtual Private Cloud (Amazon VPC)

Amazon Virtual Private Cloud maakt de implementatie van AWS-bronnen op een virtueel netwerk mogelijk. Het biedt totale controle over de virtuele netwerkomgeving, inclusief selectie van IP-adresbereik, subnetvorming, routetabel en setup van netwerkgateway.

โ— Amazon Elastic Compute Cloud (Amazon EC2)

Amazon Elastic Compute Cloud is de schaalbare computercapaciteit van de AWS-cloud. Dit elimineert de noodzaak voor hardware vooraf, waardoor u apps sneller kunt ontwerpen en implementeren.

โ— Amazoneroute 53

Amazon Route 53 is een schaalbare en zeer beschikbare cloud DNS-webservice. Amazon Route 53 verbindt gebruikersverzoeken met AWS-infrastructuur zoals Amazon EC2-instanties, Elastic Load Balancing-load balancers en Amazon S3-buckets.

Hier is een grotere doos vereist. Selecteer eenvoudig het grotere instantietype, dat bekend staat als verticale schaling. Verticaal schalen is in eerste instantie voldoende, maar we kunnen niet eindeloos verticaal schalen. Uiteindelijk bereik je een bakstenen muur. Verder is het niet gericht op
failover en redundantie.

Stap 2: Maak meerdere hosts en selecteer een database

Naarmate het aantal gebruikers groeit en er gegevens worden gegenereerd, moet u eerst een database selecteren. Het is om de volgende redenen het beste om SQL Database te gaan gebruiken:

  • Technologie die goed ingeburgerd en versleten is.
  • Ondersteuning van de community en de meest up-to-date tools
  • We gaan geen SQL-databases verbrijzelen met onze eerste tien miljoen gebruikers.

U moet een NoSQL-database gebruiken als uw gebruikers een enorme hoeveelheid gegevens in meerdere typen zullen creรซren. Op dit moment heb je alles in รฉรฉn emmer. Op de lange termijn is dit ontwerp moeilijker te kweken en te beheren. Het is tijd om multi-tier te creรซren
architectuur om de database van de applicatie te scheiden.

Stap 3: Bewaar database op Amazon Rds om de operaties te vergemakkelijken

Wanneer gebruikers toenemen tot 100, is database-implementatie het eerste dat moet worden gedaan. Er zijn twee algemene aanwijzingen om een โ€‹โ€‹database op AWS te implementeren. De belangrijkste optie is om een โ€‹โ€‹beheerde databaseservice te gebruiken, zoals Amazon Relational Database Service (Amazon
RDS) of Amazon DynamoDB en de tweede stap is het hosten van uw eigen databasesoftware op Amazon EC2.

โ—Amazon RDS

Amazon RDS (Amazon Relational Database Service) maakt het eenvoudig om een โ€‹โ€‹relationele database in de cloud op te zetten, uit te voeren en te schalen. Amazon RDS ondersteunt zes bekende database-engines, waaronder Amazon Aurora, Oracle, Microsoft SQL Server, PostgreSQL, MySQL en
MariaDB.

โ—Amazon DynamoDB

Amazon DynamoDB is een volledig beheerde eigen NoSQL-databaseservice die wordt aangeboden door Amazon.com als onderdeel van de
Amazon Web Services portefeuille.

Stap 4: Creรซer verschillende beschikbaarheidszones om de beschikbaarheid te vergroten

U kunt op basis van de huidige architectuur te maken krijgen met beschikbaarheidsproblemen. Als de host van uw web-app faalt, kan deze uitvallen. U hebt dus een ander web-exemplaar nodig in een andere beschikbaarheidszone om de slave-database voor RDS te hosten.

  • Elastische Load Balancer (ELB)
  • Multi โ€“ Az-implementatie

Stap 5: Verplaats statisch materiaal naar objectgebaseerde opslag om de prestaties te verbeteren

U moet extra leesreplica's aan RDS toevoegen om de prestaties en efficiรซntie te verbeteren. Dit verlicht de druk op de schrijfmasterdatabase. Het verplaatsen van statische informatie naar Amazon S3 en Amazon CloudFront kan ook helpen om de druk op webservers te verminderen.

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

Stap 6: Automatisch schalen instellen om automatisch aan de veranderende vraag te voldoen

Op dit moment is uw architectuur te ingewikkeld voor een klein team om te onderhouden, en zonder effectieve monitoring en analyse is het moeilijk om verder te gaan.

  • Amazon Cloud Watch
  • AWS Cloud-formatie
  • AWS elastische bonenstaak
  • AWS Ops werkt
  • AWS CodeDeploy

Stap 7: Gebruik SOA . voor meer flexibiliteit

Bij het maken van grootschalige online applicaties moet u Service Oriented Architecture (SOA) gebruiken om meer dan een miljoen gebruikers te ondersteunen.

  • Amazon Simple Queue-service (SQS)
  • Amazon eenvoudige meldingsservice (SNS)
  • AWS Lambda

Conclusie

De beslissing over hoe je schaalvergroting aanpakt, moet van tevoren worden bepaald, omdat je nooit weet wanneer je beroemd wordt! Bovendien maakt het crashen (of zelfs vertragen) van pagina's uw gebruikers boos en geeft uw app een slecht imago. Het zal uiteindelijk
een impact op uw inkomsten.

 Het ontwerpen van schaalbare websites kost tijd, moeite en een aanzienlijke investering. Exato Softwares is de meest uitstekende oplossing voor bedrijven met een vereiste en moeite om het voor elkaar te krijgen. We hebben schaalbare webapplicaties gebouwd voor klanten met miljoenen
gebruikers. Aarzel niet om ons te contacteren voor een vrijblijvend adviesgesprek en prijsofferte.

Tijdstempel:

Meer van Fintextra