Posts tagged: svn update

Toimisto Grid Computing Virtual ympäristöissä - Osa 4

Kun perjantai 04 joulukuu 2009 23:59

Johdanto

Olen töissä yrityksessä, jossa voimme suorittaa useita eräajot käsittely miljoonia levyjä tietoja joka päivä, ja olen ajatellut viime aikoina kaikki koneet, istua joka päivä tekemättä mitään useita tunteja. Eikö olisi hyvä, jos voisimme käyttää näitä koneita vahvistamaan prosessointitehoa järjestelmiemme? Tämän joukon artikkeleita aion tarkastella mahdollisia hyötyjä työllistää toimiston verkon avulla virtualisoituja ympäristöissä.

Kun osa 3 loimme virtuaalinen jenkäsittelykoneeseen ja perusti Windows-koneissa tulee idle-aikaisia ​​työntekijöitä.

Running uusin koodi

Väistämättä luomisen jälkeen työntekijät liiketoiminnan logiikka muuttuu, vikoja löytyy, nopeammin tehokkaampia koodi tuotetaan siis jättäisit työntekijät istuivat käsittelee tietoja käyttämällä vanhaa haiseva koodia . Kuinka sitten voimme varmistaa, että olemme aina käytössä uusin ja paras versio meidän käsittelyn skriptejä?

On olemassa muutamia erittäin helppo yksinkertaisia ​​tapoja voisimme tehdä tämän temppu on kuitenkin vähentää prosessointitehoa ja verkkoliikenteen tämän saavuttamisessa. Aloitetaan yksinkertaisimmalla ratkaisuja ja parantaa sitä hitaasti muutaman toistojen.

Ensimmäinen menetelmä olisi yksinkertaisesti yhdistää työmme Control Server (via samba, FTP, tai vastaava) ja vedä alas uusimman version koodin. Ei kovin tehokas, mutta se tekee työtä. Lets parantaa että hieman, miten luomisesta rsync käsikirjoituksen ja käyttää sitä aina vaan? Vaihtoehtoisesti entä laskemisesta uusimmista käsittely komentosarjan kumoukselliseen tarkkailun koodin ensin ja sitten vain päivittämässä koodi jokaiseen run ( svn update )?

Lopulta voimme päätyä bash script (kutsutaan cron 10 minuutin välein), joka näyttää yhtä yksinkertaista kuin tämä:

  #! / Bin / sh
 jos ps ax | grep-v grep | grep php > / dev / null
 sitten
     echo "Job käsittelee parhaillaan, exit"
 muu
     echo "Työ ei ole käynnissä, käynnistä nyt"
     cd / polku / / työ / kopiointi
     svn update
     php yourJobProcessingScript.php
 fi 

Nyt voimme olla varmoja, että jokainen ajaa olemme ehdottomasti käytössä uusimmat koodia. Pyrimme varmistamaan tämän Päivitämme koodareiden joka kerta teemme aikavälillä ja vähentää verkkoliikennettä vain siirtämällä tiedoston eroja meidän verkkoon.

Minun esittelyn setup, tein juuri niin kuin yllä. Subversion on asennettu työni käsittelystä palvelimen ja olen yksinkertaisesti vetänyt viimeisin koodi "työntekijän" sivukonttori käyttää "svn update". Lisäsin myös version numerolappu minun käsittelyyn skripti, joka palautettiin tietokantaan osana tulosten tuottoa. Näin saatoin nähdä, että minun koodia päivittyy joka kerta olen kopioinut minun trunk osaksi työntekijän haara eli että olin ehdottomasti käynnissä uusin käsittelyn käsikirjoituksen.

Uusimman tiedon

Jos työsi käsittelyssä hyödynnetään tietolähteiden sitten jossain vaiheessa nämä tullaan päivitetään liian. Jos soitat tietolähteet erittäin harvoin perusta aiot hukuttaa verkon liikennettä heti kun työntekijät alkavat näkyä tuo kaiken pysähtynyt. Omasta ratkaisu, päätin, että haluaisin siirtää minun tietolähteiden ympäriinsä minun VM.

Pidä olet hevosia sinne! Entä jos tietolähteet ovat valtavat? No tämä on todellakin kyse siitä, kuinka paljon tietoa me puhumme? Se voi olla kustannustehokkaampaa asentaa ylimääräinen suurempi kiintolevy jokaiseen koneeseen kuin ostaa lisäkäsittely palvelimelle. Tämä on kysymys budjetin ja on jopa yrityksen päättää. Se ehkä että tietolähteet ovat niin suuria, että vain mahdottomalta pitää, että tietojen määrää oman työntekijän koneissa. Tällöin mitä tekisit? No voisimme tarkastella soittaa paikalliseen tiedot palvelimelle, mutta tämä saattaa aiheuttaa ongelmia verkkoon. Tällöin verkkoon, kuten tämä voi olla epärealistista sisällyttää toimistoympäristöön. Voi myös olla, että voit tutkia vaihtoehtoisia käynnissä strategioihin, esimerkiksi vain soittamalla työntekijöiden välillä kaksikymmentä ja 6am joka ilta ja / tai kuristus tietolähteen pyyntöjä.

Liikettä Sanotaan meidän tietolähteitä määrä 100GB tietoja. No kyllä ​​se on aika vähän tietoa liikkua verkon päivityksen. Miten voimme varmistaa, että meillä on uusin kopio tiedoista tässä tapauksessa? Rsync on mahdollista, mutta henkilökohtaisesti uskon ajamalla uusimman tietolähteen työsi käsittelystä palvelimen ja määrittää tämän mestari lisääntymään (ja mukavan pitkä bin log) voi olla tapa mennä:

replikointi Asettamalla kukin oman työntekijöille jopa niin orja työnohjausta palvelimen päivityksiä tietolähteisiin tulee valua alas hienosti oltava työntekijöiden ilman valtava kasvu verkon toimintaa (eli jos teet valtava tietojen päivityksen ja kaikki työntekijät potkia kerralla). Tämä on etuja rsync että et saa pitkän tauon ennen kunkin työn, kuten tietokannan päivityksistä, mysql daemon teidän työntekijä jatkuvasti päivittää tietoja, kun käsittely jatkuu.

Näin voin asettaa esittelyn palvelimelle. Voit määrittää replikoinnin seurasin oppaan MySQL päällä ( perustaminen replikointi ) ja 20 minuutissa sain inital työntekijä jäljittelyyn työnohjausta palvelimet aineisto. Kutakin ylimääräistä työntekijää replikointi asetukset ja prosessi toimi aina, kun VM oli kopioitu.

Yhteenveto

Tässä osassa artikkelissa olemme tarkastelleet, miten helppoa ja kivutonta se pitää koodimerkkien tasalla using rsync tai subverion (SVN), tehdä työtä ja vähentää verkkoliikennettä samalla time. Keskustelimme myös siitä, kuinka pitää tietolähteen tiedot ajan tasalla antamalla sen valua alas kullekin työntekijöitä. Näin me ala varmistaa, että me pysyä ansaintalogiikka ja tietoa toimistossamme verkkoon. Tulee tietenkin lukemattomia vaihtoehtoja hoitaa näitä tehtäviä, mutta tässä kaksi yksinkertaisia ​​esimerkkejä siitä, miten helppoa ratkaisua ei saada.

Seuraavalla kerralla

Vuoden viimeinen tämän sarjan osaa, osuvasti nimetty osa 5 , kerromme mielellämme käyttöön kyseisen järjestelmän. Minä tiivistää, mitä on oppinut ja mitä olen onnistunut luomaan.













Panorama Theme by Themocracy

4 vierailijaa nyt
3 vierasta, 1 vastaan, 0 jäsentä
Max kävijöitä tänään: 19 klo 01:56 am UTC
Tässä kuussa: 26 at 2012-04-04 22:27 UTC
Tänä vuonna: 69 at 27-02-2012 09:56 am UTC
Kaikki aika: 130 at 28-03-2011 22:40 UTC