PDA

Bekijk Volledige Versie : Server advies



MikeVrind
14/01/13, 10:20
Goedemorgen,

Voor een project waar ik momenteel mee bezig ben moet het e.e.a. worden uitgeschreven waarbij ik ook een stuk(je) moet wijden aan de hosting voor dit project.
Momenteel draait dit project nog op een server waar de websites van onze andere klanten draaien maar we merken dat dit project toch iets teveel vraagt van deze server.
Dus met de uitbreidingen die er nu aan zitten te komen, willen we gelijk een voorstel doen voor een eigen server voor deze klant.
Maar dan komt uiteraard de vraag, wat zou hierin het juiste advies zijn.... Aangezien dit niet helemaal mijn tuintje is, besloot ik de vraag hier te stellen.

Het project uitgebreid omschrijven kan helaas niet, maar om het heel kort en bondig te omschrijven:
Een soort 'Google Analytics' maar dan met statistieken over de cijfers van een bedrijf.

Door middel van cronjobs kunnen wij bepaalde gegevens bij een server opvragen welke vervolgens een bak aan informatie terug geeft.
Deze data slaan wij vervolgens op in een eigen database (Waarom vraag je je af? In het begin van dit project begon ik met het live opvragen van deze gegevens maar daarmee bleken de laadtijden van de applicatie onacceptabel te worden (+10 minuten)).
Door het opslaan van de gegevens in de eigen database kunnen we ook over de gegevens beschikken als de server waar de informatie vandaan komt, onbereikbaar is.

Ik verwacht dat er uiteindelijk circa 20 cronjobs actief zullen zijn die data bij deze server opvragen. De ene cronjob zal waarschijnlijk 1 maal per week draaien omdat die informatie niet veel veranderd maar sommige cronjobs zullen meerdere malen per uur draaien omdat deze informatie simpelweg vaak kan wijzigen.
Naast deze cronjob zullen er nog circa 5 cronjobs zijn die informatie bij andere partijen ophalen om de gegevens in de gebruikersomgeving te verreiken.

Qua bezoekers van deze tool kan ik zeggen dat ik relatief weinig bezoekers verwacht. De uiteindelijke gebruikers schat ik op zijn top op 200 per dag.
Voor de database verwacht ik heel veel informatie. In sommige tabellen zal de hoeveelheid informatie op kunnen lopen tot enkele miljoenen records.
Dus voor de webserver/database verwacht ik dan ook wel de nodige belasting om deze gegevens te verwerken wanneer deze worden opgevraagd.

Nog wat overige gegevens:
- Project ontwikkeld met PHP(5)
- Database: Postgresql
- De kans bestaat dat er in de toekomst ook meerdere website's voor dit bedrijf op dezelfde omgeving moeten gaan draaien.

Kunnen jullie mij, aan de hand van deze gegevens, misschien een advies geven over de eisen voor een webserver/server opzet waarop dit project zou moeten draaien?
Als er teveel open vragen zijn om een goed advies te kunnen geven hoor ik dit uiteraard ook graag.

Overigens nog even een korte aanname die ik wil laten bevestigen of afkraken:
Is het verstandig om de server voor deze applicatie, op dezelfde locatie te zetten als waar de server staat waar de data vandaan komt? Dit met het idee dat de data sneller is opgevraagd omdat de doelserver in hetzelfde netwerk zit?

systemdeveloper
14/01/13, 11:39
Als je cronjobs hebt die enkele minuten de volle power van de db trekken om gegevens te verzamelen, zou ik er geen websites van de klant opzetten. Dat gaat na verloop waarschijnlijk erg irritant worden.
Voor de db zou ik iig een paar leuke ssd's pakken. Waarschijnlijk nog een leuke hoeveelheid ram (eventueel een deel gebruiken als ramdisk voor de tijdelijke tabellen) en een lekkere snelle processor.
Voor de websites zelf (die zoals je zegt niet veel bezoek hebben) zou ik voor een relatief licht vpsje gaan.

MikeVrind
14/01/13, 11:43
Het is meer de applicatie zelf die weinig bezoekers zullen trekken omdat er simpelweg niet veel mensen toegang tot de applicatie zullen hebben.
De website's zelf zouden in theorie nog redelijk wat bezoekers kunnen trekken.

Zou een aparte server puur voor het draaien van de cronjobs een verstandige optie zijn of zou dat over de top zijn?
Wellicht als een soort cluster (webserver, cron server, DB server)?

systemdeveloper
14/01/13, 11:49
Het is meer de applicatie zelf die weinig bezoekers zullen trekken omdat er simpelweg niet veel mensen toegang tot de applicatie zullen hebben.
De website's zelf zouden in theorie nog redelijk wat bezoekers kunnen trekken.

Zou een aparte server puur voor het draaien van de cronjobs een verstandige optie zijn of zou dat over de top zijn?
Wellicht als een soort cluster (webserver, cron server, DB server)?

Een vps kun je altijd omhoog schalen als je traffic groeit.
Maar als je cronjobs hebt die minuten draaien en met name je db onder zware load zetten, dan gaan je websites dat geheid merken op die momenten. Als je gebruiker dan op de website bezig is om zijn stats te bekijken en elke 5 minuten dropt de performance flink omdat een cronjob draait, dan is dat alles behalve prettig natuurlijk.
'Normaal' zou je dit soort verwerkingen op een aparte bak moeten draaien en na afloop de uitkomsten ervan pas overzetten naar de productiebak om daar getoond te worden.
Maar wat je precies nodig hebt (dikke aparte dedi of een vps) dat ligt puur aan de echte drukte op zo'n moment. Zonder details is daar weinig over te zeggen. Dus of het over the top is, is lastig te zeggen. Dat zul je zelf moeten meten.

t.bloo
14/01/13, 15:38
Alles op aparte (virtuele) servers opknippen. Dan kun je makkelijk schalen, makkelijk onderhoud plegen, minder problemen bij uitval. Voor de kosten hoef je het zo te lezen niet te laten.