Office Grid Computing bruger virtuelle miljøer - Del 5

Ved Steven Lloyd Watkin , fredag ​​4 dec 2009 11:03

Indledning

Jeg arbejder i en virksomhed, hvor vi kører mange batch jobs behandling millioner af optegnelser af data hver dag, og jeg har tænkt for nylig om alle de maskiner, der sidder rundt om hver eneste dag at gøre noget i flere timer. Ville det ikke være godt, hvis vi kunne bruge disse maskiner til at styrke den regnekraft af vores systemer? I denne række artikler, jeg har tænkt mig at kigge på de potentielle fordele ved at ansætte en kontor nettet ved hjælp af virtualiserede miljøer.

I del 4 så vi på brugen af værktøjer til at sikre, at vi kører den seneste version af kode og data-kilder, således at opnåede resultater er altid up-to-date med de nyeste forretningsoplysninger og logik.

Pre-Deployment

Før implementering dit forsyningsnettet, hvis der er én ting, du gør, og én ting alene er det benchmark dit nuværende system! Ligegyldigt hvad du fortæller kolleger om, hvor meget ekstra arbejde systemet kommer til at gøre, medmindre du har numre til bakke dette op din garantier ingenting.

  • hvor mange poster kan du behandle i øjeblikket? Pr dag? I timen?
  • Hvor lang tid tager det typisk tager at vende rundt et job?
  • Hvor meget mere kapacitet har du?

Der er også yderligere spørgsmål:

  • Hvis din behandling server (eller en af ​​dine forarbejdning servere) går ned, hvordan vil det påvirke dine muligheder, vil du blive lammet?
  • Hvilke fordele håber du / forventer at komme fra et gitter system?
  • Er dine kontormaskiner stand til at køre de job?
  • Er din (eller kan du job konverteres) til at arbejde i denne stil kører?

Den sidste store punkt er at tage din tid på større ændringer, som dette. Opdater din behandling kode for at arbejde med den nye metode, benchmark igen. Eventuelt oprettelse af din behandling server til at køre en virtuel maskine, efter alle dine behandling server vil bare være en anden arbejdstager (bare en meget kraftig en relativt). Tillad den nye proces at afvikle.

Deployment

Mit forslag ville være at pop ind på kontoret en weekend udføre alle de installationer og opsætning. Gør dette lige før en fjorten dages ferie og orlov, så andre fattige chap at håndtere konsekvenserne ... måske ikke ...

Installation af et system som dette skal være langsom. På trods af at det er relativt enkelt at etablere dette system vil påvirke hele din kontor infrastruktur (godt digital på et). For det første udrulning til et par maskiner på et tidspunkt, overvåge netværkstrafik, hvordan arbejderen værter udfører på en dag-til-dag basis. Du skal muligvis ændre dit job konfiguration som svar på Deres resultater.

Når systemet har afgjort med et par maskiner (lad os sige 10% af alle kontormaskiner, dvs 5) fortsat at overvåge trafikken på nettet og værtsmaskinen performance. Næste benchmark igen, du skulle nu være forarbejdning 33% flere jobs end din første benchmarks. Kontrollere dette er tilfældet, eller at du i det mindste i denne ballpark. Hvis ikke, undersøger, hvad der foregår før man går videre. Gentag denne cyklus, indtil du lykkeligt har alle kontor maskiner, der kører uden at dræbe individuel maskinens ydeevne eller slibning dit netværk i stå.

På alle tidspunkter at holde benchmarking, selv efter at alle implementeringer er foretaget. Kontrollere, hvor nye kode opdateringer påvirke hastigheden på dit system, se alle arbejdstagere rapporterer med og forarbejdning job. Langsomt (meget langsomt) stigning dit job konfiguration for at få det bedste ud af dine medarbejdere og netværk.

Stop!

Hvad nu, hvis du ønsker at stoppe dine medarbejdere i at køre på et tidspunkt? De er alle derude kører regenerere, og forsøger deres bedste for at behandle data som sultne insekter. Svaret kan synes indlysende, men dens værd at tilføje just in case sin overset. Blot redigere din behandling script med en exit (0) or die () eller en anden erklæring for at dræbe din behandling job. En vigtig grund til, at vi altid forsøger at opdatere til den nyeste behandling scriptet før løb!

Demonstration System

For at skrive dette sæt af korte artikler jeg har oprettet en meget lille gitter at demonstrere de teknologier og metoder. Jeg har læst masser af artikler, tutorials, og bruges forskellige værktøjer til opsætning og kontrollere, hvad der foregik. På ingen måde har jeg gået ud og mættede en hel kontor med trafik og jeg har heller ikke haft adgang til en regelmæssig ansatte pc for at se, hvordan vært præstation blev påvirket.

Min demonstration systemet var meget ydmyg faktisk. Jeg brugte min normale desktop oprettet som et job kontrol-server. På dette jeg havde installeret mySQL server installeret oprettet som en mester i replikation, PHP Â og SVN er forbundet via apache (for adgang via arbejdstager VM).

Jeg skabte så en CentOS arbejdstager maskine på VirtualBox på en 6 år gammel Windows XP laptop. Jeg setup planlagte opgaver som angivet efter kopiering af VM på maskinen og lad det gå.

Den virtuelle maskine blev oprettet med PHP, undergravende virksomhed, og mySQL. Jeg tjekkede ud en filial kaldet »arbejdstager« fra mit job kontrol servere repository og gjort sikker på det kunne blive opdateret ved hjælp af 'svn update'. Næste Jeg setup mySQL som en slave og kontrolleret, at data var kopiere fra mySQL på jobbet kontrol serveren ned for arbejdstageren VM. Efter alt dette jeg setup bash script og opgaven.

Min behandling script dybest set gik i retning af dette (meget simple ting):

  • Læs i navnefeltet
  • Tælles antallet af lignende navne i en tabel fra datakilden afholdt på VM
  • Tælles antallet af navne som ovenfor, men en opsplitning af navn af mellemrum (dvs. fornavn, midten, efternavn)
  • Gentagne denne proces 1.000 gange

Hvert job tog cirka 20 minutter at køre. På et tidspunkt åbnede jeg flere eksemplarer af arbejdstageren VM på vinduerne bærbare computer, og så de arbejdspladser, der skal kontrolleres ud af hver af arbejdstageren IP-adresser. På dette punkt, jeg også bekræftet, at replikationen automatisk genstartes.

Forlader den bærbare computer i tomgang resulterede i en arbejdstager begynder at behandle job fra jobbet kontrol-serveren. Når genoptage laptop brug var der en forsinkelse på ca 30-60 sekunder, dette er en hel del tid og personale skulle gøres opmærksom på, at deres maskine kan holde pause for en kort stund, når tilbage til maskinen. Nyere maskiner kan ikke have en pause på denne lange. Fordelen ved den mængde behandlingen udføres af disse maskiner i tomgang perioder ville mere end opveje ansatte at skulle vente en kort periode (f.eks 1 minut) ankommer til deres maskiner af en formiddag (jeg ofte vente længere, at dette for en Windows Defender opdatering skal finde sted), hvis de blev gjort opmærksom på dette (nyttigt tid til at snuppe en morgenkaffen!).

Samlet Jeg føler tillid til, at jeg har vist de teknologier, der kan bruges til at oprette et sådant system. Jeg har vist, at et sådant system virker på en (meget) lille målestok og med nogle mere eksperimenterende kan skaleres op at udnytte midlerne under en kontorets maskiner. Hvis jeg ikke kommer til det punkt at gøre dette ville jeg være meget interesseret i at vide / se, når nogen andre gør.

Konklusioner / Evaluering

Det næste oplagte skridt ville være at faktisk få en virkelig verden eksempel og begynde at implementere et system som dette i et kontormiljø og se hvad der sker. Bede en virksomhed at forpligte sig til dette uden en sti brændende virksomhed at bevise den teknologi og effektivitet kan være lidt vanskeligt. Grid / Distribueret computing er meget populær er nogle cirkler og har nogle store applikationer (BIONC, SETI @ Home, Folding @ Home, osv). Jeg har dog ikke finde en mindre målestok og enkelt system som dette i mine søgninger, som kunne rulles ud i et kontormiljø.

Jeg oprettede en dybest set gratis system ved hjælp af primært open source-software og-værktøjer der findes i næsten ethvert kontor. De teknologier, var dybest set demonstreret og vise at udføre og arbejde som forventet. Forhåbentlig har jeg vise, at med ikke meget arbejde og med en meget enkel opsætning, du kan installere et kontor grid computing system, der er stærk, billig, Â og skalerbar alle på samme tid.

Når et system er oppe at køre der er næsten ingen ende på mængden af ​​tilpasning og forbedringer, du kan gøre. For eksempel statistikker / benchmarking kan nemt tilføjes viser værdien af ​​et sådant system hver dag. Nye maskiner kan tilføjes hurtigt og nemt, når de ankommer med opgraderinger af eksisterende hardware styrke din processorkraft.

Jeg håber du har nydt at læse denne serie af artikler, og dens givet dig stof til eftertanke om at køre et kontor skinnesystem. Den løsning præsenteres her, vil ikke nødvendigvis arbejde i alle situationer, men skal kunne tilpasses, så du kan få dine data forarbejdning foretaget ved hjælp af din egen løsning.

Du er velkommen til at sende mig nogen kommentarer, rettelser eller forbedringer, og jeg vil gøre mit bedste for at holde denne artikel opdateret til at matche.

3 svar til "Office Grid Computing bruger virtuelle miljøer - Del 5"

  1. [...] Den sidste del af denne serie, rammende navn Del 5, vil vi diskutere implementere dette system til. Jeg vil sammenfatte, hvad der er lært og [...]

  2. Howdy der, Great artiklen dude! Jeg er træt af at bruge RSS-feeds og bruger du twitter, så jeg kan følge dig der:? D.
    PS: Har du overvejet at sætte videoen til din blog for at holde læserne mere nød jeg synes, det virker, Roland Gorychka?.

  3. Se kvidre på højre side af hver side. Tak!

Efterlad et svar













Panorama Tema ved Themocracy

8 besøgende online nu
7 gæster, 1 bots, 0 medlemmer
Max besøgende i dag: 26 kl 00:46 UTC
Denne måned: 26 kl 2011/07/05 12:35 UTC
I år: 130 kl 28-03-2011 22:40 UTC
Alle tider: 130 kl 28-03-2011 10:40 UTC