Hvordan bygge skalerbare webapplikasjoner
En skalerbar nettapplikasjon kalles det fordi den kan ta flere forespørsler lineært på en mer grasiøs måte. Etter hvert som mer maskinvare legges til, vil nettstedet kunne håndtere mange forespørsler på én gang. Å si at et nettsted har skalerbarhet i aksjon betyr ganske enkelt at etter hvert som brukerne øker og forespørsler overflyter, vil nettsiden kunne håndtere dem alle like godt.
Eksempel på et populært nettsted som har blitt skalert vellykket.
Når man ser på veksten til Facebook, ville det være utrolig å legge merke til hvordan det har vokst gjennom årene. Selv om du ikke er en vanlig Facebook-bruker, ville det være vanskelig å ignorere virkningen den sosiale mediekanalen har på bedrifter og bedrifter. Ifølge en statistikk er det mer enn 1,94 milliarder aktive Facebook-brukere for mars 2017 , og registrerer en økning på over 18 % hvert år. Når det gjelder daglige mobile aktive brukere, er tallene svimlende på 1,15 milliarder brukere.
Facebook er skrevet i PHP, og deres enorme suksess ligger i dens evne til å skalere til en million brukere, takket være enorm applikasjonsarkitektur. Arkitekturen unngår flaskehalser, noe som gjør den skalerbar på alle språk. Formen på kurven (relaterer kostnad til bruk) er det som bestemmer applikasjonsarkitekturen. Når en applikasjon er skalerbar, vil kurven være mer diagonal, men når den blir konfrontert med flaskehalser, vil den bli nesten vertikal.
Språket, databasen eller kompilatoren som brukes betaler også en viktig rogn i form av den ikke-lineære kurven. Hvis det er en underliggende designfeil (mer enn implementeringsdetaljene), er kurven nøkkelen til å skyte raskt opp. Den stadig utviklende Facebooks arkitektur blir tatt vare på av noen av de beste ingeniørene i bransjen. Facebook har sin egen versjon av optimalisert PHP og har utviklet helt ny programvare som Apache Cassandra.
Nå kommer million dollar-spørsmålet – Hvordan bygger du skalerbare webapplikasjoner?
Her er noen enkle alternativer for å skalere nettapplikasjonene dine:
1. Oppskalering
Når belastningen på back-end-dekkene blir for tung å håndtere, er det ikke mulig for nettstedet å fungere. Et gjennomførbart, men sannsynligvis et mektig kostbart alternativ ville være å skalere opp ressursene på en per-enhetsbasis. Skaler dette på andre dimensjoner som nettverkshastighet, IOP-er, lagringskapasitet og minne også. Grunnen til at dette blir dyrt er fordi det ikke har en innebygd elastisitet, så dette kan bli kostbart når belastningen er lav.
Det er imidlertid viktig å merke seg at skalering av arkitektur trenger en lastbalanser (forespørsler fra sluttbrukere, grense mellom eksterne og internasjonale nettverk.) slik at den kan streame tilkoblinger av en bestemt type og skannegruppe (for å spore systembelastning, skape ny CPU forekomster og spor aktive forekomster).
2. Caching
Behovet for skalering har ført til etterspørsel og utplassering av storskalaskalering. Bufring kan forbedre ytelsen og redusere ressursforbruket. Ressursbruk inkluderer CPU, S3-avgifter, datalageravgifter, ekstern API-bruk og database. For å sikre hvor caching kan brukes, utfør en dataanalyse for å hjelpe deg med å forstå forespørselsdistribusjoner og datastørrelser, inkludert lese-skriveforhold.
3. Type partisjoner som skal gjøres
Hensikten med skalering er selvsagt å legge til kapasitet. Dette kan gjøres på to måter – vertikalt eller horisontalt. Ved vertikal skalering legger du til flere ressurser, for eksempel større eller hardere harddisker til en enkeltserver. Databehandlingen er større, med bedre minne og raskere CPU. Ved vertikal skalering tar du en enkelt ressurs og øker håndteringskapasiteten. I horisontal skalering kan du legge til flere noder. Den vanligste måten å gjøre horisontal skalering på er å dele opp tjenester i partisjoner eller shards. Disse skårene vil bli tildelt for å imøtekomme spesifikke funksjoner (for eksempel å imøtekomme interessene til forskjellige typer brukere). Fordelen med skår er at det kan gi lagre med ekstra kapasitet. Haken her er imidlertid at det første designet ditt må ha mulighet for horisontal skalering, fordi å legge til dette senere kan være en veldig vanskelig oppgave.
Ting å huske på når du skalerer applikasjoner, legg merke til disse punktene mens du er på oppgaven
1. Ingen kompromisser når det gjelder oppetid på nettstedet
Nettstedet skal være tilgjengelig for brukere til enhver tid. Tenk deg å kjøre en e-startbutikk og deretter la serveren gå ned hver gang det er en økning i forespørselen. Så nettsidens oppetid er veldig viktig, og skaler nettapplikasjonen din slik at den vil være tilgjengelig hele tiden, uavhengig av systemfeil og avbrudd.
2. Hentingsalternativ
Brukere kan komme tilbake for å se de samme dataene, så de bør ha lett tilgang til fornuften. Med mindre du har oppdatert dataene. Du kan få tillit fra brukerne hvis de vet at de kan få tilgang til nettsidedata når som helst de ønsker det.
3. Ytelse
Hovedmålet med å skalere applikasjonen er å sikre utmerket ytelse. Rask respons med umiddelbar henting etterfulgt av lav latenstid er ekstremt viktig.
4. Håndterbarhet
Etter å ha skalert nettsiden er det svært viktig å sjekke for administrasjon av nettsiden slik at den blir enkel å betjene, vedlikeholde og oppdatere.
Konklusjon
Det er en misforståelse at PHP ikke er skalerbar. Hvordan ville da andre høyskala nettsteder PHP kjøre? Skalerbarhet handler mer om applikasjonsarkitektur, snarere enn bare språk. Tiden som kreves for å utvikle skalerbare webapplikasjoner avhenger av kompleksiteten til applikasjonen og rammeverket som brukes. Det er to forskjellige programmeringslag i en skalerbar app: Frontend og Backend . Som navnet antyder, er Frontend noe brukeren samhandler med, og grensesnittet kan være alt fra Android til iOS. Bakenden består av ca. 80 % av det totale arbeidet, men brukeren er ikke klar over denne delen av nettapplikasjonen sin. Funksjonalitet spiller en stor rolle i skalerbarhet. En bruker vil kanskje laste inn bilder, så lagringsskalerbarhet må vurderes fordi han kan trenge å hente den når som helst. For bedre bildenedlastinger og forespørsler er lav ventetid veldig viktig.
Her er noen interessante lesninger om dette emnet:
7 stadier av skalering av webapplikasjoner, strategier for arkitekter.
Hvordan bygge skalerbare webapplikasjoner?
Bygge skalerbare applikasjoner på Googles skyplattform.
Flickr.com/ klarititemplateshop.com/ Blogtrepreneur
Om forfatteren: Deepak er sjef for PHPBabu og jobber også i morselskapet YUHIRO Technologies Private Limited som kontorsjef.