PDA

Bekijk Volledige Versie : Hosting op grote schaal visualiseren



menno192
14/03/13, 15:47
Goedemiddag Forum,

Ik had graag een HA oplossing voor 3 websites met schaalbaarheid uitgetekend willen hebben.
Kan iemand zijn Professionaliteit hier eens op los laten?

Situatieschets:

3 Domeinen (http://www.domein.com)
Moet schaalbaar zijn voor 100 / tot xx aantal bezoekers.
Werkt met MySQL , Apache op Linux.

------------------
Situatie zoals deze nu is
1x HP proliant DL360 G5 met 8 GB / 165 GB 10 Sas.
Roles: DNS, Mysql, Apache2,
Dit zou allemaal gewoon moeten werken maar dan schaalbaar.

Zou iemand met kennis van deze zaken dit voor mij uit willen tekenen? en waar nodig aangeven warom je dit zo doet.

Kijken if we hier een boeiende topic van kunnen maken.

GreetZ
Menno

dicktump
14/03/13, 15:59
Als je m'n consultancy uurloon wilt betalen, wil ik best een goed advies uitbrengen en uittekenen hoor :)

Wido
14/03/13, 16:02
Je zal eigenlijk eerst naar je applicatie moeten kijken of die wel wil schalen. Simpelweg rekenkracht er tegenaan gooien werkt niet zo maar.

Als je applicatie altijd uit gaat van één MySQL server zit daar je bottleneck al direct. Vragen die ook boven komen zijn of je MySQL wel optimaal gebruikt wordt en of deze niet kapot wordt gehamerd voor simpel werk waar bijvoorbeeld memcached beter voor kan worden gebruikt.

100 tot XXX bezoekers is ook niet te zeggen. Is dat tegelijk online en wat doen ze dan? Binnen welke tijdsperiode verwacht je al die aanvragen?

Punt wat ik probeer te maken is dat zoiets een samenhang is van de applicatie en de systeembeheerders. Je moet begrijpen wát de applicatie allemaal aan het doen is alvorens je kan gaan schalen.

Denk aan:
- Disk I/O is duur
- Verticaal schalen gaat maar tot op zekere hoogte

menno192
14/03/13, 16:14
De vraag is dus eigenlijk of een Active Active Cluster een goed idee is om te doen en of dit mogelijk is met Linux En Mysql dit om de bottlenek te verwijderen. .
Ubuntu 12.04 Build.

Heb ik hier dan ook een San/ Nas voor nodig?

Bedankt voor de reacties tot nu toe.
(elke reactie krijgt van mij een Like)

menno192
14/03/13, 16:29
Wat de applicatie betreft.
Dit is niets anders dan 3 websites waar mensen een appart deel hebben op de website waar zijn bepaalde dingen kunnen uploaden en aanpassen.

Een pageload zal maximaal 15 Database Queries veroorzaken.
De data is nu afkomstig van de interne HP proliant schijven

Mark17
14/03/13, 16:29
In veel gevallen is een active/active cluster mogelijk. Echter blijft het zo dat wat Wido al aangaf disk I/O relatief duur is. Zolang de scripting er alles aan doet om dit te beperken zou het goed te doen moeten zijn. Ook zonder veel aanpassingen aan scripts is een cluster al mogelijk, het is echter wel sterk afhankelijk van het doel van het cluster.

Een san/nas is mogelijk vereist, dit is mede afhankelijk van de site. Hetzelfde geldt voor het belang van een cluster om een grotere capaciteit te creëren.

Een basis opzet heb ik al een keer op dit forum beschreven (DirectAdmin cluster), een cluster voor een specifieke site is echter verder te optimaliseren.

Mark17
14/03/13, 16:31
Een pageload zal maximaal 15 Database Queries veroorzaken.
De data is nu afkomstig van de interne HP proliant schijven

Zijn 15 queries echt noodzakelijk? Komt de data uit 1 tabel of database of is dit goed op te splitsen en te beperken?

MySQL tov PHP is relatief duur in veel gevallen (mbt schaalbaarheid, mede afhankelijk van het type queries).

menno192
14/03/13, 16:33
Een profiel pageload zal data moeten hebben uit de Gebruikers en Saldo Tabel uit de DB.
Dit word gedaan door.

Select ''data1''data2''data3'' geen Select * form Tabel.
Gericht geprogrammeerd

menno192
14/03/13, 16:34
de pageloads van de profiel pagina zijn wel nodig. Mensen willen weten waar ze aan toe zijn.

vDong
14/03/13, 20:12
------------------
Situatie zoals deze nu is
1x HP proliant DL360 G5 met 8 GB / 165 GB 10 Sas.
Roles: DNS, Mysql, Apache2,
Dit zou allemaal gewoon moeten werken maar dan schaalbaar.

Een snelle google leert me dat Gen8 al bestaat, en dit is G5?
Ik wil best een beetje meedenken met een omgeving ontwerpen om je omgeving schaalbaar en redundant te houden, maar ik maak me zorgen om je hardwarekeuzes.
Ik ben zelfs bang dat je deze 2e hands stroom slurpende hardware gekocht heb voor een prijs waarvoor je een goede set low power machines voor had kunnen aanschaffen.

Hoe hard wil je vasthouden aan de keuzes die eerder gemaakt zijn?

golden
14/03/13, 22:08
Een snelle google leert me dat Gen8 al bestaat, en dit is G5?
Ik wil best een beetje meedenken met een omgeving ontwerpen om je omgeving schaalbaar en redundant te houden, maar ik maak me zorgen om je hardwarekeuzes.
Ik ben zelfs bang dat je deze 2e hands stroom slurpende hardware gekocht heb voor een prijs waarvoor je een goede set low power machines voor had kunnen aanschaffen.

Hoe hard wil je vasthouden aan de keuzes die eerder gemaakt zijn?

Wij zijn de G5 ook aan het uitfaseren maar onderschat deze machines niet. Zijn enorm betrouwbaar en snel. Wij hebben er velen met 2 * 3ghz quadcore en 64GB geheugen. Of je er nu SAS / SSD of Sata disks inzet het kan allemaal.

Natuurlijk zijn er snelle servers tegenwoordig maar ik kan wel begrijpen waarom mensen ze kopen (wij verkochten ze tweedehands voor 250 euro met 16gb geheugen en een dual quadcore). En daar waren wij geen uitzondering op.

Ook gebruiken ze bij ons allen rond de 0.8 ~ 1 ampere wat ik niet heel gek vind.

Dus ja er zijn nieuwere machines en wij zijn ze ook aan het vervangen, maar dat neemt niet weg dat het enorm interessante machines zijn.

Cybafish
14/03/13, 23:04
Nou, 1 ampère is wel 2x zoveel als wat een zware machine tegenwoordig trekt...

golden
14/03/13, 23:09
Nou, 1 ampère is wel 2x zoveel als wat een zware machine tegenwoordig trekt...

Klopt maar met meerdere server racks zoals wij en de andere hosters is dat een duidelijk verschil. Maar als iemand voor zijn eigen site 1 of een paar servers wilt plaatsen met een beperkt budget dan is die halve ampere per maand in het niets met het verschil tussen en "vrij" krachtige "oude" G5 serie (250,--) of een nieuwe G8 waar wij nu per stuk 4 ~ 6k voor neerleggen.

The-BosS
15/03/13, 04:39
Ik had graag een HA oplossing voor 3 websites met schaalbaarheid uitgetekend willen hebben.
Kan iemand zijn Professionaliteit hier eens op los laten?

Situatieschets:

3 Domeinen (http://www.domein.com)
Moet schaalbaar zijn voor 100 / tot xx aantal bezoekers.
Werkt met MySQL , Apache op Linux.

------------------
Situatie zoals deze nu is
1x HP proliant DL360 G5 met 8 GB / 165 GB 10 Sas.
Roles: DNS, Mysql, Apache2,
Dit zou allemaal gewoon moeten werken maar dan schaalbaar.

Zou iemand met kennis van deze zaken dit voor mij uit willen tekenen? en waar nodig aangeven warom je dit zo doet.

Kijken if we hier een boeiende topic van kunnen maken.

GreetZ
Menno

Mis ik hier iets in de verhaal, maar HA met 1 server (SPOF) bestaat helemaal niet ;) of ben je van plan om servers/switches/... bij te kopen (want dat geef je ook nergens aan) en vraag je daarom naar adviezen.

menno192
15/03/13, 14:27
Het gaat hem niet op de hardware die er nu is.
het gaat erom dat als de site groeit ik het schaalbaar wil hebben en wil zien hoe dat het makkelijkst kan.

ik heb nu een omgeving waar ik mee op will starten. (overgenomen omgeving)
Dit wil ik vervangen voor een HA oplossing.

ik wil weten wat komt hier bij kijken welke hardware heb ik nodig en in wat voor opstelling zou je dit aansluiten.

De nieuwe hardware zullen inderdaad G8 servers worden en wat daar dan nog meer voor nodig is.

vDong
15/03/13, 15:02
De truuk achter HA is net zover je spof's elimineren en je schaalbaarheid optimaliseren als je budget groot is

systemdeveloper
15/03/13, 22:14
Je moet goed opletten dat er tussen HA en een cluster toch nog een verschil is. En dat 99.99% beschikbaarheid een xx.xxx meer kan kosten dan 99.98.
Als je daarnaast een cluster hebt met 150% performance voor je bezoekers, ga je alsnog op je bek als de helft van je cluster uitvalt en je dat dus niet kunt opvangen.

Voor HA heb je dus (beetje kort door de bocht weliswaar) dubbele hardware nodig en replicatie. Of je daar verder een failoversysteem voor wilt laat ik even in het midden. Kijk in je beurs en je weet hoe ver je kunt gaan daarin.
Voor een cluster is het in 9 van de 10 gevallen zeker verstandig om goed naar je websites/code te kijken anders kun je toch maar beperkt schalen. Zeker als je groeit naar xx servers dan wil je tenslotte niet dat de helft van je server overloaded (bv omdat je sql zooi niet overweg kan met 5 databaseservers) zijn terwijl de rest staat te niksen.

Voor een systeem dat nu op 1 server draait is gewoon niks te zeggen. Rustig vertikaal opschalen op de punten die je nodig hebt kan nog jaren goed gaan tenslotte.
Zeker met websites die nog moeten gaan groeien kun je ook nog veel ontwikkeltijd verwachten. Tijd waarin fouten worden gemaakt of nieuwe inzichten komen die ten koste van je uptime gaan. Dan is het lullig om 20k extra uit te geven aan een ha omgeving als je programmeur elke week database aanpassingen moet doen waardoor je per maand nog steeds maar op 99% uitkomt :)

vDong
15/03/13, 23:32
Dan is het lullig om 20k extra uit te geven aan een ha omgeving als je programmeur elke week database aanpassingen moet doen waardoor je per maand nog steeds maar op 99% uitkomt :)

Geplande downtime in het maintainance window telt vaak niet mee als downtime. Dus dan blijf je op 100%

Pantsy
16/03/13, 00:11
@vdong, vaak niet, correctie... dat hoort altijd buiten de uptime garantie te vallen. Anders heb je er niks aan uiteraard.

systemdeveloper
16/03/13, 00:50
Ik bedoelde uiteraard de uptime vanuit de klant bekeken (zoals TS met ZIJN sites). Dat je de hoster niet kunt laten opdraaien voor fouten van een (externe) programmeur lijkt me duidelijk :)

Dennis
18/03/13, 15:01
Je kunt altijd later nog extra hardware bij kopen, nadat je websites echt succesvol zijn. Het heeft weinig zin om nu al nieuwe hardware te kopen, indien je pas over 12 maanden je doelstellingen gaat bereiken. Zorg voor goede back-ups en dat de load laag is op de servers en je komt al erg ver. Er zijn veel mensen al erg vroeg bezig met denken aan HA-omgevingen, maar ik denk dat je daar echt ter zijner tijd wel naartoe kunt groeien. Indien je een paar duizend euro per maand omzet maakt, kun je dat gebruiken om te investeren. Het is zonde om bij de launch van een website, applicatie al veel te investeren.

Maar ga daar niet te vroeg naar kijken. Het bijkopen van hardware is gewoon erg simpel en het is zonde om te veel tijd/geld te verspillen. Een simpele server kan wel 500.000 bezoekers per dag aan en indien je 500.000 bezoekers per dag hebt en/of 100 bezoekers tegelijkertijd, dan zou je een stevige inkomstenstroom moeten hebben, zodat je het geld hebt om te investeren in een echt mooie high-availability omgeving.

Verder kun je nog denken aan optimalisaties op de server: Op-code caching
Zet mysql query caching aan
Queries herschrijven
Varnish caching
Combineer/minify javascript/css,
Zorg dat je genoeg geheugen hebtWat houdt 100 tot xx aantal bezoekers in? 100 per dag of 100 tegelijkertijd? Zelfs dat laatste zou wellicht door een enkele server kunnen indien de applicatie niet te complex is. Er mist erg veel informatie van jouw kant. Wat is de huidige situatie qua bezoekers, omgeving, kun je iets vertellen over je product/applicatie (zelf gemaakt in php? framework?) en misschien wel het belangrijkste... je budget... wil je 5k, 10k, 30k, 50k of 100k+ besteden?

Indien je budget erg laag is en je huidige bezoekersaantal/inkomsten nog achterliggen, dan zou ik mijn energie inzetten op het verbeteren van de applicatie en het werven van klanten. Een goed beheerde single-server heeft vaak een uptime van 99,9%, zeker als de load niet hoog is en kost niet zoveel.

Ik zie dat ik erg veel geschreven heb. Ik hoop dat je er iets aan hebt. Vertel iets meer over je huidige situatie en dan zijn hier genoeg mensen die je gratis een goed advies zullen geven.

menno192
19/03/13, 15:34
goedemiddag,

Geld is geen probleem laat de ideen maar komen.
HA Cluster is de opzet met mirror hardware en meerdere POF`s

Laat maar eens zien wat dit kan worden.

menno192
19/03/13, 17:34
Goedemiddag Dennis,

een erg goeie post waar ik veel info uit kan halen die op mijn situatie slaat.

ik heb 3 programmeurs in dienst en ikzelf programmeer ook indien nodig. Het punt is dat ik een omgeving heb waarvan ik zelf niet denk dat ik van te voren in kan schaten hoe dit geschaald moet worden.

Waar ik bang voor ben is dat ik tegen een situatie aan loop waar ik met 1 server niet genoeg resources heb om de load aan te kunnen en het nog te ver is om hier een knappe HA omgeving van te maken. (of een mogelijke tussenstap)

Scaling is een vrij lastig punt aangezien je niet weet hoe dingen lopen en ik vooral niet weet hoe ik van een draaiende omgeving een HA Linux (ubuntu 12.04 LTS build) oplossing moet maken.

systemdeveloper
19/03/13, 21:09
Wat je ook kunt doen is je een schaalbare omgeving op 2 vpsservers bouwen. Denk aan 2 mysql master/master servers, 2-4 webservers, 2 storage servers, 1-2 video/image conversie servers, 1-2 varnish servers voor cache/loadbalancing).

Als je dan bv. xenserver/vmware zou gebruiken mik je die 2 vpsnodes in een pool.

Dan kun je core onderdelen vertikaal schalen (meer/minder cores/ram voor een bepaald vps, ssd ipv sata/sas).
Wil je upgraden/uitbreiden mik je gewoon dezelfde servers erbij en migreer je live een onderdeel naar de 3de server.
Zo kun je in principe doorgaan totdat je op elke server nog maar 1 vps hebt staan (dan ben je a) al vertikaal geschaald per server en b) horizontaal van 2 -> 12 servers of meer).
In de tussentijd kun je er nog voor kiezen om je storage vpssen te vervangen van bv. DRBD replicatie naar gluster bricks (dus ipv 2 'storages' naar tientallen servers) en eventueel kun je al je vpssen ook nog naar dedicated storage servers (de bakken met ieder 24 of meer disks of zo) zoals Open-E / EMC / Whatever money can buy.

Voordeel is dat je al een redelijk leuke omgeving hebt bij de start, zonder dat het je bakken met geld kost en tegen de tijd dat dit ook niet meer voldoende is dan spreek je al over veeeel meer dan XXX bezoekers.

menno192
19/03/13, 22:13
Goedenavond,

Bijde methoden over een active active cluster en een master master VPS oplossing zijn al eens eerder aangeraden door mensen die ik in deze bissiness heb leren kennen.

heel erg bedankt voor jullie reacties tot nu toe.
Ik hoor alleen wienig mensen over een SAN of SAS oplossing.

en is er iemand die dit heel basic voor me uit kan tekenen?
een soort kabel schema.

----------------------
iets over mij:
de applicatie is een module om systemen mee te monitoren op een web based applicatie.
Servers melden zich aan en je kunt hem monitoren tegen een leuk bedrag per maand.
Deze software gebruiken wij voor onze eigen systemen en willen we verder gaan ontwikkelen.

Bedrijf heeft nu 3 porgrammeurs. en is al zinds 2011 actief.
onze (EX) systeembeheerder is rijk geworden aan aandelen en heeft het bedrijf laten vallen.
vandaar dat ik nu de omgeving probeer te redden.

er is qua hardware nu een Server rack en een HP Proliant DL360 G5 server met een 3 com Gbit Switch en Glasverbinding.
ik ben nog vrij nieuw in de ICT en ben nu druk bezig met studie en programmeer cursussen en heel veel zelfstudie door middel van forums etc.

systemdeveloper
19/03/13, 22:21
en is er iemand die dit heel basic voor me uit kan tekenen?
een soort kabel schema.


https://www.ahead-it.eu/nl/shop/vps-ha

Onderaan staat een tekening. (1 van de mogelijke opzetjes).

menno192
21/03/13, 21:42
bedankt voor de reacties voor zover.

ik zie dat dit op een hoop mannieren mogelijk is om dit te realiseren.

De info voor nu heeft mij een gerust gevoel gegeven dat ik met deze omgeving nog velen kanten op kan.
nieuwe ideeen zijn altijd welkom maar voor nu is dit topic Solved. Thnx.

winc-hosting
09/08/13, 23:38
Ik heb laatst een IIS clustertje gebouwd voor 1000 webdav gebruikers op twee G8 machines geloadbalanced door een F5. Onderliggend twee G8 machines met IIS 8.0 met 16 GB geheugen. Het makkelijkste is dus om er een loadbalancer voor te zetten als je voor schaalbaarheid gaat. Je kan dan altijd nog servers bij plaatsen als het nodig is :)

The-BosS
10/08/13, 00:18
Ik heb laatst een IIS clustertje gebouwd voor 1000 webdav gebruikers op twee G8 machines geloadbalanced door een F5. Onderliggend twee G8 machines met IIS 8.0 met 16 GB geheugen. Het makkelijkste is dus om er een loadbalancer voor te zetten als je voor schaalbaarheid gaat. Je kan dan altijd nog servers bij plaatsen als het nodig is :)

Leuk voor je, maar als je F5 loadbalancer onderuit gaat mag je er nog 100 servers achter hebben staan dan werkt niets meer en lost de TS zijn HA probleem niet op. Naast het feit dat de TS vraagt om een LAMP server en niet om een windows cluster.

Iets met postcount opkrikken?

Netbulae
11/08/13, 12:43
Leuk voor je, maar als je F5 loadbalancer onderuit gaat mag je er nog 100 servers achter hebben staan dan werkt niets meer en lost de TS zijn HA probleem niet op. Naast het feit dat de TS vraagt om een LAMP server en niet om een windows cluster.

Iets met postcount opkrikken?

2 HA load balancers gebruiken? ;-) Maar wat je zegt .... erg knap is het niet, dit soort klusjes deed ik op mijn oude werk in een middagje.

DennisWijnberg
19/08/13, 12:13
Kijk ook goed naar de complexiteit die je toe gaat voegen door spofs te verminderen. Soms voeg je daardoor zoveel complexiteit toe dat je door de bomen het bos niet meer ziet en er daardoor juist fouten op gaan treden.

Om ook rekening mee te houden: hoe (technisch) complexer de architectuur is, des te duurder het personeel dat het kan onderhouden. Wordt vaak vergeten. Soms is het beter om middels eenvoud te schakelen en zowel problemen als omvang klein te houden. Ik geef een voorbeeld, waarbij het niet om de getallen gaat, maar om de gedachte erachter.

Je kan bij een storage-systeeem telkens bijschalen en meer centraliseren en samenvoegen. Daardoor kun je ongetwijfeld meer performance of zekerheid toevoegen. Maar bedenk je goed welk probleem je oplost. Als we ervan uitgaan dat er op 10 TB een slordige 200 servers staan en je wilt uitbreiden (over tijd een factor 5). Dan kom je dus op 50 TB uit en 1000 servers. Dat kan je doen in gelijksoortige clusters (5x 10 TB) of één groot cluster (of varianten hierop). Als we aannemen dat er eens per <tijdseenheid> een storing is per cluster dan heb je dus bij 5 clusters in theorie 5x zovaak een storing. Maar wel een van 20% van de grootte van die andere.

Nu weet ik natuurlijk niet hoeveel personeel je hebt om servers te herstarten, uit de schijfcheck te halen, defecte databases te fixen en bovenal te communiceren, maar dat gaat sowieso bij 200 klanten aanzienlijk sneller dan bij 1000.

Beredeneer ik dat vanuit een klant (zouden we vaker moeten doen) dan heb ik nog steeds 1 keer per jaar een storing, alleen doordat het hele team dan met 200 klanten bezig is i.p.v. met 1000, duurt die storing aanzienlijk minder lang.

Andere tip: kijk ook naar foutdomeinen. Combineer geen foutdomeinen die van elkaar afhankelijk zijn. Voorbeeld: verbinding komt in DC1 binnen en je trekt 'm door naar DC2. Waardoor je niet alleen een probleem (kan) hebben bij storing in DC2, maar ook bij DC1. Dat zelfde geldt ook voor databases, storage clusters, fysieke nodes, etc.

Wido
19/08/13, 15:44
Denk dat Dennis de spijker op zijn kop slaat. Maak "eilandjes" danwel risico zones en maak de boel niet té complex.

Hardware falen komt steeds minder vaak voor, maar eigenlijk alles gaat fout in software. Maak je het nodeloos complex dan kan er ineens van alles fout gaan ipv die ene storing in 2 jaar.

Alles heeft met het beschikbare budget en daarbij het personeel te maken.

Vaak zal je bijvoorbeeld zien dat de VM/machine prima online is, maar MySQL gewoon aan zijn max connections of iets in die richting zit.

Bart L
20/08/13, 10:25
Ik sluit me bij bovenstaande aan, gaat het gewoon niet te complex maken.
Of denk je dat je gewoon een "blik" mensen kunt opentrekken als het een keer spannend wordt? Ik heb nieuws voor je ;) Die mensen zijn er niet, en al helemaal niet afroep beschikbaar.