Urad Grid Computing uporabo virtualnih okolij - 4. del
Predstavitev
Delam v podjetju, kjer deluje veliko delovnih mest paketno obdelavo milijone zapisov podatkov vsak dan in sem pred kratkim razmišljal o vseh naprav, ki sedijo okrog vsak dan nič ne delaš več ur. Ali ne bi bilo dobro, če bi lahko uporaba teh strojev za okrepitev procesorske moči naših sistemov? V tem sklopu člankov bom pogled na možne koristi zaposlovanja za pisarniško omrežje z uporabo virtualiziranih okolij.
V delu 3 smo ustvarili svoj virtualni stroj za obdelavo in vzpostaviti stroji okna, da postane idle delovnim časom.
Nameščeno najnovejšo kodo
Neizogibno po ustvarjanju svoje delavce poslovno logiko bo spremenilo, bo mogoče najti hrošči bodo hitreje bolj učinkovito kodo proizvaja in tako ostane vaši delavci sedeli okoli obdelave podatkov z uporabo starega smrdljiv kodo . Kako potem ne bomo zagotovili, da smo vedno z najnovejšo in najboljšo različico naših obdelavo skript?
Obstaja nekaj zelo preprostih preprostih načinov, kar lahko storimo to, trik pa je zmanjšati procesorske moči in omrežnega prometa pri doseganju teh ciljev. Začnimo z najbolj enostavna rešitev in jo izboljšati počasi nekaj ponovitev.
Prvi način bi bil, da preprosto povezati na naš strežnik delovnih nadzor (prek sambe, FTP, ali podobno) in podirajo najnovejšo različico kode. Ni zelo učinkovito, vendar pa bo to delo. Omogoča izboljšanje na tem nekako, kaj pa ustvarja rsync scenarij in uporabo tega vsakič, namesto tega? Druga možnost je, kaj pa polaganje naše najnovejše obdelavo skript v Subversion preverjanje ven kodo na začetku in potem samo posodobiti našo kodo na vsaki vožnji ( svn update )?
Na koncu bi lahko na koncu z skripto (bash razpiše cron vsakih 10 minut), ki je videti tako enostavno, kot je ta:
#! / Bin / sh če ps ax | grep-v grep | grep php > / dev / null Nato echo "Job trenutno obdelave, izhoda" drugega echo "Job se ne izvaja, začeti zdaj" cd / pot / do / delovne / kopije svn update php yourJobProcessingScript.php povezava
Sedaj smo lahko prepričani, da se z vsako vožnjo bomo zagotovo teče zadnji kodo. Mi smo to zagotavlja s posodobitvijo našo kodo dale vsakič opravimo vožnjo in zmanjšanje omrežnega prometa, ki jih le prenos datotek razlike med našo mrežo.
Po mojem demonstracijskega namestitvi, sem točno tako, kot zgoraj. Subversion je bil nameščen na mojem strežniku delovnih mest za obdelavo in sem enostavno potegnil najnovejšo kodo iz "delavec" podružnice uporabljajo "svn posodobitev". Prav tako sem dodal oznako številko različice na moj obdelavo skript, ki se je vrnil v bazo podatkov kot del napovedi rezultatov. Tako sem videl, da je moja koda posodablja vsakič, ko sem prekopiral moj prtljažnik v tj delavcev panoge, da sem definitivno teče zadnji obdelavo skript.
Z uporabo najnovejših podatkov
Če vaše delo obdelava omogoča uporabo virov podatkov potem na neki točki ti se bodo tudi posodobiti. Razen če pokličete svoje vire podatkov na zelo redke osnovi si boš poplav svoje omrežje s prometom takoj, ko vaši delavci začeli prikazovati prinaša vse do mirovanja. Za moje rešitve sem se odločil, da bi rad, da se premaknete svoje vire podatkov okrog z mojimi imajo proizvajalci.
Drži, da si konji tam! Kaj pa, če moji viri podatkov so ogromne? Pa to res primer, koliko podatkov govorimo? To je lahko bolj stroškovno učinkovito namestiti dodaten večji trdi disk v vsakem stroju kot za nakup dodatnega strežnika za obdelavo. To je vprašanje proračuna in je določena s strani podjetja odločiti. Prav mogoče, da bodo vaši viri podatkov so tako velike, da je njena samo neizvedljiva, da bo to količino podatkov v svojih delavcev strojev. V tem primeru, kaj bi storili? No, lahko pogledamo kliče lokalno podatkovnega strežnika, vendar pa to lahko povzroči težave z omrežjem. V tem primeru lahko omrežji, kot je to postalo nerealno vključiti v pisarniško okolje. Lahko je tudi, da si lahko ogledate v alternativne potekajo strategij, na primer samo kliče svoje delavce med 8pm in 6am vsak večer in / ali dušenje virov podatkov zahteva.
Gremo naprej recimo našo podatkovno viri znašajo 100 GB podatkov. No ja to je zelo malo podatkov za premikanje po mreži na posodobitev. Kako bi zagotovili, da imamo najnovejšo kopijo podatkov v tem primeru? Rsync je možnost, vendar osebno mislim, da s prikazovanjem najnovejši vir podatkov na strežniku delovnih mest za obdelavo in vzpostavitev to gor kot mojster v replikacijo (z lepo dolgo dnevnik bin) je lahko pot:
Z določitvijo vsake vaše delavce, tudi kot sužnja na delovnih posodobitve server kontrole na vaše vire podatkov bo čezmejno nakupovanje lepo vaših delavcev brez veliko povečanje aktivnosti omrežja (to je, če ne opravlja veliko Posodabljanje podatkov in vsi vaši delavci brcnil v naenkrat). To ima prednosti pred rsync v tem, da si ne bi dobili dolgem premoru pred vsako delo, kot so podatkovne baze posodobitve, je mysql bo daemon na vašem delavec stalno obnavljati svoje podatke, medtem ko se predelava nadaljuje.
To je, kako sem ustanovil svoj predstavitveni strežnik. Če želite nastaviti replikacijo sem sledil navodilom na spletni strani mySQL ( Nastavitev replikacije ) in v 20 minutah sem imel inital delavca posnemanja strežnikov nabor podatkov za nadzor delovnih mest. Za vsako dodatno delavca so replikacije nastavitve in procesov dela vsakič, ko je bila kopirana VM.
Povzetek
V tem delu članka smo proučevali, kako enostavno in neboleče je, da vaš obdelavo kodo na tekočem z funkciji rsync ali using subverion (SVN), da ne dela in zmanjšanje omrežnega prometa ob istem time. Govorili smo tudi o tem, kako , da vaš vir podatkov podatke up-to-dan tako, da se je na čezmejno nakupovanje na vsako od vaših delavcev. Tako smo površina zagotavlja, da bomo sledili poslovno logiko in informacij v naš sistem pisarniškega omrežja. Tam bo zagotovo nešteto možnosti za izvedbo teh nalog, ampak tukaj sta dve preprosti primeri bi jih lahko pokazali, kako enostavno rešitev je, da dobiti.
Naslednjič
V zadnjem delu te serije, aptly imenovan 5. del , bomo razpravljali o uvajanju tega sistema. Jaz bom povzeti, kaj je bilo tisto, kar sem se naučil, in uspelo ustvariti.

















































