Kategorija: PHP

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 osnovi
          * /
         zaštićeni funkcija _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. Obrada 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 ipak 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

Osnovna postava za naš 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). Kod na Thea radnika će zapravo raditi koje poslove može raditi u interakciji s posla s bazama podataka sustav kontrole. Kasnije smo mogli stvoriti web servis i zapravo ruke posla prije nego što su radnici raditi teško raditi sami, ali za sada ćemo nastaviti koristiti KISS princip (držati ga jednostavno, glupa!).

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

radnih mjesta stol Ovdje Im 'koristeći SQL Prijatelj veliki mali alternativa phpMyAdmin samo jer je lakše instalirati na CentOS (za druge vidi: 10 Velika alternative phpMyAdmin )

Ova tablica se sastoji od 5 jednostavnih polja,

  • ID: jedinstveno identificiraju posao
  • Ime: Mogao bi biti referenca klijent, ili bilo koji broj drugih identifikatora
  • Status: Morate znati gdje se posao na, primjerice,
    • 0: Nije počeo
    • 1: pokupila
    • 2: Završeni
  • started_by: Tko je počeo raditi posao? Ovo nije u potpunosti potrebna, ali je lijepo imati. Sugerirao bih praćenje radnika po njihovu IP adresu na mreži
  • started_at: Kada je radnik započeti posao? Praćenjem radna mjesta koja nisu završila u X iznos od vrijeme znamo trebamo pokupiti posao ponovno i započeti prerađivanja od strane drugog radnika. Radnici bi mogao zaustaviti obradu / go odsutan za bilo koji broj razloga, napajanja, sudara, mreža gubitak, itd.

Lako je kako je ove tablice može se proširiti sa nekoliko dodatnih polja kako bi se omogućilo za statistiku praćenje, stupac završiti na vrijeme da vidi koliko dugo taj posao je, brojač da vidim kako mnogi radnici pokupili posao (očito to treba da imaju tendenciju da 1), posao prioriteta, popis može ići na i na. U složenijim posao scenarija to će biti moguće odrediti koliko memorije radnik bi trebao pristup (i stoga koristiti samo prikladne radnika), ili čak kakvu vrstu radnika će biti potrebna.

Omogućuje dodavanje nekoliko primjer Poslovi u graditeljstvu:

Primjerice radnih mjesta

Sljedeća tablica ponovno je prilično jednostavan za shvatiti, ovo su naš posao zapisa. Oni su povezani s glavnim radnih mjesta tablici stupac `jobs_id`. Make up ove tablice jako ovisi o podacima koje trebate dostaviti na radnike, omogućuje da vrlo jednostavan primjer, gdje imamo četiri stupca:

  • ID: ID rekord
  • ime: Ime osobe
  • Adresa: Osoba adresu
  • jobs_id: posao ID da je ovaj zapis je povezan s

Treći i finalni stol sastoji se od tablice s rezultatima, ima mnogo isto čine kao naše evidencije stol, a uz dodatak nekih stupova može biti dio zapisa tablici:

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

... I to je sve što je potrebno za posao kontrole! (Iako na vrlo osnovne razine) U mom slučaju ja sam ukazao na drugi stol, gdje moje podatke obraditi bila smještena, ali to bi moglo jednako lako je datoteka, parametri za pokretanje simulacije kod, ime ti je.

Odabir posla

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

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

Prije raspoređivanja

Prije implementacije svoj ​​grid sustav ako postoji jedna stvar koju rade i jednu stvar sam da je mjerilo vaš trenutni sustav! Bez obzira što vam kolege o tome koliko dodatnog rada je vaš sustav će učiniti ako imate brojeve natrag ovaj svoj jamstva ništa. Dakle,

  • koliko zapisa možete procesa trenutno? Dnevno? Po satu?
  • Koliko je obično potrebno da se okrene poslu?
  • Koliko više kapaciteta imate?

Tu je i dodatna pitanja:

  • Ako je Vaš obradu poslužitelja (ili jedan od vaših poslužitelja obrade) ide prema dolje kako će to utjecati na vaše sposobnosti, će vam biti osakaćen?
  • Koje prednosti se nadate / očekivati ​​da će dobiti od grid sustav?
  • Jesu li vaše uredskih strojeva sposoban za izvođenje radnih mjesta?
  • Jesu li vaše (ili možete poslovi pretvaraju) da rade u ovom stilu trčanje?

Posljednji veliki točka je da se svoje vrijeme na neke veće promjene kao što je ovaj. Ažurirajte svoj kod obrade za rad pomoću nove metodologije, mjerilo ponovno. Možda postavite vaš poslužitelj za obradu pokrenuti virtualni stroj, nakon što je sve svoje obrade poslužitelja samo će biti još jedan radnik (samo jedan vrlo moćan relativno). Dopusti novi proces za podmirenje.

Razvoj

Moj prijedlog bi bio da pop u ured jedan vikend provesti sve instalacije i za postavljanje. Učinite to prije dva tjedna za odmor i ostaviti tako da drugi siromašan čovjek se nositi s posljedicama ... možda i ne ...

Implementacija sustava za kao što je ovaj treba spor. Unatoč što je to relativno jednostavno postaviti ovaj sustav će utjecati na cijeli ured infrastrukture (i digitalni jedan). Prvo, razvaljajte na nekoliko strojeva na vrijeme, pratiti mrežnog prometa, kako radnik domaćini izvode na dan-to-day osnovi. Možda ćete morati promijeniti svoj posao konfiguracije u odgovoru na nalaz.

Nakon što je sustav nastanio s nekoliko strojeva (recimo 10% svih uredskih strojeva, odnosno 5) zadržati nadzor mrežnog prometa i domaćin stroj performance. Dalje mjerilo opet, sada bi trebao biti za obradu 33% više radnih mjesta nego vaš prvi mjerila. Provjerite je to tako, ili da ste barem u ovom približan. Ako ne, istražiti ono što se događa prije nego što se kreće dalje. Ponovite ovaj ciklus sve dok ne sretno sve uredskih strojeva trčanje bez ubijanja pojedini Stroj izvedbu ili brušenje svoje mreže mirovanja.

U svakom trenutku zadržati usporedbe, čak i nakon što su svi implementacije su napravili. Provjerite kako novi kod ažuriranja utjecati na brzinu vašeg sustava, provjerite svi radnici su izvješća i obradu radnih mjesta. Polako (polako) prirast konfiguraciji posao da biste dobili najbolje iz svog radnika i mreže.

Stani!

Što ako želite prekinuti svoje radnike iz prikazivati ​​na neko vrijeme? Oni su svi vani trčanje, obnavlja, i pokušava njihov najbolji za obradu podataka kao što su gladni insekata. Odgovor svibanj činiti se očigledan ali je Dodajmo samo u slučaju njegove previdjeti. Jednostavno uredite skriptu obradu izlaz (0) ili umrijeti () ili neke druge izjave ubiti svoje obrade posao. Važan razlog zašto smo uvijek pokušati ažurirati na najnoviju skriptu za obradu prije nego što pokrenete!

Demonstracija sustava

Kako bi se napisati ovaj skup kratke članke sam stvorio vrlo male mreže pokazati tehnologije i metodologije. Pročitao sam puno članaka, tutoriali i koristiti razne alate za postavljanje i prati što se događa. Nipošto sam otišao van i zasićenih cijeli ured prometa i niti sam imao pristup redovitim osoblje računalo da vidim kako domaćin je nastup bio pod utjecajem.

Moj demonstraciju sustava je bio vrlo skroman, istina. Koristio sam moj redoviti desktop postaviti kao poslužitelj posao kontrole. Na ovaj sam imao instaliran MySQL poslužitelj instaliran postaviti kao master replikacija u, PHP , A i SVN povezane Apache (za pristup preko radnika VM).

I onda stvorio stroj CentOS radnik na VirtualBox na 6 godina stari Windows XP laptop. Ja postava zakazanim zadacima kao što je navedeno, nakon kopiranja VM na stroj i neka ga ide.

Virtualni stroj je postavljen za PHP, subverzija, i MySQL. Provjerio sam se ogranak pod nazivom 'radnik' iz moj posao upravljanja poslužiteljima spremište i napravio siguran da bi mogao biti obnovljeno pomoću 'svn ažuriranje ". Nakon toga sam postavljanje MySQL kao rob i provjeriti da su podaci replicira iz mySQL na poslužitelju posao kontrole do radnika VM. Nakon svega toga sam postavila bash skriptu i cron posao.

Moja obrada skripta zapravo je otišao na tragu tog (vrlo jednostavno stvari):

  • Pročitajte u polje Ime
  • Računaju broj sličnih imena u tablici iz izvora podataka održanom VM
  • Računaju broj imena kao i gore, ali jak ime razmacima (npr. prezime, srednji, prezime)
  • Ponovljeni proces 1.000 puta

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

Odlazak laptopa u stanje rezultiralo je radnik počeo proces radnih mjesta s poslužitelja posao kontrole. Kada se nastavljate laptop korištenje bilo kašnjenje od oko 30 do 60 sekundi, to je fer iznos od vrijeme i osoblja bi trebao biti svjesni da je njihov stroj može zaustaviti za kraće vrijeme, kada se vraćaju na stroj. Noviji strojevi ne mogu imati stanku od ovog duga. Korist u iznosu od obrade u izvedbi ovih strojeva tijekom stajanja bi više da prevagnuti osoblje da čekaju kratko razdoblje (recimo 1 minute) na dolasku na svojim računalima od jutra (često sam čekati duže da za Windows Defender ažuriranje će se održati), pod uvjetom da su svjesni toga (korisno vrijeme da zgrabite jutarnje kave!).

Ukupni osjećam uvjeren da sam pokazao tehnologija koje se mogu koristiti za stvaranje takvog sustava. Ja sam pokazala da takav sustav ne radi na (vrlo) malih razmjera i sa malo više eksperimentirati mogao biti umanjena do koristiti resurse ureda u strojeve. Ako ne dođete do točke to bih biti vrlo zainteresirani da znaju / vidi kada netko drugi ne.

Zaključci / Procjena

Sljedeći očiti korak će biti da se zapravo dobili stvarnom svijetu primjer i početi implementaciju sustava kao što je to u uredima i vidjeti što se događa. Postavljanje poslovne obvezati na to bez stazom plamen tvrtka dokazati tehnologiju i učinkovitost može biti malo teško. Grid / distribuiranog računarstva je vrlo popularan je nekim krugovima i ima neke velike aplikacije (BIONC, SETI @ home, Folding @ home, itd.). Nisam, međutim, naći manjem opsegu i jednostavan sustav kao što je ovaj u mom pretraživanja koji bi mogao biti namotan vanjska strana u uredima.

Sam stvorio osnovi free sustav koristi uglavnom open source softver i alate dostupne u gotovo bilo kojem uredu. Tehnologije u osnovi su pokazali i pokazuju da obave i rade kako treba. Nadam se da sam pokazati da je s ne puno rada i sa vrlo jednostavan za postavljanje možete implementirati računalni sustav ured mreže koji je moćan, jeftin, A i skalabilna sve u isto vrijeme.

Nakon što sustav gore i trčanje gotovo da i nema kraja u iznosu od prilagodbe i poboljšanja možete učiniti. Na primjer statistika / usporedbe mogu se jednostavno dodati prikazuje vrijednost takvog sustava svaki dan. Novi strojevi mogu biti dodane brzo i jednostavno kao i kada stignu u nadogradnji postojeće hardver jačanje svoje procesorskom snagom.

Nadam se da ste uživali čitajući ovaj niz članaka i dao hranu za misli na trčanje sustava Office mrežu. Rješenje su ovdje prikazani neće nužno raditi u svim situacijama, ali treba biti prilagodljiv kako bi se omogućilo da se vaše obradu podataka obavlja putem svoje rješenje.

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.

Zend Framework: Osnove - Pregled

Do , subota 28 studeni 2009 10:42

Moj poslodavac je nedavno platio za grupu od nas programere da Zend Framework: Osnove Naravno, ovdje ću sažeti svoje misli i mišljenja o tijeku za druge. Za one koji žele uštedjeti na vremenu, ovdje je moj sažetak:

Za programere koji nisu imali vremena pogledati Zend Framework ovog tečaja (Zend Framework: Osnove) nudi dobru opću sliku okvira vas uvodi u ključnim područjima i daje dovoljno informacija kako bi nastavili. Za one koji su proveli vrijeme u potrazi na okvir i su slijedili jedan ili dva tutoriala ovaj tečaj ne nudi mnogo više od toga.

Pozadina

Ive 'bio PHP programer za oko 5-6 godina, i počeo raditi sa Zend Framework na komponentu osnovi posljednjih 6 mjeseci. Sam razvio i / ili je programer na nekoliko malih Zend Framework MVC sites. ću biti iskren, nisam imao ogroman izloženost drugim okvire iz kodiranje točke gledišta, ali su je proveo nekoliko sati istraživanje projekt web stranice i vrednovanje them. okvir i zajednice okolnim Zend Framework je prilično uzbudljivo, a čini se da veliki mogućnosti u gdje je njegov ide.

O tečaj

Tečaj je isporučio više od 9 dva sata WebEx sjednice (s 10-ak minuta pauze u sredini). Vrijeme proveo prolazi kroz niz slajdova koje Zend s rasprave u bilo koje vrijeme. Možete koristiti mikrofon da razgovaraju instruktor, ali da budem iskren nisam vidio bilo tko koristiti ništa više nego prozor za chat. Osim toga stroja VMWare Ubuntu je pod uvjetom da je na primjer broj i projekte postaviti probnu verziju Zend Studio. Voditelj tečaja govori sudionicima ili više rješenja integrirani VoIP, ili možete nazvati na jedan od mnogih u svijetu biranje u brojkama.

Tijekom materijal sastoji se od kratak pregled okvira i MVC uzorak prije odlaska u primjeni uzorak knjigu gostiju. Rasprava pokazao pokretački, Zend_Application, DB Stolovi, pristup bazi podataka, oblika, filtriranje, ACL, Validating, itd, itd. Uglavnom pokriva sve teme koje biste potrebna da biste dobili osnovni site gore trčanje sve vrijeme što vam daje alate za otići i dobiti više naprednih u okvir (iako to nije iznos 'Vidi web' mnogo vremena).

Vrijeme je dao kod neke primjere, te razviti "guestbook" i jednostavnih "wiki" aplikacija. Osobno sam smatrao da bi kod ili svaki app, a onda nas traže da razvije ono što je bitno kopiju uz ne stvarno dati dobar iskustvo učenja. Ja bi radije da se razvije aplikacija sličan, ali ne i identični. na primjer zahtjev Prednost vodič odnose. Alternativno izgradnju aplikacija ispočetka s demonstrator bi eventualno dovela do više pitanja o tome zašto i kako, što daje bolje razumijevanje okvira, nakon što sve možete potražiti specifičnosti nakon tečaja.

Posljednji Predavanje se sastojao od rada na wikiju zahtjeva uz pomoć / vodstvo instruktora. Nakon tečaja povratne informacije je snimljena, istaknuto je nekoliko puta kroz tečaj koji traje Zend povratne informacije je vrlo ozbiljno, u stvari, očito naša verzija tečaja bila je posve nov. Neki od ostalih developera u društvu će biti uzimanje tečaj uskoro pa će biti zanimljivo vidjeti hoće li se to dogodilo.

Tečaj stil je neformalna, dozvoljeno za povratne informacije i suradnju između sudionika i instruktora. Voditelj tečaja je bio prijateljski, pristupačan (e-mail adrese su zajednički za pitanja), i dok njegov prezentaciju iz slajdova je malo klimav činilo u potpunosti nadležno u okviru. On je očito netko tko koristi okvir na redovnoj osnovi, a ne netko tko je učio učiti, naravno, sam volio 'stvarnom svijetu iskustva u tom pogledu.

Opći osjećaj

Na neki način sam pronašao naravno otpada vremena, u drugima je vrlo zgodan. Nadam se da ću dobiti moj preko razloga jasno, a možda pružiti neke hrane za misli i korisne povratne informacije (mene znajući to je malo vjerojatno!).

Za mene ovog tečaja bio je usmjeren na preniska razina. Nakon što je prošao kroz QuickStart vodič, pročitajte Rob Allen je Zend Framework na djelu, i radio s okvirom malo nisam se ništa previše. Ja bi volio i naravno da pokupite s kraja QuickStart i razviti dodatne vještine.

To je rekao, naravno naslov se jasno navesti "Zend Framework: Osnove" i na taj aspekt naravno postiže ono što određuje učiniti. Ostali članovi razvojnog tima koji nisu proveo vrijeme u potrazi u okviru završio svakoj sjednici s entuzijazmom i pitanja koji je stvarno lijepo vidjeti.

Svi nije izgubljeno, to je dobro potrošiti vrijeme potvrđuju osnovne podatke okvira i doći do pitati par pitanja u područjima u kojima nisam bio 100%. Bilo je i vrijeme da sam dobio sjesti svaki dan i razmišljati o kodiranje pomoću okvira i budućim projektima, nešto što ne bih i bio u mogućnosti to učiniti na neki drugi način (možete li zamisliti svoju tvrtku pristajete na to:)). Last but not least ćete također dobiti lijep izvod iz Zend reći da ste prisustvovali tečaj (iako putem e-maila).

Zend Framework certificiranje

To je jedno pitanje koje neprestano dolazio na pamet tijekom, to će me pripremiti za certifikaciju? Brzo, jednostavno je velik broj. Nastavnikom je sasvim jasno na koji uz dodatni savjet da za certificiranje te bi trebao stvarno biti koristeći okvir na osnovi dana u dan i osjećam vrlo ugodno i sigurni u njegovo korištenje i metodologija.

Rezime

S obzirom na sve što sam napisao gore, ja ću rezimirati sve što je u dva jednostavna natuknica:

  • Novi Zend Framework: Ovaj kolegij se upravo ono što očekujete, to vam daje lijep uvod u okvir i dobro uzemljenje na osnove iz koje možete izgraditi. Naravno Čini se da generirati interes i entuzijazam za okvir među programerima.
  • Koristi Zend Framework: Iako je lijepo na obalu neke od vrlo osnove osjetio sam vremena, truda i sredstava da se tečaj mogao bolje je proveo drugdje. To će biti lijepo see Zend stvoriti novu višu razinu tečaj programere na sljedeću razinu -. Barem standarda certificiranja i izvan nje Jer da bih se prijaviti odmah.












Panorama Theme by Themocracy

8 posjetitelja online sada
7 gosti, 1 robota, nije vidljiva 0 clanova
Max posjetitelja danas: 11 at 12:00 am UTC
Ovaj mjesec: 19 u 19-08-2011 06:09 UTC
Ove godine: 130 u 28-03-2011 10:40 UTC
Sva vremena: 130 u 28-03-2011 10:40 UTC