Kategória: Webové programovanie

Trasa žiadosti o sitemap.xml na vlastné riadiace / akcia

Tým, , v stredu 06.01.2010 00:13

Aby bolo možné žiadosti o priame / sitemap.xml na vlastné radič a akcie v Zend Framework aplikácie stačí pridať nasledujúce v application.ini alebo alternatívnym konfiguračnom súbore (napr. ja používam navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = index
 resources.router.routes.sitemap.defaults.action = mapa stránok

Napríklad kód pre výstup môže byť videný tým, že vytvorí akcie v príslušnej ovládača (napr. moja mapa stránok spočíva v riadiacej index, mapa webu akcie):

 < php
 Trieda IndexController
     rozširuje Zend_Controller_Action
 {
     / **
      * Poskytuje Sitemap na základe Zend_Navigation nastavenie
      * /
     public function sitemapAction ()
     {
    	 echo $ this-> Zobraziť-> Navigácia () -> Mapa ();
    	 $ This-> Zobraziť-> Layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Súbory Sitemap je možné ľahko a rýchlo generovať pomocou Zend_Navigation , skvelý rýchly tutorial (a všeobecne veľmi užitočné pre Zend tutoriály Framework) je Zend Odliatky - dynamicky vytvára menu Sitemap a strúhanke .

Zend Framework Per-modul založený nastavenie

Tým, , piatok 01.01.2010 22:40

Vytvoril som Ísť na tento príspevok, ktorý vyžaduje menej konfigurácie, pozri modul založený Layout - Zend Framework .

Pri použití Zend Framework s modulmi, ich zjavné, že ak používate rôzne (sub-) stránky z rovnaká aplikácie, nemusia chcieť rovnaké rozloženie scenárov pre každú časť. Rozhodol som sa ísť s nasledujúcou štruktúry webu:

  / Aplikácia
     / Regulátory
         ...
     / Modely
     / Modules
         / Default
             / Regulátory
             / Rozvrhnutie
                 / Scripts
             / Zobrazenie
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problém bol v nastavení rozvrhnutie skripty na báze modulu. Odpoveď prišla až s použitím Akcia Helper. Nastavenie rozloženia na jednotlivé moduly základe zahŕňa tri kroky:

  1. Application.ini (alebo podobné nastavenia konfigurácie):
      admin.resources.layout.layoutPath APPLICATION_PATH = "/ modules / admin / layouty / scripts"
     default.resources.layout.layoutPath APPLICATION_PATH = "/ modules / default / layouty / scripts"
     member.resources.layout.layoutPath APPLICATION_PATH = "/ modules / člen / layouty / scripts"
     affiliate.resources.layout.layoutPath APPLICATION_PATH = "/ modules / affiliate / layouty / scripts" 
  2. Vytvorte si svoj Akcia Helper:
      <? Php
     / **
      * Nastavenie rozloženia na cestu za modul základe
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 1.1.2010
      * /
     Trieda Pro_Controller_Action_Helper_SetLayoutPath
         rozširuje Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Nastavenie vzhľadu cestu založenú na module
          * /
         public function preDispatch ()
         {
        	 $ Modul = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ Bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("Bootstrap")) {
    
    	         $ Config = $ Bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] [zdrojov '] [' layout '] [' layoutPath '])) {
    	             $ = LayoutPath
    	                  $ Config [$ modul] [zdrojov '] [' layout '] [' layoutPath '];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. A konečne boostrap akcie pomocníka:
      ...
         / **
          * Nastavuje usporiadanie skripty pre jednotlivé moduly základe
          * /
         funkcia ochrany _initLayoutHelper ()
    	 {
    	     $ This-> Bootstrap ("frontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker: addHelper (
    	         Nový Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doktrína: DATETIME predvolené NOW ()

Tým, , v stredu 30. decembra 2009 18:30

Bol som zápasil s vytvorením databázy schéma pre nový Zend Framework projekt. Ja som pomocou snaží využiť doktríny ORM pre svoje dátové modely. Musím nastaviť schému tak, aby mi umožnila nastaviť predvolený dátum a čas pre `datetime` stĺpec, napr pri pridaní novej správy mám aktuálnu časovú pečiatku. Po dlhom hľadaní a experimentovanie som našiel riešenie, tak som zdieľanie.

Vo vašom schéme Yamli súbor, vykonajte nasledujúce kroky:

 Správa:
   actAs:
     Timestampable:
       Vytvorené:
         Meno: created_at
         Typ: časovú pečiatku
         formát: Ymd H: i: s
       aktualizácia:
         Meno: last_updated
         Typ: časovú pečiatku
         formát: Ymd H: i: s
   stĺpce:
     ID:
       Typ: integer
       Primárne: true
       AUTOINCREMENT: true
     name: String (255)
     email: string (300)
     message: String (2000)

Ak je na druhej strane nechcete `` updated_at stĺpci môžete použiť nasledovné:

 Správa:
   actAs:
     Timestampable:
       Vytvorené:
         Meno: created_at
         Typ: časovú pečiatku
         formát: Ymd H: i: s
       aktualizácia:
         zdravotným postihnutím: true
   stĺpce:
     ID:
       Typ: integer
       Primárne: true
       AUTOINCREMENT: true
     name: String (255)
     email: string (300)
     message: String (2000)

PHP Design Patterns - vzor Observer

Tým, , utorok 29 december 2009 22:02

Čítal som hlavou napred Design Patterns v nedávnej dobe, a sa rozhodol napísať niektoré vzory ako PHP príklady pre vlastný prospech. Prvý z nich, ktoré som sa rozhodol do kódu, je vzor Observer . Formálne definície Observer Pattern:

Pozorovateľa vzor (podmnožina asynchrónne publish / subscribe vzor ) je softvér návrhový vzor , v ktorom objekt , nazvaný predmet, vedie zoznam jeho rodinných príslušníkov, tzv pozorovateľa, a upozorní ich automaticky akékoľvek zmeny stavu, zvyčajne tým, že volá jeden z ich metód . Používa sa predovšetkým k realizácii distribuované systémy spracovania udalostí.

Sú systémy stávajú voľne viazaných uistite sa, že až sa táto udalosť stane, všetky systémy, ktoré vyžadujú znalosť týchto zmenách boli informovaní. Napríklad, blogu, po uložení príspevok budeme musieť aktualizovať vyhľadávače (napr. Lucene), aktualizovať náš mapa stránok, tagov, e-mail predplatiteľov atď pozorovateľ vzor umožňuje vývojárom pridať ďalšie poslucháčov bez úpravy ich pozorovateľné objektu . Tým, že napichne pozorovateľa (tj vyhľadávač aktualizácia pozorovateľa, generátor mapa stránok, atď) na predmet (napr. blogu redakčného systému), si môžeme dovoliť ho vykonať všetky potrebné aktualizácie, bez akýchkoľvek zmien.

Pokračovať v čítaní "PHP Design Patterns - Observer vzor" »

Office Grid Computing pomocou virtuálnych prostredí - Časť 4

Tým, , piatok 04.12.2009 23:59

Úvod

Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli použiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

V časti 3 sme vytvorili virtuálne spracovanie a nastavení počítača so systémom Windows, aby sa stal nečinnosti úväzok.

Spustenie posledný kódex

Nevyhnutne Po vytvorení pracovníkov obchodnej logiky sa zmení, bude sa nachádza chyby, bude rýchlejšia efektívnejšia kód vyrábané tak zanecháva pracovníkov sedeli spracovanie dát pomocou starej páchnuce kódu . Ako teda zabezpečíme, že sme vždy používať najnovšie a najlepšie verzia našej spracovanie skriptov?

Existuje niekoľko jednoduchých spôsobov, ako ľahko sme mohli urobiť to, trik, však, je zníženie výpočtového výkonu a prevádzku siete v dosiahnutí tohto cieľa. Začnime s najjednoduchšie riešenie a zlepšiť to pomaly cez niekoľko iterácií.

Prvé metódou by bolo jednoducho pripojiť k nášmu serveru pre ovládanie úloh (cez Sambu, FTP, atď), a strhnúť najnovšiu verziu kódu. Nie veľmi výkonný, ale to bude robiť svoju prácu. Umožňuje zlepšiť to trochu, ako sa o vytvorenie a použitie rsync skript, ktorý zakaždým, keď namiesto toho? Inak, čo sa o uvedení najnovšie spracovanie skriptu do Subversion pozrieť sa na kód na začiatku a potom už len aktualizovať náš kód na každom spustení ( svn update )?

Na záver by sme mohli skončiť s skript bash (nazvaný cronu každých 10 minút), ktorý vyzerá tak jednoduché, ako to:

  #! / Bin / sh
 Ak ps ax | grep-v grep | grep php > / dev / null
 potom
     echo "práca je v súčasnej dobe spracovania, exit"
 iný
     echo "Pracovné nebeží, začať už teraz"
     cd / cesta / k / práce / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Teraz môžeme byť istí, že sa každý pokus sme definitívne posledná verzia kódu. Sme tým, že zabezpečí aktualizáciu našich zdrojový kód každého a zakaždým, keď sa vykoná spustenie a znižuje prevádzku v sieti iba prenos súboru rozdiely v našej sieti.

V mojom demonštráciu nastavení, ja som presne ako je uvedené vyššie. Subversion je nainštalovaný na svojom serveri spracovanie zákaziek a jednoducho som vytiahol posledný kód "pracovníka" pobočka pomocou "svn update '. Tiež som pridal číslo verzie tag pre moje spracovanie skriptu, ktorý sa vrátil do databázy ako súčasť výsledkov návratu. Týmto spôsobom som mohol vidieť, že môj kód bol aktualizovaný zakaždým, keď som kopíroval do kufra, tj pracovník pobočky, že som určite beží najnovšie spracovanie skriptu.

Použitie najnovších údajov

Ak je vaša práca pre spracovanie využíva zdrojových dát potom v určitom bode sa jedná bude aktualizovať tiež. Ak zavoláte svoje zdroje dát na veľmi riedkom základe budete povodne siete s prevádzkou, akonáhle vaši zamestnanci sa začnú prinášať všetko, čo k pokoju. Pre moje riešenie, som sa rozhodol, že by som rád pohyb Zdroje dát si s mojou VM.

Držte ste tam kone! Čo robiť, keď zdroje dát sú obrovské? No to je naozaj prípad, koľko dát je reč? To môže byť z hľadiska nákladov efektívnejšie inštalovať ďalší väčší pevný disk na každom počítači, než kúpiť ďalšie spracovanie servera. To je otázka rozpočtu a do podniku sa rozhodnúť. Je možná, že zdroje dát sú tak veľké, že je to len možné, aby toto množstvo dát v pracovníkom zariadenia. V tomto prípade to, čo by ste robili? Tak sme sa mohli pozrieť na volanie miestny dátový server, ale to môže spôsobiť problémy so sieťou. V tomto prípade distribučnej sústavy, ako je tento sa môže stať nereálne zahrnúť do kancelárskeho prostredia. To môže tiež byť, že sa môžete pozrieť do prevádzky alternatívne stratégie, napríklad iba Volanie pracovníkov medzi dvadsať hodín a 6 hodín ráno každú noc a / alebo škrtiacej zdroj dát požiadavky.

Presunúť sa vám tvrdiť, že naše zdroje dát je 100 GB dát. No áno, to je celkom dosť dát sa pohybovať po sieti na aktualizáciu. Ako by sa zabezpečilo, že sme posledné kópiu dát v tomto prípade? Rsync je možné, ale osobne si myslím, spustením svojej najnovšej zdroje dát na serveri spracovanie zákaziek a nastavení to sa ako majster v replikáciu (s veľmi dlho bin log), môže byť cesta:

replikácie Pri nastavení každého z vašich zamestnancov sa ako otrok do práce kontrolu aktualizácií servera do zdroja dát sa dostali až pekne k pracovníkom bez obrovský nárast aktivity v sieti (teda pokiaľ budete robiť veľké aktualizácia dát a všetkých pracovníkov v kop naraz). To má výhody oproti rsync v tom, že by ste sa dostať dlhá pauza pred každú prácu, pretože aktualizácia databázy, mysql daemon bude na pracovníka priebežne aktualizovať svoje údaje, zatiaľ čo spracovanie pokračuje.

To je, ako mám nastaviť moje demonštrácie server. Ak chcete nastaviť replikácie som podľa príručky na webe MySQL ( Nastavenie replikácie ) a do 20 minút som mal Inital pracovník kopírovať prácu kontrolujú servery dátového súboru. Za každý ďalší pracovník nastavenia replikácie a proces sa osvedčil zakaždým, keď bol skopírovaný VM.

Prehľad

V tejto časti článku sme sa zamerali na to, ako ľahké a bezbolestné je, aby vaše operačný kód v aktuálnom stave pomocou rsync, alebo using subverion (SVN) robiť prácu a znížiť zaťaženie siete na rovnakom time. Hovorili sme tiež o tom, ako , aby vaše informácie o zdroji dát up-to-data tým, že sa dostali až ku každému z vašich pracovníkov. Tak sme oblasť zabezpečí, že držíme krok s obchodnej logiky a informácie v našom systéme Office siete. K dispozícii budú samozrejme nespočetné množstvo alternatívy na plnenie týchto úloh, ale tu boli dva jednoduché príklady, ako jednoduché riešenie je zohnať.

Nabudúce

V záverečnej časti tohto seriálu, príhodne pomenované časti 5 , budeme diskutovať o nasadenie tohto systému. Budem zhrnúť to, čo sme sa naučili a čo sa mi podarilo vytvoriť.

Office Grid Computing pomocou virtuálnych prostredí - Časť 3

Tým, , piatok 04.12.2009 23:37

Úvod

Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli použiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

V časti 2 sme sa pozreli na prácu serveru pobeží, a ako by práce byť nakonfigurovaný tak, aby sa dosiahlo najväčšieho množstva spracovania, a zároveň zabezpečiť, že každá práca je spracovaná bez chýb.

Nastavenie si pracovník - alebo Limp serveru

Ďalším krokom v tomto procese je nastaviť virtuálnej zamestnanca. Z tohto budem používať inštalácia CentOS pomocou VirtualBox. Chystám sa inštalovať MySQL a PHP na serveri, tiež známy ako Limp (Li Nux, ySQL m, P HP) Servera (Možno som sa, že názov sa).

  • Inštalovať VirtualBox na počítač s Windows (po fúzii)
  • Stiahnuť a nainštalovať CentOS (aktuálna verzia 5.3) v rámci vytvorených virtuálnych strojov

Nemá zmysel mi bude toto je to asi 1000 's veľkou tutoriálov tam (ok, tu je jeden: Vytvorenie a Managing CentOS virtuálny stroj pod VirtualBox ). Dôležité poznamenať, myslím, že som volala moja virtuálny stroj GridMachine.

Pokiaľ ide o moju voľbu pre virtualizáciu klientov a operačný systém tam nie je žiadny veľký závažný dôvod pre každú voľbu. VirtualBox je niečo, čo používam na svojom domácom počítači a je podporovaný troma hlavnými operačnými systémami. Vybral som si CentOS ako dobrý stabilný OS, a používam ho na vlastný webový server. Som veľkým zástancom správne nástroje pre prácu (aj keď ja som použitie "použitie najrýchlejší a najjednoduchší pre Vás" mentality tu), takže ak operačný systém X beží kód rýchlejšie a efektívnejšie využiť, že namiesto toho:)

Dôležité je zabezpečiť, aby vaše VM používa DHCP, inak za každý nový virtuálny stroj by bolo nutné konfigurovať samostatne čo je niečo, čo nemáme want.By pomocou DHCP nepotrebujeme konfigurovať nastavenia siete individuálne pracovníka zariadenia, bude DHCP ruky z IPS pre vás. Z tohto dôvodu je možné skopírovať vaše virtuálny stroj na úrade bez obáv o nastavení každej z nich sa (Tým sa zlepšuje škálovateľnosť a zníži administratívne pracovník).

Proces, ktorý by sa mal usilovať o dosiahnutie by bolo získať nový fyzický stroj, nainštalovať VirtualBox a potom do značnej miery nasadiť virtuálne obraz bez toho, aby mnoho iného. To by mohlo byť múdre nastavenie všetkých pracovníkov na iné podsieti, takže si môžete aspoň vidieť, koľko strojov je v prevádzke. Budete tiež musieť nastaviť zariadenie na dlhodobý prenájom alebo lízing neobmedzené DHCP.

Ako spúšťať úlohy na pracovníka

Jedná sa o zaujímavú oblasť a tam je niekoľko overených metód spracovania práce na pracovníka. Tu som si len diskutovať o dva najočividnejšie:

  • Trvalo spustenie skriptu: Skript, nech už je to shell skript alebo PHP skriptu sa vykonáva raz na pracovníka a pracuje ako súčasť nekonečné slučky. Ja som túto metódu diskontovaných ako jeden pád skriptu a potenciálne vašich pracovníkov prestane prevádzkovať bez nejakého zásahu.
  • Cron na skriptu: každých x minút cron démon začína volanie skriptu dať veci do pohybu. Bez nejakej kontrole To by mohlo viesť k mnohým mnohým kópií svoje prevádzkové zamestnancov skriptu.

Moje rozhodnutie bolo ísť s cron, ktorý odštartuje skript každých 10 minutes. môj skript plní tieto úlohy:

  1. Získanie zoznamu procesov, a to za grep "php". Ak nie je nájdený potom pokračujte.
  2. Zavolajte svoju prácu kód, v mojom prípade by to bolo niečo, čo na PHP
  3. Worker skript dokončí beh
  4. Pripravený ísť zase na ďalšie príslušné výzvy

My bash script vyzerá takto:

  #! / Bin / sh
 Ak ps ax | grep-v grep | grep php> / dev / null
 potom
     echo "práca je v súčasnej dobe spracovania, exit"
 iný
     echo "Pracovné nebeží, začať už teraz"
     php yourJobProcessingScript.php
 fi 

Poznámka: ECHO, sú takmer úplne zbytočné, ale môže pomáhať ďalší človek, ktorý príde, aby sa pokúsila upraviť.

, Ktorý uzavrie nastavenie pracovníka virtuálny stroj, rýchly, jednoduchý a ľahko kopírovať na každý nový kus hardvéru, ktorý ich prijal. "Chytrosti" distribučnej sústavy, naozaj nie je na vizualizáciu OS, jeho do činenia s kódom pre spracovanie vytvorených pracovných miest, pracovné usporiadanie, a uistite sa, že úloha spustiť v prípade potreby (napr. ak hosť je nečinný ).

Nastavenie Windows inicializovať pracovníkov

Prvou úlohou je vypracovať príkazu potrebné na spustenie virtuálneho počítača z príkazového riadku Windows. Ak ste nainštalovali VirtualBox v predvolenom umiestnení a vy ste menoval svojho pracovníka GridMachine potom príkaz načítanie vášho pracovníka je:

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

Avšak spustiť skript "bezhlavý" štátu musíme použiť:

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

Spustí sa virtuálny stroj bez GUI a nechajte ju zachrániť štátny elegantne. Druhý argument sa vypne RDP tak to nie je v rozpore s Windows RDP, alebo vám správu o načúva na porte 3389. Názov virtuálneho stroja je malé a veľké písmená!

Ďalej sa budeme musieť nastaviť systém Windows až po naštartovaní nášho pracovníka VM, akonáhle stroj bol nečinný. K tomu (na Windows XP), budete musieť ísť Štart -> Programy -> Príslušenstvo -> Systémové nástroje -> Naplánované úlohy ako je uvedené nižšie:

naplánovaných úloh

Potom kliknite na "Pridať naplánovanú úlohu", po ktorom Prechádzať pridať vlastný program. Prejdite do VBoxManage skript a kliknite na tlačidlo OK. Naplánovať úloha pre niektorú z možností (budeme zmeniť v minúte) a pokračuje. Po preskočenie na ďalšiu obrazovku Windows sa vás opýta, ktorý chcete spustiť túto úlohu, ktorú navrhujem buď "správcu", alebo vytvorenie nového privilegovaný užívateľ. Pamätajte si, že nechceme narušovať štandardné pracovníkov účet na počítači, na nejakom mieste. Kliknite na tlačidlo Ďalej a začiarknite Zobraziť rozšírené možnosti pre túto úlohu.

Na konci behu textového poľa pridať náš reťazec "startvm GridMachine" a zabezpečiť, že beží iba pri prihlásení je vľavo nezaškrtnuté. Navštívte harmonogram úloh a ďalšie zmeny plánu klesnúť až na možnosť "pri nečinnosti", zvoliť dobu, po ktorú by som, stroj sa nečinnosti pred prechodom na ďalšiu záložku.

Nakoniec Zrušte voľbu, ktorá uvádza, zastaví úlohu, ak beží X množstvo času, ale zaškrtnite možnosť zastaviť úlohu, ak je stroj už nie je nečinný.

program

To je potom pre nastavenie host Windows!

Prehľad

V tejto časti sme sa vytvoriť virtuálny stroj sa správať ako robotník, ale aj spôsob, akým sa hovoru a realizovať naše skripty spracovanie zákaziek (pre seba PHP skriptu). Odtiaľ sa pozrieme na to, ako nastaviť naše kópie Windows na spustenie virtuálneho stroja v bezhlavom režime, keď je počítač nečinný stane, a uložiť svoj stav, keď používateľ obnoví využitie stroja. Dúfajme, že v túto chvíľu vidíte, aké jednoduché je vytvoriť taký systém a svrbenie získať nejaké pokusy ísť sám!

Nabudúce

V časti 4 sa budeme pozerať na použitie nástroje, ktoré zabezpečia, že používate najnovšiu verziu kódu a dátových zdrojov tak, aby získané výsledky sú vždy up-to-date s posledným obchodných informácií a logiky.

Office Grid Computing pomocou virtuálnych prostredí - Časť 1

Tým, , piatok 04.12.2009 23:23

Úvod

Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli použiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

Ako PHP developer budem používať nástroje, ktoré používam každý deň a to, Linux, MySQL , PHP, VirtualBox a Subversion (SVN). Avšak dúfam, že tento návod sa prispôsobí do iných jazykov a technológií, rovnako dobre.

Toto riešenie mi poskytujú bude veľmi voľne založený na spôsobe spracovania by sme potrebné dosiahnuť To však nemusí byť pravda celý článok, ako budem niečo zmeniť na jednoduchosť, alebo produkovať ďalšie zaujímavé scenáre použitia.

Tieto virtualizovaných prostredí bude bežať na strojoch s Windows, pretože to je to, čo väčšina úradov behu. Spracovanie, kancelárske stroje sa nemalo zasahovať pracovníkov pomocou týchto strojov by nevyžadujú žiadnu údržbu na stroji, a musí byť ľahko nasaditeľné na nové stroje, akonáhle budú k dispozícii. Tiež by nové virtuálne stroje nevyžaduje žiadne ďalšie nastavenia, pretože to výrazne znižuje škálovateľnosť a jednoduché, pri ktorej môže distribučnej sústavy predĺžiť.

Prečo Nasadenie Office Computing Grid?

Po prvé si môžu myslieť, prečo nie práve pomocou cloud computing zdrojov, ako je Amazon EC2 platformu ? No dôvodov môže byť niekoľko, napríklad:

  • Nebudete zveriť niektoré údaje na životné prostredie cloud computing
  • Nemôžete dať niektoré údaje do prostredia cloud computing z právnych dôvodov (napr. údaje odchodu zo zeme), prípadne z právnych dôvodov, napr NHS záznamov.
  • Vy chcete, aby vaše procesorov úzke a majú plnú kontrolu nad hardvérom i
  • Nemáte projekt finančné prostriedky na spustenie inštancií cloud
  • Váš úrad nemá pripojenie k internetu, a preto to nie je možné použiť cloud zdroje
  • Nepáči sa vám dážď, mraky naznačujú, dážď, tak budete mať ďaleko

Som si istý, výpočet by mohol pokračovať, ale myslím, že to zatiaľ stačí.

Výhody gridové výpočtovej Office

Dobre, poďme urobiť nejaké matematické (a v pravom fyzike štýle umožňuje vykonať niektoré rozsiahle predpoklady). Predstavte si, že ste veľký tučný spracovanie serveru 100 pracovných miest za deň. Vo vašej kancelárii máte 50 strojov, ktoré sú nečinnosti 16 hodín denne, každý z týchto strojov je 10% ako silný ako svalnatý spracovanie sever. (Všetky výsledky tu sú zaokrúhlené na podceňovať zvýšenie výkonu).

Áno, 1 stroj * 10% výkonu * 2 / 3 = 0,067 času, tj o 1 pracovnej plochy spracovanie v nečinnosti procese 6 plných pracovných miest za deň.

Ak teraz meradle to až za 15 nečinnosti stolných počítačov až po proces čo najviac pracovných miest za deň ako hlavný server pre spracovanie.

A tak v našej kancelárii predstierať, že 50 strojov by sme mohli zvýšiť náš výkon procesora od 1 server až 4 kompletné spracovanie servery, alebo by sme mohli byť spracovanie úloh za deň 400 namiesto 100.

Všimnite si, bez investície do nového hardvéru vaša firma práve zvýšila dávkové spracovanie kapacita 4 krát! Potenciálne sa chystáte zvýšiť spotrebu energie, ale z väčšiny kancelárskych prostrediach Bol som na stroje sú zvyčajne vľavo na cez noc tak, aby ste mohli vidieť na zelené iniciatívy.

Ďalšie výhody tiež znamená, že investície do nových (či aktualizované) spracovanie servery môžu byť odložená, ak vaše kancelárske stroje sú dostatočné a že, ako si zvýšiť výkon vášho kancelárskych strojov Vašej kancelárie rozvodná sieť stala silnejšou automaticky.

Technológia

Čo budete potrebovať? (Alebo presnejšie to, čo som sa používať):

  • Nečinnosti kancelárske stroje (v mojom prípade náhradnej staré Windows XP notebook)
  • VirtualBox (alebo iný virtualizačný klientsky softvér)
  • Virtuálny stroj s PHP, mySQL running beží znížiť OS, volám týchto mojich Limp servery:)
  • Práca spustiť
  • Pracovný server (môže byť iný virtuálny stroj niekde)

Typická práce

Typy úloh, ktoré tento systém je navrhnutý tak, aby je nasledujúci:

  • Systém dostane zoznam údaje, z ktorých musíme zápas a vráti výsledky
  • Párovanie znamená kontrola / Vyhľadávanie niekoľko (pomerne statické) zdroje dát
  • Výsledky zo zdrojov údajov môžu vyžadovať ďalšie potvrdenie, zlúčenie, kontrola ďalších dátových zdrojov v reakcii na výsledky
  • Dáta sa vracia s zodpovedajúce záznamy, plne validované a spracované
  • Každý záznam v práci, je nezávislá na ostatných

Takže v podstate sa pozeráme na bežiaci úlohy, ktoré vyžadujú kombinácia vyhľadávanie v databázach a nejaké číslo škrípať, celkom obvyklý scenár, v obchodnom prostredí.

Mriežka riešenia sú nielen výhodné pre spracovanie práce tohto typu. V podstate sa každý proces, ktorý možno rozdeliť na samostatné jednotky paralelne. Pozri tento Wikipedia príklady a ďalšie informácie: Grid Computing , ale pár známych príkladov je Seti @ Home a BIONC . Existujú rámca pre prevádzku počítačovej siete, a tie sú dobre stojí za to pozeral do.

Čo docielime?

Na konci týchto článkov dúfam, že sa ukazuje, že nasadenie Office siete nemusí byť veľmi nákladné a časovo náročné. Budem diskutovať:

  • Nastavenie práce kontrolného systému, pracovná konfigurácia
  • Vytvorenie vhodného spracovania virtuálny stroj
  • Ako nastaviť systém na stroji s Windows
  • Zabezpečenie, že používate aktuálny kód a dáta
  • Nasadenie a benchmarking
  • Pri pohľade do budúcnosti

Budem budovy (ok som staval, potom napísal), napríklad aplikácie pre testovanie koncepciou na lokálny počítač v systéme Windows XP a mojej "GridMachine" virtuálny stroj. Mojou úlohou ovládanie serveru bude môj hlavný stroj, ktorý beží Fedora 11 .

To v žiadnom prípade predviesť plne funkčný robustný systém, jeho znamenalo viac demonštrácii a diskutovať o tom, že tieto veci sa dá dosiahnuť v pomerne krátkom čase a za nízku cenu. Neváhajte a pošlite mi pripomienky, opravy, alebo zlepšenie a ja v mojich silách, aby tento článok aktualizovaný na zápas.

Nabudúce

V časti 2 sa mi začať tým, že pri pohľade na systém kontroly práce, a pozrite sa na to, ako by mala práca byť nakonfigurovaný tak, aby sa dosiahlo najväčšieho množstva spracovania, a zároveň zabezpečiť, že každá práca je spracovaná bez chýb.

Office Grid Computing pomocou virtuálnych prostredí - Časť 2

Tým, , piatok 04.12.2009 23:23

Úvod

Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli použiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

V časti 1 som dal prehľad o systéme a technológií, budem používať, rovnako ako diskutoval niektoré z možných dôvodov, prečo by ste chceli vytvoriť kanceláriu siete.

Riadenie práce

Ak sa chystáte byť spustená prácu potom budete potrebovať nejaký spôsob, ako spravovať. Vašou úlohou riadiaceho systému (na svoju prácu serveru) musí byť veľmi dobre premyslené ešte predtým, než pokusom o spustenie programu balíka Office siete. Tak za prvé, aké sú úlohy, systém kontroly práce:

  • Pracovných miest ruku na žiadosť zamestnanca
  • Povedz pracovníkov, aký typ úloh spustiť
  • Sledovanie úloh
  • Uistite sa, že pracovné miesta sú poháňané iba raz
  • Poskytujú zamestnanie dát pre pracovníkov, alebo aspoň povedať, kde si to

Systém tiež musí byť rozšíriteľné riešenie, ktoré funguje zatiaľ v jedinom prípade môže byť rozšírená spustiť niekoľko typov pracovných miest a podnikanie vidí hodnotu v mriežke riešení. Napríklad môže získať zamestnanie priorít, viac ako jeden typ úlohy môže existovať (tj niekoľko základní kód), prípadne môžete dokonca prevádzkovať niekoľko rôznych pracovníkov stroje, ktoré sú optimalizované pre každý typ zamestnania (aj keď to nie je odklon od "všeobecnej pracovník "nápad). Vždy sa snažím premýšľať o budúcnosti pri vývoji systémov, môže krátkodobo viesť k vízii dlhodobej frustrácii a zvýšený dobu vývoja.

Server práce

Budeme potrebovať niekde ovládať našu prácu od, malo by to byť jediný systém vo svojej sieti, ktorá má pevnú Resource Locator, je, že IP adresa, meno počítača, URL (pomocou interné DNS), atď To je preto, že pracovníci musia vedieť, kde hľadať prácu, pracovníci musia nájsť prácu riadiaci systém (nie je práca riadiaceho systému nájsť zamestnanca).

Úloha server sám o sebe nemá naozaj zložitá úloha (v základnom systéme, rovnako), je potrebné uložiť zoznam miest, ruku pracovných miest, dostane výsledky, a následne ich uložiť pre neskoršie. Ako sa tieto časti (napr. "rozdávať prácu"), sú definované môže byť pomerne jednoduchý. Neskôr môžeme rozšíriť systém zahŕňa administračné rozhranie môžete pridávať, upravovať, mazať, pozastaviť pracovných miest, ale to je mimo toto cvičenie.

Neexistuje žiadny dôvod potom, že vaša práca serveru nebolo možné virtuálny stroj beží v rámci svojho hlavného spracovanie servera, ak to nie je kanalizácia príliš veľa prostriedkov z nej. Úloha serveru však potrebuje vysokú dostupnosť, pokiaľ to ide dole v piatok večer budete strácať celý víkend spracovanie, prípadne vás to stálo za pár týždňov v hodnote doba spracovania (v porovnaní s hlavným serverom pre spracovanie sám) . Môžete chcieť, aby zvážila svojej práci na serveri zaťaženie vyvážené prostredie pre vysokú dostupnosť.

Základné nastavenie

Základné nastavenia pre server, naša práca sa bude skladať z toho, čo som volať jeden z mojich Limp serverov (to je Li Nux, ySql m, P HP). Kód bežiaci na pracovníkov Thea bude skutočne fungovať, aké úlohy môže bežať interakcií s databázou, práca s riadiacim systémom. Neskôr by sme mohli vytvoriť webové služby, a v skutočnosti ruku pracovných miest, skôr než mať pracovníci tvrdú prácu sám, ale teraz budeme pokračovať v používaní princípe KISS (Keep It Simple, Stupid!).

Takže, poďme vytvoriť tri mySQL tabuľky riešiť úlohy. Tieto práce budú ``, `jobRecords` a `` jobResults.

pracovných miest tabuľky Tu som pomocou SQL Buddy Výborný alternatívu k phpMyAdmin len preto, že jeho jednoduchšiu inštaláciu na CentOS (ďalšie pozri: 10 Veľké alternatívy k phpMyAdmin )

Táto tabuľka sa skladá z 5 jednoduchých polí,

  • ID: Jedinečná identifikácia prácu
  • Názov: Môže to byť klientom odkaz, alebo ľubovoľný počet iných identifikátorov
  • Stav: Musíte vedieť, kde je práca na, napr
    • 0: nie je zahájená
    • 1: vyzdvihli sme
    • 2: Dokončené
  • started_by: Kto je začal robiť prácu? To nie je úplne nutné, ale je pekné mať. Ja by som navrhnúť sledovanie zamestnancov podľa ich IP adresy v sieti
  • started_at: Kedy sa pracovník začať prácu? Sledovaním práce, ktoré neboli dokončené v množstve X dobu vieme, že je potrebné vyzdvihnúť prácu znovu a začať spracovávať ďalšie pracovník. Pracovníci by mohli zastaviť spracovávanie / go Offline pre množstvo dôvodov, výpadku napájania, havárie, strata siete, atď

Je to jednoduché, ako by táto tabuľka byť rozšírená o niekoľko ďalších oblastiach s cieľom umožniť sledovanie štatistík, konečný čas stĺpce, ako dlho zamestnanie trvalo, počítadlo, koľko pracovníkov zdvihol prácu (samozrejme to musí obvykle 1), pracovné priority, zoznam pokračovať ďalej a ďalej. V zložitejších pracovných scenárov, že by bolo možné určiť, koľko pamäte by sa pracovník musí mať prístup k (a teda použiť len vhodných pracovníkov), alebo dokonca aký typ pracovníka by bolo potrebné.

Umožňuje pridať niekoľko príklad práce:

Napríklad práce

V nasledujúcej tabuľke je opäť veľmi jednoduchý na pochopenie, sú to naše práce záznamov. Sú spojené s hlavným zamestnania tabuľky stĺpec `` jobs_id. Tvorí v tejto tabuľke veľmi záleží na dáta, ktoré potrebujete dodávky vašich pracovníkov, umožňuje robiť veľmi jednoduchý príklad, kde máme štyri stĺpce:

  • ID: ID záznamu
  • Meno: Meno
  • Adresa: Osoba na adresu
  • jobs_id: ID úlohy, že tento záznam je spojená

Tretí a posledný stôl sa skladá z výsledkov tabuľky, má podobne ako tvoria naše záznamy tabuľky, a navyše niektoré stĺpce by mohlo byť súčasťou záznamov tabuľky:

  • job_record_id: Odkaz výsledok práce stola
  • Výsledok: Výsledok dát

... A to je všetko, čo potrebujete pre prácu kontrolou! (Aj keď na veľmi základnej úrovni) V mojom prípade som ukázal som k ďalšiemu stolu, kde sa nachádza moje osobné údaje na spracovanie, ale toto mohlo práve ako ľahko sa súbor parametrov, spustiť simuláciu kód, čo si len spomeniete.

Výber práce

Ako bolo uvedené skôr, budú robotníci robiť svoju prácu managementu pre nás, takže všetko, čo potrebujete urobiť, je naozaj nájsť si prácu, ktorá potrebuje spracovanie a získať informácie. Ako by sme to? Dobre vybrať naše kritériá výberu zamestnania a hľadať prácu v SQL som sa nasledovné:

  1. Prijať akékoľvek zamestnanie, ktoré nie sú označené ako kompletné, ale z našich pracovníkov a resetovať (náhradné __ME__ s identifikátorom, že najjednoduchšie bude IP adresa):
      UPDATE `` SET `zamestnanie status` = 0, kde `status` = 1 `a` started_by = __ME__; 
  2. Pomocou našich kritérií pre výber úlohy, vyberte si prácu a povie riadiaceho systému, ktorý tento pracovník sa zaoberá sa:
      UPDATE `` SET `zamestnanie status = 1`, `=` started_by __ME__, `started_at` = Now (), kde `status` = 0 alebo
     (`Status` = 1 `a` started_at> DATE_SUB (NOW (), interval X HOUR)) ORDER BY `id` ASC; 

    Tým, že chytí práce, ktoré neboli vrátené výsledky vo výške X sme zaistiť, že všetky úlohy sú spúšťané v prípade, že zamestnanec bude zhadzovať alebo neospravedlnenú absenciu.

  3. Ďalšie uchopiť zamestnania podrobnosti nasledujú záznamy sami:
      SELECT * FROM `pracovných miest: Kam started_by` `= __ME__ LIMIT 1;
     SELECT * FROM `job_records: Kam` id `= __JOBID__; 

Po dokončení práce vložíme náš výsledok záznamy a označiť prácu dokončiť. Pamätajte si, ako práce môže pozastaviť / obnoviť kedykoľvek počítať s nejakou robustnosť v skripte. To by mohlo byť, že úloha pozastaví polovici aktualizácia prácu kontrolného systému, takže kontrola počtu záznamov v zamestnaní a počet výsledkov uloží späť do systému kontroly práce by múdre.

Navyše, keď to ukazuje, ako je možné prácu vyberať a riadené z SQL dotazu rámec, ktorý by mal byť naozaj oddeľovať vaša práca ovládať tak, že ak sa rozhodnete prejsť na používanie webovej služby, súbor založený systém, XML , alebo iné počet systémov, nebude mať vplyv na kód, nad ním.

Pracovné konfigurácie

Ďalším aspektom je, aby zvážila veľkosti úlohy a konfigurácie. Tým, že hrá s prácou konfiguráciou môžeme zasiahnuť vynikajúcu rovnováhu medzi rýchlosťou procesu replikácie a spoľahlivosť. Urobte si pár scenárov OFA:

  1. Práca trvať 1 deň každý spustiť: To znamená, že pracovníci potrebujú 15 dní na spracovanie každého zamestnania (pamätajte 10% energie pre 2/3rds času). To zjavne nie je múdre konfiguráciu, vašou úlohou veľkosť je príliš veľký! To by trvalo minimálne dvakrát čas na spracovanie úlohy by mal ísť prvý zamestnanec neospravedlnenú absenciu (čas vyzdvihnúť, že sa nevráti a výsledkom prepracovania času). V ideálnom prípade by ste mať aspoň jeden plný pracovný ľahko zrušené na konci každého obdobia dlhej nečinnosti, tak budete mať prácu beží znovu a v najhoršom prípade zamestnania trvalo dva dni, proces by mal prvý stratí.
  2. Práca sa 1 minútu plynúť: To znamená, že pracovníci trvať asi 15 minút bežať každú prácu. Aj keď to spočiatku môže zdať ideálna, môžete získať ďalšiu prácu pre spracovanie v čase obeda, občerstvenie, stretnutia, atď tento scenár kladie nároky na ďalšie oblasti vášho systému a zavádza svoje vlastné problémy. Napríklad, najprv si setup / doba spracovania je pomer pôjde vpravo dole, a preto stráca účinnosť systému. Vaša sieť sa bude stále streaming práce informácie k jednotlivým pracovníkom frustrujúce zamestnanci, ktorí sú Dong ich každodennej práci. Vy ste tiež bude klásť väčšie nároky na serveri spracovanie zákaziek, pretože musí rozdávať veľa malých kúskov práce na pravidelnom základe. Napokon, v tejto situácii, ak vaša práca server zlyhá budete vytvárať veľké zadné protokol nedokončenú prácu zatiaľ čo väčšie pracovné miesta, by na pokračovanie v konaní blaženej nevedomosti, že práca server problémy.

V skutočnosti tam bude nikto ideálne nastavenie pre nastavenie siete, záleží na dostupné zdroje, druhy práce, pracovné podmienky obrátky času, možnosť práce v sieti, a tak ďalej. Avšak niektoré zásady by bolo:

  • Veľkosť pracovných miest tak, aby každý zamestnanec môže dostať do minimálne 3-4 pracovných miest v období 15 hodín (pravdepodobne najdlhšiu dobu nečinnosti)
  • Hrajte s veľkosti úlohy tak, aby nastavenie času stáva celkom zanedbateľné v porovnaní s dobu spracovania (s ohľadom na vyššie uvedený bod).
  • Ak sa o prácu nedokončí v dvojnásobné množstvo času (možno aj menej), môžete očakávať, že na jeho dokončenie predpokladať, že už dezertoval a začať spracovávať s iným pracovníkom. To znamená, že budete musieť počkať až na trojnásobok normálnej dĺžku práce na dokončení (možno aj dlhšie, ak následné prácu zlyhá). Možno budete chcieť znížiť tomto okamihu, ale dávajte pozor, aby jeho obmedzenie príliš veľa, ako môžete začať duplikácie spracovanie úloh v pravidelných intervaloch.
  • Práce by mali byť nezávislé na vonkajšie podmienky čo najviac. Pracovný server, napríklad, by malo byť kontaktovaný na začiatku a na konci každé pracovné miesto.
  • Nepoužívajte nasýtenia siete, bude to mať dva negatívne dôsledky, bude vaše denné zamestnanca nájsť pomocou siete frustrujúce a problémy môžu nastať s pripojením časového limitu problém, ktorý sa bude len zhoršovať, ako si škálovať sieť.
  • Zabezpečiť pracovné miesta môže bežať na vašich zamestnancov. Ak sa práce príliš náročné na pamäť a diskový priestor intenzívnej práce začne potratenia a jediné, čo si všimnete, je zníženie počtu pracovných miest spracovaná žiadny skutočný dôvod, prečo.

Predkladanie výsledkov zamestnania

Pri predkladaní výsledkov práce je dôležité skontrolovať, že výsledky neboli predložené iným pracovníkom, a to najmä v prípade, že súčasný pracovník bol spiace po určitú dobu.

Ak nie sú predložené výsledky zabezpečí, že počet výsledkov zodpovedá počtu záznamov v práci.

Ako už bolo povedané, a nemôže byť viac ako zdôrazniť, budovať odolnosť proti chybám v práci a výsledky vyhľadávania podania. Pracovníci môžu (a pravdepodobne bude) ísť do režimu spánku v najnevhodnejšej dobu a na to je potrebné pre zaistený. Tiež jednou preč oddeľovať svoje výsledky podanie pomôže uspokojiť budúce zmeny systému kontroly práce oveľa jednoduchšie riešenie.

Prehľad

V tomto section sme sa zamerali na to, čo prácu Control Server je potrebné urobiť a ako sa dostať veľmi základné nastavenie systému. Diskutovali sme o tom, ako získať prácu z riadiaceho systému a ako najlepšie nastaviť pracovné miesta, aby čo najviac využiť vášho systému Office siete. Na záver bol prezentovaný jeden alebo dva odseky na predkladanie výsledkov späť na server kontroly práce.

  • Ovládanie úloh server spravuje pracovné miesta a zabezpečia, že všetky pracovné jednotky sú dokončené
  • Abstrahovaním svoju prácu vybrať / odovzdania výsledkov môžeme zmeniť technológiu ovládania serveru bez veľké problémy
  • Nastavte si zamestnania, aby sa zabezpečilo, že sú prevádzkované rýchlo a efektívne, bez príliš veľký tlak na vašej sieťovej infraštruktúry, a bez zdvojovanie spracovania úloh v pravidelných intervaloch.
  • Uistite sa, že budovanie tolerancie chýb a omylov checking do rutiny, môžu pracovníci pozastaviť a obnoviť a najnevhodnejšej časov. Nezabudnite skontrolovať, či výsledky už boli predložené iným pracovníkom.

Nabudúce

V časti 3 sa budeme vytvárať virtuálne spracovanie a nastavenie našich strojoch s Windows, aby sa stal nečinnosti úväzok.

Office Grid Computing pomocou virtuálnych prostredí - Časť 5

Tým, , piatok 04.12.2009 23:03

Úvod

Pracujem vo firme, kde sme sa spustiť mnoho dávkové spracovanie úlohy milióny záznamov dát každý deň a ja som v poslednej dobe premýšľal o všetkých strojov, ktoré sedieť každý deň robiť nič, po dobu niekoľkých hodín. Nebolo by dobré, keby sme mohli použiť tie stroje pre posilnenie výpočtového výkonu našich systémov? V tomto súbore článkov budem pozerať na potenciálne výhody zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

V časti 4 sme sa zamerali na použitie nástroje, ktoré zabezpečia, že používate najnovšiu verziu kódu a dátových zdrojov tak, aby získané výsledky sú vždy up-to-date s posledným obchodných informácií a logiky.

Pred nasadením

Pred nasadením svojej distribučnej sústavy, ak je tu ešte jedna vec, ktorú urobíte, a jednu vec sám je meradlom vášho existujúceho systému! Bez ohľadu na to, čo poviete kolegov o tom, koľko práce navyše systém bude robiť, ak ste čísla by toto svoje záruky nič. Tak,

  • koľko záznamov môžete spracovať v súčasnej dobe? Za deň? Za hodinu?
  • Ako dlho obyčajne trvá, aby sa obrátil prácu?
  • Ako ďaleko väčšiu kapacitu máte?

K dispozícii je i ďalšie otázky:

  • Ak váš spracovanie server (alebo jeden z vašich serverov pre spracovanie), ide dole, ako to ovplyvní vaše schopnosti, budete zmrzačený?
  • Aké výhody dúfate / očakávať, že si z distribučnej sústavy?
  • Sú vaše kancelárske stroje je možné spustiť pracovné miesta?
  • Sú vaše (alebo si môžete prácu previesť) pre prácu v tomto štýle behu?

Posledným dôležitým bodom je, aby čas na žiadne veľké zmeny, ako je tento. Aktualizujte svoj operačný kód pre prácu s použitím novej metodiky, porovnávacie znovu. Možno nastaviť spracovanie serveru spustiť virtuálny stroj, po spracovaní všetkých serverov bude len ďalším pracovníkom (len veľmi mocný relatívne). Nechajte nový proces sa usadiť.

Nasadenie

Môj návrh by bol pop do kancelárie jeden víkend vykonávať všetky inštalácie a nastavenia. Urobte to tesne predtým, než štrnásť dní na dovolenku a nechať ostatných, aby chudák sa vysporiadať s následkami ... možno nie ...

Nasadenie systému, ako je tento musí byť pomalé. Hoci sa jedná o relatívne jednoduché nastavenie tohto systému bude mať vplyv na celú kanceláriu infraštruktúry (i digitálny signál). Po prvé, nasadiť na niekoľko strojov naraz, sledovanie sieťovej prevádzky, ako pracovník hostí hrať na deň-to-dennej báze. Možno budete musieť zmeniť svoje prácu konfigurácie v reakcii na vaše nálezy.

Akonáhle sa systém usadil sa na niekoľko strojov (povedzme, že 10% všetkých kancelárskych strojov, tj 5) držať monitorovanie sieťovej prevádzky a hostiteľskom počítači performance. Ďalšie meradlo znovu, mali by ste byť teraz spracovanie o 33% viac pracovných miest ako prvá kritérií. Skontrolujte, či tomu tak je, alebo že ste aspoň v tomto Ballpark. Ak nie, zistiť, čo sa deje predtým, než prejde. Opakujte tento cyklus, kým spokojne všetky kancelárske stroje beží bez zabíjanie individuálny výkon stroja alebo brúsenie siete k pokoju.

Za všetkých okolností držať benchmarking, a to aj potom, čo sú všetky nasadenie. Skontrolujte, ako nový kód aktualizácia ovplyvňujú rýchlosť systému, pozrite sa všetci pracovníci hlási a spracovanie pracovných miest. Pomaly (veľmi pomaly), zvýšenie vašej práci konfiguráciu toho najlepšieho z vašich pracovníkov a siete.

Stop!

Čo keď chcete zastaviť pracovníci z prevádzky na dlhšiu dobu? Všetci sú tam beží, regeneračné a snaží čo najviac pre spracovanie dát, ako je hlad, hmyz. Odpoveď sa môže zdať zrejmé, ale svoj význam len v prípade, pridávať svoje prehliadaná. Jednoducho upravovať svoje spracovanie skript exit (0) or die (), alebo nejaký iný príkaz zabiť spracovanie práce. Dôležitým dôvodom, prečo sme sa vždy snaží aktualizovať na najnovšie spracovanie skriptu pred beží!

Demonštrácia systému

Aby bolo možné písať tento súbor krátkych článkoch, ktoré som vytvoril veľmi malé siete preukázať technológií a metodík. Čítal som veľa návodov článkov, a používajú rôzne nástroje pre nastavenie a sledovať, čo sa deje. V žiadnom prípade som šiel von a nasýtených celú kanceláriu s prevádzkou a ani som nemal prístup k bežnému PC zamestnanca, aby videli, ako bol ovplyvnený výkon hosť.

My demonštrácie systém bol naozaj veľmi pokorný. Použil som štandardné desktopovú nastaviť ako server kontroly práce. Na to som inštaloval MySQL Server nainštalovaný nastaviť ako master replikácie, PHP , A a SVN prepojené cez apache (pre prístup prostredníctvom pracovníkov VM).

Potom som vytvoril pracovník CentOS stroj na VirtualBox na 6 rokov Windows XP notebook. Aj nastavenie plánovaných úloh, ako je uvedené Po skopírovaní VM na stroje a nechať to ísť.

Virtuálny stroj bol pripravený s PHP, Subversion, a MySQL. Overil som si vetvu s názvom "pracovník" z práce kontrolujú servery a úložiská sa uistil, že môže byť aktualizovaný pomocou "svn update '. Ďalej som nastavenia MySQL ako otrok a skontrolovať, či dáta boli replikovať MySQL na serveri kontroly práce sa na pracovníka VM. Po tom všetkom som setup bash skript a cronu.

My spracovanie skriptu v podstate išlo v duchu tejto (veľmi jednoduché veci):

  • Prečítajte si v poli Názov
  • Počíta sa počet podobných mien v tabuľke zo zdroja údajov v dňoch VM
  • Počíta sa počet mien ako vyššie, ale rozdelenie meno priestory (tj meno, stredné, priezvisko)
  • Opakoval tento proces 1000 krát

Každá práca sa približne 20 minút bežať. V jednej chvíli som otvoril niekoľko kópií pracovníka VM na notebooku windows a sledoval, ako sa pracovné miesta odškrtnúť každý z adries IP pracovníka. Na tomto mieste by som tiež potvrdil, že replikácia sa automaticky reštartuje.

Odchod z notebooku do kľudového viedlo pracovník začatím spracovanie úloh zo servera kontroly práce. Pri opätovné použitie notebooku bolo oneskorenie asi 30-60 sekúnd, to je slušné množstvo času a pracovníkov bude musieť byť vedomí, že ich stroje môže pozastaviť na krátku dobu pri návrate do stroja. Novšie stroje nemusí mať pauzu tak dlho. Prínosom vyššie spracovanie vykonávané v rámci týchto strojov pri nečinnosti by bolo viac, ktoré prevažujú zamestnanci museli čakať na krátku dobu (povedzme 1 minúta) Po príchode na ich stroje ráno (často som čakať dlhšie, že to pre Windows Defender Aktualizácia sa konať) za predpokladu, že boli informovaní o tejto (užitočný čas chytiť rannú kávu!).

Celkovo Verím, že som demonštroval technológie, ktoré by mohli byť použité na vytvorenie takéhoto systému. Ukázal som, že takýto systém funguje na (veľmi), v malom meradle a niektoré ďalšie experimentovanie môže byť zmenšený až využívať zdroje kancelárie strojov. Ak sa mi dostať do bodu, ako to dosiahnuť by ma veľmi zaujímalo, / vidieť, keď niekto iný.

Závery / hodnotenie

V ďalšom kroku by bolo zrejmé, skutočne sa v reálnom svete, príkladom a začať nasadenie systému, ako je tento v rámci kancelárskeho prostredia, a čo sa stane. Kladenie podnikania, aby sa zaviazali, bez chodník horiace spoločnosti preukázať technológiu a účinnosť môže byť trochu ťažké. Mriežky / Distribuované výpočty, je veľmi populárny, je niekoľko kruhov a má isté veľké aplikácie (BIONC, SETI @ Home, Folding @ home atď.) Nechcel som však nájsť menšieho rozsahu a jednoduchý systém, ako je ten môj vyhľadávanie, ktoré by mohli byť vrátená v rámci kancelárskeho prostredia.

Vytvoril som v podstate bez systému, s použitím prevažne open source softvér a nástroje v takmer každej kancelárie. Technológie boli v podstate preukázať a ukázať hrať a pracovať podľa očakávania. Dúfam, že som sa ukázať, že sa nie je moc práce a veľmi jednoduché nastavenie, ktoré je možné nasadiť Office systém grid computingu, ktorý je silný, lacný, A a škálovateľné všetci v rovnakom čase.

Akonáhle je systém v prevádzke už takmer žiadny koniec vyššie úprav a vylepšení môžete urobiť. Napríklad je možné štatistiky / benchmarking ľahko pridať ukazovať hodnotu takéhoto systému každý deň. Nové stroje môžu byť pridané rýchlo a ľahko, ako a kedy dorazí s upgrady existujúcich hardware posilnenie svojej výpočtový výkon.

Dúfam, že ste si užili čítania tejto sérii článkov a vám dal k zamysleniu na prevádzku kancelárie distribučnej sústavy. Riešenie tu nemusí nutne fungovať vo všetkých prípadoch, ale je potrebné prispôsobiť, aby vám umožní dostať svoje spracovanie dát vykonáva pomocou vlastného riešenia.

Neváhajte a pošlite mi pripomienky, opravy, alebo zlepšenie a ja v mojich silách, aby tento článok aktualizovaný na zápas.

Zend Framework: Základy - Recenzia

Tým, , v sobotu 28. novembra 2009 22:42

Môj zamestnávateľ v poslednej dobe platí pre skupinu vývojárov z nás, aby sa Zend Framework: Základy Samozrejme, tu budem zhrnul svoje myšlienky a názory na ihrisku pre ostatných. Pre tých, ktorí chcú ušetriť čas, tu je moje zhrnutie:

Pre vývojárov, ktorí nemali čas pozrieť sa na Zend Framework Kurz (Zend Framework: Základy) ponúka dobrý celkový obraz prostredníctvom zavedenia si na kľúčové oblasti a dáva dostatok informácií, aby mohol pokračovať. Pre tých, ktorí strávili nejaký čas pri pohľade na rámec, a šli sme za jeden či dva návody Tento kurz neponúka toľko ďalej.

Pozadie

Bol som PHP developer cca 5-6 roky, a začal pracovať s Zend Framework na jednotlivých súčastí za posledných 6 mesiacov. Som sa rozvinúť, a / alebo bol developer na pár malých Zend Framework MVC sites. Budem úprimný, nemal som obrovské množstvo expozície iných rámcov z hľadiska kódovania, ale strávil niekoľko hodín skúmanie a hodnotenie webových stránok projektu them. rámec a obce okolo Zend Framework to je docela vzrušujúce a tam sa zdajú byť obrovské možnosti, kde jeho chodu.

O priebehu

Kurz je dodávaný cez 9 dve hodiny sedenia WebEx (s 10-minútová prestávka uprostred). Čas strávený prechádza súbor prezentácií poskytovaných Zend s diskusiou kedykoľvek. Môžete použiť mikrofón hovoriť s inštruktorom, ale aby som bol úprimný, som nevidel nikoho použiť niečo viac než chat okna. Navyše je VMWare Ubuntu stroj za predpokladu, že má napríklad kód a projekty, ktoré skúšobnú verziu Zend Studio. Rozhovory samozrejme vodca účastníkom buď cez riešenie integrovanej VoIP, alebo môžete vytočiť jedným z mnohých na celom svete voľby v číslach.

V priebehu materiál sa skladá z stručný prehľad rámca a vzor MVC Než sa vydáte na ukážkovej aplikácii guestbook. Diskusia preukázala Bootstrapping, Zend_Application, databázových tabuliek, Prístup k databáze, formuláre, filtrovanie, ACL, overovanie, atď, atď V podstate pre všetky témy, ktoré si vyžadujú, aby sa základné stránky do prevádzky po celý čas dáva vám nástroje na Choďte a pokročilejšie v rámci (aj keď to predsa čiastku "Pozrite sa na stránky" veľa času).

Čas je daná kódom nejaké príklady, a rozvíjať "Kniha návštev" a prosté "wiki" aplikácie. Osobne som cítil, že poskytovanie kód alebo každej aplikácie a potom nás žiada, aby sme rozvíjať to, čo bola v podstate kópia spolu sa naozaj poskytnúť dobré skúsenosť. Bol by som radšej vyvíjať aplikácie podobné, ale nie totožný. na príklad aplikácie s výhodou mať sprievodca ktorý sa odkazuje. Inak stavebné aplikácie od nuly s demonštrátor by potenciálne viedla k ďalším otázkam, prečo a ako, a umožňuje tak lepšie pochopenie rámca, po tom všetkom sa môžete pozrieť špecifiká po skončení kurzu.

Posledná prednáška sa skladala z práce na wiki aplikácie s pomoci / pokyny inštruktora. Po absolvovaní kurzu spätnej väzby bolo prijaté, bolo zdôraznené niekoľkokrát cez kurz, ktorý sa Zend spätná väzba veľmi vážne, v skutočnosti zrejme naša verzia bola samozrejme úplne nová. Niektorí iní vývojári v spoločnosti bude brať samozrejme čoskoro, takže bude zaujímavé sledovať, či sa to stalo.

Kurz štýl bol neformálne, možnosť spätnej väzby a spoluprácu medzi účastníkmi a inštruktor. Samozrejme vodca bol priateľský, prístupný (e-mailové adresy sú spoločné pre otázky), a zatiaľ čo jeho prezentáciu snímok bol trochu neistý zdalo plne kompetentní v rámci. On bol jednoznačne ten, kto používa rámci pravidelne a nie niekoho, kto sa učí učiť Samozrejme, že som mal rád "skutočný svet" skúsenosť v tomto smere.

Celkový pocit

V niektorých cestách som zistil, že samozrejme strata času, v iných to bolo veľmi užitočné. Dúfam, že dostanem svoje dôvody v rámci jasne, a možno poskytnúť niektoré k zamysleniu a užitočnú spätnú väzbu (Knowing Me to je nepravdepodobné!).

Pre mňa bol tento kurz zameraný na príliš nízkej úrovni. Po prešiel Rýchly sprievodca, prečítajte si Rob Allen je Zend Framework v akcii, a pracoval s rámcom trochu som sa naozaj nič moc. Ja by som rád v priebehu vyzdvihnúť od konca QuickStart a rozvíjať ďalšie zručnosti.

To znamená, že kurz titulu sa jasne "Zend Framework: základy" a v tomto aspekte samozrejme dosiahne, čo sa na to. Ostatní členovia vývojového tímu, ktorý doteraz strávil čas sa pozrieme do rámca dokončenia každé stretnutie s nadšením a otázky, ktoré bolo naozaj pekné vidieť.

Nie je všetko stratené, to bolo dobré tráviť čas potvrdenie základné informácie o rámcových a dostať sa opýtať na pár otázok v oblastiach, kde som si nebol 100%. To bolo tiež čas, ktorý som si sadnúť každý deň a premýšľať o kódovanie pomocou rámca a budúcich projektov, niečo, čo by sa v mohol urobiť inak (Viete si predstaviť vaše firma súhlasiť, že to:)). V neposlednom rade tiež získať pekné certifikát Zend povedať, že ste sa zúčastnili kurzu (aj keď e-mailom).

Zend Framework Certifikácia

To bola jedna otázka, ktorá stále prichádza na myseľ v priebehu, to by ma pripraviť na certifikáciu? Rýchle a ľahké je rezolútne NIE. Kurz Inštruktor bol úplne jasne, že s ďalšie odporúčania, že pre certifikáciu, mali by ste naozaj používať rámca na každodennej báze a cítiť veľmi pohodlne a verí v jeho použití a metodík.

Prehľad

Vzhľadom k tomu, čo som napísal vyššie, budem zhrnúť všetko, čo v dvoch jednoduchých bodoch:

  • Nové Zend Framework: Tento kurz má presne to, čo by ste čakali, že vám pekný úvod do rámca a dobrú prípravu na základy, z ktorých môžete stavať. Kurz Zdá sa, že vzbudiť záujem a nadšenie pre rámec medzi vývojármi.
  • Používa Zend Framework: Keď to bolo pekné, aby podoprieť niektoré veľmi základné Cítil som čas, úsilie a finančné prostriedky, aby sa kurz mohol byť lepší v niekde inde. Bude pekné SEEA Zend vytvoriť novú vyššiu úroveň kurzu, aby vývojári do ďalšej úrovne. - Aspoň na úroveň certifikácie a predčiť očakávania, že by som sa okamžite prihlásiť.












Panorama Téma, ktoré Themocracy

11 návštevníkov online
7 osôb, 4 topánky, 0 členov
Max návštevníkov dnes: 22 v 06:15 UTC
Tento mesiac: 23 v 24-08-2011 05:40 GMT
Tento rok: 130 u 28-03-2011 22:40 GMT
Za celé obdobie: 130 u 28-03-2011 22:40 GMT