Tänään AfterDawnin - ja kaikkien sen sisarsivustojen - taustalla pyörivä tekniikka muuttui aikalailla radikaalisti. Samaan syssyyn päivitimme myös palvelinrautamme ja siirsimme palvelun hostauksen Yhdysvalloista Alankomaihin. Edellisestä suuresta palvelinpäivityksestämme alkaakin olemaan aikaa melko tarkalleen neljä vuotta, joten samalla rahalla saakin jo mukavasti tehokkaampaa rautaa kuin aiemmin..
Tällä kertaa kyseessä ei siis ollut pelkkä raudan päivittäminen tehokkaampaan, vaan samalla teimme myös aika ison irtioton aiempaan rakenteeseemme. Ensimmäinen, isohko muutos oli sovelluspalvelinohjelmistomme (==application server) päivittäminen wanhasta New Atlantan kehittämästä closed source -ohjelmistosta, BlueDragonista sen avoimen lähdekoodin manttelinperijään Open BlueDragoniin. Tämä muutos vaikuttaa jatkossa palvelun kehittymiseen monellakin tavalla, sillä vanha BlueDragon alkoi olemaan jo jonkinlainen rasite tiettyjen ominaisuuksien puutteen vuoksi. Ja tietysti plussana sekin, että samalla viimeinenkin osa sivustomme pääkomponenteista siirtyi avoimen lähdekoodin käyttöön.
Merkittävin uudistus liittyy kuitenkin Varnishin käyttöönottoon. Varnish on käänteinen proxypalvelin, eli se luo sivuista välimuistiversion, jonka se toimittaa käyttäjän selaimeen. Käytännössä homma toimii siis niin, että kun käyttäjä tulee sivuillemme, hän ei tulekaan "oikeasti" varsinaiselle palvelimelle, vaan palvelimelle, joka pyörittää Varnishia. Varnishissa on staattiseksi HTML:ksi muutetut versiot kaikista sivuista, joita (sisäänkirjautumattomat) käyttäjät ovat edellisen 15 minuutin aikana ladanneet. Mikäli sivu, jolle käyttäjä tulee, löytyy Varnishilta, toimitetaan tuo valmis HTML-sivu käyttäjälle ja varsinaisille sovelluspalvelimille ei tehdä minkäänlaista pyyntöä.
Koska valtaosa sivulatauksista tapahtuu sisäänkirjautumattomille käyttäjille, voidaan sama versio sivusta toimittaa sellaisenaan todella usein suoraan Varnishin välimuistista. Kaikki tämä taas vähentää suoraan varsinaisten palvelinten, eli Apachen, OBD:n ja MySQL:n, kuormaa, koska ideaalitilanteessa lähes 80-90% kaikista sivulatauksista tapahtuu suoraan Varnishista -- eli varsinaisten palvelinten kuormitus tipahtaa suurinpiirtein samassa suhteessa alaspäin.
Kun samaan aikaan lisäsimme myös palvelinten muskeleita varsin merkittävästi, pitäisi myös noiden 10-20% sivulatauksista, jotka päätyvät varsinaisille palvelimille, tapahtua varsin rivakasti.
Jotta homma ei nyt ihan simppeliltä vaikuttaisi, lisäsimme soppaan myös pienen maantieteellisen elementin. Yhdysvallat on yrityksellemme varsin tärkeä markkina ja sivuston siirto USAsta Hollantiin aiheutta väistämättä pientä viivettä aiempaan verrattuna amerikkalaisille käyttäjille, joten ratkaisimme asian niin, että Pohjois-Amerikasta tulevat käyttäjät käyttävät Yhdysvalloissa sijaitsevaa Varnish-palvelinta (eli 80-90% USAn sivulatauksista tulee suoraan siellä olevasta välimuistipalvelimesta) -- eli vain sisäänkirjautuneet amerikkalaiskäyttäjät ohjautuvat käyttämään varsinaisia palvelimiamme Hollannissa.
Pikainen yhteenveto vielä uudesta raudasta:
Mahdolliset ongelmat uuden palvelinrakenteen kanssa liittyvätkin juuri Varnishin käyttöön ja välimuistin tyhjennykseen tarvittaessa. Mahdolliset välimuistiongelmat eivät näy sisäänkirjautuneille käyttäjillemme koskaan, koska Varnish tarjoaa heille aina dynaamisesti luodut sivut "oikeilta" palvelimilta. Mutta seuraavien päivien aikana toivommekin palautetta etenkin tilanteista, joissa sisäänkirjautumaton käyttäjä ei näe sisältöä, jonka pitäisi näkyä (esim. uusi uutinen ei näy etusivun listassa, viestiketjusta puuttuu uusin viesti, jne). Ja tietysti, muutkin ongelmatilanteet ovat mahdollisia, sen verran monta palasta muutettiin kertarysäyksellä uuteen uskoon. Eli palaute on tervetullutta.
Tuntuuko saitti hitaammalta / nopeammalta nyt? Tuntuuko, että jokin saitin osa-alue ei toimi kuten pitäisi? Kerro meille joko kommentoimalla tähän uutiseen tai suoraan palautelomakkeemme kautta.
Tällä kertaa kyseessä ei siis ollut pelkkä raudan päivittäminen tehokkaampaan, vaan samalla teimme myös aika ison irtioton aiempaan rakenteeseemme. Ensimmäinen, isohko muutos oli sovelluspalvelinohjelmistomme (==application server) päivittäminen wanhasta New Atlantan kehittämästä closed source -ohjelmistosta, BlueDragonista sen avoimen lähdekoodin manttelinperijään Open BlueDragoniin. Tämä muutos vaikuttaa jatkossa palvelun kehittymiseen monellakin tavalla, sillä vanha BlueDragon alkoi olemaan jo jonkinlainen rasite tiettyjen ominaisuuksien puutteen vuoksi. Ja tietysti plussana sekin, että samalla viimeinenkin osa sivustomme pääkomponenteista siirtyi avoimen lähdekoodin käyttöön.
Merkittävin uudistus liittyy kuitenkin Varnishin käyttöönottoon. Varnish on käänteinen proxypalvelin, eli se luo sivuista välimuistiversion, jonka se toimittaa käyttäjän selaimeen. Käytännössä homma toimii siis niin, että kun käyttäjä tulee sivuillemme, hän ei tulekaan "oikeasti" varsinaiselle palvelimelle, vaan palvelimelle, joka pyörittää Varnishia. Varnishissa on staattiseksi HTML:ksi muutetut versiot kaikista sivuista, joita (sisäänkirjautumattomat) käyttäjät ovat edellisen 15 minuutin aikana ladanneet. Mikäli sivu, jolle käyttäjä tulee, löytyy Varnishilta, toimitetaan tuo valmis HTML-sivu käyttäjälle ja varsinaisille sovelluspalvelimille ei tehdä minkäänlaista pyyntöä.
Koska valtaosa sivulatauksista tapahtuu sisäänkirjautumattomille käyttäjille, voidaan sama versio sivusta toimittaa sellaisenaan todella usein suoraan Varnishin välimuistista. Kaikki tämä taas vähentää suoraan varsinaisten palvelinten, eli Apachen, OBD:n ja MySQL:n, kuormaa, koska ideaalitilanteessa lähes 80-90% kaikista sivulatauksista tapahtuu suoraan Varnishista -- eli varsinaisten palvelinten kuormitus tipahtaa suurinpiirtein samassa suhteessa alaspäin.
Kun samaan aikaan lisäsimme myös palvelinten muskeleita varsin merkittävästi, pitäisi myös noiden 10-20% sivulatauksista, jotka päätyvät varsinaisille palvelimille, tapahtua varsin rivakasti.
Jotta homma ei nyt ihan simppeliltä vaikuttaisi, lisäsimme soppaan myös pienen maantieteellisen elementin. Yhdysvallat on yrityksellemme varsin tärkeä markkina ja sivuston siirto USAsta Hollantiin aiheutta väistämättä pientä viivettä aiempaan verrattuna amerikkalaisille käyttäjille, joten ratkaisimme asian niin, että Pohjois-Amerikasta tulevat käyttäjät käyttävät Yhdysvalloissa sijaitsevaa Varnish-palvelinta (eli 80-90% USAn sivulatauksista tulee suoraan siellä olevasta välimuistipalvelimesta) -- eli vain sisäänkirjautuneet amerikkalaiskäyttäjät ohjautuvat käyttämään varsinaisia palvelimiamme Hollannissa.
Pikainen yhteenveto vielä uudesta raudasta:
- 3 x HP DL180G6 (tietokantapalvelimet)
- 2x Intel Quad-Core Xeon E5620
- 32GB
- 2x300GB SAS (RAID1, OS)
- 10x300GB SAS (RAID1+0, DB)
- 5 x HP DL120G6 (WWW-palvelimet)
- 1x Intel Quad-Core Xeon X3440
- 8GB
- 2x500GB SATA
- 2 x HP DL120G6 (Varnish-palvelimet (EU ja US))
- 1x Intel Quad-Core Xeon X3440
- 8GB
- 2x500GB SATA
- 1 x HP DL180G5 (kuvat, CSS:t, jne)
- 2x Intel Quad-Core Xeon L5410
- 16GB
- 2x300GB SAS (RAID1, OS)
- 6+1x1TB SATA (RAID5, data)
- 5 x eri spekseillä varustettua tiedostopalvelinta (download.fi:n ohjelmalatauksille)
Mahdolliset ongelmat uuden palvelinrakenteen kanssa liittyvätkin juuri Varnishin käyttöön ja välimuistin tyhjennykseen tarvittaessa. Mahdolliset välimuistiongelmat eivät näy sisäänkirjautuneille käyttäjillemme koskaan, koska Varnish tarjoaa heille aina dynaamisesti luodut sivut "oikeilta" palvelimilta. Mutta seuraavien päivien aikana toivommekin palautetta etenkin tilanteista, joissa sisäänkirjautumaton käyttäjä ei näe sisältöä, jonka pitäisi näkyä (esim. uusi uutinen ei näy etusivun listassa, viestiketjusta puuttuu uusin viesti, jne). Ja tietysti, muutkin ongelmatilanteet ovat mahdollisia, sen verran monta palasta muutettiin kertarysäyksellä uuteen uskoon. Eli palaute on tervetullutta.
Tuntuuko saitti hitaammalta / nopeammalta nyt? Tuntuuko, että jokin saitin osa-alue ei toimi kuten pitäisi? Kerro meille joko kommentoimalla tähän uutiseen tai suoraan palautelomakkeemme kautta.
13 kommenttia
Jestas noi maksaa paljon, jo FRn palvelin oli mun mielestä kallis ylläpitää aikoinaan^^
Miks muuten jenkit sai vähemmän muistia niiden varnish servuun, jos niitä on enemmän?
.. eli kantapalvelimia tuli yksi lisää, samoin WWW-palvelimia. Load balancer (kuormantasaus) poistui ja tilalle tuli 2* Varnish-palvelinta. Latauspalvelimet ovat vähentyneet yhdellä (jo aiemmin itse asiassa, tilalla nopeammalla kaistalla varustettuja purkkeja). Omaa mainospalvelinta ei ole enää, vaan mainosten välittämiseen käytetään Googlen DFP:tä.
;)
Jos olen oikein ymmärtänyt tään, niin täällä jeesataan toinen toisiamme ja ollaan tavallaan kehityksen kärjessä.
Minäkin testailen kaiken maailman systeemejä ja mikäli tiedän jostain jotain, niin en laita kynttilää vakan alle.
Eikä aina tarttee olla "besserwisser", vaan antaa ideoita uuteen ja luovaan kehitykseen.
Meidän foorumia pilvijuhliin päästetäkkään ei.
Kello tulee neljä,kello tulee kuus,
sitä mukaa paranee AfterDawn bluus.