Dinamički dodavanje stranice Zend_Navigation kontejner na vrijeme izvođenja

By , četvrtak 7 siječanj 2010 10:50 pm

U nastavku na moj zadnji post o Zend_Navigation i rute zahtjeva za sitemap.xml na prilagođeni kontroler / djelovanja , ovaj post je o dymnamically dodavanje stranice na Zend_Navigation kontejner na runtime / script izvršenja.

Njegov sve dobro i dobro navodeći svoje stranice u ini ili xml datoteku, ali u nekom trenutku ćete se da su promjene stranice na Vašoj web lokaciji koje želite kao dio izbornika, sitemap, ili se uključiti u svoje povratna stazi. Stoga ono što trebate učiniti je dodati na naše stranice Zend_Navigation kontejner u runtime. Primjeri za to bi dodavanje vijesti, blogu ili stranici komentari, itd.

Nastaviti čitanje 'Dinamički dodavanje stranice Zend_Navigation kontejner tijekom izvršavanja' »

Rute zahtjeva za sitemap.xml na prilagođeni kontroler / djelovanja

By , srijedom 6. siječanj 2010 12:13 am

Da bi do izravnih zahtjeva za / sitemap.xml na prilagođeni kontroler i djelovanja u vašem Zend okvirnog primjene jednostavno dodajte sljedeće u vašem application.ini ili alternativni konfiguracijsku datoteku (npr. koristim navigation.ini):

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

Primjer koda za outputting može vidjeti stvaranje djelovanjem u odgovarajućim kontrolerom (npr. moj sitemap leži u indeks kontroler, kazalo djelovanja):

 < php
 Klasa IndexController
     proteže Zend_Controller_Action
 {
     / **
      * Renders Sitemapa na temelju Zend_Navigation postava
      * /
     javnu funkciju sitemapAction ()
     {
    	 echo $ this-> View-> orijentacija () -> kazalo ();
    	 $ This-> View-> Izgled () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Sitemaps može brzo i jednostavno biti generiran korištenjem Zend_Navigation , veliki brzi tutorial (i općenito vrlo korisno za Zend okvirnim tutoriali) je Zend baca - Dinamički stvaranje izbornika Sitemap i prezle .

Zend Framework Per-based postavke modula

By , u petak 1 siječanj 2010 10:40 pm

Napravio sam Followup To ovaj post koji zahtijeva manje konfiguraciju, pogledajte Module prema prijelom - Zend Framework .

Kada koristite Zend okvir s modulima, njegova očito da ako koristite različite (sub-) Stranice off istom zahtjevu ne nužno žele iste izgleda skripte za svaki dio. Odlučio sam ići sa sljedećim stranicama strukture:

  / Zahtjev
     / Kontroleri
         ...
     / Modeli
     / Modula
         / Default
             / Kontroleri
             / Layout
                 / Skripte
             / Views
                 / Skripte
         / AnotherModule
             ...
     / Skripte

Problem je postavljanje izgleda skripte na po-modula osnovi. Odgovor je stigao kroz korištenje Akcijski Branitelja. Podešavanje izgleda na po osnovi modula uključuje tri koraka:

  1. Application.ini (ili slična konfiguracija setup):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / planovi / skripta"
     default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / planovi / skripta"
     member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / članice / izgleda / skripta"
     affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / affiliate / izgleda / skripta" 
  2. Kreirajte svoj Branitelja Action:
      <? Php
     / **
      * Postavlja izgleda put na po osnovi modula
      *
      * @ Autor Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 2010-01-01
      * /
     Klasa Pro_Controller_Action_Helper_SetLayoutPath
         proteže Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Određuje raspored put temelji na modulu
          * /
         javnu funkciju preDispatch ()
         {
        	 Modul $ = $ this-> getRequest () -> getModuleName ();
    
    	     if ($ dizanje = $ this-> getActionController ()
    	                        -> GetInvokeArg ('dizanje')) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ module] ['resursi'] ['izgled'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ Config [$ module] ['resursi'] ['izgled'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('raspored')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. I na kraju boostrap je pomagač akcije:
      ...
         / **
          * Postavlja se izgleda skripte na po osnovi modula
          * /
         zaštićeni funkcija _initLayoutHelper ()
    	 {
    	     $ This-> dizanje ('frontController');
    	     $ Izgled = Zend_Controller_Action_HelperBroker :: addHelper (
    	         Novi Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doktrina: DateTime zadani SADA ()

By , srijeda 30. prosinca 2009 18:30

Ive 'bio bore s postavljanjem sheme baze podataka za novi Zend okvirnog projekta. Ja sam pomoću pokušavate koristiti doktrinu ORM za moje baze podataka modela. Trebam li postaviti shemu tako da mi je dopustio da postavite zadanu datum i vrijeme za a `Datetime javni izdaci stupcu, npr. kada dodajete novu poruku sam dobiti trenutnu vremensku oznaku. Nakon mnogo traženja i eksperimentiranja sam našao rješenje pa sam ga dijele.

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žurirani:
         Ime: last_updated
         Vrsta: timestamp
         format: Ymd H: i: s
   stupci:
     id:
       Vrsta: cijeli broj
       Primarni: istina
       autoincrement: istina
     ime: string (255)
     e-mail: string (300)
     Poruka: string (2000)

Ako s druge strane ne žele javni izdaci javni izdaci updated_at stupac možete koristiti sljedeće:

 Poruka:
   actAs:
     Timestampable:
       urednik:
         Ime: created_at
         Vrsta: timestamp
         format: Ymd H: i: s
       ažurirani:
         osobe s invaliditetom: istina
   stupci:
     id:
       Vrsta: cijeli broj
       Primarni: istina
       autoincrement: istina
     ime: string (255)
     e-mail: string (300)
     Poruka: string (2000)

PHP Design Patterns - Observer Uzorka

By i utorak 29. prosinca 2009 10:02

Ive 'bio čitanje Head First Design Patterns u zadnje vrijeme i odlučili napisati neke obrasce kao PHP primjera za moju vlastitu korist. Prvi da sam odlučila kod gore je Observer Uzorak . Formalna definicija Observer Uzorak je:

Promatrač uzorak (podskup asinkronim objavi / pretplati uzorak ) je softver dezen u kojem objekt , koji se zove subjekt, vodi popis svojih uzdržavane članove obitelji, zove promatrači, te ih automatski obavještava o svim promjenama stanja, obično pozivom jedan od njihovih metoda . To se uglavnom koristi za implementaciju distribuiranih sustava događaj rukovanje.

Kao i sustavi postaju više labavo povezanih pazeći da se događaj dogodi kad sve sustave koji zahtijevaju znanje o tim promjenama obavijestiti. Na primjer, blog post, nakon spremanja post možda ćemo morati ažurirati tražilicu (npr. Lucene), ažurirati naše sitemap, oznake, e se pretplatili korisnicima, itd. promatrač uzorak omogućava programerima za dodavanje slušatelje bez uređivanja svoju postojeću objekt . Primjenom promatrača (tj. tražilice ažuriranje promatrač, sitemap generator, itd.) na temu (tj. blog post uređivanje sustava) možemo dopustiti da se obavljati sve potrebne nadopune bez ikakvih promjena.

Nastavak čitate 'PHP dizajn obrazaca - Observer pattern' »

Ured grid uporabom virtualnih okruženja - Dio 4

By i petak 4. prosinca 2009 11:59

Uvođenje

Radim u tvrtki u kojoj smo pokrenuti mnogo batch poslovi 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. Zar ne bi bilo dobro ako bismo mogli koristiti one strojevi podupirati procesorsku snagu našeg sustava? U ovom skupu članaka idem pogledati potencijalne koristi od zapošljavanja ured mrežu koristeći virtualiziranog okruženja.

U sklopu 3. stvorili smo naš virtualni stroj za obradu i postaviti Windows strojeva postati miruje radnim vremenom.

Trčanje najnoviji kod

Neizbježno nakon što napravite svoju poslovnu logiku radnicima će se promijeniti, bugovi će se naći, brže učinkovitije kod će biti proizvedena ostavljajući svoje radnici sjedili oko obrade podataka pomoću stari smelly kod . Kako, dakle, mi bismo osigurali da uvijek koristite najnoviju verziju i najveći naših obradu skripti?

Postoji nekoliko jednostavnih načina vrlo lako bismo mogli to učiniti, trik, međutim, da se smanji procesorskom snagom i mrežnog prometa u postizanju toga. Krenimo s najjednostavnijih rješenja i unaprijediti polako tijekom nekoliko iteracija.

Prva metoda da bi se jednostavno spojiti na naš poslužitelj posao kontrole (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 to nešto, kako o stvaranju rsync skriptu i koristeći da svaki put umjesto toga? Ili ono o stavljanju naš najnoviji obradu skriptu u subverzija odjavljivanje kod na početku i onda samo osvježavamo koda na svakoj vožnji ( svn ažuriranje )?

Na kraju možemo završiti s bash skripte (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 se trenutno obrađuje, izlaz"
 drugo
     echo "Job ne izvodi, start now"
     CD / put / do / raditi / kopiju
     svn ažuriranje
     php yourJobProcessingScript.php
 fi 

Sada možemo biti sigurni da sa svakom vožnji svakako radite najnovije koda. Mi smo osigurati tako osvježavamo bazu koda svaki put kada obavljanje vožnju i smanjenje mrežnog prometa za samo prijenos datoteka razlike preko naše mreže.

U mom demonstraciju postava, ja sam točno kao gore. Subversion je Installer na moj poslužitelj posao obrade i jednostavno sam izvukao najnoviji broj od 'radničku grane pomoću' svn ažuriranje '. Također sam dodao oznake broj verzije na moj obrade skripte koja je vratila u bazu podataka kao dio rezultata povratka. Na taj način sam mogao vidjeti da je moj broj je se ažurira svaki put kad sam kopirati moje deblo u, odnosno radnika podružnice da sam definitivno trčanje najnoviji skriptu za obradu.

Koristeći najnovije podatke

Ako vaš posao obrada omogućuje korištenje izvora podataka zatim u nekom trenutku to će biti ažuriran previše. Osim ako ste pozvati svoje izvore podataka na vrlo rijedak temelju idete poplava svoju mrežu s prometom čim radnici početi prikazivati ​​donosi sve do zastoja. Za moje rješenje odlučio sam da želim da se presele svoje izvore podataka okolo sa mojim VMS.

Držite ste konji tamo! Šta ako moji izvori podataka su ogromni? Pa ovo je stvarno slučaj koliko podataka se radi? To može biti isplativija instalirati dodatni veći hard disk u svakom stroju nego na kupnju dodatnog poslužitelja za obradu. To je pitanje proračuna i do posla odlučiti. To možda da vaši izvori podataka su toliko velike da je njegova samo unfeasible zadržati tu količinu podataka u svom radnika strojeva. U tom slučaju, što biste učinili? Pa smo mogli gledati na raspisivanje lokalnih podataka o poslužitelju, ali to može izazvati probleme s mrežom. U tom slučaju mrežnog sustava kao što to može postati nerealno uključiti u uredskom okruženju. Također može biti da možete gledati u alternativne trčanje strategija, na primjer samo poziva svoje radnike između 8 navecer i 6 sati ujutro svake noći i / ili prigu izvor podataka zahtjeva.

Premještanje na recimo naše izvore podataka iznos 100GB podataka. Pa da to je vrlo malo podataka za kretanje na mreži nadopune. Kako bismo osigurali da imamo najnoviju kopiju podataka u ovom slučaju? Rsync je mogućnost, ali osobno mislim da pokrenete svoj najnoviji izvor podataka na poslužitelju posao za obradu i postavljanje to se kao majstor u replikaciji (s lijepom dugom bin dnevnik) može biti način da se:

odgovor Postavljanjem svaki svojim radnicima se kao rob na posao kontrolnih poslužitelja ažuriranja svojih podataka izvori bit slijevati dolje lijepo svojim radnicima bez velikog povećanja aktivnosti mreže (tj. ako ste izvršili veliki ažuriranje podataka i sve svoje radnike u kick odjednom). To ima prednosti u odnosu na rsync u koju ne bi dobili dugo pauzu prije svakog posla, kao i baza podataka obnove, mysql daemon na radniku će se stalno ažurirati svoje podatke, a obrada se nastavlja.

Ovo je način kako sam postaviti pokazni poslužitelj. Da biste postavili replikaciju sam slijedio upute na MySQL stranice ( Postavljanje replikaciju ) te u roku od 20 minuta sam imao inital radnika posao reproducirajući kontrole poslužitelja podataka. Za svaku sljedeću radnika replikacija postavke i proces radio svaki put kad je VM kopirati.

Rezime

U ovom dijelu članka, promatrali smo kako se lako i bezbolno je da bi se kod obrade u tijeku je using rsync ili subverion (SVN) da radimo i smanjenje mrežnog prometa na istoj time. Također smo razgovarali o tome kako da bi izvor podataka podatke up-to-date dopuštajući da se slijevati dolje svaku od vaših radnika. Tako smo područje osigurati da držimo korak s poslovnom logikom i informacija u našem sustavu uredskog mrežu. Očito će biti bezbroj alternative obavljanje tih zadataka, ali ovdje su dva jednostavna primjera koji pokazuju kako je lako rješenje je doći.

Sljedeći put

U završnom 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 što sam uspio stvoriti.

Ured grid uporabom virtualnih okruženja - Dio 3

By i petak 4. prosinac 2009 11:37 pm

Uvođenje

Radim u tvrtki u kojoj smo pokrenuti mnogo batch poslovi 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. Zar ne bi bilo dobro ako bismo mogli koristiti one strojevi podupirati procesorsku snagu našeg sustava? U ovom skupu članaka idem pogledati potencijalne koristi od zapošljavanja ured mrežu koristeći virtualiziranog okruženja.

U dijelu dvije smo gledali na poslovima server će se izvoditi i kako radna mjesta bi trebao biti konfiguriran kako bi se postigla najveću količinu proizvodnje uz istovremeno osiguravanje da svaki posao obrađuje bez iznimke.

Postavljanje radnik - Limp ili poslužitelj

Sljedeći korak u procesu je da postavite svoje virtualne radnika. Za to ću koristiti instalaciju CentOS koristeći VirtualBox. Idem instalirati MySQL i PHP na poslužitelju, također poznat kao šepati (Li nux, ySQL m, P KS) Servera (ja svibanj imati je napravio to ime gore).

  • Instaliranje VirtualBox na Windows stroj (slijedite link)
  • Preuzmite i instalirajte CentOS (trenutna verzija 5.3) unutar stvorio virtualni stroj

Nema smisla mi ide na to da je vjerojatno 1000 's velikih tutoriali vani (OK, evo jednog: Izrada i Managing CentOS virtualni stroj pod VirtualBox ). Važno je imati na umu mislim da sam nazvao moj virtualni stroj GridMachine.

Što se tiče moje izbor virtualizacije klijenta i operativnog sustava otići tamo nije veliki razlog za svaki izbor. VirtualBox je nešto što sam koristiti na mom stroju i podržava tri glavne operativne sustave. Odabrao sam CentOS kao i njegov dobar stabilan OS, a ja ga koristiti na moj vlastiti web server. Ja sam veliki vjernik u pravom alata za posao (iako sam primjenom "koristiti najbrži i najlakši za što biste mentalitet ovdje), pa ako operativni sustav pokreće X kôd 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 zasebno, što je nešto što ne want.By pomoću DHCP ne trebamo konfigurirati mrežne postavke pojedinačno za radnike strojeva, DHCP će predati iz IP za vas. Zbog toga možete kopirati virtualni stroj o uredu bez brige o postavljanju svakog od gore (to poboljšava skalabilnost i smanjuje radnika 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 puno drugdje. To bi moglo biti pametno postaviti sve svoje radnike na drugom subnet tako da možete barem vidjeti koliko su strojevi trčanje. Također ćete trebati postaviti svoje strojeve na duge zakupa ili najma neograničeno DHCP.

Kako pokrenuti Jobs na radnika

To je zanimljivo područje i postoji nekoliko valjane metode za obradu radnih mjesta na radnika. Ovdje ću samo raspravljati o dva najočitija:

  • Neprestano trčanje skripte: skripta, bilo skriptu ili PHP skripta izvršava na jednom radniku i radi kao dio beskonačnu petlju. Ja sam diskontiraju ovu metodu kao jednu nesreći pisma i potencijalno vaši radnici će prestati raditi bez neke vrste intervencije.
  • Cron skripta temelji izvedba: svakih x minuta cron daemon započeo je poziv na svoj scenarij da se stvari događa. Bez neke provjere to bi moglo dovesti do mnogo mnogo primjeraka trčanja radnika skripte.

Moja odluka je bila da ide s cron koji započinje skriptu svaki 10 minutes. Moj skripte obavlja sljedeće poslove:

  1. Nabavite popis procesa i to za 'grep php'. Ako nije pronađena zatim nastavite.
  2. Nazovite svog posla kod, u mom slučaju bi to bilo nešto PHP temelji
  3. Radnik skripta završi svoju vožnju
  4. Spremni ići opet na sljedeću odgovarajući poziv

Moj bash skripta izgleda nešto poput sljedećeg:

  #! / Bin / sh
 Ako ps ax | grep-v grep | grep php> / dev / null
 tada
     echo "Posao se trenutno obrađuje, izlaz"
 drugo
     echo "Job ne izvodi, start now"
     php yourJobProcessingScript.php
 fi 

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

To zaključuje postavljanje radnika virtualni stroj, brz, jednostavan i jednostavno kopirati na svaki novi komad hardvera koji je primio. The 'pameću' na mrežnom sustavu stvarno nije u vizualizirati OS, njegova sve učiniti s kodom koji je namijenjen procesa radnih mjesta, posao konfiguraciji, i nastojanje da taj posao radi kada je to primjereno (tj. kada je domaćin u stanju mirovanja ).

Postavljanje sustava Windows da biste pokrenuli radnika

Prvi zadatak je riješiti naredbu potrebno pokrenuti virtualni stroj od linije prozora naredbenog. Ako ste instalirali VirtualBox u zadanom mjestu i da ste imenovali svoje radnik GridMachine onda naredba potrebna za učitavanje svoj ​​radnika je:

  "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 dopustite da se spasi državu graciozno. Drugi argument isključuje RDP tako da nije u sukobu s Windows RDP, ili dati poruku o slušanje na portu 3389. Virtualni stroj ime je mala i velika slova!

Dalje, mi ćemo morati postaviti prozore do kick off naš djelatnik VM jednom stroj je u stanju mirovanja. Da biste to učinili (u sustavu Windows XP) ćete morati ići na Start -> All Programs -> Accessories -> Alati sustava -> Scheduled Tasks kao ispod:

planirane zadatke

Zatim kliknite na 'Dodaj Planirani zadatak' je pregledavati dodati prilagođeni program. Dođite na VBoxManage skripte i kliknite ok. Raspored svoj zadatak za bilo koju od opcija (mi ćemo to promijeniti u minuti) i nastaviti. Nakon što je preskakanje sljedeći zaslon Windows će vas pitati koji želite pokrenuti ovaj zadatak, ja bih predložiti bilo 'Administrator' ili stvaranja novog privilegirani korisnik. Zapamtite da mi ne želimo se miješati sa standardnim osoblja račun na stroju u bilo kojem trenutku. Kliknite na Dalje i provjerite Prikaži napredne opcije za ovaj zadatak.

Na kraju dodajte polje pokrenuti naše vrhunske 'startvm GridMachine' STRING i osigurati koji se pokreću samo kada prijavljeni ostaje unticked. Posjetite zadatak raspored naprijed i promijeniti raspored pasti na opciju 'kad miruje', odaberite količinu vremena koju želite da uređaj u stanju pripravnosti prije prelaska na sljedeću karticu.

Konačno untick mogućnost kojem se navodi zaustaviti zadatak ako je pokrenut X količinu vremena, ali ne označite opciju da se zaustavi zadatak ako je stroj više nije u stanju mirovanja.

raspored

To je tada za kupovinu Windows host!

Rezime

U ovom dijelu smo postavili virtualni stroj djelovati kao radnik, kao i način na koji mi zovemo i izvršiti naše skripte za obradu radnih mjesta (za sebe PHP skripti). Odavde smo pogledati kako postaviti našim kopije prozora kako pokrenuti virtualni stroj u modu bez glave kad računalo postaje miruje, i spremanje svoje stanje kada korisnik nastavlja korištenja stroja. Nadam se da u ovom trenutku ste vidjeli kako jednostavan posrijedi je postaviti takav sustav i svrab da se neki eksperimenti se ide!

Sljedeći put

U 4. dijelu mi ćemo biti obličje at pomoću alata kako bi se osiguralo da ste trčanje najnoviju inačicu koda i podataka izvora, tako da dobiveni rezultati su uvijek up-to-date s najnovijim poslovnim informacijama i logike.

Ured grid uporabom virtualnih okruženja - Dio 1

By i petak 4. prosinac 2009 11:23 pm

Uvođenje

Radim u tvrtki u kojoj smo pokrenuti mnogo batch poslovi 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. Zar ne bi bilo dobro ako bismo mogli koristiti one strojevi podupirati procesorsku snagu našeg sustava? U ovom skupu članaka idem pogledati potencijalne koristi od zapošljavanja ured mrežu koristeći virtualiziranog okruženja.

Kao PHP developer ću koristiti alate da koristim svaki dan, naime, Linux, MySQL , PHP, VirtualBox i Subversion (SVN). No ja se nadam ovaj vodič će prilagoditi drugim jezicima i tehnologija jednako dobro.

Rješenje sam osigurati će se vrlo labavo ovisno o vrsti obrade bismo potrebno kako bi se postigla no to ne mora biti istinito kroz cijeli članak jer ću promijeniti stvari zbog jednostavnosti, ili proizvesti više zanimljivih scenarija upotrebe.

Ove virtualiziranog okruženja će se izvoditi na Windows strojeva budući da je ono što većina ureda pokrenuti. Obrada da uredski strojevi ne bi trebali ometati osoblja pomoću tih strojeva, treba zahtijevati nikakvo održavanje na stroju, a lako može uvesti nove strojeve kao i oni postanu dostupni. Također, novi virtualni strojevi ne bi trebalo zahtijevati bilo kakve dodatne konfiguracije, jer to uvelike smanjuje skalabilnost i jednostavnost u kojoj grid sustav može biti proširen.

Zašto uputiti Grid Computing Office?

Prvo vam svibanj biti razmišljanje, zašto ne samo koristiti resurs kao što je oblak računanje Amazon EC2 platformi ? Pa razloga bi mogao biti nekoliko, na primjer:

  • Nećete povjeriti određene podatke na cloud computing okoliš
  • Vi ne možete staviti određene podatke u cloud computing okoliš za pravnih razloga (npr. podaci izlaska iz zemlje), potencijalno iz pravnih razloga, npr. NHS zapisa.
  • Želite li da bi se procesna jedinica zatvoriti i imati potpunu kontrolu nad hardvera previše
  • Nemate sredstava za pokretanje projekta oblak instance
  • Vaš ured ne imati vezu s Internetom i stoga njegova nije moguće koristiti oblak resurs
  • Vam se ne sviđa kiša, oblaci pokazuju kišu, stoga vas držati podalje

Siguran sam da bi popis 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 široke pretpostavke). Zamislite da imate veliki debeo obradu poslužitelj trčanje 100 radnih mjesta dnevno. U svom uredu imate 50 strojeva koji su u stanju mirovanja 16 sata dnevno, svaki od tih strojeva je 10% tako snažno kao debeo obradu Sever. (Svi rezultati ovdje su zaokruženi na podcjenjivati ​​povećanje performansi).

Dakle, jedan stroj * 10% snage * 2/3 vremena = 0,067 odnosno jedan desktop za preradu u idle vrijeme mogli obraditi punih 6 radnih mjesta dnevno.

Ako sada proširili ovo gore to traje 15 nezaposlenih stolna računala obraditi što više radnih mjesta dnevno, kao vaš glavni obradu poslužitelj radi.

Dakle, u našem uredu pretvaranja od 50 strojeva možemo povećati našu moć obrade od 1 do 4 poslužitelja punih obradu serverima, ili bismo mogli obrađuje 400 radnih mjesta dnevno umjesto 100.

Obavijest, bez ulaganja u novi hardver vaša tvrtka upravo je povećao svoju skupne obrade kapaciteta 4 puta! Potencijalno ćete povećati svoju potrošnju energije, ali od većine uredima Ja sam bio na strojeve općenito ostavila preko noći u svakom slučaju, tako da bi mogli vidjeti kao zelena inicijativu.

Ostale prednosti također znači da je ulaganje u nove (ili ažurirati) obrada poslužitelji mogu biti odgođeno ako vaš uredski strojevi su dovoljni te da ćete poboljšati snagu svojih uredskih strojeva vaš ured mreža postaje jači automatski.

Tehnologije

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

  • Miruje uredski strojevi (u mom slučaju rezervni stari Windows XP laptop)
  • VirtualBox (ili drugi software virtualizacija klijent)
  • Virtualni stroj sa PHP, mySQL running trčanje smanjiti OS, ja sam zovete ove moje Limp servera :)
  • Radna mjesta za pokretanje
  • Posao poslužitelj (može biti još jedan virtualni stroj negdje)

Tipični Česta

Vrste poslova koje ovaj sustav dizajniran je za pokretanje je kako slijedi:

  • Sustav prima popis podataka na kojima se trebamo uskladiti i vratiti rezultate
  • Odgovarajući uključuje provjeravanje / potrazi nekoliko (dosta statična) izvora podataka
  • Rezultati iz izvora podataka može zahtijevati daljnje valjanosti, spajanje, provjeru dodatnih izvora podataka u odgovoru na rezultate
  • Podaci se vratio s odgovarajućim evidencijama, u potpunosti potvrdio i obrađuju
  • Svaki zapis u posao je neovisno od ostatka

Tako je u osnovi tražimo na trčanje radnih mjesta koja zahtijevaju kombinaciju baze podataka lookups i neki broj crunching, prilično tipičan scenarij u poslovnom okruženju.

Mrežna rješenja su ne samo korisno za obradu radnih mjesta ove vrste. Uglavnom, postupak koji se može podijeliti na neovisne jedinice mogu se izvoditi paralelno. Vidi ovu Wikipediju radi primjera i više informacija: Grid Computing , ali nekoliko poznatih primjera su Seti @ Home i BIONC . Postoje okviri za trčanje računalne mreže, a to su kvalitetno vrijedan obličje u.

Što ćemo postići?

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

  • Postavljanje sustava kontrole posao, posao konfiguracija
  • Stvaranje odgovarajući virtualni stroj za obradu
  • Kako postaviti sustav na Windows stroj
  • Osigurati da koristite najnoviju kod i podatke
  • 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 pomoću programa Windows XP i mog 'GridMachine' virtualni stroj. Moj posao server kontrole će biti moj glavni stroj koji traje Fedora 11 .

To se nikako ne znači da pokažu potpuno radno robustan sustav, njegova je značilo više od demonstracije i raspravu pokazuje da se takve stvari se može postići u razumno kratkom vremenu i uz male troškove. Slobodno mi pošaljite sve komentare, ispravke ili poboljšanja, a ja ću obaviti moj najbolji to držati ovaj članak ažuriran kako bi se slagala.

Sljedeći put

U dijelu 2 ja ću početi gledanjem u sustavu kontrole posla, i gledati u graditeljstvu kako bi trebao biti konfiguriran kako bi se postigla najveću količinu proizvodnje uz istovremeno osiguravanje da svaki posao obrađuje bez iznimke.

Ured grid uporabom virtualnih okruženja - Dio 2

By i petak 4. prosinac 2009 11:23 pm

Uvođenje

Radim u tvrtki u kojoj smo pokrenuti mnogo batch poslovi 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. Zar ne bi bilo dobro ako bismo mogli koristiti one strojevi podupirati procesorsku snagu našeg sustava? U ovom skupu članaka idem pogledati potencijalne koristi od zapošljavanja ured mrežu koristeći virtualiziranog okruženja.

U Dijelu 1 sam dao pregled sustava i tehnologija, sam će se koristiti i kao što je objašnjeno neke od mogućih razloga zašto biste htjeli stvoriti mrežu ureda.

Posao upravljanja

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

  • Predati poslove na zahtjev radnika
  • Recite radnika kakvu vrstu radnih mjesta za pokretanje
  • Praćenje radnih mjesta
  • Osigurati da se radna mjesta samo pokrenuti jednom
  • Osigurati radnih podataka za radnike, 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 produžiti za izvođenje nekoliko vrsta poslova što je posao vidi vrijednost u mreži rješenje. Na primjer, radna mjesta mogu dobiti prioritete, više od jedne Vrsta posla mogu postojati (tj. više kod baze), na kraju vi svibanj čak i pokrenuti nekoliko različitih radnika strojeve koji su optimizirane za svaku vrstu posla (iako to ne udaljavati iz 'generički radnika 'ideja). Uvijek nastojte da razmišljaju o budućnosti, kada razvoju sustava, kratka vizija pojam može dovesti do frustracija dužim i povećanog razvoja vremena.

Posao Server

Mi ćemo morati negdje kontrolirati svoj posao od, to bi trebao biti jedini sustav u mrežu koja ima fiksni Resource Locator, bilo da se IP adresa, ime računala, URL (koristeći interni DNS), itd. To je zato što radnici moraju znati gdje se mogu pogledati za radna mjesta, radnici moraju pronaći posao sustav kontrole (ne sustav kontrole posao naći radnika).

Posao poslužitelj sama ne stvarno imati kompliciran zadatak (u svakom slučaju osnovni sustav), to treba spremiti popis radnih mjesta, iz ruke posla, dobiti rezultate, a potom ih spremiti za kasnije pretraživanje. Kako se ti dijelovi (kao što su 'iz ruke posla') su definirane može biti vrlo osnovni. Kasnije možemo proširiti sustav uključiti 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 trčanje virtualni stroj unutar svoje glavne obradu poslužitelju pod uvjetom da ne odvoditi previše resursa od njega. Poslužitelj posao, međutim ne treba visoku dostupnost, ako to ide dolje u petak na večer idete za izgubiti cijeli vikend obrade, potencijalno koštalo par tjedana vrijedi vrijeme obrade (u odnosu na glavnom poslužitelju obradu sama) . Vi svibanj ištanje to uzeti u obzir stavljajući svoj posao poslužitelj na opterećenja uravnoteženog okoliša za visoku dostupnost.

Osnovna konfiguracija

Osnovne postavke za naš posao poslužitelj će se sastojati od što sam zove jedan od mojih Limp poslužitelja (koja je Li nux, ySql m, P KS). Kod trčanje na Thea radnika će zapravo raditi koje poslove može raditi u interakciji s posla s bazama podataka sustav kontrole. Kasnije smo mogli napraviti web servis i zapravo ruku posla nego da su radnici učiniti napornim radom sami, ali za sada ćemo nastaviti koristiti princip KISS (Keep it Simple, Stupid!).

Dakle, omogućuje stvaranje tri MySQL tablice da se bave poslovima. To će biti 'radna mjesta', 'jobRecords `i` jobResults'.

Poslovi u graditeljstvu stol Ovdje Im 'koristeći SQL Buddy veliku malo alternativa phpMyAdmin samo zbog njegova lakše instalirati na CentOS (za drugi vide: 10 Veliki alternativa phpMyAdmin )

Ova tablica sastoji se od 5 jednostavnih polja,

  • ID: jedinstveno identificiraju posao
  • Ime: Mogao bi biti referenca klijenta, ili bilo koji broj ostalih identifikatora
  • Status: Morate znati gdje je posao na, primjerice,
    • 0: Nije započeo
    • 1: pokupila
    • 2: Završena
  • started_by: Tko je počeo raditi taj posao? To nije u cijelosti potrebna, ali je lijepo imati. Sugerirao bih praćenje radnika po svojoj IP adrese na mreži
  • started_at: Kada je radnik pokrenuti posao? Praćenjem poslove koji nisu završene u roku od X iznos od vrijeme znamo da trebamo pokupiti posao jednom i početi obradu drugog radnika. Radnici mogao zaustaviti obradu / go offline za bilo koji broj razloga, nestanka struje, nesreće, mreže i gubitka, itd.

Lako je kako je ovaj stol mogao bi se proširiti s nekoliko dodatnih polja omogućuju praćenje statistike, stupac završiti vrijeme da se vidi koliko je posao preuzeo, brojač da se vidi koliko radnici pokupila posao (očito to treba imaju tendenciju da 1), posao prioritet, popis može ići na i na. U složenijih radnih scenarija to će biti moguće odrediti koliko je memorije radnik će potreban pristup (i stoga koristiti samo prikladne radnika), ili čak što tip od radnika će biti potrebna.

Omogućuje dodati nekoliko primjere radnih mjesta:

primjer u graditeljstvu

Sljedeća tablica ponovno je prilično jednostavan za shvatiti, to su naši posao zapisa. Oni su povezani na glavni radnih mjesta tablici stupac javni izdaci jobs_id '. Make up ove tablice jako puno ovisi o podacima koje trebate dostaviti svoje radnike, omogućuje učiniti vrlo jednostavan primjer u kojem imamo četiri stupce:

  • ID: ID zapisnika
  • Ime: ime osobe
  • Adresa: Osoba je adresa
  • jobs_id: posao ID koji ovaj zapis je povezan s

Treći i posljednji stol sastoji se od rezultata tablici, to je velik dio isti čine kao naš zapisima tablice, a uz dodatak nekih stupova može biti dio evidencije tablici:

  • job_record_id: Link rezultat na posao tablici
  • Rezultat: Rezultat podataka

... I to je sve što je potrebno za posao kontrole! (Iako na vrlo osnovnoj razini) U mom slučaju sam ukazao na drugoj tablici gdje su moji podaci u procesu je bila smještena, ali to bi moglo jednako lako je datoteka, parametri za pokretanje simulacije kod, ime ti je.

Odabir posao

Kao što je navedeno ranije, radnici će raditi svoj posao upravljanja za nas, za sada, pa sve što je potrebno da se stvarno učiniti je pronaći posao koji treba obradu i dobiti informacije. Kako bi smo to učinili? Pa pokupiti naše kriterije odabira posla i tražiti poslove, u SQL sam sljedeće:

  1. Poduzeti sve poslove koje nisu označene kao potpuna, ali iz našeg radnika te ih vratiti (zamjena __ ME__ s identifikatorom, najlakše će biti IP adresa):
      UPDATE za `radnih mjesta` SET 'status' = 0 gdje je 'status `= 1 AND` started_by' = __ ME__; 
  2. Koristeći naše kriterije odabira posla, odabrati posao i reći da je ovaj sustav kontrole radnik se bavi s njim:
      UPDATE za `radnih mjesta` SET 'status' = 1, `started_by '= __ ME__' started_at '= NOW (), gdje' status '= 0 ili
     ('Status `= 1 AND` started_at `> DATE_SUB (SAD (), interval X HOUR)) ORDER BY` id ASC javni izdaci; 

    By grabbing poslove koji nisu vratili rezultate u X iznos od vrijeme smo se osiguralo da su svi poslovi prikazivati ​​u slučaju radnika pad ili će IZBEZUMILA.

  3. Sljedeća zgrabite poslove detalja slijedi zapisa samih:
      SELECT * FROM `radnih mjesta` WHERE `started_by '= __ ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __ JOBID__; 

Po završetku posla smo umetnite naše evidencije rezultata i označite posao završi. Sjeti se kao poslovi mogu zaustavljanje / nastavljanje u bilo kojem trenutku omogućiti neke dosljednosti u svom pismu. To bi moglo biti da je zadatak zaustavlja na pola puta kroz ažuriranje sustava kontrole posla, tako da provjere broj zapisa u posao i broj rezultata spremljenih natrag na posao sustava kontrole će biti mudar potez.

Osim toga, dok ovo pokazuje koliko je radnih mjesta može se odabrati i uspio iz SQL upita okvira te bi trebao stvarno biti sažetke 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 konfiguracija

Sljedeći aspekt za uzeti u obzir je posao veličina i konfiguracija. By igranje s posla konfiguracije možemo postići odličnu ravnotežu između brzine, proces repliciranje i pouzdanost. Uzmite par scenarija usluživanja:

  1. Jobs se jedan dan svaki pokrenuti: To znači da vaše radnici moraju 15 dana za obraditi svaki posao (sjetite se 10 posto energije za 2/3rds tog vremena). To očito nije mudar konfiguracija, vaš posao je veličina način prevelika! To bi barem dvostruko vremena da biste dobili posao bi trebao obrađivati ​​početna radnik ići IZBEZUMILA (vrijeme podići da nije vratio rezultate plus rekalkulacijsku vrijeme). U idealnim biste imati barem jedan puni posao lako brišu na kraju svakog dugog razdoblja mirovanja, na taj način zadržite posao navlake preko au najgorem slučaju posao bi potrajati dva dana da proces treba prvo ići nedostaje.
  2. Česta uzeti 1 minutu za pokretanje: To znači da vaši zaposlenici trajati oko 15 minuta pokrenuti svaki posao. Dok se to u početku može činiti idealnim, dobivate dodatnu radnu obradu vrijeme ručka i pauze za kavu, poslovni sastanci, itd. ovaj scenarij stavlja pritisak na drugim područjima vašeg sustava i upoznaje svoje probleme. Na primjer, prvo tvoj setup / vrijeme obrade omjer ići desno dolje, dakle gubitka učinkovitosti sustava. Vaša mreža će biti stalno streaming posao informacije različitih radnika frustrirajuće osoblja koji su dong njihova svakodnevnog posla. Također ćete staviti više pritisak na vaš poslužitelj posao obrade kao što mora dijeliti puno i puno malih komada radu na redovnoj osnovi. Na kraju, u ovoj situaciji ako vaš posao poslužitelj odlazi dolje ćete stvoriti ogroman natrag dnevnik nezavršenom poslu dok većih radnih mjesta mogao kontinuiranog obradu blaženo nesvjestan da je posao poslužitelja je poteškoća.

U stvarnosti neće biti jedna idealna konfiguracija za grid postava, mnogo ovisi o raspoloživim resursima, vrste posla i radnih vrijeme obrta zahtjevi, mreže sposobnost, i tako dalje. Međutim, neke smjernice će biti:

  • Veličina radnih mjesta, tako da svaki radnik može dobiti kroz barem 3-4 radnih mjesta u roku od 15 sati (najduže razdoblje mirovanja vjerojatno)
  • 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 se posao ne završi u dvostrukom iznosu vremena (možda manje) možete očekivati ​​da ispunite je pretpostaviti da je otišao IZBEZUMILA i početi ga obradu s drugim radnikom. To znači da ćete možda morati pričekati i do tri puta normalne duljine posao za to završiti (vjerojatno ne, ako se naknadno posao ne uspije). Vi svibanj želite smanjiti ovaj put, ali budite oprezni da ne smanjuje previše kao što svibanj početi umnožavanje obradu zadataka na redovnoj osnovi.
  • Radna mjesta trebaju biti neovisne o vanjskim uvjetima kao što je više moguće. Posao poslužitelj, primjerice, samo treba kontaktirati na početku i kraju svakog posla.
  • Ne zasititi svoju mrežu, to će imati dvije negativne učinke, vaša dnevna osoblje će pronaći putem mreže frustrirajuće i problemi mogu biti iskusni veze s tempirao se problem koji će se samo pogoršavati kao što skalirati vašu mrežu.
  • Osigurati da radna mjesta mogu se izvoditi na svojim radnicima. Ako poslovi postati previše intenzivno memorija ili disk prostor intenzivnih radnih mjesta će se početi rušim i jedina stvar koju ćete primijetiti je pad broja radnih mjesta obrađenih bez stvarnog razloga zašto.

Podnošenje Rezultati za posao

Prilikom podnošenja rezultate posao, važno je da provjerite da rezultati nisu podneseni od strane drugog radnika, osobito ako je trenutna radnik je bio neaktivan neko vrijeme.

Kad rezultati su poslali osigurati da broj rezultata odgovara broj zapisa u posao.

Kao što je navedeno ranije, i ne može biti iznad istaknuo, graditi toleranciju pogreške u posao pretraživanja i rezultata podnošenje. Radnici mogu (i najvjerojatnije hoće) ići u suspend modu najviše nezgodno puta i to treba biti catered for. Također još jednom apstrahiranja tvoga rezultate podnošenje pomoći će dostaviti za buduće promjene na vašem sustavu kontrole posao puno lakše da se bave.

Rezime

U ovom section smo pogledali što poslužitelj posao kontrole treba učiniti i kako doći vrlo osnovni sustav postaviti. Razgovarali smo o tome kako da biste preuzeli posao od kontrolnog sustava i kako najbolje konfigurirati radnih mjesta da biste dobili najviše iz svog sustava naš ured mrežu. Da biste završili, stavka ili dvije o upućivanju rezultate natrag poslužitelju posao kontrole predstavljen.

  • Poslužitelj upravljanje poslom upravlja radnih mjesta i osigurava da se sva radna jedinica završila
  • Apstrahiranjem svoj posao select / Rezultati podnošenje možemo promijeniti tehnologiju kontrolnom poslužitelju 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, i bez umnožavanje obradu zadataka na redovnoj osnovi.
  • Uvjerite se da ste izgraditi toleriranje kvarova i pogreške checking u svoje rutine, radnici mogu obustaviti i nastaviti, a najviše nezgodno puta. Ne zaboravite da provjerite je li rezultati već podnesen od strane drugog radnika.

Sljedeći put

U dijelu 3 ćemo stvoriti naš virtualni stroj za obradu i postavljanje naših prozora strojevi postati miruje radnim vremenom.

Ured grid uporabom virtualnih okruženja - Dio 5

By i petak 4. prosinac 2009 11:03 pm

Uvođenje

Radim u tvrtki u kojoj smo pokrenuti mnogo batch poslovi 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. Zar ne bi bilo dobro ako bismo mogli koristiti one strojevi podupirati procesorsku snagu našeg sustava? U ovom skupu članaka idem pogledati potencijalne koristi od zapošljavanja ured mrežu koristeći virtualiziranog okruženja.

In Part 4 Gledali smo pomoću alata kako bi osigurali da si mi trčanje najnoviju inačicu koda i podataka izvora, tako da dobiveni rezultati su uvijek up-to-date s najnovijim poslovnim informacijama i logike.

Pre-Deployment

Prije implementacije svoj ​​grid sustav ako postoji jedna stvar koju rade i jedna stvar samo to mjerilo vaš trenutni sustav! Bez obzira što vam reći kolege o tome koliko dodatnog rada je vaš sustav će učiniti ako imate brojeve na leđa to kopiju jamstva nisu ništa. Dakle,

  • koliko zapisa možete obraditi trenutno? Po danu? Po satu?
  • Koliko dugo to obično traju da se okrene posao?
  • Koliko kapacitet imate?

Tu je i dodatna pitanja:

  • Ako je Vaš obrada poslužitelj (ili jedan od vaših poslužitelja za obradu) ide dolje kako će to utjecati na vaše sposobnosti, da će vam biti invalid?
  • Koje su prednosti nadate / očekivati ​​da će dobiti od grid sustav?
  • Jesu li vaši uredski strojevi sposoban za izvođenje radnih mjesta?
  • Jesu li vaše (ili možete poslovi pretvaraju) da wrok u ovom stilu prikazuju?

Posljednji veliki Stvar je u tome da se vaše vrijeme na bilo velikih promjena kao što je ovaj. Ažurirajte svoj kod obrade za rad pomoću nove metodologije, benchmark ponovno. Moguće je postaviti poslužitelj za obradu pokrenuti virtualni stroj, nakon što je sve svoje obradu poslužitelju će biti samo još jedan radnik (samo vrlo moćna jedan relativno). Dopustite novi proces za rješavanje.

Razvoj

Moj prijedlog bi bio pop u uredu jednog vikenda obavljati sve instalacije i postava. Učinite to prije dva tjedna za odmor i ostaviti tako drugi siromašni čovjek se nositi s posljedicama ... možda ne ...

Deployment za sustav kao što je ovaj treba biti sporo. Unatoč tome što je relativno jednostavan za postavljanje ovaj sustav će utjecati na cijelu svoju poslovnu infrastrukturu (i jedan digitalni). Prvo, razvaljajte na nekoliko strojeva u isto vrijeme, monitora mrežnog prometa, kako radnik domaćini obavljati na dan-to-day osnovi. Možda ćete morati promijeniti vaš posao konfiguracije prema vašim saznanjima.

Kada je sustav riješiti s nekoliko strojeva (recimo 10% svih uredskih strojeva, odnosno 5) držati prometa mreže za praćenje i domaćin stroj performance. Sljedeća benchmark opet, sada treba preradu 33% više radnih mjesta od prvih repera. Provjerite je to tako, ili da ste barem u ovom približan. Ako ne, istražiti što se događa prije nego što se kreće dalje. Ponovite ovaj ciklus sve dok ne sretno su svi uredski strojevi trčanje bez ubijanja individualne performanse stroja za brušenje ili mrežu kako bi se zaustavi.

U svakom trenutku zadržati benchmarking, čak i nakon što su svi implementacije su napravili. Pogledajte kako novi kod promjene utječu na brzinu vašeg sustava, provjerite svi radnici izvijestili su u obradi i radnih mjesta. Polako (polako) povećajte Vašu konfiguraciju posao da biste dobili najbolje od Vaših radnika i mreže.

Stop!

Što ako želite prekinuti svoje radnike iz trčanje na neko vrijeme? Oni su svi vani trčanje, regenerativno, i pokušava njihov najbolji za obradu podataka, poput gladnih insekata. Odgovor svibanj činiti se očigledan ali je Dodajmo samo u slučaju njegova previdjeti. Jednostavno urediti skriptu za obradu sa izlazom (0) ili umrijeti () ili neka druga izjava da će ubiti svoju obradu posao. Važan razlog zašto mi uvijek pokušati ažurirati na najnoviju skriptu za obradu bilo prije vožnje!

Demonstracija sustava

Kako bi se napisati ovaj skup kratkim člancima sam stvorio vrlo malu rešetku da dokaže znanje i tehnologije i metodologije. Čitala sam puno članaka, tutoriali i koristiti razne alate za postavljanje i prati što se događa. Nipošto sam otišao van i zasićene cijeli ured sa prometa i niti sam imao pristup redovitim osoblje PC da vidite kako domaćin izvedba bila je pogođena.

Moj demonstracija sustav bio je vrlo skroman, istina. Koristio sam svoju redovitu radnu površinu postaviti kao poslužitelj posao kontrole. Na to sam instalirati MySQL poslužitelj instaliran postaviti kao majstor u repliciranje, PHP , A i SVN povezane Apache (za pristup preko radnika VM).

I onda je stvorio stroj CentOS radnika na VirtualBox na 6 godina stari Windows XP laptop. Podešavam planirane zadatke kao što je navedeno, nakon kopiranja VM na stroj i pustiti da ode.

Virtualni stroj je postavljen s PHP, subverzija, i MySQL. Provjerio sam iz podružnicu pod nazivom 'Radnik' iz mog posla kontrole poslužitelja spremište i napravio siguran to bi moglo biti obnovljeno pomoću 'svn ažuriranje'. Nakon toga sam postava mySQL kao rob i provjeriti da se podaci koji se replicira s MySQL na poslužitelju posao kontrole do radnika VM. Nakon svega toga sam postavila bash skriptu i cron posao.

Moja prerada skripta zapravo otišao na tragu ovog vrlo jednostavna (stvari):

  • Čitaj u ime polju
  • Računa broj sličnih imena u tablici iz izvora podataka održanom u VM
  • Računa broj imena kao gore, ali cijepanje ime razmacima (npr. prezime, srednji, prezime)
  • Ovaj postupak ponoviti 1000 puta

Svaki posao je oko 20 minuta pokrenuti. U jednom trenutku sam otvorio nekoliko primjeraka radnika VM na windows laptop i gledao poslovi biti provjereni od strane svakog od radnika IP adrese. U ovom trenutku sam također potvrdio da je replikacija automatski ponovo pokrenuti.

Izlaganje laptop u stanje rezultiralo radnika počevši za obradu radnih mjesta s poslužitelja posao kontrole. Kada je nastavak laptop korištenje bilo kašnjenje od oko 30-60 sekundi, to je sajam iznos od vrijeme i osoblje bi trebalo biti svjesni da je njihov stroj može zaustaviti za kratko vrijeme kada se vraćaju na uređaj. Noviji strojevi ne mogu imati stanku od ovako dugo. Korist u iznosu obrade u izvedbi ovih Strojevima za vrijeme stajanja bi više da outweigh članova osoblja koji imaju čekati kratko razdoblje (recimo 1 minute) na dolasku na svojim računalima jednog jutra (često sam čekati duže nego to za Windows Defender ažurirati će se održati) pod uvjetom da su svjesni toga (korisno vrijeme da zgrabite jutarnju kavu!).

Sveukupno sam osjećati sigurni da sam pokazao na tehnologije koje se mogu koristiti za stvaranje takvog sustava. Pokazala sam da takav sustav ne radi na (vrlo) malim količinama i sa neki više eksperimentiranja mogu skalirati do iskoristi resurse sustava Office na strojevima. Ako ne dođete do točke da to bi bilo jako zainteresirana za to znati / vidjeti kada netko drugi radi.

Zaključci / evaluacija

Sljedeći korak će biti očito da se zapravo dobiti pravi svjetski primjer i početi implementirati sustav kao što je ovaj u uredima i vidjeti što se događa. Postavljanje posao obvezati na to bez staze plamen tvrtke dokazati tehnologija i djelotvornost svibanj biti malo teško. Grid / Distributed computing je vrlo popularan je neki krugovi i ima neke velike aplikacije (BIONC, SETI @ Home, Folding @ home, itd.). Nisam, međutim, pronaći manjem opsegu i jednostavan sustav kao što je to u mojim pretraživanja koji bi mogao biti namotan vanjska strana u uredima.

I stvorio je u osnovi slobodan sustav koristeći uglavnom open source softver i alate dostupni u gotovo svakom uredu. Tehnologije u osnovi su pokazali i pokazuju da obave i rade kako treba. Nadam se da imam pokazuju da s ne puno rada i na vrlo jednostavan postava možete ugraditi jedan računalni sustav ured grid da je snažan, jeftin, A i skalabilan sve u isto vrijeme.

Nakon što je sustav gore i trčanje gotovo da i nema kraja iznosu od prilagodbe i poboljšanja možete učiniti. Na primjer, statistike / benchmarking može lako biti dodan pokazuje vrijednost takvom sustavu svaki dan. Novi strojevi mogu dodati brzo i jednostavno kao i kad dođu s nadogradnje postojećeg hardvera jačanje svoje procesorsku snagu.

Nadam se da ste uživali čitajući ovaj niz članaka i njegova dao hranu za misli na vođenje ureda grid sustav. Rješenje predstavljen ovdje neće nužno raditi u svim situacijama, ali trebaju biti prilagodljivi kako bi se omogućilo da se vaše obrada podataka obavlja pomoću svoje rješenje.

Slobodno mi pošaljite sve komentare, ispravke ili poboljšanja, a ja ću obaviti moj najbolji to držati ovaj članak ažuriran kako bi se slagala.













Panorama temu Themocracy

5 posjetitelja online aukciji
3 gosti 2 robota, 0 clanova
Max posjetitelja danas: 15 u 05:20 sati UTC
Ovaj mjesec: 26 od 04-04-2012 10:27 pm UTC
Ove godine: 69 od 27-02-2012 09:56 sati UTC
Sva vremena: 130 na 28-03-2011 10:40 pm UTC