Dinamički dodavati stranice u Zend_Navigation kontejner na Runtime

Do , četvrtak 7 siječanj 2010 10:50

U nastavku na moj zadnji post o Zend_Navigation, Ruta zahtjeva za sitemap.xml običaju kontroler / akcija , ovaj post je o dymnamically dodavanje stranica Zend_Navigation kontejner na runtime / script izvršenje.

Njezina sve dobro i dobro navodeći svoje stranice u ini ili XML datoteke, ali u nekom trenutku ćete imati promjenu stranice na svoje stranice koje želite kao dio izbornika, sitemap, ili biti uključeni u vaš povratna staza. Stoga ono što trebamo učiniti je dodati na naše stranice Zend_Navigation kontejner u runtime. Primjeri za to će biti za dodavanje vijesti, blogu ili stranici komentari, itd.

Nastaviti čitanje 'Dinamički dodavati stranice u Zend_Navigation kontejner u runtime' »

Ruta zahtjeva za sitemap.xml običaju kontroler / akcija

Do , srijeda 6 siječanj 2010 12:13

Kako bi se izravne zahtjeve za / sitemap.xml na prilagođeni kontroler i djelovanja u Zend Framework aplikacija jednostavno dodajte sljedeće u vašem application.ini ili alternativne konfiguracijske datoteke (npr. ja koristiti navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = indeksa
 resources.router.routes.sitemap.defaults.action = sitemap

Primjer koda za izlaza može se vidjeti stvaranjem djelovanjem u odgovarajućim regulatora (npr. od moje Sitemap leži u indeksu kontroler, sitemap akcija):

 < php
 klasa IndexController
     proteže Zend_Controller_Action
 {
     / **
      * Žbuke Sitemapa na temelju Zend_Navigation postavljanje
      * /
     javnu funkciju sitemapAction ()
     {
    	 echo $ this-> View-> navigaciju () -> sitemap ();
    	 $ This-> View-> izgleda () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemapova možete brzo i lako generiraju pomoću Zend_Navigation , veliki brzi uvod (i općenito vrlo korisno za Zend Framework tutoriali) je Zend baca - Dinamički stvaranje izbornika sitemap i krušnih mrvica .

Zend Framework Per-Modul se temelji postavke

Do , petak 1 siječanj 2010 10:40

Napravio sam Praćenje ovaj post koji zahtijeva manje konfiguraciju, pogledajte Modul temelju izgleda - Zend Framework .

Kada koristite Zend Framework sa modulima, svojim očito je da ako radite različite (sub-) mjesta s istim program koji nužno ne želite isti izgled skripte za svaki dio. Odlučio sam ići sa sljedećim site struktura:

  / Primjena
     / Kontroleri
         ...
     / Modela
     / Modula
         / Default
             / Kontroleri
             / Izgled
                 / Skripte
             / Views
                 / Skripte
         / AnotherModule
             ...
     / Skripte

Problem je bio postavljanje skripti na izgled po modulu osnovi. Odgovor je došao kroz korištenje Akcija pomagača. Postavljanje izgleda na po modulu osnovi uključuje tri koraka:

  1. Application.ini (ili sličnih konfiguracija setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / izgleda / skripte"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / izgleda / skripte"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / član / izgleda / skripte"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / affiliate / izgleda / skripte" 
  2. Kreirajte svoj Helper Akcija:
      <? Php
     / **
      * Postavlja izgled put na po modulu osnovi
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ 2010/01/01 od
      * /
     klasa Pro_Controller_Action_Helper_SetLayoutPath
         proteže Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Postavlja izgled put se temelji na modulu
          * /
         javnu funkciju preDispatch ()
         {
        	 $ Modul = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ dizanje = $ this-> getActionController ()
    	                        -> GetInvokeArg ('bootstrap')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['resursa'] ['izgled'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['resursa'] ['izgled'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('izgled')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. I na kraju boostrap pomagač akcije:
     ...  / ** * Postavlja se izgled skripte na po modulu bazi * / funkcija zaštićenih _initLayoutHelper () {$ this-> dizanje ('frontController'); $ izgleda = Zend_Controller_Action_HelperBroker:: addHelper (novi Pro_Controller_Action_Helper_SetLayoutPath ());} .. . 

Nauk: Dio sekunde u kojem zadana SADA ()

Do , srijeda 30. prosinca 2009 18:30

Ive 'bio bori s postavljanjem sheme baze podataka za novi Zend Framework projekt. Ja sam pomoću pokušava koristiti nauk ORM za moje baze podataka modele. Moram postaviti shemu, tako da mi je omogućilo da postavite zadani datum i vrijeme za 'datetime' stupac, npr. pri dodavanju nove poruke mogu dobiti trenutni timestamp. Nakon mnogo traženja i eksperimentiranja sam pronašao rješenje, tako da sam ga dijeljenje.

U svom sheme YAML datoteku, jednostavno učinite sljedeće:

 Poruka:
   actAs:
     Timestampable:
       urednik:
         Ime: created_at
         Vrsta: timestamp
         Format: Ymd H: i: s
       Ažurirano:
         Ime: last_updated
         Vrsta: timestamp
         Format: Ymd H: i: s
   stupce:
     ID:
       Vrsta: cijeli broj
       primarni: istina
       autoincrement: istina
     Ime: string (255)
     e-mail: string (300)
     poruka: string (2000)

Ako s druge strane ne želite `updated_at` stupcu možete koristiti sljedeće:

 Poruka:
   actAs:
     Timestampable:
       urednik:
         Ime: created_at
         Vrsta: timestamp
         Format: Ymd H: i: s
       Ažurirano:
         invaliditetom: istina
   stupce:
     ID:
       Vrsta: cijeli broj
       primarni: istina
       autoincrement: istina
     Ime: string (255)
     e-mail: string (300)
     poruka: string (2000)

PHP Design Patterns - promatrač Uzorak

Do , utorak 29. prosinca 2009 10:02

Ive 'bio čitanje Head First Design Patterns nedavno i odlučio napisati neke obrasce kao PHP primjera za svoju korist. Prvi koji sam odlučio kod gore je Observer pattern . Službena definicija Observer uzorak:

Promatrač uzorak (podskup asinkroni objaviti / pretplatili uzorak ) je softver uzorak dizajna u kojem se objekt , zove subjekt, održava popis svojih obitelji, zove promatrača, te ih obavještava automatski bilo koje države promjena, obično pozivom jedan od njihovih metoda . To se uglavnom koristi za implementaciju distribuiranih sustava događaj rukovanje.

Kao sustavi postaju labavo spregnuti pazeći da kad se dogodi događaj sve sustave koji zahtijevaju znanje o tim promjenama su informirani. Na primjer, blog, nakon spremanja post možda ćemo morati ažurirati tražilice (npr. Lucene), ažurirati naš sitemap, oznake, e-mail pretplaćeni korisnici, itd. promatrač obrazac dopušta programerima za dodavanje slušatelje bez uređivanja svojih vidljivi objekt . Ubrizgavanjem promatrača (tj. promatraču tražilice ažuriranje, sitemap generator, itd.) u temu (npr. blog uređivanje sustava) možemo dopustiti da obavlja sve potrebne nadopune bez ikakvih promjena.

Nastaviti čitanje 'PHP Uzorci dizajna - promatrač Uzorak' »

Ured Grid Computinga koristeći virtualnim okruženjima - 4. dio

Do , petak 4. prosinac 2009 11:59

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U dijelu 3 smo napravili naš virtualni stroj za obradu i postavljanje prozora strojevi postati mirovanja radnog vremena radnika.

Trčanje najnoviji broj

Neizbježno nakon stvaranja radnika poslovnu logiku će se promijeniti, greške će se naći, brži učinkovitije kod će biti proizvedena na taj način iz svog radnika sjedili oko obrade podataka pomoću stare smrdljive koda . Kako onda mi bismo osigurali da uvijek koristite najnoviju verziju i najveći naše obrade skripti?

Postoji nekoliko vrlo lako jednostavan način možemo to učiniti, trik, međutim, da se smanji procesorskom snagom i mrežnog prometa u postizanju toga. Omogućuje započeti s najjednostavnijim rješenja i unaprijediti polako preko nekoliko iteracija.

Prva metoda da bi se jednostavno spojiti na naš server posao nadzora (preko sambe, FTP ili slično) i povucite prema dolje najnoviju verziju koda. Nije vrlo učinkovit, ali to će obaviti posao. Omogućuje poboljšanje na tom pomalo, kako o stvaranju rsync skriptu i korištenjem da svaki put umjesto toga? Alternativno što o stavljanju naše najnovije prerade skriptu u subverzija odjavljivanje kod u početku i onda samo osvježavamo koda na svakoj vožnji ( svn ažuriranje )?

Na kraju bismo mogli završiti s bash skripta (zove cron svakih 10 minuta) koji izgleda kao jednostavan kao ovaj:

  #! / Bin / sh
 Ako ps ax | grep-v grep | grep php > / dev / null
 tada
     echo "Posao je trenutno obrada, izlaz"
 drugo
     echo "Posao nije pokrenut, pokrenite sada"
     CD / put / do / rad / kopiranje
     svn ažuriranje
     php yourJobProcessingScript.php
 fi 

Sada možemo biti sigurni da sa svakom pokrenuti svakako radite najnovije koda. Mi smo osigurati tako osvježavamo baze svaki put kada obavljaju vožnji i smanjenje mrežnog prometa, samo prijenos datoteka razlike diljem naše mreže.

U mom demonstraciju postava, ja sam točno kao gore. Subversion je instaliran na moj server posao obrade i jednostavno sam izvukao najnovije koda iz 'radnik' grana pomoću 'svn ažuriranje ". Također sam dodao oznake broj verzije na moj obradu pismu kojim je vraćen u bazu podataka kao dio rezultata povratka. Na taj način sam mogao vidjeti da je moj broj bio ažuriraju svaki put kad sam kopirati moje deblo u, odnosno radnik grana da sam definitivno bio pokrenut najnovije obradu skriptu.

Koristeći najnovije podatke

Ako vaš posao obradu omogućuje korištenje izvora podataka zatim u nekom trenutku su idući u biti ažuriran previše. Ako ćete se obratiti svojem izvora podataka o vrlo rijedak temelju ćete poplava mrežu s prometom čim radnici početi prikazivati ​​donosi sve mirovanja. Za moje rješenje odlučio sam da želim da se presele moje izvore podataka okolo sa mojim virtualna.

Držite ste konje tamo! Što ako je moja izvori podataka su ogromni? Pa ovo je stvarno slučaj koliko podataka govorimo? On svibanj biti troškovno učinkovite za instalaciju dodatnih veći hard disk u svakom stroju nego na kupnju dodatnih obradu poslužitelju. To je pitanje proračuna, a do poslovnih odlučiti. To možda da izvori podataka su toliko velike da je samo unfeasible da bi taj iznos podatke u vašem radnika strojeva. U tom slučaju ono što biste učinili? Pa mogli smo gledati na poziv lokalnog poslužitelja podataka, ali bi to moglo uzrokovati probleme s mrežom. U tom slučaju mrežnog sustava kao što je ovaj svibanj postati nerealno uključiti u uredskom okruženju. Također može biti da možete pogledati u alternativne strategije trčanje, na primjer samo poziv tvoj radnici 20:00-6:00 svake noći i / ili prigušni izvor podataka zahtjeva.

Premještanje na recimo naše izvore podataka iznosi 100GB podataka. Pa da to je vrlo malo podataka za kretanje mreže na ažuriranje. Kako bismo osigurali da imamo najnovije kopiju podataka u ovom slučaju? Rsync je mogućnost, ali ja osobno mislim da pokrenete svoj najnoviji izvor podataka na vašem poslužitelju posao obrade i postavljanje ovaj gore kao majstor u replikaciju (s lijepim dugim bin dnevnik) može biti način da ide:

odgovor Postavljanjem svaku od vaših radnika se kao rob posao nadzora poslužitelja ažuriranja na vaše izvore podataka će kapati dolje lijepo na radnike, bez velikog povećanja aktivnosti mreže (koja je, osim ako obavljaju veliki data update i sve svoje radnike udarac nogom u odjednom). To ima prednosti nad rsync u da ne bi dobili duge stanke prije svakog posla, kao i baza podataka obnove, mysql daemon na radnika će se stalno ažurirati svoje podatke, a obrada se nastavlja.

To je kako sam postaviti demonstracije poslužitelj. Da biste postavili odgovor slijedio sam vodič na MySQL stranice ( Postavljanje replikacija ) i unutar 20 minuta sam imao moj inital radnika Umnožava posao nadzora poslužitelja podataka. Za svaku dodatnu radnik replikaciju postavke i proces radio svaki put kad je VM je kopiran.

Rezime

U ovom dijelu članka smo gledali kako se lako i bezbolno je da bi se kod obrade do datumu po using rsync ili subverion (SVN) da radimo i smanjenje mrežnog prometa na istoj time. Razgovarali smo io tome kako da bi izvor podataka informacije up-to-date dopuštajući da kapati dolje na svakoj od svojih radnika. Tako području osigurava da držimo korak s poslovnom logikom i informacije u našem sustavu uredu mrežu. Tu očito će biti bezbroj alternativa za obavljanje tih zadataka, ali ovdje su dvije jednostavne primjere pokazati kako je lako rješenje je doći.

Sljedeći put

U posljednjem dijelu ove serije, podesno zove Dio 5 , mi ćemo raspravljati o uvođenju ovog sustava za. Ja ću sažeti ono što je naučio i ono što sam uspio stvoriti.

Ured Grid Computinga koristeći virtualnim okruženjima - 3. dio

Do , petak 4. prosinac 2009 11:37

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U 2. dio smo promatrali na poslovima server će raditi, i kako radna mjesta bi trebao biti konfiguriran kako bi se postigla najveća količina prerade, dok bi se osiguralo da svaki posao obrađuje bez iznimke.

Postavljanje radnika - ili hramati poslužitelj

Sljedeći korak u procesu je da postavite svoj virtualni radnika. Za to ću koristiti instalaciju CentOS koristi VirtualBox. Idem instalirati MySQL i PHP na poslužitelju, također poznat kao opušten (Li Nux, m ySQL, P KS) Servera (ja svibanj imati je napravio taj naziv gore).

  • Instalirajte VirtualBox na tvoj Windows stroj (slijedi link)
  • Preuzmite i instalirajte CentOS (trenutačne inačice 5.3) u sklopu stvorio virtualni stroj

Nema smisla mi ide na to da je vjerojatno 1000 je od velike tutoriali vani (ok, ovdje je jedan: Izrada i Managing CentOS virtualni stroj pod VirtualBox ). Važno je napomenuti mislim je da sam nazvao moj virtualni stroj GridMachine.

Što se tiče mog izbora virtualizacije klijenta i operativnog sustava otići tamo nije velika razlog za svaki izbor. VirtualBox je nešto što sam koristiti na moj home stroj i podržava tri glavne operativne sustave. Odabrao sam CentOS kao stabilnu dobar OS, a ja ga koristiti na moj posjedovati web poslužitelju. Ja sam veliki vjernik u pravom alata za posao (iako sam primjeni primjenu najbrži i najlakši za vas "mentalitet ovdje), pa ako operativni sustav X pokreće svoj ​​kod brže i učinkovitije koristiti da umjesto:)

Važno je osigurati da vaše VM koristi DHCP, inače za svaki novi virtualni stroj bi trebao biti konfiguriran posebno što je nešto što ne want.By pomoću DHCP ne moramo konfigurirati mrežne postavke pojedinačno za radnika strojeva, DHCP će ruku IP se za vas. Stoga možete kopirati virtualni stroj o uredu bez brige o postavljanju svakog gore (to poboljšava skalabilnost i smanjuje radnik uprave).

Proces bi trebao težiti postizanju bi dobiti novi fizički stroj, instalaciju VirtualBox, a zatim ljepušan velik dio implementaciju virtualne slike bez mnogo drugo. To bi moglo biti mudar za postavljanje sve svoje radnike na različite podmreže, tako da možete barem vidjeti koliko strojevi su trčanje. Također ćete trebati postaviti svoje strojeve na dugi najam ili zakup neograničen DHCP.

Kako izvoditi poslovi na radnika

To je zanimljivo područje i postoji nekoliko načina vrijede za obradu radnih mjesta na radnika. Ovdje ću samo raspravljati o dvije najočitije:

  • Neprestano trčanje skripte: skripta, bilo da je shell skripta, ili PHP skripte izvodi jednom na radnika i radi kao dio beskonačnu petlju. Ja sam ovu metodu diskontiranog kao jedan sudar pisma i potencijalno svojim radnicima prestat će pokrenuti bez neke vrste intervencije.
  • Cron skripta temelji izvršenja: Svaki X minuta cron daemon započinje poziv na skriptu da se stvari događa. Bez neke provjere to bi moglo dovesti do mnogo mnogo kopija tvoj trčanje radnika skripte.

Moja odluka je da ide s cron koji započinje skripte svakih 10 minutes. Moj shell skripta obavlja sljedeće zadatke:

  1. Nabavite popis procesa i to za grep 'php'. Ako nije pronađena zatim nastavite.
  2. Nazovite vaš posao kod, u mom slučaju to će biti nešto PHP temelju
  3. Radnik skripta završi svoj trčanje
  4. Spreman ići opet na sljedeću odgovarajući poziv

Moj bash skripta izgleda ovako sljedeće:

  #! / Bin / sh
 Ako ps ax | grep-v grep | grep php> / dev / null
 tada
     echo "Posao je trenutno obrada, izlaz"
 drugo
     echo "Posao nije pokrenut, pokrenite sada"
     php yourJobProcessingScript.php
 fi 

Napomena: echo-a su gotovo potpuno besmisleno, ali može pomoći sljedeća osoba koja dolazi zajedno i pokušati urediti ih.

To zaključuje postaviti radnika virtualni stroj, brzo, jednostavno i lako kopirati na svakom novom komad hardvera koji je primio. 'Pamet' od grid sustav stvarno nije u vizualizirati OS-a, sve je to učiniti s kodom stvoren za obradu radnih mjesta, posla konfiguracije, i pazeći da posao radi po potrebi (tj. kad je domaćin u stanju mirovanja ).

Postavljanje sustava Windows da biste pokrenuli radnika

Prvi je zadatak raditi naredbu potrebne za pokretanje virtualni stroj iz linije prozora naredbu. Ako ste instalirali VirtualBox u zadano mjesto i da ste imenovali svoje radnik GridMachine zatim naredbu potrebno za učitavanje gore vaš radnik:

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

Međutim, kako pokrenuti skriptu u 'bez glave' stanja moramo koristiti:

  "C: \ Program Files \ ned \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

To će pokrenuti virtualni stroj bez GUI i ostavite ga da se spasi država graciozno. Drugi argument isključuje RDP tako da nije u sukobu s Windows RDP, ili vam dati poruku o slušanje na portu 3389. Virtualni stroj ime je mala i velika slova!

Dalje, mi ćemo je potrebno za postavljanje prozora do kick off naš djelatnik VM jednom stroj je u stanju mirovanja. Da biste to učinili (u sustavu Windows XP), morat ćete ići Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks kao ispod:

zakazanim zadacima

Zatim kliknite na 'Dodaj Planirani zadatak' slijedi pregledavati dodati prilagođenu programu. Dođite na VBoxManage skripte i kliknite OK. Raspored vaš je zadatak za bilo koju od opcija (mi ćemo promijeniti u minuti) i nastaviti. Nakon što je preskakanje sljedeći ekran Windows će vas pitati koji želite pokrenuti ovaj zadatak, ja bih predložiti bilo "Administrator" ili stvaranjem novog privilegirani korisnik. Zapamtite da mi ne želimo se miješati sa standardnim osobljem račun na stroju u bilo kojem trenutku. Kliknite na Dalje i provjerite prikazuju napredne mogućnosti za ovaj zadatak.

Za kraj pokrenuti textbox dodati naše 'startvm GridMachine' niz i osigurati koji se pokreću samo kada prijavljeni ostaje unticked. Posjetite zadatak raspored sljedeći i promijeniti raspored padajući na opciju 'kad miruje', odaberite količinu vremena želite biti u stanju mirovanja stroja prije prelaska na sljedeću karticu.

Konačno untick opciju u kojem se navodi zaustaviti zadatak ako je pokrenut X iznos od vrijeme, ali ne označite opciju da se zaustavi zadatak ako stroj nije više u stanju mirovanja.

raspored

To je onda za postavljanje prozora domaćin!

Rezime

U ovom dijelu smo postavili virtualni stroj djelovati kao radnik, kao i način na koji zovemo i izvršiti naše skripte posao obrade (za sebe PHP skripte). Odavde gledamo kako postaviti našim kopije sustava Windows pokrenuti virtualni stroj u bez glave mode kada je računalo postaje miruje, i spasiti njegovo stanje kada korisnik nastavlja uporabe stroja. Nadam se da u ovom trenutku ste vidjeli kako jednostavan posrijedi je postaviti takav sustav i svrab da biste dobili neki eksperimenti se ide!

Sljedeći put

U 4. dio ćemo biti obličje at pomoću alata kako bi se osiguralo da ste trčanje najnoviju verziju koda i izvora podataka tako da se dobiveni rezultati su uvijek up-to-date s najnovijim poslovnih informacija i logike.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 1

Do , petak 4. prosinac 2009 11:23

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

Kao PHP programer Im 'idući u koristiti alate koji mogu koristiti svaki dan, naime, Linux, MySQL , PHP, VirtualBox i subverzija (SVN). No nadam se da ovaj vodič će se prilagoditi na druge jezike i tehnologija jednako dobro.

Rješenje ću dati će se vrlo labavo ovisno o vrsti prerade mi bismo je potrebno za postizanje no to ne mora biti istinito kroz cijeli članak ja ću promijeniti stvari za jednostavnost, ili da proizvode više zanimljivih scenarije korištenja.

Ove virtualiziranog okruženja koje će se izvoditi na Windows strojevima jer to je ono što većina ureda pokrenuti. Obradu da uredskih strojeva ne bi trebali miješati s osobljem pomoću tih strojeva, trebao bi ne zahtijevaju održavanje u stroj, i biti lako razmjestiti na nove strojeve kao što su postali dostupni. Također, novi virtualni strojevi ne bi trebali zahtijevati dodatne konfiguracije, jer to uvelike smanjuje skalabilnost i jednostavnost u kojoj grid sustav se može produžiti.

Zašto Postavite Grid Computinga Office?

Prvo vam svibanj biti razmišljanje, zašto ne samo koristiti resursa računalnih oblak, kao što su Amazon EC2 platformi ? Pa razloga bi moglo biti više, na primjer:

  • Nećete povjeriti određene podatke okoliš cloud computing
  • Ne možete staviti određene podatke u okoliš cloud computing za pravnih razloga (npr. podaci izlaska iz zemlje), potencijalno za pravnih razloga, npr. NHS zapisa.
  • Želite li zadržati svoje jedinice za obradu u blizini i imaju potpunu kontrolu nad hardvera previše
  • Nemate sredstva za pokretanje projekta oblak primjeraka
  • Vaš ured ne imati vezu na internet, a stoga i nije moguće koristiti oblak resursa
  • Vi ne kao kiša, oblaci sugeriraju kiša, pa vas i daleko

Siguran sam da popis bi mogao nastaviti, ali mislim da je to dovoljno za sada.

Prednosti Grid Computing Office

Pa, omogućuje učiniti neke matematike (i fizike u pravom stilu omogućuje napraviti neke pretpostavke brišući). Zamislite da imate veliki debeo obradu poslužitelju koji izvodi 100 radnih mjesta dnevno. U svom uredu imate 50 strojeva koji su miruje 16 sata na dan, svaki od ovih strojeva je 10% kao snažan kao debeo obradu Sever. (Svi rezultati ovdje su zaokruženi na podcijeniti povećanje performansi).

Dakle, 1 stroj * 10% snage * 2 / 3 vremena = 0,067 odnosno 1 desktop obrade u stanju mirovanja vrijeme mogli obraditi 6 puna radnih mjesta dnevno.

Ako sada skali ovo gore je potrebno 15 u stanju mirovanja stolnih računala do procesa što više radnih mjesta dnevno kao svoj ​​glavni obradu poslužitelj radi.

Tako je u našem uredu praviti od 50 strojeva možemo povećati našu moć obrade od 1 poslužitelja do 4 pune obradu poslužitelja, ili bismo mogli biti za obradu 400 radnih mjesta dnevno umjesto 100.

Obavijest, bez ulaganja u novi hardver vaša tvrtka upravo je povećala svoju sposobnost skupne obrade 4 puta! Potencijalno ćete povećati svoju moć korištenje, ali u većini uredima sam bio na strojeve uglavnom ostaju na prekonoćne ionako, tako da bi mogli vidjeti kao zeleno inicijativu.

Ostale prednosti također znači da je ulaganje u nove (ili ažurirati) obrada poslužitelja može kasniti ako vaš uredski strojevi su dostatni i da kao da poboljšate moć vaše uredskih strojeva vašeg ureda mreže postaje moćniji automatski.

Tehnologije

Što vam je potrebno? (Ili točnije što sam koristiti):

  • Idle uredskih strojeva (u mom slučaju rezervnim stari Windows XP laptop)
  • VirtualBox (ili neki drugi softver virtualizacija klijenta)
  • Virtualni stroj sa PHP, MySQL running trčanje smanjiti OS, ja sam poziv ove moje Limp serveri:)
  • Poslovi pokrenuti
  • Posao poslužitelj (može biti još jedan virtualni stroj negdje)

Tipični poslovi

Vrsta posla da je ovaj sustav dizajniran je za pokretanje je kako slijedi:

  • Sustav prima popis podataka o kojima trebamo uskladiti i vratiti rezultate
  • Odgovarajući uključuje provjeravanje / traži više (dosta statički) izvori podataka
  • Rezultati izvora podataka može zahtijevati dodatne provjere, spajanje, provjeru dodatnih izvora podataka kao odgovor na rezultate
  • Podaci se vratio s jedan zapis prema zadanim, u potpunosti potvrđene i obrađuje
  • Svaki zapis u posao je neovisno od ostatka

Tako je u osnovi smo gledajući radi poslove koji zahtijevaju mješavinu baze podataka upiti i neki broj crunching, prilično tipičan scenarij u poslovnom okruženju.

Grid rješenja nisu samo korisno za obradu radnih mjesta ove vrste. Uglavnom, bilo koji proces koji se mogu podijeliti u nezavisne jedinice mogu se izvoditi paralelno. Pogledajte ovaj Wikipedia primjere i više informacija: Grid Computinga , ali nekoliko poznatih primjera su SETI @ home i BIONC . Postoje okviri za trčanje računalne mreže, a to su dobro vrijedan obličje.

Što ćemo postići?

Do kraja ove članke nadam se da ću pokazati da uvođenje ured mrežu ne mora biti jako skup ili dugotrajan. Im 'idući u raspraviti:

  • Postavljanje sustav za kontrolu, posao konfiguracija
  • Stvaranje odgovarajuće obrade virtualni stroj
  • Kako postaviti sustav na Windows računalu
  • Osiguranje ste koristeći najnoviju koda i podataka
  • Implementaciju i vrednovanje
  • Pogled u budućnost

Ja ću biti zgrada (ok sam sagradio, tada je napisao ovaj) primjer primjene testirati koncepte na lokalnom računalu koristite Windows XP i moje 'GridMachine "virtualni stroj. Moj posao poslužitelj kontrole će biti moj glavni stroj koji traje Fedora 11 .

To je ni na koji način značilo da pokažu potpuno radni robustan sustav, njegova je značilo više od demonstracija i opisala pokazuju da se takve stvari se može postići u relativno kratkom vremenu i uz male troškove. Molimo, budite slobodni poslati mi komentare, ispravke ili poboljšanja i ja ću obaviti moj najbolji to držati ovaj članak ažurirati kako bi se slagala.

Sljedeći put

U dijelu 2 ću početi gledanjem na sustav za kontrolu, i gledati kako u posao bi trebao biti konfiguriran kako bi se postigla najveća količina prerade, dok bi se osiguralo da svaki posao obrađuje bez iznimke.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 2

Do , petak 4. prosinac 2009 11:23

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

U 1. dio sam dao pregled sustava i tehnologija ću koristiti kao i objašnjeno neke od potencijalnih razloga zašto bi želite napraviti ureda mrežu.

Upravljanje poslom

Ako tvoj 'idući u biti pokrenut radnih mjesta onda idete da je potrebno na neki način upravljati njima. Vaš posao sustav upravljanja (na svom poslu poslužitelj) treba se stvarno dobro osmišljenog prije nego pokušate pokrenuti ureda mrežu. Dakle prvo, što su zadaci za sustav upravljanja posao:

  • Podijelite posao na zahtjev radnika
  • Recite radnici koju vrstu radnih mjesta za pokretanje
  • Praćenje radnih mjesta
  • Osigurati da radna mjesta samo pokrenuti jednom
  • Osigurati posao podatke radnika, ili ih barem reći gdje da biste dobili Internet

Sustav također mora biti proširiv, rješenje koje radi za sada u jednom slučaju može se produljiti za pokretanje nekoliko tipova radnih mjesta kao poslovni vidi vrijednost u mrežu rješenje. Na primjer, radna mjesta mogu dobiti prioritete, više od jednog posla vrste mogu postojati (tj. više kod baze), na kraju vi svibanj čak i pokrenuti nekoliko različitih radnik strojeve koji su optimizirani za svaku vrstu posla (iako to ne odmaknuti od "generičkih radnika 'ideju). Uvijek pokušajte razmišljati o budućnosti, kada razvoja sustava, kratak viziju pojam može dovesti do dugoročno frustracije i povećanje vremena razvoja.

Posao poslužitelja

Idemo na potrebu negdje kontrolirati poslove iz, to bi trebao biti jedini sustav u mrežu koja ima fiksni Resource Locator, biti da se IP adresa, ime hosta, URL (koristeći interni DNS), itd. To je zato što radnici moraju znati gdje se mogu pogledati za radna mjesta, radnici moraju pronaći sustav za kontrolu (ne sustav za upravljanje naći radnika).

Posao poslužitelju koji se ne stvarno imati komplicirano zadatak (u svakom slučaju osnovni sustav), to treba pohraniti popis radnih mjesta, iz ruke posla, dobiti rezultate, i nakon toga ih spremiti za kasnije pretraživanje. Kako tih dijelova (kao što je "iz ruke posla ') su definirane može biti vrlo osnovni. Kasnije možemo proširiti sustav uključuje administracijsko sučelje za dodavanje, uređivanje, brisanje, obustaviti radnih mjesta ali to je izvan ove vježbe.

Nema razloga onda da vaš posao poslužitelj ne može biti virtualni stroj radi u svoju glavnu obradu poslužitelj pod uvjetom da ne odvoditi previše sredstava iz njega. Poslužitelj posao, međutim ne treba visoku dostupnost, ako se ide dolje u petak navečer ćete izgubiti cijeli vikend obrade, potencijalno troška vam nekoliko tjedana u vrijednosti od procesorskog vremena (u odnosu na svoje glavne obradu server sami) . Vi svibanj ištanje to uzeti u obzir stavljajući svoj posao poslužitelj na teret uravnoteženom okruženje za visoku dostupnost.

Basic Setup

Osnovne postavke za svoj ​​posao poslužitelj će se sastojati od onoga što sam poziv jedan od mojih Limp poslužitelja (koja je Li Nux, m ySql, P KS). The code running on the workers will actually work out what jobs it can run by interacting with with job control system databases. Later on we could create a web service and actually hand out jobs rather than having the workers do the hard work themselves, but for now we'll continue using the KISS principle (Keep it Simple, Stupid!).

So, lets create three mySQL tables to deal with jobs. These will be `jobs`, `jobRecords`, and `jobResults`.

jobs table Here I'm using SQL Buddy a great little alternative to phpMyAdmin just because its easier to install on centOS (for others see: 10 Great alternatives to phpMyAdmin )

This table consists of 5 simple fields,

  • id: Uniquely identify the job
  • name: Could be a client reference, or any number of other identifiers
  • Status: You need to know where the job is at, eg
    • 0: Not started
    • 1: Picked up
    • 2: Completed
  • started_by: Who's started doing the job? This isn't entirely required but is a nice to have. I'd suggest tracking workers by their IP address on your network
  • started_at: When did the worker start the job? By tracking jobs that have not completed within X amount of time we know we need to pick up the job once again and start processing by another worker. Workers could stop processing/go offline for any number of reasons, power failure, crash, network loss, etc.

It is easy how this table could be extended with a few additional fields to allow for statistics tracking, a finish time column to see how long the job took, a counter to see how many workers picked up the job (obviously this needs to tend to 1), job priority, the list can go on and on. In more complex job scenarios it would be possible to specify how much memory the worker would need access to (and therefore only use suitable workers), or even what type of worker would be required.

Lets add a few example jobs:

example jobs

The next table again is quite simple to understand, these are our job records. They are linked to the main jobs table by a column `jobs_id`. The make up of this table very much depends on the data that you need to supply to your workers, lets make a very simple example where we have four columns:

  • id: ID of the record
  • name: Person's name
  • address: Person's address
  • jobs_id: The job ID that this record is linked to

The third and final table consists of a results table, it has much the same make up as our records table, and with the addition of some columns could be part of the records table:

  • job_record_id: Link the result to the job table
  • result: The result data

…and that's all you need for job control! (albeit at a very basic level) In my case I'm pointed to another table where my data to process was located, but this could just as easily been a file, parameters to run simulation code, you name it.

Selecting a job

Kao što je navedeno ranije, radnici će raditi svoj posao upravljanja za nas, za sada, tako da svi trebamo stvarno učiniti je pronaći posao koji treba obrada i dobiti informacije. Kako bismo to učinili? Pa pokupiti naše kriterije za odabir posao i tražiti poslove, u SQL sam sljedeće:

  1. Uzmite bilo koje poslove koji nisu označeni kao potpuni, ali od naših radnika i resetiranje ih (zamjena __ME__ s identifikatorom, najlakše bi se IP adresa):
      UPDATE `radnih mjesta` SET 'status' = 0 gdje 'status' = 1 i `started_by '= __ME__; 
  2. Koristeći naše kriterije odabira posla, odaberite posla i reći da je ovaj sustav kontrole radnik bavi se:
      UPDATE `radnih mjesta` SET 'status' = 1, 'started_by' = __ME__, `started_at '= NOW (), gdje' status '= 0 ili
     ('Status' = 1 i `started_at`> DATE_SUB (sada (), interval X HOUR)) ORDER BY `id` ASC; 

    Do grabbing radna mjesta koja nisu vratili rezultate u X količinu vremena koju bi se osiguralo da su svi poslovi izvoditi u slučaju radnika pad ili ide IZBEZUMILA.

  3. Sljedeća zgrabite posao detalja slijedi zapisa sami:
      SELECT * FROM `radnih mjesta 'gdje' started_by '= __ME__ LIMIT 1;
     SELECT * FROM `job_records 'Gdje' id '= __JOBID__; 

Po završetku posla mi umetnuti naš rezultat bilježi i označite posao završi. Sjetite se kao poslovi može obustaviti / nastaviti u bilo koje vrijeme dopustiti neke robusnosti u svom pismu. To bi moglo biti da je zadatak obustavlja pola puta kroz ažuriranje sustav za kontrolu, tako da provjere broj zapisa u posao i broj rezultata spremljene natrag u sustav za upravljanje bi mudar potez.

Osim toga, dok ovo pokazuje kako radna mjesta mogu se odabrati i upravlja iz SQL upita okvira te bi trebao stvarno biti sažetaka svoj ​​posao kontrole, tako da ako se odlučite prebaciti na korištenje web-usluge, datotečni sustav temeljen XML , ili bilo koje druge broj sustava neće utjecati na broj iznad njega.

Posao konfiguracije

Sljedeći aspekt razmotriti je posao veličine i konfiguracije. By igranje s posla konfiguracije možemo štrajk izvrsnu ravnotežu između brzine, proces replikacije i pouzdanost. Uzmi scenarija ofa par:

  1. Poslovi uzeti 1 dan svaki pokrenuti: To znači da radnici trebaju 15 dana za obradu svaki posao (sjetite se 10% snage za 2/3rds vremena). To očito nije mudar konfiguraciju, vaš posao je veličina način prevelika! To bi se barem dvostruko vrijeme da biste dobili posao obrađen treba početni radnik ide IZBEZUMILA (vrijeme pokupiti da ga nije vratio rezultat plus preradu vrijeme). U idealnom biste imati barem jedan puni posao jednostavno izbrisani do kraja svakog dugog mirovanja razdoblje, na taj način zadržite posao navlake preko au najgorem slučaju posao bi se dva dana postupak bi trebao ići prvi nedostaje.
  2. Poslovi uzeti 1 minutu za pokretanje: To znači da radnici potrajati oko 15 minuta pokrenuti svaki posao. Dok to u početku može činiti idealnim, dobit ćete dodatni posao za obradu vrijeme ručka, pauze za kavu, sastanci, itd. ovaj scenarij stavlja pritisak na drugim područjima vašeg sustava i uvodi svoje probleme. Na primjer, prvo svoj setup / vrijeme obrade omjer je ići desno dolje, dakle gubitka učinkovitosti sustava. Vaša mreža će biti stalno struji posao informacije raznih radnika frustrirajuće osoblje koji su dong svoje svakodnevnom radu. Također ćete uložiti više pritisak na vaš poslužitelj posao obrade kao što je na jelo na puno i puno malih komada rada na regularnoj osnovi. Na kraju, u ovoj situaciji ako je vaš posao poslužitelj odlazi dolje ćete stvoriti ogroman leđa dnevnik nedovršenog posla, dok veći radnih mjesta moglo bi za nastavak obrade blaženo nesvjestan da je posao poslužitelj poteškoća.

U stvarnosti neće biti nitko idealna konfiguracija za grid postava, puno ovisi o raspoloživim sredstvima, vrste posla, posao vrijeme obrta zahtjeve, mreže sposobnost, i tako dalje. No neke smjernice će biti:

  • Veličina radnih mjesta tako da svaki radnik može dobiti preko najmanje 3-4 novih radnih mjesta u roku od 15 sati (najduže vjerojatno mirovanja vremenskom razdoblju)
  • Igrajte se s posla veličine, tako da postava vrijeme postaje prilično beznačajan u odnosu na vrijeme obrade (imajući u vidu gore navedene točke).
  • Ako posao ne dovrši u dvokrevetnoj iznos od vrijeme (možda manje), možete očekivati ​​da će završiti to pretpostaviti da je njegov nestali IZBEZUMILA i početi obradu s drugim radnik. To znači da ćete možda morati pričekati i do tri puta normalne dužine posao za to dovršiti (moguće više, ako naknadno posao ne uspije). Vi svibanj želite smanjiti ovaj put, ali budite oprezni da ne previše smanjiti kao što svibanj početi umnožavanje prilagodbom na regularnoj osnovi.
  • Poslovi treba biti neovisna od vanjskih uvjeta koliko je god moguće. Posao poslužitelja, na primjer, samo treba kontaktirati na početku i na kraju svaki posao.
  • Ne prožeti vaše mreže, to će imati dvije negativne posljedice, vaše dnevne osoblje će pronaći putem mreže frustrirajuće i problemi mogu biti iskusni sa vezama iz vremena problem koji će se samo pogoršavati kao što skali vaše mreže.
  • Osigurati radna mjesta mogu se izvoditi na svojim radnicima. Ako poslovi postaju previše memorije intenzivne, odnosno prostor na disku intenzivne poslove će početi prekidanja i jedina stvar koju ćete primijetiti je pad broja radnih mjesta obrađuju bez pravi razlog zašto.

Podnošenje Rezultati posao

Prilikom podnošenja rezultate posao važno je da provjerite da rezultati nisu poslali drugi radnik, pogotovo ako je trenutna radnik je bio uspavan za neko vrijeme.

Kada se rezultati dostavljaju se osiguralo da se broj rezultata utakmica broj zapisa u posao.

Kao što je navedeno ranije, i ne može se više istaknuo, graditi tolerancija kvarova u posao pretraživanja i rezultati podnošenje. Radnici mogu (i najvjerojatnije će se) otići u suspend modu u većini nezgodno puta i to treba biti catered za. Također još jednom sažetaka daleko rezultata podnošenje pomoći će razonoditi za buduće promjene u sustavu kontrole posao puno lakše da se bave.

Rezime

U ovom section smo gledali na ono što poslužitelju posao kontrole treba učiniti i kako da biste dobili vrlo osnovni sustav postavljen. Razgovarali smo o tome kako da biste preuzeli posao iz sustava kontrole i kako najbolje konfigurirati radnih mjesta da biste dobili najviše naš vašeg sustava Office mrežu. Da biste završili, odlomak ili dva o podnošenju rezultata natrag poslužitelju posao nadzora je predstavljena.

  • Poslužitelj posao kontrole upravlja radna mjesta i osigurava da su sve radne jedinice dovršen
  • Do sažetaka odaberite svoj posao / rezultat podnošenje možemo promijeniti tehnologiju kontrole poslužitelja bez puno problema
  • Konfigurirajte svoj posao kako bi se osiguralo da su pokrenuti brzo i učinkovito, bez stavljanjem previše pritisak na svoje mrežne infrastrukture, a bez umnožavanje prilagodbom na regularnoj osnovi.
  • Uvjerite se da ste izgraditi tolerancija kvarova i pogreške checking u svoje rutine, radnici mogu suspendirati i nastaviti, a najviše nezgodne puta. Ne zaboravite da provjerite je li rezultati već podnio drugi radnik.

Sljedeći put

U dijelu 3 ćemo stvoriti naš virtualni stroj za obradu i postavljanje naših prozora strojevi postati mirovanja radnog vremena radnika.

Ured Grid Computinga koristeći virtualnim okruženjima - dio 5

Do , petak 4. prosinac 2009 11:03

Uvod

Radim u tvrtki gdje smo pokrenuti mnoge skupne poslove obrade milijune zapisa podataka svaki dan i Razmišljao sam nedavno o svim strojevima koji sjede oko svaki dan radiš ništa za nekoliko sati. Ne bi li bilo dobro ako bismo mogli koristiti one strojeva za poticanje obrade snagu naših sustava? U taj skup članaka idem gledati na potencijalne koristi od zapošljavanja ureda mrežu koristeći virtualiziranog okruženja.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! No matter what you tell colleagues about how much extra work your system is going to do unless you have numbers to back this up your guarantees are nothing. So,

  • how many records can you process currently? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

There's also additional questions:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • What advantages do you hope/expect to get from a grid system?
  • Are your office machines capable of running the jobs?
  • Are your (or can you jobs be converted) to wrok in this style of running?

The last major point is to take your time on any major change like this. Update your processing code to work using the new methodology, benchmark again. Possibly set up your processing server to run a virtual machine, after all your processing server will just be another worker (just a very powerful one relatively). Allow the new process to settle.

Deployment

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

What if you want to stop your workers from running at some time? They are all out there running, regenerating, and trying their best to process data like hungry insects. The answer may seem obvious but its worth adding just in case its overlooked. Simply edit your processing script with an exit(0) or die() or some other statement to kill your processing job. An important reason why we always try to update to the latest processing script before any run!

Demonstration System

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. 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.













Panorama Theme by Themocracy

9 posjetitelja online sada
7 gosti, 2 robota, nije vidljiva 0 clanova
Max posjetitelja danas: 16 u 02:02 UTC
Ovaj mjesec: 16 u 2011/01/09 02:02 UTC
Ove godine: 130 u 28-03-2011 10:40 UTC
Sva vremena: 130 u 28-03-2011 10:40 UTC