Miten rakentaa skaalautuvia verkkosovelluksia

Miten rakentaa skaalautuvia verkkosovelluksia


Skaalautuvaa verkkosovellusta kutsutaan skaalautuvaksi, koska se voi ottaa vastaan enemmän pyyntöjä lineaarisesti ja sulavasti. Kun laitteistoa lisätään, verkkosivusto pystyy käsittelemään suuria määriä pyyntöjä kerralla. Sivuston skaalautuvuus tarkoittaa yksinkertaisesti sitä, että kun käyttäjät lisääntyvät ja pyynnöt kasvavat, sivusto pystyy käsittelemään ne kaikki yhtä hyvin.

Esimerkki suositusta verkkosivustosta, joka on skaalautunut onnistuneesti.

Facebookin kasvua tarkasteltaessa olisi hämmästyttävää huomata, miten se on kasvanut vuosien varrella. Vaikka et olisikaan Facebookin vakiokäyttäjä, on vaikea olla huomaamatta sosiaalisen median kanavan vaikutusta yrityksiin ja yritystoimintaan. Tilastojen mukaan on olemassa yli
1,94 miljardia aktiivista Facebook-käyttäjää maaliskuussa 2017
, mikä merkitsee yli 18 prosentin kasvua joka vuosi. Päivittäin aktiivisia mobiilikäyttäjiä on huikeat 1,15 miljardia.

Facebook on kirjoitettu PHP:llä, ja sen valtava menestys perustuu sen kykyyn skaalautua miljoonaan käyttäjään valtavan sovellusarkkitehtuurin ansiosta. Arkkitehtuuri välttää pullonkauloja, joten se on skaalautuva millä tahansa kielellä. Sovellusarkkitehtuuri määräytyy käyrän muodon mukaan (kustannusten ja käytön suhde). Kun sovellus on skaalautuva, käyrä on pikemminkin viisto, mutta pullonkaulojen kohdatessa se kääntyy lähes pystysuoraan.

Käytetty kieli, tietokanta tai kääntäjä vaikuttaa myös merkittävästi epälineaarisen käyrän muotoon. Jos taustalla on suunnitteluvirhe (enemmän kuin toteutuksen yksityiskohdat), käyrä on avain nopeaan nousuun. Facebookin jatkuvasti kehittyvästä arkkitehtuurista huolehtivat alan parhaat insinöörit. Facebookilla on oma versionsa optimoidusta PHP:stä, ja se on kehittänyt täysin uusia ohjelmistoja, kuten Apache Cassandran.

Nyt tulee miljoonan dollarin kysymys – Miten rakennetaan skaalautuvia verkkosovelluksia?

Tässä on muutamia yksinkertaisia vaihtoehtoja verkkosovellusten skaalaamiseen:

1. Suurentaminen

Kun back-end-renkaiden kuormitus kasvaa liian suureksi, verkkosivusto ei pysty toimimaan. Toteutettavissa oleva, mutta luultavasti erittäin kallis vaihtoehto olisi lisätä resursseja yksikkökohtaisesti. Skaalaa tämä myös muilla ulottuvuuksilla, kuten verkon nopeudella, IOP:lla, tallennuskapasiteetilla ja muistilla. Syy, miksi tämä tulee kalliiksi, on se, että se ei tarjoa sisäänrakennettua joustavuutta, joten se voi tulla kalliiksi, kun kuormitus on alhainen.

On kuitenkin tärkeää huomata, että skaalautuva arkkitehtuuri tarvitsee kuorman tasaajan (loppukäyttäjien pyynnöt, ulkoisten ja kansainvälisten verkkojen välinen raja), jotta se voi suoratoistaa tietyntyyppisiä yhteyksiä ja skannausryhmää (järjestelmän kuormituksen seurantaan, uusien CPU-instanssien synnyttämiseen ja aktiivisten instanssien inventaarion seurantaan).

2. Välimuistiinpano

Skaalautumisen tarve on johtanut laajamittaisen skaalautumisen kysyntään ja käyttöönottoon. Välimuistitallennus voi parantaa suorituskykyä ja vähentää resurssien kulutusta. Resurssien käyttö sisältää suorittimen, S3-maksut, tietovarastomaksut, ulkoisen API:n käytön ja tietokannan. Varmistaaksesi, missä välimuistitallennusta voidaan käyttää, tee data-analyysi, joka auttaa sinua ymmärtämään pyyntöjen jakaumia ja datakokoja, mukaan lukien luku-kirjoitus-suhde.

3. Tehtävien osioiden tyyppi

Skaalaamisen tarkoituksena on tietenkin lisätä kapasiteettia. Tämä voidaan tehdä kahdella tavalla – pystysuoraan tai vaakasuoraan. Vertikaalisessa skaalautumisessa yksittäiseen palvelimeen lisätään lisää resursseja, esimerkiksi suurempia tai kovempia asemia. Laskentatoiminto on suurempi, ja siinä on parempi muisti ja nopeampi suoritin. Vertikaalisessa skaalautumisessa otetaan yksittäinen resurssi ja lisätään sen käsittelykapasiteettia. Vaakasuuntaisessa skaalauksessa voit lisätä lisää solmuja. Yleisin tapa toteuttaa horisontaalinen skaalautuminen on jakaa palvelut osioihin tai sirpaleisiin. Näille sirpaleille osoitettaisiin erityisiä toimintoja (esimerkiksi erityyppisten käyttäjien kiinnostuksenkohteiden huomioon ottaminen). Shardien etuna on se, että ne voivat tarjota lisäkapasiteettia varastoihin. Tässä on kuitenkin se juju, että alkuperäisessä suunnittelussa on oltava mahdollisuus vaakasuuntaiseen skaalaukseen, koska sen lisääminen myöhemmin voi olla todella vaikea tehtävä.

Asiat, jotka on hyvä muistaa, kun skaalaus sovelluksia, Huomaa nämä kohdat, kun tehtävässä

1. Verkkosivuston käyttöajasta ei tingitä

Verkkosivuston tulisi olla käyttäjien käytettävissä kaikkina aikoina. Kuvittele, että käytät e-commence-verkkokauppaa ja palvelin kaatuu joka kerta, kun pyyntöjen määrä kasvaa. Verkkosivuston käytettävyys on siis erittäin tärkeää, ja skaalaa verkkosovelluksesi niin, että se on käytettävissä koko ajan järjestelmävioista ja keskeytyksistä riippumatta.

2. Noutovaihtoehto

Käyttäjät saattavat palata katsomaan samoja tietoja, joten heillä on oltava aina pääsy niihin. Paitsi tietysti, jos olet päivittänyt tiedot. Käyttäjät voivat luottaa sinuun, jos he tietävät, että he voivat päästä verkkosivuston tietoihin käsiksi milloin tahansa.

3. Suorituskyky

Sovelluksen skaalaamisen päätavoitteena on varmistaa erinomainen suorituskyky. Nopea reagointi ja välitön haku sekä pieni viive ovat erittäin tärkeitä.

4. Hallittavuus

Verkkosivuston skaalautumisen jälkeen on erittäin tärkeää tarkistaa sivuston hallittavuus, jotta sitä on helppo käyttää, ylläpitää ja päivittää.

Johtopäätös

On olemassa väärinkäsitys, että PHP ei ole skaalautuva. Miten muita laajamittaisia PHP-sivustoja sitten pyöritettäisiin? Skaalautuvuudessa on kyse pikemminkin sovellusarkkitehtuurista kuin vain kielestä. Skaalautuvien verkkosovellusten kehittämiseen kuluva aika riippuu sovelluksen monimutkaisuudesta ja käytetystä kehyksestä. Skaalautuvassa sovelluksessa on kaksi eri ohjelmointikerrosta: Front end ja Back end. Kuten nimestä voi päätellä, etupää on se, jonka kanssa käyttäjä on vuorovaikutuksessa, ja käyttöliittymä voi olla mitä tahansa Androidista iOS:ään. Back end koostuu noin 80 prosentista koko työstä, mutta käyttäjä ei ole tietoinen tästä web-sovelluksen osasta. Toiminnallisuudella on suuri merkitys skaalautuvuuteen. Käyttäjä saattaa haluta ladata kuvia, joten tallennuksen skaalautuvuus on otettava huomioon, koska käyttäjä saattaa joutua hakemaan kuvia milloin tahansa. Jotta kuvien lataaminen ja pyyntöjen lähettäminen onnistuisi paremmin, pieni viive on erittäin tärkeää.

Seuraavassa on mielenkiintoista luettavaa tästä aiheesta:
Web-sovellusten skaalautumisen 7 vaihetta, Arkkitehtien strategiat.
Miten rakentaa skaalautuvia verkkosovelluksia?
Skaalautuvien sovellusten rakentaminen Googlen pilvialustalle.

Flickr.com/ klarititemplateshop.com/ Blogtrepreneur


Kirjoittajasta: Deepak on PHPBabun johtaja ja työskentelee myös emoyhtiössä YUHIRO Technologies Private Limitedissä toimistopäällikkönä.

Jätä kommentti