Posts tagged: Linux

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 versionumero tag 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.

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

Kun perjantai 04 joulukuu 2009 23:37

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 2 tutustuimme työpaikat palvelin ajaa ja miten työpaikkoja tulisi määrittää, jotta saavutetaan mahdollisimman suuren osan käsittelyn ja samalla varmistaa, että jokainen työ on käsitelty ilman epäonnistuvat.

Perustetaan oma työntekijä - tai Limp server

Seuraava askel on perustaa virtuaalisen työntekijöitä. Tätä aion käyttää asennuksen CentOS käyttää VirtualBox. Aion asentaa MySQL ja PHP on palvelimessa, joka tunnetaan myös ontua (Li Nux, m ySQL, P HP) Servera (Olen ehkä tehnyt tämän nimen ylös).

  • Asenna VirtualBox on Windows koneella (seuraa linkkiä)
  • Lataa ja asenna CentOS (nykyinen versio 5.3) sisällä virtuaalikoneen

Ei ole mitään järkeä menin tähän on luultavasti 1000: n suuri tutorials siellä (ok, tässä yksi: luominen ja Managing CentOS virtuaalikoneen alle virtualbox ). Tärkeää huomata Oletan, että minä kutsuin virtuaalikone GridMachine.

Mitä minun valintoja virtualisoinnin asiakkaan ja käyttöjärjestelmä sinne ole mitään suurta pakottavaa syytä jokaisen valinnan. VirtualBox on jotain käytän minun kotikoneessa ja tukee kolme suurta käyttöjärjestelmiä. Valitsin CentOS sen hyvä vakaa käyttöjärjestelmä, ja käytän sitä omaa www-palvelimen. Olen lujasti oikeat työkalut tähän tehtävään (vaikka en soveltamalla "käytä nopein ja helpoin" mentaliteetti täällä), joten jos käyttöjärjestelmä X kulkee koodia nopeammin ja tehokkaammin käyttää sitä sen sijaan :)

Tärkeää Varmista, että VM käyttää DHCP, muutoin jokainen uusi virtuaalikone olisi määritettävä erikseen, joka on jotain emme want.By DHCP: meidän ei tarvitse määrittää verkkoasetukset erikseen työntekijälle koneita, DHCP luovuttaa out IP sinulle. Voit siis kopioida virtuaalikoneen siitä toimistossa murehtimatta jossa jokainen ylöspäin (tämä parantaa skaalautuvuutta ja vähentää työntekijöiden hallinto).

Prosessi sinun tulisi pyrkiä olisi hankkia uusi fyysinen kone, asentaa VirtualBox, ja sitten aika lailla käyttöön virtuaalisen kuvan ilman paljon muuta. Voisi olla viisasta setup kaikki työntekijät eri aliverkossa, jotta voit ainakin nähdä kuinka monta koneet käynnissä. Sinun on myös perustaa oman koneita pitkäaikainen vuokrasopimus tai rajoittamaton vuokrasopimus DHCP.

Kuinka ajaa Jobs työntekijälle

Tämä on mielenkiintoinen ala, ja on olemassa useita päteviä menetelmiä käsittelyyn työpaikkoja työntekijälle. Täällä minä vain käsitellä kahta ilmeisin:

  • Ikuisesti käynnissä käsikirjoitus: käsikirjoitus, olipa shell script-tai PHP-skripti suoritetaan kerran työntekijän ja toimii osana päättymättömään silmukkaan. Olen diskontataan tämän menetelmän yhtenä romahdusta käsikirjoituksen ja mahdollisesti teidän työntekijät eivät enää ajaa ilman jonkinlaista väliintuloa.
  • Cron-pohjainen script toteutus: Joka X minuutin cron daemon käynnistymässä puhelun script saada asiat menossa. Ilman jotkut tarkistus voisi johtaa monia monia kopioita työntekijän komentosarja.

Minun päätös oli mennä cron joka käynnistyy shell script joka 10 minutes. My komentotulkkiskripti suorittaa seuraavat tehtävät:

  1. Hanki prosessi luettelosta ja grep tämä 'php'. Jos ei löydy niin jatka.
  2. Soita työsi koodia, minun tapauksessani se olisi jotain PHP perustuu
  3. Työntekijä script täydentää sen run
  4. Lähdössä jälleen seuraavan sopiva puhelun

Minun bash script näyttää jotakuinkin seuraavat:

  #! / 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"
     php yourJobProcessingScript.php
 fi 

Huom: ECHO: n lähes täysin turhia, mutta voi auttaa seuraavan henkilön tulee yhdessä kokeilla ja muokata niitä.

Julistan perustaa työntekijän virtuaalikoneen, nopea, yksinkertainen ja helppo kopioida jokaiselle uudelle laite, on vastaanotettu. THE älykkyydestä "ja verkkoon todellakaan ole visualisoitu OS, sen kaikki tehdä koodilla luotu prosessi työpaikkoja, työn kokoonpano, ja varmistaa, että tehtävä suoritetaan tarvittaessa (ts. kun isäntä on valmiustilassa ).

Asettaminen Windows alustamiseksi Työntekijät

Ensimmäinen tehtävä on selvittää komennon suorittamiseen tarvitaan virtuaalikoneen ikkunoista komentoriviltä. Jos olet asentanut VirtualBox on oletussijaintiin ja olet nimetty oma työntekijä GridMachine sitten komento tarvitse ladata up your työntekijä:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Kuitenkin komentosarjan in "päättömän" valtio meidän on käytettävä:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Tämä käynnistää virtuaalikoneen ilman GUI ja anna sen tallentaa tilaan sulavasti. Toinen perustelu sammuu RDP, joten se ei ole ristiriidassa ikkunoita RDP, tai antaa sinulle viestin kuuntelee porttia 3389. Virtuaalikone nimi isot ja pienet kirjaimet!

Seuraavaksi meidän täytyy määrittää Windowsin jopa potkia pois meidän työntekijä VM kun kone on ollut käyttämättömänä. Voit tehdä tämän (Windows XP), sinun täytyy mennä Käynnistä -> Kaikki ohjelmat -> Accessories -> System Tools -> ajoitettuja alla:

ajoitetut tehtävät

Seuraavaksi klikkaa "Lisää Aikataulun Task" seuraa selata lisätä mukautettua ohjelmaa. Navigoi VBoxManage käsikirjoituksen ja klikkaa ok. Ajoita tehtävä mikään vaihtoehdoista (me vaihdamme tätä minuutissa) ja jatka. Kun ohita seuraava näyttö Windows kysyy kuka haluat suorittaa tämän tehtävän, Haluan ehdottaa joko "Järjestelmänvalvoja" tai luo uusi etuoikeutettu käyttäjä. Muista, emme halua puuttua standardin henkilöstöstä koneeseen milloin tahansa. Valitse Seuraava ja tarkista Näytä lisäasetukset tähän tehtävään.

Voit lopussa run oppikirja lisätä meidän "startvm GridMachine 'string ja että ajaa vain kirjautuneena jää unticked. Käy aikataulu tehtävä seuraava ja muuttaa aikataulua pudota alas vaihtoehto "kun hyödytön" Valitse aika haluat koneen olla käyttämättä ennen kuin siirrytään seuraavaan välilehteen.

Lopuksi untick vaihtoehto, jossa todetaan lopettaa tehtävän, jos se on käynnissä X määrä aikaa, mutta älä rasti vaihtoehdon pysäyttää tehtävä, jos laite ei enää käytetä.

ajoittaa

Siinä se sitten Windowsin host setup!

Yhteenveto

Tässä osassa olemme perustaneet virtuaalikoneen toimia työntekijänä, sekä tapa, jolla me kutsumme ja toteuttamaan meidän tehtävämme käsittely skriptejä (itselleni PHP-skripti). Sieltä me tarkastelemme kuinka perustaneet kappaletta ikkunoiden käynnistää virtuaalikoneen on päätön tilassa, kun tietokone on käyttämättömänä, ja tallentaa sen tilaan, kun käyttäjä palaa käyttö koneen. Toivottavasti tässä vaiheessa näet kuinka helppoa on perustettava tällainen järjestelmä ja kutiavat saada joitakin kokeiluja menossa itse!

Seuraavalla kerralla

Vuonna Osa 4 me tarkastelemme työkaluilla että käytätkö uusinta versiota koodin ja tietolähteet niin, että saadut tulokset ovat aina ajan tasalla uusimpien kaupallisten tietojen ja logiikkaa.

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

Kun perjantai 04 joulukuu 2009 23:23

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ä.

Koska PHP kehittäjä aion käyttää työkaluja, joita käytän joka päivä eli Linux, MySQL , PHP, VirtualBox ja Subversion (SVN). Kuitenkin Toivon tämän oppaan sopeutuvat muita kieliä ja tekniikoita yhtä hyvin.

Ratkaisu annan tulee hyvin perustuu löyhästi tyypin käsittelyn olimme täytyy saavuttaa mutta tämä voi olla totta läpi koko artikkeli tulen muuttaa asioita yksinkertaisuuden, tai tuottamaan mielenkiintoisempia käyttötilanteissa.

Nämä virtualisoitua ympäristöt toimivat Windows-koneilla, koska tämä on mitä suurin toimistojen juosta. Käsittely että konttorikoneiden eivät saisi häiritä toimihenkilöiden näitä koneita, pitäisi vaadi huoltoa kone, ja helposti käyttöönotettavia uusia koneita kun ne tulevat saataville. Myös uusia virtuaalikoneita ei vaadi mitään lisäasetuksia, koska tämä vähentää huomattavasti skaalautuvuutta ja helppous, jolla verkkoon voidaan laajentaa.

Miksi käyttöönotto Office Computing Grid?

Ensinnäkin voi olla ajattelematta, miksi ei vain käyttää cloud computing resursseja, kuten Amazon EC2 foorumi ? Hyvin syistä voi olla useita, esimerkiksi:

  • Et antaa tiettyjä tietoja cloud computing ympäristö
  • Et voi laittaa tietyt tiedot cloud computing ympäristön oikeudellisista syistä (esim. tiedot lähtevät maasta), mahdollisesti oikeudellisista syistä, kuten NHS kirjaa.
  • Haluat säilyttää käsittely yksiköissä lähellä ja täysin hallita laitteisto liian
  • Sinulla ei ole hankerahoista ajaa pilvi tapauksissa
  • Toimistossasi ei ole yhteyttä Internetiin, ja siksi se ei ole mahdollista käyttää pilvi voimavara
  • Et pidä sadetta, pilvet viittaavat sadetta, joten sinun pitää hyvin poissa

Olen varma, lista voisi jatkua, mutta mielestäni se riittää nyt.

Edut Office Computing Grid

No, antaa tehdä joitakin matematiikka (ja aidon fysiikan tyyliin antaa tehdä joitakin laajoja oletuksia). Kuvittele on iso lihaksikas käsittely palvelin käyttää 100 työpaikkaa päivässä. Teidän toimiston sinulla on 50 koneita, jotka ovat lepotilassa 16 tuntia päivässä, jokainen näistä koneista on 10% niin voimakas kuin teidän lihaksikas käsittelyn katkaista. (Kaikki tulokset täällä pyöristetty aliarvioida enemmän tehoa).

Joten, 1 kone * 10% teho * 2/3 kertaa = 0,067 eli 1 työpöydän käsittely tyhjäkäyntiin voisi käsitellä 6 täyttä tehtävää päivässä.

Jos nyt skaalata tästä ylöspäin kestää 15 idle pöytäkoneet käsitellä mahdollisimman monta tehtävää päivässä pääasiakirjana käsittelyn palvelin tekee.

Joten meidän teeskennellä toimistossa 50 konetta voisimme kasvattaa prosessoritehoa alkaen 1 palvelin jopa 4 täyttä käsittelyyn palvelimia, tai voisimme käsitellä 400 työpaikkaa päivässä sijasta 100.

Huomaa, ilman investointeja uusiin laitteisto yrityksenne on juuri lisännyt erän jalostuskapasiteettia 4 kertaa! Mahdollisesti aiot lisätä virrankulutusta, mutta useimmissa toimistoissa olen ollut koneita yleensä jää yöksi tapauksessa, jotta voisit nähdä tämä vihreä aloite.

Muita etuja myös sitä, että investoinnit uuteen (tai päivitetty) käsittely palvelimia voi viivästyä, jos toimiston koneet ovat riittävät ja että voit parantaa voimaa oman toimiston koneiden toimiston verkkoon voimistuu automaattisesti.

Technologies

Mitä tarvitset? (Tai oikeammin mitä käytin):

  • Idle toimistolaitteet (minun tapauksessani vara vanha Windows XP laptop)
  • VirtualBox (tai muun virtualisoinnista client-ohjelmisto)
  • Virtuaalikoneen PHP, mySQL running käynnissä leikata alas OS, soitan nämä minun Limp palvelimet :)
  • Työpaikat juosta
  • Job palvelin (voi olla toinen virtuaalikoneen jonnekin)

Tyypillisiä Työpaikat

Erilaisia ​​töitä, että tämä järjestelmä on suunniteltu toimimaan on seuraava:

  • Järjestelmän saa luettelon tiedot, joihin meidän on vastattava ja palauttaa tulokset
  • Vastaavat on tarkistettava / haku useita (melko staattiset) tietolähteitä
  • Tulokset tietolähteistä saattaa edellyttää lisää validointi, yhdistäminen, tarkastaminen uusia tietolähteitä vastauksena tuloksia
  • Tiedot palautetaan yhteensopivat kirjaa, täysin validoitu ja käsitelty
  • Jokainen tietue sisällä työ on riippumaton muusta

Joten periaatteessa me tarkastelemme ajossa olevat työt, jotka vaativat seosta tietokanta haut ja jotkut numerotoimituksiksi, melko tyypillinen skenaarion liiketoimintaympäristössä.

Grid ratkaisut eivät ole ainoastaan ​​edullinen käsiteltäessä työpaikkoja tätä tyyppiä. Periaatteessa mikä tahansa prosessi, joka voidaan jakaa itsenäisiä yksiköitä voidaan ajaa rinnakkain. Katso tämä wikipedia esimerkkejä ja lisätietoja: Grid Computing , mutta pari tunnetuimpia esimerkkejä ovat Seti @ Home ja BIONC . On puitteita käynnissä tietojenkäsittely verkkoihin, ja nämä ovat hyvin arvoinen.

Mitä voimme saavuttaa?

Loppuun mennessä näiden artiklojen toivon mukaan käyttöönottokustannukset toimiston verkkoon ei tarvitse olla valtavan kallista ja aikaa vievää. Aion keskustella:

  • Asettaminen työn ohjausjärjestelmä, työn kokoonpano
  • Luominen asianmukainen käsittely virtuaalikone
  • How to setup järjestelmä windows koneella
  • Varmistaminen käytät uusinta koodia ja tietoja
  • Käyttöönotto ja benchmarking
  • Katse eteenpäin

Tulen rakennus (ok rakensin, niin kirjoitin tämän) esimerkkisovellus testata käsitteitä paikalliselle koneelle Windows XP ja minun "GridMachine-virtuaalikone. Työni Control Server tulee olemaan tärkein kone, joka toimii Fedora 11 .

Tämä ei mitenkään tarkoitus osoittaa täysin toimiva vankka järjestelmä, se merkitsi enemmän mielenosoituksen ja keskustella siitä, että nämä asiat voidaan saavuttaa kohtuullisen lyhyessä ajassa ja vähäisin kustannuksin. Voit vapaasti lähettää minulle kommentteja, korjauksia tai parannuksia ja teen parhaani pitää tämän artikkelin päivitetään vastaamaan.

Seuraavalla kerralla

Kun osa 2 Aloitan tarkastelemalla työn valvonta ja katsoa miten työpaikat tulisi määrittää, jotta saavutetaan mahdollisimman suuren osan käsittelyn ja samalla varmistaa, että jokainen työ on käsitelty ilman epäonnistuvat.

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

Kun perjantai 04 joulukuu 2009 23:23

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ä.

Vuonna Osa 1 annoin yleiskuvan järjestelmästä ja teknologiat Aion käyttää sekä käsitellään joitakin mahdollisia syitä, miksi haluaisi luoda toimiston verkkoon.

Työn hallinta

Jos aiot olla käynnissä työpaikkoja sitten olet menossa on jotenkin hallita niitä. Työsi ohjausjärjestelmä (työssäsi palvelimella) on todella harkittu ennen kuin edes yrität käyttää toimiston verkkoon. Eli ensinnäkin, mitä tehtäviä työ ohjausjärjestelmä:

  • Ojentaa työpaikat pyynnöstä työntekijöitä
  • Kerro työntekijät millaisia ​​työpaikkoja juosta
  • Track työpaikkaa
  • Varmista, että työpaikkoja ajetaan vain kerran
  • Tarjoa työtietojen työntekijöille, tai ainakin kertoa heille mistä sitä saa

Lisäksi järjestelmän tulee olla laajennettavissa, ratkaisu, joka toimii nyt samaan koteloon voidaan ulottaa suorittaa useita erilaisia ​​työpaikkoja kuin liiketoiminnan näkee arvokkaaksi verkkoon ratkaisu. Esimerkiksi työpaikkoja voi saada painopisteitä, enemmän kuin yksi työpaikka tyyppi voi olla (siis useita koodia emäkset), lopulta ehkä jopa käyttää useita eri työntekijöiden koneita, jotka on optimoitu kunkin työn (vaikka se ei siirrä pois geneerinen työntekijä "idea). Yritä aina ajatella tulevaisuutta kehitettäessä järjestelmiä, lyhyen aikavälin visio voi johtaa pitkällä aikavälillä turhautumista ja lisää kehitysaikaa.

Job Server

Tulemme tarvitsemaan jonnekin hillitsemään työpaikkoja, tämän pitäisi olla ainoa järjestelmä teidän ruudukko, jossa on kiinteä Resource Locator olla että IP-osoite, palvelimen nimi, osoite (käyttämällä sisäisiä DNS), jne. Tämä johtuu työntekijöiden täytyy tietää, mistä etsiä työtä, työntekijöitä täytyy löytää työpaikan ohjausjärjestelmä (ei työn ohjausjärjestelmä löytää työntekijöitä).

Työ-palvelin itsessään ei todellakaan ole monimutkainen tehtävä (vuonna perusjärjestelmän muutenkin), se tarvitsee tallentaa luetteloa työpaikoista, ojentaa työpaikkoja, saada tuloksia, ja sen jälkeen tallentaa ne myöhemminkin. Miten nämä osat (esim. "ojentaa työpaikkoja") on määritelty voi olla hyvin yksinkertainen. Myöhemmin voimme laajentaa järjestelmä koskemaan hallintaliittymä lisätä, muokata, poistaa, peruuttaa työpaikkoja, mutta tämä on kuin harjoitus.

Ei ole mitään syytä niin että työsi palvelin ei voinut olla virtuaalikoneen käynnissä omassa tärkein käsittelystä palvelin kunhan se ei pääse virtaamaan liikaa resursseja siitä. Työ palvelin kuitenkaan ei tarvita korkeaa käytettävyyttä, jos se menee alas perjantai-iltana aiot menettää koko viikonlopun jalostus, mahdollisesti maksaa sinulle pari viikkoa arvosta käsittelyajan (verrattuna ensisijaiseen käsittelyyn palvelin yksin) . Haluat ehkä harkitsemaan työsi palvelimen kuormitusta tasapainoisen ympäristön korkean käytettävyyden.

Basic Setup

Perusasetukset työmme palvelimelle muodostuu mitä soitan eräs Limp palvelimia (eli Li Nux, m ySql, P HP). Koodin suorittamisen thea työntekijöistä todella selvittää, mitä työtä se voi hoitaa vuorovaikutuksessa työpaikkojen ohjausjärjestelmän tietokantoihin. Myöhemmin voisimme luoda verkkopalvelun ja itse ojentaa työpaikkoja sen sijaan työntekijät tekevät kovaa työtä itse, mutta nyt jatkamme käyttää KISS periaate (Keep It Simple, Stupid!).

Joten avulla luodaan kolme mySQL taulukoita käsitellä työpaikkoja. Nämä ovat `työpaikkoja`, `jobRecords`, ja `jobResults`.

työpaikkoja pöytä Täällä Käytän SQL Buddy hyvin vähän vaihtoehtoja phpMyAdmin vain koska sen helpompi asentaa CentOS (muille katso: 10 Great vaihtoehtoja phpMyAdmin )

Tämä taulukko on 5 yksinkertaisia ​​kenttiä,

  • id: tunnistaa työ
  • name: Voisi olla asiakasnumerosi, tai useita muita tunnisteita
  • Tila: Sinun täytyy tietää, missä työ on, esim.
    • 0: ei alkanut
    • 1: Noudetaan
    • 2: Päättyneet
  • started_by: Kuka alkoi tehdä työtä? Tämä ei ole täysin pakollista, mutta on hyvä olla. Haluan ehdottaa seurata työntekijöiden IP-osoitteen verkon
  • started_at: Milloin työntekijä aloittaa työn? Seuraamalla työpaikkoja, jotka eivät ole päätökseen X ajan tiedämme, että meidän poimia työn uudelleen ja aloittaa käsittelyn toisen työntekijän. Työntekijät voisivat lopettaa käsittelyn / go offline mahdollisesti useita syitä, sähkökatko, crash, verkko menetys jne.

On helppo miten tämä taulukko voitaisiin jatkaa muutamalla lisäkenttiä jotta tilastojen seuranta, lopetusaika sarakkeesta, miten kauan työ kesti, laskuri, kuinka monta työntekijää piristyi työ (ilmeisesti tämä tarvitsee yleensä 1), työ ensisijaisesti lista voi jatkua loputtomiin. Vuonna monimutkaisempi työ skenaariot olisi mahdollista määrittää, kuinka paljon muistia työntekijällä olisi pääsy (ja siksi käyttää vain sopivaa työntekijää), tai jopa millainen työntekijä olisi tarpeen.

Lets lisätään muutama esimerkki työpaikkoja:

Esimerkiksi työpaikkaa

Seuraavassa taulukossa on taas melko helppo ymmärtää, nämä ovat meidän tehtävämme kirjaa. Ne liittyvät pääasiassa työpaikkojen taulukon sarake `jobs_id`. Muodostavat tämän taulukon riippuu paljon tietoja, joita et tarvitse toimittaa teidän työntekijöitä, antaa tehdä hyvin yksinkertainen esimerkki, jossa meillä on neljä saraketta:

  • id: tunnus ennätys
  • nimi: Henkilön nimi
  • osoite: Henkilön osoite
  • jobs_id: työn tunnusta, että tämä levy liittyy

Kolmas ja viimeinen taulukko koostuu tulosten taulukon, se on paljon samaa muodostavat kuin tietomme pöytä, ja lisäämällä tiettyjä palstoja voisi olla osa Records taulukon:

  • job_record_id: Linkki tuloksen tehtävätaulukko
  • Tulos: tulostiedot

... Ja siinä kaikki mitä tarvitset työnohjausta! (Joskin aivan perustasolla) Omalla kohdallani olen todennut toiseen pöytään, jossa tietoni käsitellä sijaitsi, mutta voisi yhtä hyvin tehty tiedosto, parametrit suorittaa simulaatio koodia, you name it.

Valitseminen työpaikka

Kuten aiemmin on todettu, työntekijät teemme työn hallintaan meille nyt, niin kaikki meidän todella on löytää työpaikka, joka vaatii käsittelyä ja saada tietoa. Miten teemme tämän? No valita työtämme valintaperusteet ja etsiä työpaikkoja, SQL tein seuraavat:

  1. Ota kaikki työpaikat, joita ei ole merkitty täydellisiä, mutta meidän työntekijöiden ja palauttaa ne (korvaa __ ME__ ja tunniste, helpointa olisi IP-osoite):
      UPDATE `työpaikkoja` SET `status` = 0 WHERE `status` = 1 JA `started_by` = __ ME__; 
  2. Käyttämällä meidän tehtävämme valintaperusteet, valitse työ ja kerro ohjausjärjestelmä, tämä työntekijä käsittelee sitä:
      UPDATE `työpaikkoja` SET `status` = 1, `started_by` = __ ME__, `started_at` = NOW () WHERE `asema` = 0 tai
     (`Status` = 1 JA `started_at`> DATE_SUB (NYT (), ALUE X AIKA)) ORDER BY `id` ASC; 

    Tarttumalla työpaikat, joita ei palauteta tuloksia X ajassa voimme varmistaa, että kaikki työpaikat ovat käytössä jos työntekijä kaatuu tai menee luvattomalla lomalla.

  3. Seuraavaksi ota työpaikat yksityiskohdat jälkeen Records itse:
      SELECT * FROM `työpaikkoja` WHERE `started_by` = __ ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __ JOBID__; 

Päätyttyä työpaikka lisäämme tuloksemme kirjaa ja merkitä työtä valmiiksi. Muista, kun työpaikkoja voi keskeyttää / jatkaa milloin tahansa sallia tietty kestävyydestä script. Voi olla, että tehtävä keskeyttää puolivälissä päivittää työn ohjausjärjestelmä, niin tarkkailun Tietueiden määrän työtä ja tulosten määrä tallentaa ne takaisin työn ohjausjärjestelmä olisi viisasta.

Lisäksi, vaikka tämä osoittaa, miten työpaikkoja voidaan valita ja hallita SQL-kyselyn runko sinun pitäisi oikeastaan ​​hahmotuskykyyn oman työn hallintaa niin, että jos päätät siirtyä käyttämään verkkopalvelu, tiedostopohjaisesta, XML -tai muita lukuisia järjestelmiä, se ei vaikuta koodia sen yläpuolella.

Job Configuration

Seuraava huomioon otettava näkökohta on työn koon ja kokoonpanon. Pelaamalla työpaikkojen kokoonpano voimme löytää hyvä tasapaino nopeuden, prosessin toistettavuus ja luotettavuus. Ota pari OFA skenaarioita:

  1. Työpaikat kestää 1 päivästä joka ajaa: Tämä tarkoittaa, että työntekijöitä on 15 päivää aikaa käsitellä kunkin työpaikan (muista 10% tehon 2/3rds ajasta). Tämä ei selvästikään ole viisas kokoonpano, työsi koko on liian iso! Se veisi ainakin kaksinkertainen aika saada suorittaa työ tulisi ensimmäinen työntekijä menee luvattomalla lomalla (aika poimia että se ei ole palannut tulos plus uudelleenkäsittely aikaa). Ihanteellisessa sinun on ainakin yksi täysi työ helppo tyhjentää jokaisen pitkän vapaan aikana, näin pidät työpaikkaa tikittää yli ja pahimmassa tapauksessa työ kestäisi kaksi päivää prosessia pitäisi ensin mennä puuttuu.
  2. Työpaikat kestää 1 minuutti juosta: Tämä tarkoittaa, että työntekijät kestää noin 15 minuuttia suorittaa kunkin työn. Vaikka tämä voi aluksi tuntua ihanteellinen, saat lisätyöstä käsittely lounasaikaan, kahvitauot, kokoukset jne. tämä skenaario asettaa paineita myös muiden järjestelmän ja tuo omat ongelmansa. Ensinnäkin esimerkiksi asennuksessa / käsittelyaika suhde on menossa alas, siis menettää järjestelmän tehokkuutta. Verkko tulee olemaan jatkuvasti streaming työpaikka tietoja eri työntekijöiden turhauttavaa henkilöstölle dong heidän päivittäisessä työssä. Olet myös menossa kohdistuu enemmän rasitusta työsi käsittelystä palvelimella, koska se on jaella paljon ja paljon pieniä teoksia säännöllisesti. Lisäksi tässä tilanteessa, jos työsi palvelin menee alas aiot luoda valtava takaisin lokin keskeneräinen työ taas isompi työpaikkaa Voitaisiin jatkaa käsittelyä autuaan tietämätön siitä, että työ-palvelin oli vaikeuksia.

Todellisuudessa ei tule yksi ideaalinen kokoonpano oman verkon asetukset, paljon riippuu käytettävissä olevien resurssien kaikenlainen työssä, työn läpimenoaika vaatimukset, verkkotoiminnot, ja niin edelleen. Jotkin suuntaviivat olisivat:

  • Koko työpaikkoja jotta jokainen työntekijä voi saada läpi ainakin 3-4 työpaikkaa 15 tunnin ajan (pisin todennäköinen vapaan ajan)
  • Pelaa työn koko, niin että asennuksen aikana tulee melko vähäinen verrattuna käsittelyaika (ottaen huomioon edellä kohta).
  • Jos työ ei ole täydellinen kaksinkertainen aika (ehkä vähemmän) odotatte sitä täydentää sitä olettaa, että sen mennyt luvattomalla lomalla ja aloittaa sen käsittelyn toisen työntekijän. Tämä tarkoittaa sitä, saatat joutua odottamaan jopa kolme kertaa tavanomaiselta työtä sen loppuun (mahdollisesti pidempään, jos myöhemmin työ epäonnistuu). Voit vähentää tällä kertaa, mutta varo vähentää sitä liikaa, sillä saatat alkaa päällekkäistä käsittelyä tehtäviä säännöllisesti.
  • Työpaikkoja tulisi olla riippumattomia ulkopuolella vaatimusten niin paljon kuin mahdollista. Työ-palvelin, esimerkiksi vain ottaa yhteyttä alussa ja lopussa jokainen työpaikka.
  • Älä kyllästetty verkko, tällä on kaksi kielteistä vaikutusta, sinun päivällä henkilökunta löytävät käyttää verkkoa turhauttavaa ja ongelmia voi ilmetä, jolla on yhteyksiä aikarajan ongelma vain pahenee kun skaalata verkkoon.
  • Varmista työpaikkoja voi ajaa omia työntekijöitä. Jos työpaikkaa liian paljon muistia ja levytilaa intensiivisiä työpaikkoja alkaa saaliin, ja ainoa asia, jonka huomaat on pudotus Työpaikkojen määrä käsitellä ilman varsinaista syytä, miksi.

Hakemuksen tulokset Job

Toimittaessaan tulokset työ on tärkeää tarkistaa, että tuloksia ei ole jätetty toinen työntekijä, varsinkin jos nykyinen työntekijä on ollut lepotilassa jonkin aikaa.

Kun tulokset esitetään että tulosten määrä vastaa tietueiden sisällä työtä.

Kuten aiemmin todettiin, eikä se voi olla yli korosti, rakentaa vikasietoisuutta osaksi työpaikan hakuun ja tulosten esittämisen. Työntekijät voivat (ja mitä todennäköisimmin) siirtyy lepotilaan klo hankalimmassa kertaa ja tämä on huomioitu. Myös jälleen hahmotuskykyyn pois hakutuloksia jättämisestä auttavat palvelemaan tulevia muutoksia työn ohjausjärjestelmä paljon helpompi käsitellä.

Yhteenveto

Tässä section olemme tarkastelleet mitä työnohjaus palvelin pitää tehdä ja miten saada hyvin yksinkertainen järjestelmä käyttöön. Keskustelimme siitä, miten hakea työtä käyttöjärjestelmästä ja miten parhaiten määrittää työpaikkoja saada eniten meidän oman toimiston verkkoon. Lopuksi, kappaleen tai kaksi esittäessään tulokset takaisin työn Control Server esiteltiin.

  • Työn hallinta palvelimen kautta työpaikkoja ja varmistaa, että kaikki toimivat yksiköt valmistuvat
  • Abstrahoimalla työsi valitset / tulos jättämistä voimme muuttaa teknologian Control Server ilman suurempia ongelmia
  • Määritä työpaikkoja, jotta ne ajetaan nopeasti ja tehokkaasti vaarantamatta liikaa paineita verkon infrastruktuuriin, ja tekemättä päällekkäistä käsittelyä tehtäviä säännöllisesti.
  • Varmista, että olet rakentaa vikasietoisuuden ja erehdys checking teidän rutiinit, työntekijä voi keskeyttää ja aloittaa uudelleen ja hankalimmassa kertaa. Muista tarkistaa, jos tuloksia on jo toimitettu toinen työntekijä.

Seuraavalla kerralla

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

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

Kun perjantai 04 joulukuu 2009 23:03

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ä.

Vuonna Osa 4 tutustuimme työkaluja, jotta voimme käytössäsi uusin versio koodin ja tietolähteet niin, että saadut tulokset ovat aina ajan tasalla uusimpien kaupallisten tietojen ja logiikkaa.

Ennen käyttöönottoa

Ennen kuin otat teidän verkkoon, jos on olemassa yksi asia mitä teet ja yksi asia vain se benchmark nykyinen järjestelmä! Ei ole väliä mitä kerrot kollegansa siitä, kuinka paljon ylimääräistä työtä järjestelmä tulee tehdä, ellei sinulla ole numeroita kuulen tämän teidän takeita ole mitään. Joten,

  • kuinka monta kirjaa voit käsitellä tällä hetkellä? Per Day? Tunnissa?
  • Kuinka kauan se yleensä kestää kääntyä työpaikka?
  • Kuinka paljon enemmän kapasiteettia sinulla on?

Mukana on myös muita kysymyksiä:

  • Jos käsittely palvelin (tai joku käsittely palvelimet) laskee miten se vaikuttaa ominaisuudet, aiotte rujo?
  • Mitä etuja sinulla toivoa / odottaa saavansa siitä sähköverkkojärjestelmään?
  • Ovatko konttorikoneiden pystyy käyttämään työpaikkoja?
  • Ovatko (tai voit työpaikkaa muuntaa) ja wrok tähän tyyliin käynnissä?

Viimeinen tärkeä asia on, että otat aikaa merkittäviä muutoksia näin. Päivitä koodimerkkien toimimaan käyttämällä uusia menetelmiä, Benchmark uudelleen. Mahdollisesti perusti oman käsittelyn palvelin käyttää virtuaalikoneen, kun kaikki jalostuksen palvelin vain olla toinen työntekijä (vain erittäin voimakas suhteellisen). Anna uusi prosessi asettua.

Käyttöönotto

Ehdotukseni olisi pop toimistoon yhden viikonlopun suorittaa kaikki asennukset ja asetukset. Tee tämä juuri ennen kahden viikon lomaa ja lähteä niin muiden köyhien kaveri käsittelemään seurauksia ... ehkä ei ...

Deployment tällainen järjestelmä on hidasta. Vaikka se on suhteellisen helppo asentaa tämä järjestelmä vaikuttaa koko toimiston infrastruktuuri (myös digitaalista yksi). Ensinnäkin rullaa ulos pari koneita kerrallaan, näyttö verkkoliikenteen, miten työntekijä isännät suorittaa päivittäinen perusteella. Saatat joutua muuttamaan työn määritykset vastauksena löytösi.

Kun järjestelmä on ratkaistu muutamalla koneet (sanotaan vaikka 10% kaikista toimistolaitteet, eli 5) pitää seuranta verkkoliikennettä ja pääkoneen performance. Seuraavaksi benchmark uudestaan, sinun pitäisi nyt käsitellä 33% enemmän työpaikkoja kuin ensimmäinen vertailukohtia. Tarkista tämä on niin, tai että olet ainakin tässä ballpark. Jos ei, tutkia, mitä tapahtuu ennen siirtymistä. Toista tätä sykliä kunnes onneksi on kaikki konttorikoneiden käynnissä tappamatta yksittäisen koneen suorituskykyä tai hionta verkkosi pysähtynyt.

Kaikkina aikoina pitää esikuva, vaikka kaikki käyttöönottoja on tehty. Katso miten uusi koodi päivityksiä vaikuttaa nopeudesta, tarkista kaikki työntekijät ovat raportointi ja käsittely työpaikkoja. Hitaasti (erittäin hitaasti) suurennettava työsi kokoonpanon saada kaiken irti työntekijöitä ja verkko.

Lopeta!

Entä jos haluat lopettaa työntekijöiden käydessä jonkin aikaa? Ne ovat kaikki siellä käynnissä palauttamiseksi, ja yrittävät parhaansa mukaan käsitellä tietoja kuin nälkäiset hyönteiset. Vastaus saattaa tuntua itsestään selvältä, mutta sen syytä lisätä vain jos sen huomiotta. Yksinkertaisesti muokata käsittely script exit (0) or die () tai muu selvitys tappaa käsittelyyn työtä. Tärkeä syy siihen, miksi pyrimme aina päivittää uusimpaan käsittelyyn käsikirjoitus ennen run!

Esittelyjärjestelmäsovellusten

Voidakseen kirjoittaa Tästä lyhyitä artikkeleita olen luonut hyvin pieni ruudukko osoittaa tekniikoita ja menetelmiä. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. By no means have I gone out and saturated a whole office with traffic and nor have I had access to a regular staff members PC to see how host performance was affected.

My demonstration system was very humble indeed. I used my regular desktop set up as a job control server. On this I had installed mySQL server installed set up as a master in replication, PHP , and SVN linked through apache (for access via worker VM).

I then created a centOS worker machine on VirtualBox on a 6 year old windows XP laptop. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

The virtual machine was set up with PHP, subversion, and mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Next I setup mySQL as a slave and checked that data was replicating from mySQL on the job control server down to the worker VM. After all this I setup the bash script and the cron job.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Counted the number of similar names in a table from the data source held on the VM
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

The next obvious step would be to actually get a real world example and start to deploy a system such as this within an office environment and see what happens. Asking a business to commit to this without a trail blazing company to prove the technology and effectiveness may be a little difficult. Grid/Distributed computing is very popular is some circles and has some large applications (BIONC, SETI@Home, Folding@Home, etc). I did not, however, find a smaller scale and simple system like this in my searches that could be rolled out within an office environment.

I created a basically free system using mostly open source software and tools available in almost any office. The technologies were basically demonstrated and show to perform and work as expected. Hopefully I have show that with not much work and with a very simple setup you can deploy an office grid computing system that is powerful, cheap, and scalable all at the same time.

Once a system is up and running there is almost no end to the amount of customisation and improvements you can make. For example statistics / benchmarking can easily be added showing the worth of such a system every day. New machines can be added quickly and easily as and when they arrive with upgrades to existing hardware bolstering your processing power.

I hope you've enjoyed reading this series of articles and its given you food for thought on running an office grid system. The solution presented here won't necessarily work in all situations but should be adaptable to allow you to get your data processing done using your own solution.

Please feel free to send me any comments, corrections, or improvements and I'll do my best to keep this article updated to match.

Zend Framework: Fundamentals - Review

Kun , lauantai 28 marraskuu 2009 22:42

My employer recently paid for a group of us developers to take the Zend Framework: Fundamentals course, here I'll summarise my thoughts and opinions on the course for others. For those looking to save time, here's my summary:

For developers who haven't had time to look at the Zend Framework this course (Zend Framework: Fundamentals) offers a good overall picture of the framework introducing you to the key areas and giving enough information in order to continue. For those who have spent time looking at the framework and have followed one or two tutorials this course does not offer much beyond.

Tausta

I've been a PHP developer for around 5-6 years, and have started working with the Zend Framework on a component basis over the last 6 months. I've developed and/or been a developer on a couple of small Zend Framework MVC sites. I'll be honest, I haven't had a huge amount of exposure to other frameworks from a coding point of view but have spent several hours researching the project websites and evaluating them. The framework and the community surrounding Zend Framework it is quite exciting and there seem to be huge possibilities in where its going.

About the Course

The course is delivered over 9 two hour webex sessions (with a 10-minute break in the middle). The time is spent going through a set of slides provided by Zend with discussion at any time. You can use a microphone to talk to the instructor, but to be honest I didn't see anyone use anything more than the chat window. In addition a VMWare Ubuntu machine is provided that has example code and projects set up an a trial version of Zend Studio. The course leader talks to attendees either over an integrated VoIP solution, or you can dial in using one of the many worldwide dial in numbers.

During the course the material consists of a brief overview of the Framework and the MVC pattern before heading into a sample guestbook application. The discussion demonstrated bootstrapping, Zend_Application, Db Tables, Database access, Forms, Filtering, ACL, Validating, etc, etc. Basically covering all the topics you'd require to get a basic site up an running all the time giving you the tools to go and get more advanced in the framework (although this did amount to 'See the website' much of the time).

Time is given to code up some examples, and to develop the 'guestbook' and simple 'wiki' application. Personally I felt that providing the code or each app and then asking us to develop what was essentially a copy alongside didn't really provide a good learning experience. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. The course leader was friendly, approachable (email addresses were shared for questions), and whilst his presentation from the slides was a bit shaky seemed fully competent in the framework. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

In some ways I found the course a waste of time, in others it was very handy. Hopefully I'll get my reasons across clearly, and maybe provide some food for thought or useful feedback (knowing me this is unlikely!).

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. Other members of the development team that haven't spent the time looking into the framework finished each session with enthusiasm and asked questions which was really nice to see.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. It was also time that I got to sit down each day and think about coding using the framework and future projects, something I wouldn't of been able to do otherwise (can you imagine your company agreeing to that? :) ). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

Yhteenveto

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Used the Zend Framework: While it was nice to shore up some of the very basics I felt the time, effort, and funds to take the course could of been better spent elsewhere. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.

[Ilmoitus] lapsen pid XXXX opastin Segmentointi vika (11)

Kun , sunnuntai 11 lokakuu 2009 18:09

Jos olet hiljattain päivittänyt PHP ja Apache et ehkä tulossa vastaan ​​kysymyksen verkkopalvelimesi palauttaa tyhjiä sivuja, ja heittää virheilmoitukset omaan tukkien ole aavistustakaan miksi, tässä on yksi mahdollinen tapa korjata se ...

Minulla on ollut tämä ongelma pari kertaa viime päivityksen jälkeen Apache ja PHP virtuaalikoneessa. Ensimmäistä kertaa huomasin virheen minä vain palautettiin varmuuskopio minun VM mutta toisella kerralla ymmärsin täytyisi tutkia asiaa.

Ensimmäistä kertaa huomasin asian myös minun sivut olivat toimineet tyhjät tiedostot taas toiset toimi aivan hyvin. Muutaman tutkimuksen huomasin että apache kirjoitti ulos / var / log / http / error_log seuraava sanoma repeatidly:

[Ilmoitus] lapsen pid XXXX opastin Segmentointi vika (11)

Siellä ei ole jakaa mennä verkossa, ja useimmat sivut siitä heiketä olemattomiin. Se sanoi, olen rajannut asian PHP kaatuu yrittäessään tarpeettomat dynaamisia kirjastoja.

Looking at my php.ini (/ etc / php.ini) En kommentoi pois kaikki dynaamiset kirjastot ladataan suunnittelun kommentoimalla niitä takaisin tarvittaessa. Kaksi jouduin ottamaan missä pdo.so ja mysql . niin.

Kun nämä poistettiin kaikki minun kotisivut on palvellut hyvin, aivan kuten ennenkin PHP / Apache päivitystä.













Panorama Theme by Themocracy

11 visitors online now
7 guests, 4 bots, 0 members
Max kävijöitä tänään: 19 klo 05:00 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