Just nu är det sjukt mycket att göra, fullt upp i skolan, ett sjukligt roligt kundprojekt där jag bygger ett grymt webbkluster och databaskluster (lovar mer info om det här senare).
Dessutom så har jag hittat till www.witsbits.se som har en tjänst som kallas GoCloud och är en molntjänst för att bygga publika eller privata moln i stil med CityCloud, tjänsten har inte släppts ännu men jag lovar att komma med mer så fort jag vet något!
Som kanske märks så älskar jag projektet Icinga, okej jag kan medge att WebbUIt är lite segrott, men det är bra. Efter en diskussion med ledningen för projektet så har det nu skapats en svensk wiki-avdelning som hittas på https://wiki.icinga.org/display/sweden/Sverige där kan du hitta svenska Icinga användare, diskutera nya features eller problem och få hjälp med dina problem, antingen via communityn eller kommersiellt.
Som sagt, det är mycket nu!
Jag har 2 teorier som jag just nu håller på att testa, de rör hur man borde bygga sitt webbkluster för att få maximal upptid och så liten påverkan som möjligt vid bortfall av en server.
Lösningarna ser i princip identiska ut, men skillnaden ligger i om PHP-hanteras av Apache2-modulen för PHP eller om man hanterar PHP via FastCGI. De bygger båda på öppenkällkod och är helt redundanta. I båda ingår också ett MySQL/MariaDB kluster men det finns inte detaljerat då det inte är mitt primära mål just nu.
Lösning 1, Lastbalanserare och X antal apache2maskiner.
I den schematiska bilden ovan är det 2 olika kluster som delar på samma databaskluster, i schemat är inte lastbalanserarna redundanta men det ska de vara. Om en webbserver faller bort i klustret kommer 50% av beräkningskraften att försvinna och vid ev. peak så kommer troligen ett stort antal av besökarna att lämna siten då den går väldigt långsamt, självklart förutsatt att besökarantalet är större än vad en enskild maskin klarar vid bortfallet. I övrigt så finns alla andra fördelar som ett kluster innebär, möjligheten till att ta ner en maskin för underhåll utan att driften av siten påverkas etc. Beräkningskapaciteten i det kluster som fortfarande har båda sina maskiner i drift påverkas inte.
Lösning 2, Lastbalanserare, X antal apache2maskiner och ett FastCGI kluster.

Fördelen med den här lösningen är att, förutsatt att det är likadan hårdvara som i Lösning 1, den presterar bättre på samma antal maskiner. Detta då alla krävande PHP-beräkningar skickas till ett eget kluster. Det innebär att bortfallet av en webbserver i något av klustret inte kommer att påverka prestandan lika mycket. Planerar man och dimensionerar FastCGI klustret rätt och låter två siter som har olika peakar och tider av hög belastning dela FastCGI kluster så kan de dela på samma kluster. Då kan vi överdimensionera klustret något utan att det har kapacitet som står oanvänd ofta.
Det tredje alternativet jag har är att ha ett enda superstort apache2kluster och låta det göra allt. Det kommer krävas väldigt många fler maskiner för det, och maskiner är som bekant en kostnad. Som komplement till både lösning 1 och 2 kan man dessutom ha en funktion som skapar maskiner on-demand i molnet, då behöver man bara ha igång de maskinerna vid peakar och högtrafik.
Senaste kommentarerna