Kategória: PHP

Trasa žiadosti o sitemap.xml na vlastný radič / akcia

Tým, , v stredu 06.01.2010 00:13

Aby bolo možné priame žiadosti / sitemap.xml do vlastného regulátora a akcie v Zend Framework aplikácii 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
 triedy 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ť ponuku Sitemap a strúhankou .

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ého aplikáciu nemusíte nutne chcieť rovnaké rozloženie scenárov pre každú časť. Rozhodol som sa ísť s nasledujúce š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 pre jednotlivé moduly základ. 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 / štáty / 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
      * /
     triedy Pro_Controller_Action_Helper_SetLayoutPath
         rozširuje Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Nastavenie vzhľadu cestu založenú na module
          * /
         public function preDispatch ()
         {
        	 $ Module = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ Bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("Bootstrap")) {
    
    	         $ Config = $ Bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] ['zdroje'] ['layout'] ['layoutPath'])) {
    	             $ = LayoutPath
    	                  $ Config [$ modul] ['zdroje'] ['layout'] ['layoutPath'];
    	             $ This-> getActionController ()
    	                  -> GetHelper ("usporiadanie")
    	                  -> 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, , streda 30 december 2009 18:30

Bol som zápasil s vytvorením databázy schéma pre nové Zend Framework projektu. Ja som použitie snaží využiť doktríny ORM pre svoje databázové modely. Potrebujem nastaviť schému tak, aby mi umožnil nastaviť predvolené dátum a čas pre `datetime` stĺpec, napr pri pridávaní 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, postupujte nasledujúcim spôsobom:

 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
     Názov: string (255)
     email: string (300)
     message: String (2000)

Ak je na druhú stranu nechcete, aby `updated_at` stĺpec, 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:
         zdravotne postihnutých: true
   stĺpce:
     ID:
       Typ: integer
       Primárne: true
       AUTOINCREMENT: true
     Názov: string (255)
     email: string (300)
     message: String (2000)

PHP Design Patterns - Observer pattern

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, že 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 svojich závislé, 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í.

Ako systém bude stále viac voľne viazaných uistite sa, že až sa táto udalosť stane, všetky systémy, ktoré vyžadujú znalosti o týchto zmenách informovaní. Napríklad, blogu, po uložení príspevok budeme musieť aktualizovať vyhľadávače (napr. Lucene), aktualizovať náš mapa stránok, štítky, 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ď) do predmetu (napr. blogu redakčného systému), si môžeme dovoliť ich plniť 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ých úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe 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žívať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy 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 Idle-úväzok.

Spustenie posledný kódex

Nevyhnutne Po vytvorení pracovníkov obchodnej logiky sa zmení, bude chyby nájsť, 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 zaistí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, že trik je však pre zníženie výpočtového výkonu a sieťovej prevádzky v dosiahnutí tohto cieľa. Začnime s najjednoduchšie riešenie a zlepšiť to pomaly cez niekoľko iterácií.

Prvá metóda by sa jednoducho pripojiť k nášmu serveru pre ovládanie úloh (cez Sambu, FTP, apod) a vytiahnite sa na najnovšiu verziu kódu. Nie je príliš efektívne, 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 (tzv. cron 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ť hneď"
     cd / cesta / k / práce / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Teraz môžeme byť istí, že s každým spustenie sme definitívne posledná verzia kódu. Sme zabezpečenie tak, že aktualizáciu našich zdrojový kód každého a zakaždým, keď 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 serveri spracovanie zákaziek a jednoducho som stiahol posledný kód "pracovník" vetvu pomocou "svn update". Tiež som pridal tag číslo verzie na moje spracovanie skriptu, ktorý bol vrátený v databáze 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ží na najnovšie spracovanie skriptu.

Použitie najnovších údajov

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

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ždý stroj, ako kúpiť ďalšie spracovanie serveru. To je otázka rozpočtu, a je na obchodné rozhodnutia. Je možná, že vaše zdroje dát sú tak veľké, že je to len možné, aby také 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 sa distribučnej sústavy, ako je tento sa môže stať nereálne zahrnúť do vašej kancelárie. To môže tiež byť, že sa môžete pozrieť na alternatívne beh stratégií, napríklad iba Volanie pracovníkov medzi dvadsať hodín a 6 hodín ráno každú noc a / alebo škrtiacej zdrojmi dát požaduje.

Pohybujúce sa na povedzme našich dátových zdrojov činí 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 nastavenie 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 aktualizácia ovládanie servera do zdroja dát sa dostali až pekne do pracovníkmi bez obrovský nárast sieťových aktivít (teda, ak 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ú úlohu, ako aktualizácií databázy MySQL bude démon na pracovníka priebežne aktualizovať svoje údaje, zatiaľ čo spracovanie pokračuje.

To je, ako mám nastaviť môj demonštráciu server. Ak chcete nastaviť replikácie Postupoval 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átovej sady. Za každý ďalší pracovník nastavenia replikácie a proces pracuje 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ť zaistí, že držíme krok s obchodnej logiky a informácie v našom systéme Office siete. K dispozícii budú samozrejme bezpočet alternatív 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 pomenovanej č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ých úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe 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žívať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy zamestnávanie Office siete prostredníctvom virtualizovaných prostrediach.

V časti 2 sme sa pozreli na prácu serveru pobeží, a 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 výnimky.

Nastavenie vášho pracovníka - 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 krívať (Li Nux, ySQL m, P HP) Servera (Možno som sa, že názov sa).

  • Inštalácia VirtualBox na počítač s Windows (nasledovať odkaz)
  • 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 povolal svojho virtuálneho stroja GridMachine.

Čo sa týka mojej možnosti virtualizácie 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é web server. Som veľkým zástancom správne nástroje pre prácu (aj keď som aplikáciu "používajú najrýchlejší a najjednoduchší pre Vás" mentality tu), takže ak operačný systém X beží kódu 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 musel byť nastavený samostatne čo je niečo, čo nemáme want.By pomocou DHCP nepotrebujeme konfigurovať nastavenie siete osobitne pre zamestnancov zariadenia, bude DHCP ruky z IPS pre vás. Preto je možné skopírovať vaše virtuálny stroj na úrade bez obáv o nastavení každej z nich sa (To zvyš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 nastaviť všetkých svojich zamestnancov v inej podsieti, takže sa môžete aspoň pozrieť, 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, či už je to shell skript alebo PHP skriptu sa vykonáva raz na pracovníka a pracuje ako súčasť nekonečnej slučky. Ja som túto metódu diskontovaných ako jeden pád scenára a prípadne si zamestnanci prestanú prevádzkovať bez nejakého zásahu.
  • Cron na skriptu: každých x minút cron démon začína volaním skriptu dať veci do pohybu. Bez nejakej kontroly To by mohlo viesť k mnohým mnohých 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 vykoná nasledujúce ú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ódu, 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ť hneď"
     php yourJobProcessingScript.php
 fi 

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

Že dochádza k záveru 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é konfigurácie a na tom, aby úlohu spustí v prípade potreby (napr. keď hostiteľ je nečinný ).

Nastavenie Windows inicializovať pracovníkov

Prvou úlohou je prísť na príkaz 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 svoje worker GridMachine potom príkaz načítanie vášho pracovníka:

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

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

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

Tým sa spustí 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ž k naštartovaniu nášho pracovníka VM, akonáhle stroj bol nečinný. K tomu (na Windows XP), budete musieť ísť Štart -> Všetky 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 ktorúkoľvek 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, tak by som navrhnúť, ako "správca", alebo vytvorenie nového privilegovaný užívateľ. Pamätajte, nechceme zasahovať do štandardného pracovníkov účet na počítači, v každom bode. Kliknite na tlačidlo Ďalej a zaškrtnite Ukázať pokročilé možnosti pre túto úlohu.

Ku koncu behu textového poľa pridať náš reťazec "startvm GridMachine" a zabezpečiť, že beží len 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ú chcete prístroj musí byť nečinnosti pred prechodom na ďalšiu záložku.

Nakoniec zrušte začiarknutie voľby, ktorý stanovuje úlohu zastaviť, ak bol spustený 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 hostiteľských Windows!

Prehľad

V tejto časti sme vytvorili 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 na tomto mieste vidíte, aké jednoduché je vytvoriť taký systém, a sú svrbenie, aby si niektoré experimenty ísť sami!

Nabudúce

V časti 4 budeme hľadať v používaní nástrojov, aby zabezpečila, že používate najnovšiu verziu kódu a dátových zdrojov tak, aby získané výsledky sú vždy up-to-data s aktuálne obchodné informácie 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ých úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe 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žívať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy 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 meniť veci pre jednoduchosť, alebo produkovať ďalšie zaujímavé scenáre použitia.

Tieto virtualizovaných prostredí bude bežať na počítačoch so systémom 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 nie je potrebné žiadne ďalšie nastavenia, pretože to výrazne znižuje škálovateľnosť a ľahké, pri ktorej môže byť predĺžené distribučnej sústavy.

Prečo Nasadenie Office Computing Grid?

Po prvé si môžu myslieť, prečo nie len pomocou cloud computing zdroje, ako je Amazon EC2 platformy ? No z dôvodov môže byť niekoľko, napr:

  • 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 o odchode zo zeme), prípadne z právnych dôvodov, napr NHS záznamy.
  • Vy chcete, aby vaše procesorov úzke a mať plnú kontrolu nad hardvérom i
  • Nemáte projekt finančné prostriedky na spustenie inštancií cloud
  • Vaša kancelária nemá pripojenie k internetu, a preto to nie je možné využ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 fyziku v pravom štýle umožňuje vykonať niektoré rozsiahle predpoklady). Predstavte si, že máte 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 času = 0,067, tj o 1 pracovnej ploche spracovanie v nečinnosti procese 6 celých úloh za deň.

Ak ste sa mierka tohto až za 15 nečinnosti počítačov spracovať čo najviac pracovných miest za deň ako hlavný server pre spracovanie.

Takže predstierať, že v našej kancelárii na 50 strojov sme mohli zvýšiť naše výpočtový výkon servera od 1 do 4 kompletné spracovanie servery, alebo by sme mohli byť spracovanie 400 pracovných miest za deň 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 som sa stroje sú zvyčajne vľavo na noc tak, aby ste mohli vidieť ako 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 použitie):

  • 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 na spustenie
  • 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 údajov, na ktoré musíme zápas a vrátenie výsledkov
  • Prispôsobenie sa týka kontrola / Vyhľadávanie niekoľko (pomerne statické) zdroje dát
  • Výsledky z dátových zdrojov môže 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 potvrdená 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ú zmes vyhľadávanie v databázach, a nejaké číslo škrípať, celkom typický scenár v podnikateľskom prostredí.

Mriežka riešenia sú nielen výhodné pre spracovanie úlohy tohto typu. V podstate sa každý proces, ktorý môže byť rozdelená na samostatné jednotky paralelne. Pozri tento Wikipedia príklady a ďalšie informácie: Grid Computing , ale pár známych príkladov Seti @ Home a BIONC . Existujú rámca pre prevádzku výpočtových sietí, a tie stoja za pohľad do.

Čo docielime?

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

  • Nastavenie práce kontrolného systému, pracovné konfigurácie
  • 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, tak 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 nie je v žiadnom prípade predviesť plne funkčný robustný systém, jeho znamenalo viac demonštrácie 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 nejaké 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 výnimky.

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ých úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe 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žívať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy 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áce potom budete potrebovať nejaký spôsob, ako riadiť. Vašou úlohou riadiaceho systému (na svoju prácu serveru) musí byť naozaj dobre premyslené ešte predtým, než pokusom o spustenie aplikácie 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ú prácu 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 jednom prípade môže byť predĺžená spustiť niekoľko typov pracovných miest a podnikanie vidí hodnotu v tabuľke riešení. Napríklad môže získať zamestnanie priority, viac ako jeden typ úlohy môže existovať (tj niekoľko základní kód), prípadne môžete dokonca spustiť 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ôžu krátkodobo viesť k víziu dlhodobej frustrácii a väčší čas na vývoj.

Pracovné server

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

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

Neexistuje žiadny dôvod potom, že vaša práca serveru nebolo možné virtuálny stroj, ktorý funguje v rámci svojej hlavnej server, spracovanie, za predpokladu, že nie je kanalizácia príliš veľa prostriedkov z nej. Server práce však potrebuje vysokú dostupnosť, pokiaľ to ide dole v piatok večer budete strácať celý víkend spracovania, prípadne vás to stálo za pár týždňov za spracovanie času (v porovnaní s hlavným serverom pre spracovanie sám) . Možno budete chcieť, aby zvážila svoju prácu 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 mi volá 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é zamestnanie je možné spustiť v interakcii s databázami 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, umožňuje vytvoriť tri mySQL tabuľky vysporiadať s pracovnými miestami. 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 ľahš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
  • Meno: Môže to byť klient odkaz, alebo ľubovoľný počet ďalší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 začal robiť prácu? To nie je úplne nutné, ale je príjemné 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ť iný pracovník. Pracovníci môžu zastaviť spracovanie / go offline ľubovoľný počet dôvodov, výpadku napájania, havárie, strata siete, atď

Je to jednoduché, ako by táto tabuľka rozšíriť o niekoľko ďalších oblastiach s cieľom umožniť sledovanie štatistík, konečný čas stĺpce, ako dlho si prácu, počítadlo, koľko pracovníkov zdvihol práci (zrejme 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 pracovník musí mať prístup k (a preto používajte vhodné 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, to sú naše pracovné knižky. Sú spojené s hlavným zamestnania tabuľky stĺpec `` jobs_id. Značka sa 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 tvorí naše záznamy tabuľky, a pridaním niektorých stĺpcov môže byť súčasťou záznamov tabuľky:

  • job_record_id: Odkaz výsledok do tabuľky zákaziek
  • 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 ma upozornil na iný stôl, kde sa nachádza moje osobné údaje spracovávať, ale to by mohlo rovnako dobre byť súbor parametrov, spustiť simuláciu kód, čo si len spomeniete.

Výber práce

Ako už bolo uvedené, budú pracovníci robiť svoju prácu manažmentu pre nás, takže všetko, čo potrebujeme 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 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 AND `` = started_by __ME__; 
  2. Pomocou našich kritérií pre výber úlohy, vyberte si prácu a povedať, že tento systém riadenia pracovník zaoberajúci sa, že:
      UPDATE `` SET `zamestnanie status = 1`, `=` started_by __ME__, `started_at` = Now (), kde `status` = 0 alebo
     (`Status` = 1 AND `` started_at> DATE_SUB (NOW (), interval X HOUR)) ORDER BY `id` ASC; 

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

  3. Ďalšie detaily uchopiť práci nasleduje záznamov 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 je možné prácu prerušiť / obnoviť kedykoľvek počítať s nejakou robustnosť v skripte. To by mohlo byť, že úloha pozastaví polovici aktualizácie práce 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 akékoľvek 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, proces 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 musia 15 dní spracovanie každého zamestnania (pamätajte 10% energie pre 2/3rds času). To zjavne nie je múdre konfiguráciu, vaša práca je veľkosť 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 výsledok prepracovanie a čas). V ideálnom prípade by ste mať aspoň jeden plný pracovný ľahko vymazaná 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. Pracovných miest 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álne, môžete získať ďalšiu prácu pre spracovanie v čase obeda, občerstvenie, stretnutia, atď tomto prípade kladie nároky na ďalšie oblasti vášho systému a uvá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ť bude neustále streaming práce informácie k jednotlivým pracovníkom frustrujúce zamestnanci, ktorí sú Dong ich každodennú prácu. Vy ste tiež bude klásť väčšie nároky na serveri spracovanie zákaziek, pretože má 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, veľa závisí na dostupné zdroje, druhy práce, pracovné podmienky dobu návratnosti, sieťové schopnosti, a tak ďalej. Avšak niektoré pokyny by mali mať:

  • Veľkosť pracovných miest tak, aby každý pracovník môže prejsť aspoň 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 je práca nie je kompletný 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ĺžka 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 ho znížiť 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 externé požiadavky, čo najviac. Pracovný server, napríklad, by malo byť kontaktovaný na začiatku a na konci každej práci.
  • Nepoužívajte nasýtenia siete, bude to mať dva negatívne dôsledky, bude váš 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ť, zatiaľ čo budete svojej siete.
  • Uistite sa, práca môže bežať na vašich zamestnancov. Ak je práca príliš náročné na pamäť a diskový priestor intenzívnej práce začne potratenia a jediné, čo si všimnete, je pokles počtu pracovných miest spracovaná žiadny skutočný dôvod.

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 na nejakú dobu.

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

Ako už bolo povedané, a nemôže byť viac než zdôrazniť, budovanie tolerancie chýb 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ž ešte raz oddeľovať preč svoje výsledky podanie pomôže zamerať na 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áca 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é
  • Tým, že odstráni svoje práce Zvoliť / odovzdania výsledkov môžeme zmeniť technológiu ovládania serveru bez veľké problémy
  • Zostavte si svoj pracovných miest, 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 počítačoch so systémom Windows, aby sa stal Idle-ú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ých úloh spracovanie milióny záznamov dát, a každý deň som premýšľal poslednej dobe 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žívať tieto stroje k posilneniu výpočtového výkonu našich systémov? V tomto súbore článkov budem sa pozerať na možné prínosy 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-data s aktuálne obchodné informácie a logiky.

Pred nasadením

Pred nasadením svojej distribučnej sústavy, ak je tu ešte jedna vec, ktorú urobíte a jedna vec sám je meradlom vašej súčasný systém! Bez ohľadu na to, čo poviete kolegami o tom, koľko práce navyše systém bude robiť, ak ste čísla by toto Vaše záruky nič. Takže,

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

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

  • Ak váš spracovanie server (alebo jeden z vašich spracovanie serverov) 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, meradlo znova. Možno nastaviť spracovanie serveru spustiť virtuálny stroj po všetkých spracovaní, server bude len ďalší pracovník (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 robiť všetky inštalácie a nastavenia. Urobte to tesne predtým, než štrnásť dní na dovolenku a nechať ostatných, aby chudáka 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, sledovať prevádzku v sieti, ako sa pracovník hostí hrať na deň-to-dennej báze. Možno budete musieť zmeniť nastavenie svojej práci v reakcii na svoje zistenia.

Akonáhle je 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ť 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 ku kľudu.

Za všetkých okolností držať benchmarking, a to aj potom, čo sú všetky nasadenia. Skontrolujte, ako nový kód aktualizácia vplyv na rýchlosť systému, skontrolujte, či všetci pracovníci hlásia 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ší čas? Všetci sú tam beží, regeneračné a snaží čo najviac spracovanie dát, ako je hlad hmyzu. Odpoveď sa môže zdať zrejmé, ale svoj význam len v prípade, pridávania svojich prehliadaná. Jednoducho upravovať svoje spracovanie skript exit (0) or die (), alebo nejaký iný príkaz zabiť spracovania práce. Dôležitým dôvodom, prečo sme sa vždy snaží aktualizovať na najnovšie spracovanie skriptu pred run!

Demonštrácia systému

Aby bolo možné písať tento súbor krátkych článkov, ktoré som vytvoril veľmi malé siete preukázať technológií a metodík. Čítal som veľa článkov výukové, 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. V tomto som mal nainštalovaný mySQL server nainštalovaný nastaviť ako master replikácie, PHP , A a SVN prepojené cez apache (pre prístup cez zamestnancov VM).

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

Virtuálny počítač bol vytvorený pomocou PHP, Subversion, a MySQL. Overil som si vetvu s názvom "pracovník" z práce kontrolujú servery a úložiská sa uistil, že bude možné aktualizovať pomocou "svn update". Ďalej som nastavenie MySQL ako otrok a skontrolovať, či dáta boli replikovať MySQL na serveri kontroly práce až po zamestnanca VM. Po tom všetkom som setup bash skript a cronu.

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

  • Prečítajte si v poli Názov
  • Počíta sa počet podobných mien v tabuľke zo zdroja dát, ktorá sa konala VM
  • Počíta sa počet mien ako je uvedené 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 k nečinnosti viedlo pracovník začatím spracovania ú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 zamestnanci budú musieť byť vedomí, že ich stroj môže pozastaviť na chvíľku pri návrate do stroja. Novšie stroje nemusí mať pauzu tak dlho. Prínosom vyššie spracovanie vykonáva tieto stroje dobe nečinnosti by bolo viac, ktoré prevažujú nad zamestnanci museli čakať na krátku dobu (povedzme 1 minúta) Po príchode na ich stroje ráno (často som dlhšie čakať, že to pre Windows Defender Aktualizácia prebieha), za predpokladu, že boli vedomé tohto (vhodné č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 pokusy by mohli byť zväčš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ším krokom by malo byť zrejmé, skutočne sa skutočný svet príkladom a začať implementovať systém, ako je tento, v kancelárskom prostredí, a čo sa stane. Kladenie business zaviazať sa k tejto bez stopy horiace spoločnosť preukázať technológiu a účinnosť môže byť trochu ťažké. Mriežky / Distribuované výpočty sú veľmi populárne, je niekoľko kruhov a má isté veľké aplikácie (BIONC, SETI @ Home, Folding @ home atď). Ja 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 slobodný systém sa používajú väčšinou open source softvér a nástrojov k dispozícii takmer v každej kancelárii. Technológie boli v podstate preukázať a ukázať hrať a pracovať podľa očakávaní. 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 množstvo úprav a vylepšení, ktoré môžete vykonať. 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 dorazia s upgrady existujúcich hardware posilnenie svojho výpočtového výkonu.

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

Neváhajte a pošlite mi nejaké 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 vás na kľúčové oblasti a dáva dostatok informácií, aby mohol pokračovať. Pre tých, ktorí strávili nejaký čas sa pozrieme na rámce a išli sme za jeden alebo dva návody Tento kurz neponúka moc ďalej.

Pozadie

Bol som PHP developer asi 5-6 roky, a začal pracovať s Zend Framework na jednotlivých súčastí za posledných 6 mesiacov. Ja som vyvinul 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úmania a hodnotenia 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.

Informácie o kurze

Kurz je dodávaný cez 9 dve hodiny sedenia WebEx (s 10-minútová prestávka uprostred). Čas je utratenie prechádza súbor prezentácií poskytovaných Zend s diskusiou kedykoľvek. Môžete použiť mikrofónu rozprávať s inštruktorom, ale aby som bol úprimný, som nevidel nikoho použiť niečo viac než chat okna. Navyše je Ubuntu VMWare stroje 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 vo svete voľby v číslach.

Počas kurzu sa skladá z materiálu 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 pokrývajú všetky témy by ste potrebné získať základné stránky do prevádzky po celú dobu dáva vám nástroje na choď a získať pokročilejšie v rámci (aj keď to sa suma "Pozrite sa na stránky" veľa času).

Čas je daná kódom nejaké príklady a rozvíjať "Kniha návštev" a jednoduchý "wiki" aplikácie. Osobne mám pocit, že poskytovanie kód alebo každej aplikácie a potom nás žiada, aby sme rozvíjať to, čo bolo v podstate kópia spolu sa naozaj poskytujú 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 pomocou / 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 kurzu bola úplne nová. Niektoré z ostatných vývojárov v spoločnosti bude brať samozrejme čoskoro, takže bude zaujímavé sledovať, či sa to stalo.

Samozrejme štýl bol neformálne, možnosť spätnej väzby a spolupráce medzi účastníkmi a inštruktora. Kurz 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ámec pravidelne a nie niekoho, kto sa učí učiť Samozrejme, že som mal rád "reálnom svete" skúsenosť v tomto smere.

Celkový pocit

V niektorých ohľadoch som zistil, že samozrejme strata času, v iných to bolo veľmi užitočné. Dúfam, že dostanem cez svoje dôvody 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 na kurze 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 ukončenia každého sedenia s nadšením, a otázky, ktoré bolo naozaj pekné vidieť.

Nie je všetko stratené, to bolo dobré tráviť čas potvrdil základné údaje o rámec 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úce projekty, niečo, čo by na boli schopní urobiť inak (Viete si predstaviť vašu spoločnosť, ktorá súhlasí s:)). 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, ľahké je rezolútne NIE. Kurz Inštruktor bol úplne jasne, že s ďalšie odporúčania, že pre certifikáciu, mali by ste byť skutočne používať v rámci každodennej báze a cítiť veľmi pohodlne a verí v jeho použitie 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 sa presne to, čo by ste čakali, že vám pekný úvod do rámca a dobrú prípravu na základy, z ktorých možno stavať. Kurz sa zdá vytvárať záujem a nadšenie pre rámec medzi vývojármi.
  • Používa Zend Framework: Keď to bolo pekné, aby podoprieť niektoré samotné základy cítil som čas, úsilie a finančných prostriedkov, aby sa mohol v priebehu bolo lepšie niekde inde. Bude pekné SEEA Zend vytvoriť novú vyššiu úroveň kurzu, aby sa vývojári do ďalšej úrovne -. Najmenej na úroveň certifikácie a predčiť očakávania, že by som sa okamžite prihlásiť.












Panorama Téma, ktoré Themocracy

4 návštevníkov online
4 osoby, 0 roboty, 0 členov
Max návštevníkov dnes: 12 v 02:46 UTC
Tento mesiac: 14 na 01.11.2011 18:36 UTC
Tento rok: 130 u 28-03-2011 22:40 GMT
Za celé obdobie: 130 u 28-03-2011 22:40 GMT