Miten rakennat järjestelmän, joka skaalautuu 100 miljoonalle käyttäjälle? Vastaus: Et rakenna.
Onko tämä kompa vai yritänkö vetää lukijaa nenästä? Kyllä ja ei. Siksi vähän pidempi vastaus: Älä rakenna itse sellaista skaalautuvuutta, jonka joku muu on jo ratkaissut (ja jota voit hyödyntää).
IaaS- ja PaaS -markkinoilla on paljon skaalautuvia infra- ja middlewareratkaisuja joissa toimittaja ottaa vastuun [...]
Jatka lukemista →Minkä tahansa palvelun suorituskyvyn ja skaalautumisen ytimenä on yksinkertainen käyttäjien (kuorma) ja resurssien (palvelimien) suhde:
Jos tämä suhdeluku on suuri, riittää suuren määrän käyttäjiä palveluun pieni määrä palvelimia. “Pieni määrä palvelimia” on tietysti suhteellinen käsite – Facebookilla arvioitiin vuonna 2010 olevan 60000 palvelinta 400 miljoonaa käyttäjää varten (suhdeluku noin [...]
Jatka lukemista →Onko tavoitteenasi skaalautuva softa – vaikkapa viraalinen facebook-peli? Tarvitset toki hyvän arkkitehtuurin, hyvän toteutuksen, hyvän testauksen jne. jne. mutta tärkeintä on silti tietää, että …
Mitä skaalautuvuutta haluat? Mitä skaalautuvuus on? Wikipedia:
“scalability is the ability of a system, network, or process, to handle growing amount of work in a graceful manner or [...]
Jatka lukemista →En ole lopettanut tätä sarjaa aivan vielä! Mutta on pakko myöntää, että olen sortunut mammuttitautiin – kirjoitettavaa tuntuu riittävän, eikä loppua näy. Silti, jatketaan.
Melkein kaikissa palvelusovelluksissa käytetään tietovarastoa. Tietovarastona käytetään useimmiten tietokantaa. Tietokannalla tarkoitan yleiskäyttöisiä järjestelmiä, joihin voidaan skeeman kautta määritellä erilaisia tietomalleja ja tallentaa näiden mukaan jäsenneltyä tietoa pysyvästi. Tässä kirjoituksessa [...]
Jatka lukemista →Olen viime aikoina tutustunut Googlen uuteen datatyökaluun Percolatoriin. Se onkin erikoinen kone, vahvasti C-luokkaa.
Mennään ajassa kuusi vuotta taaksepäin. Google julkaisee MapReduce-laskentamallin ja kertoo toteuttaneensa indeksointijärjestelmänsä sen päälle. Sen lisäksi M/R luikertelee osaksi lähes jokaista Googlen merkittävää tuotetta. Googleplexin ulkopuolella MapReduce todetaan skaalautuvuudeltaan hyväksi ja avoimen lähdekoodin mullasta ponnistaa Hadoop — MapReduce meille [...]
Jatka lukemista →Skaalautuviin järjestelmiin kohdistuu muitakin vaatimuksia – skaalautuvuudesta ei hirveästi ole hyötyä ilman hyväksyttävää suorituskykyä ja lisäksi kokonaisuuden pitäisi vielä olla vikasietoinen ja ylläpidettävä. Toisin kuin toiminnalliset vaatimukset, skaalautuvuuden tapaiset ei-toiminnalliset vaatimukset ovat usein käänteisesti riippuvaisia toisistaan. Yhden vaatimuksen naiivi ratkaisu heikentää tai hankaloittaa toisen vaatimuksen saavuttamista.
Osittain tästä syystä skaalautuvien järjestelmien rakentaminen on vähän kuin [...]
Jatka lukemista →Kuten arvata saattaa, kevät on ollut kiireistä aikaa – sen takia edellisen ja tämän osan välillä on ehtinyt vierähtää aika pitkä tovi. Valitettavasti näillä näkymin seuraavaakin pitää odottaa jonkin verran – pahoitteluni jo etukäteen!
Istunnot
Käytännössä kaikki verkkopalvelut seuraavat käyttäjien istuntoja eli “sessioita.”
Koska HTTP-pyynnöt ovat itsessään tilattomia, tarvitaan istuntojen käsitettä (sekä niiden [...]
Jatka lukemista →Tämä kirjoitus on osa Skaalautuvuuden abc-sarjaa (osat 1, 2, 3 ja 4.)
Edellisessä osassa esitin miten yksinkertaisella välimuistin käytöllä voidaan siirtää esimerkkipalvelun pullonkaula pois tietokannasta. Hypin nyt aiheesta toiseen ja välimuistien sijaan ensin sana jos toinenkin kuorman tasauksesta ja -jakamisesta (palaan välimuisteihin myöhemmin).
[...]
Jatka lukemista →Tämä kirjoitus on kolmas osa kirjoitussarjassa – aiemmat osat: yksi ja kaksi.
Tästä lähtien ei enää sanaakaan komponenttien tehostamisesta eikä vertikaalisesta skaalautumisesta. Jatkossa kaikki mitä tehdään, liittyy joko uusien skaalautuvien rakenteiden, komponenttien tai käytettävien koneiden määrän kasvattamiseen.
ABC
Edellisessä osassa annoin jo viitteitä siitä, että monet skaalautuvuutta [...]
Jatka lukemista →Tämä kirjoitus on toinen osa kirjoitussarjassa – aiemmin on ilmestynyt ensimmäisen osa.
Suorituskyvyn rajojen tunteminen on tärkeää suorituskyvyn kasvattamiseksi kustannustehokkaasti. Järjetelmien pullonkauloihin on ratkaisuja, jotka lisäävät suorituskykyä ja/tai skaalautuvuutta monin eri tavoin.
Suorituskyky
Ensimmäinen pohtimisen aihe on siis järjestelmän suorituskyky sellaisena kuin se on nyt – joko tuotannossa tai kehityksen alla.
[...]
Jatka lukemista →Yhteystiedot
Ota yhteys ja kysy Codenton palveluista! Puhelin 040-729 2733, info[at]codento.comTagit
aamiaistilaisuus agile ajankohtaista amazon arkkitehtuuri avoin lähdekoodi aws c CAP cvs ec2 eucalyptus futurologia git google hadoop hajautetut järjestelmät java kirjat konsultointi mapreduce näin meillä ohjelmistotuotanto ohjelmointi ohjelmointikielet pilvi projektit python rekrytointi s3 scala scrum skaalautuvuuden abc skaalautuvuus startup subversion suorituskyky tapahtumat tiedostojen synkronisointi tietokanta vaatimusmäärittely verkkopalvelut versionhallinta virtualisointi välimuistiArkisto
- helmikuu 2012
- tammikuu 2012
- joulukuu 2011
- marraskuu 2011
- lokakuu 2011
- huhtikuu 2011
- maaliskuu 2011
- helmikuu 2011
- tammikuu 2011
- joulukuu 2010
- marraskuu 2010
- lokakuu 2010
- syyskuu 2010
- elokuu 2010
- heinäkuu 2010
- kesäkuu 2010
- toukokuu 2010
- huhtikuu 2010
- maaliskuu 2010
- helmikuu 2010
- tammikuu 2010
- joulukuu 2009
