Kategorie: PHP

Trasa žádosti o sitemap.xml na vlastní řídicí / akce

Tím, , ve středu 06.01.2010 00:13

Aby bylo možné žádosti o přímé / sitemap.xml na vlastní řadič a akce v Zend Framework aplikace stačí přidat následující v application.ini nebo alternativním konfiguračním souboru (např. já používám navigation.ini):

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

Například kód pro výstup může být viděn tím, že vytvoří akce v příslušné ovladače (např. moje mapa stránek spočívá v řídící index, mapa webu akce):

 < php
 Třída IndexController
     rozšiřuje Zend_Controller_Action
 {
     / **
      * Poskytuje Sitemap na základě Zend_Navigation nastavení
      * /
     public function sitemapAction ()
     {
    	 echo $ this-> Zobrazit-> Navigace () -> Mapa ();
    	 $ This-> Zobrazit-> Layout () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (true);
     }
 }

Soubory Sitemap lze snadno a rychle generovat pomocí Zend_Navigation , skvělý rychlý tutorial (a obecně velmi užitečné pro Zend tutoriály Framework) je Zend Odlitky - dynamicky vytváří menu Sitemap a strouhance .

Zend Framework Per-modul založený nastavení

Tím, , pátek 01.01.2010 22:40

Vytvořil jsem Jít na tento příspěvek, který vyžaduje méně konfigurace, viz modul založený Layout - Zend Framework .

Při použití Zend Framework s moduly, jejich zjevné, že pokud používáte různé (sub-) stránky z stejná aplikace, nemusí chtít stejné rozložení scénářů pro každou část. Rozhodl jsem se jít s následující struktury webu:

  / Aplikace
     / Regulátory
         ...
     / Modely
     / Modules
         / Default
             / Regulátory
             / Rozvržení
                 / Scripts
             / Zobrazení
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problém byl v nastavení rozvržení skripty na bázi modulu. Odpověď přišla až s použitím Akce Helper. Nastavení rozložení na jednotlivé moduly základě zahrnuje tři kroky:

  1. Application.ini (nebo podobné nastavení konfigurace):
      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. Vytvořte si svůj Akce Helper:
      <? Php
     / **
      * Nastavení rozložení na cestu za modul základě
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 1.1.2010
      * /
     Třída Pro_Controller_Action_Helper_SetLayoutPath
         rozšiřuje Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Nastavení vzhledu cestu založenou na modulu
          * /
         public function preDispatch ()
         {
        	 $ Modul = $ this-> GetRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ this-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ modul] [zdrojů '] [' layout '] [' layoutPath '])) {
    	             $ = LayoutPath
    	                  $ Config [$ modul] [zdrojů '] [' layout '] [' layoutPath '];
    	             $ This-> getActionController ()
    	                  -> GetHelper ('layout')
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. A konečně boostrap akce pomocníka:
      ...
         / **
          * Nastavuje uspořádání skripty pro jednotlivé moduly základě
          * /
         funkce ochrany _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap ("frontController ');
    	     $ Layout = Zend_Controller_Action_HelperBroker: addHelper (
    	         Nový Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Doktrína: DATETIME výchozí NOW ()

Tím, , ve středu 30.prosince 2009 18:30

Byl jsem zápasil s vytvořením databáze schéma pro nový Zend Framework projekt. Já jsem pomocí snaží využít doktríny ORM pro své datové modely. Musím nastavit schéma tak, aby mi umožnila nastavit výchozí datum a čas pro `datetime` sloupec, např. při přidání nové zprávy mám aktuální časové razítko. Po dlouhém hledání a experimentování jsem našel řešení, tak jsem sdílení.

Ve vašem schématu YAML soubor, proveďte následující kroky:

 Zpráva:
   actAs:
     Timestampable:
       Vytvořeno:
         Jméno: created_at
         Typ: časové razítko
         formát: Ymd H: i: s
       aktualizace:
         Jméno: last_updated
         Typ: časové razítko
         formát: Ymd H: i: s
   sloupce:
     ID:
       Typ: integer
       Primární: true
       AUTOINCREMENT: true
     name: String (255)
     email: string (300)
     message: String (2000)

Pokud je na druhé straně nechcete `` updated_at sloupci můžete použít následující:

 Zpráva:
   actAs:
     Timestampable:
       Vytvořeno:
         Jméno: created_at
         Typ: časové razítko
         formát: Ymd H: i: s
       aktualizace:
         zdravotním postižením: true
   sloupce:
     ID:
       Typ: integer
       Primární: true
       AUTOINCREMENT: true
     name: String (255)
     email: string (300)
     message: String (2000)

PHP Design Patterns - vzor Observer

Tím, , úterý 29 prosinec 2009 22:02

Četl jsem hlavou napřed Design Patterns v nedávné době, a se rozhodl napsat některé vzory jako PHP příklady pro vlastní prospěch. První z nich, které jsem se rozhodl do kódu, je vzor Observer . Formální definice Observer Pattern:

Pozorovatele vzor (podmnožina asynchronní publish / subscribe vzor ) je software návrhový vzor , ve kterém objekt , nazvaný předmět, vede seznam jeho rodinné příslušníky, tzv. pozorovatele, a upozorní je automaticky jakékoliv změny stavu, obvykle tím, že volá jeden z jejich metod . Používá se především k realizaci distribuované systémy zpracování událostí.

Jsou systémy stávají volně vázaných ujistěte se, že až se tato událost stane, všechny systémy, které vyžadují znalost těchto změnách byli informováni. Například, blogu, po uložení příspěvek budeme muset aktualizovat vyhledávače (např. Lucene), aktualizovat náš mapa stránek, tagů, e-mail předplatitele atd. pozorovatel vzor umožňuje vývojářům přidat další posluchače bez úpravy jejich pozorovatelné objektu . Tím, že napíchne pozorovatele (tj. vyhledávač aktualizace pozorovatele, generátor mapa stránek, atd.) na předmět (např. blogu redakčního systému), si můžeme dovolit jej provést všechny potřebné aktualizace, bez jakýchkoliv změn.

Pokračovat ve čtení "PHP Design Patterns - Observer vzor" »

Office Grid Computing pomocí virtuálních prostředí - Část 4

Tím, , pátek 04.12.2009 23:59

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 3 jsme vytvořili virtuální zpracování a nastavení počítače se systémem Windows, aby se stal nečinnosti úvazek.

Spuštění poslední kodex

Nevyhnutelně Po vytvoření pracovníků obchodní logiky se změní, bude se nachází chyby, bude rychlejší efektivnější kód vyráběny tak zanechává pracovníky seděli zpracování dat pomocí staré páchnoucí kódu . Jak tedy zajistíme, že jsme vždy používat nejnovější a nejlepší verze naší zpracování skriptů?

Existuje několik jednoduchých způsobů, jak snadno jsme mohli udělat to, trik, nicméně, je snížení výpočetního výkonu a provoz sítě v dosažení tohoto cíle. Začněme s nejjednodušší řešení a zlepšit to pomalu přes několik iterací.

První metodou by bylo jednoduše připojit k našemu serveru pro ovládání úloh (přes Sambu, FTP, apod.), a strhnout nejnovější verzi kódu. Ne velmi výkonný, ale to bude dělat svou práci. Umožňuje zlepšit to trochu, jak se o vytvoření a použití rsync skript, který pokaždé, když místo toho? Jinak, co se o uvedení nejnovější zpracování skriptu do Subversion podívat se na kód na začátku a pak už jen aktualizovat náš kód na každém spuštění ( svn update )?

Na závěr bychom mohli skončit s skript bash (nazvaný cronu každých 10 minut), který vypadá tak jednoduché, jak to:

  #! / Bin / sh
 Pokud ps ax | grep-v grep | grep php > / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiný
     echo "Pracovní neběží, začít už teď"
     cd / cesta / k / práce / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Nyní můžeme být jisti, že se každý pokus jsme definitivně poslední verze kódu. Jsme tím, že zajistí aktualizaci našich zdrojový kód každého a pokaždé, když se provede spuštění a snižuje provoz v síti pouze přenos souboru rozdíly v naší síti.

V mém demonstraci nastavení, já jsem přesně jak je uvedeno výše. Subversion je nainstalován na svém serveru zpracování zakázek a prostě jsem vytáhl poslední kód "pracovníka" pobočka pomocí "svn update '. Také jsem přidal číslo verze tag pro mé zpracování skriptu, který se vrátil do databáze jako součást výsledků návratu. Tímto způsobem jsem mohl vidět, že můj kód byl aktualizován pokaždé, když jsem kopíroval do kufru, tj. pracovník pobočky, že jsem určitě běží nejnovější zpracování skriptu.

Použití nejnovějších údajů

Je-li vaše práce pro zpracování využívá zdrojových dat pak v určitém bodě se jedná bude aktualizovat také. Pokud zavoláte své zdroje dat na velmi řídkém základě budete povodně sítě s provozem, jakmile vaši zaměstnanci se začnou přinášet všechno, co ke klidu. Pro mé řešení, jsem se rozhodl, že bych rád pohyb Zdroje dat si s mou VM.

Držte jste tam koně! Co dělat, když zdroje dat jsou obrovské? No to je opravdu případ, kolik dat je řeč? To může být z hlediska nákladů efektivnější instalovat další větší pevný disk na každém počítači, než koupit další zpracování serveru. To je otázka rozpočtu a do podniku se rozhodnout. Je možná, že zdroje dat jsou tak velké, že je to jen proveditelné, aby toto množství dat v pracovníkem zařízení. V tomto případě to, co byste dělali? Tak jsme se mohli podívat na volání místní datový server, ale to může způsobit problémy se sítí. V tomto případě distribuční soustavy, jako je tento se může stát nereálné zahrnout do kancelářského prostředí. To může také být, že se můžete podívat do provozu alternativní strategie, například pouze Volání pracovníků mezi dvacet hodin a 6 hodin ráno každou noc a / nebo škrtící zdroj dat požadavky.

Přesunout se vám tvrdit, že naše zdroje dat činí 100 GB dat. No ano, to je docela dost dat se pohybovat po síti na aktualizaci. Jak by se zajistilo, že jsme poslední kopii dat v tomto případě? Rsync je možné, ale osobně si myslím, spuštěním své nejnovější zdroje dat na serveru zpracování zakázek a nastavení to se jako mistr v replikaci (s velmi dlouho bin log), může být cesta:

replikace Při nastavení každého z vašich zaměstnanců se jako otrok do práce kontrolu aktualizací serveru do zdroje dat se dostaly až pěkně k pracovníkům bez obrovský nárůst aktivity v síti (tedy pokud budete provádět velké aktualizace dat a všechny pracovníky v kop najednou). To má výhody oproti rsync v tom, že byste se dostat dlouhá pauza před každou práci, protože aktualizace databáze, mysql daemon bude na pracovníka průběžně aktualizovat své údaje, zatímco zpracování pokračuje.

To je, jak mám nastavit moje demonstrace server. Chcete-li nastavit replikace jsem podle příručky na webu MySQL ( Nastavení replikace ) a do 20 minut jsem měl Inital pracovník kopírovat práci kontrolují servery datového souboru. Za každý další pracovník nastavení replikace a proces se osvědčil pokaždé, když byl zkopírován VM.

Přehled

V této části článku jsme se zaměřili na to, jak snadné a bezbolestné je, aby vaše operační kód v aktuálním stavu pomocí rsync, nebo using subverion (SVN) dělat práci a snížit zatížení sítě na stejném time. Mluvili jsme také o tom, jak , aby vaše informace o zdroji dat up-to-data tím, že se dostaly až ke každému z vašich pracovníků. Tak jsme oblast zajistí, že držíme krok s obchodní logiky a informace v našem systému Office sítě. K dispozici budou samozřejmě nespočet alternativy k plnění těchto úkolů, ale tady byli dva jednoduché příklady, jak jednoduché řešení je sehnat.

Příště

V závěrečné části tohoto seriálu, příhodně pojmenované části 5 , budeme diskutovat o nasazení tohoto systému. Budu shrnout to, co jsme se naučili a co se mi podařilo vytvořit.

Office Grid Computing pomocí virtuálních prostředí - Část 3

Tím, , pátek 04.12.2009 23:37

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 2 jsme se podívali na práci serveru poběží, a jak by práce být nakonfigurován tak, aby bylo dosaženo největšího množství zpracování, a zároveň zajistit, že každá práce je zpracována bez chyb.

Nastavení si pracovník - nebo Limp serveru

Dalším krokem v tomto procesu je nastavit virtuální zaměstnance. Z tohoto budu používat instalace CentOS pomocí VirtualBox. Chystám se instalovat MySQL a PHP na serveru, také známý jako Limp (Li nux, ySQL m, P HP) Servera (Možná jsem se, že název se).

  • Instalovat VirtualBox na počítač s Windows (po spojení)
  • Stáhnout a nainstalovat CentOS (aktuální verze 5.3) v rámci vytvořených virtuálních strojů

Nemá smysl mi bude toto je to asi 1000 's velkou tutoriálů tam (ok, tady je jeden: Vytvoření a Managing CentOS virtuální stroj pod VirtualBox ). Důležité poznamenat, myslím, že jsem volala moje virtuální stroj GridMachine.

Pokud jde o moji volbu pro virtualizaci klientů a operační systém tam není žádný velký závažný důvod pro každou volbu. VirtualBox je něco, co používám na svém domácím počítači a je podporován třemi hlavními operačními systémy. Vybral jsem si CentOS jako dobrý stabilní OS, a používám ho na vlastní webový server. Jsem velkým zastáncem správné nástroje pro práci (i když já jsem použití "použití nejrychlejší a nejjednodušší pro Vás" mentality zde), takže pokud operační systém X běží kód rychleji a efektivněji využít, že místo toho:)

Důležité je zajistit, aby vaše VM používá DHCP, jinak za každý nový virtuální stroj by bylo nutné konfigurovat samostatně což je něco, co nemáme want.By pomocí DHCP nepotřebujeme konfigurovat nastavení sítě individuálně pracovníka zařízení, bude DHCP ruky z IPS pro vás. Z tohoto důvodu je možno zkopírovat vaše virtuální stroj na úřadu bez obav o nastavení každé z nich se (Tím se zlepšuje škálovatelnost a sníží administrativní pracovník).

Proces, který by měl usilovat o dosažení by bylo získat nový fyzický stroj, nainstalovat VirtualBox a pak do značné míry nasadit virtuální obraz, aniž by mnoho jiného. To by mohlo být moudré nastavení všech pracovníků na jiné podsíti, takže si můžete alespoň vidět, kolik strojů je v provozu. Budete také muset nastavit zařízení na dlouhodobý pronájem nebo leasing neomezené DHCP.

Jak spouštět úlohy na pracovníka

Jedná se o zajímavou oblast a tam je několik ověřených metod zpracování práce na pracovníka. Zde jsem si jen diskutovat o dva nejzjevnější:

  • Trvale spuštění skriptu: Skript, ať už je to shell skript nebo PHP skriptu se provádí jednou na pracovníka a pracuje jako součást nekonečné smyčky. Já jsem tuto metodu diskontovaných jako jeden pád skriptu a potenciálně vašich pracovníků přestane provozovat bez nějakého zásahu.
  • Cron na skriptu: každých x minut cron démon začíná volání skriptu dát věci do pohybu. Bez nějaké kontrole To by mohlo vést k mnoha mnoha kopií své provozní zaměstnance skriptu.

Mé rozhodnutí bylo jít s cron, který odstartuje skript každých 10 minutes. můj skript plní tyto úkoly:

  1. Získání seznamu procesů, a to za grep "php". Pokud není nalezen pak pokračujte.
  2. Zavolejte svou práci kód, v mém případě by to bylo něco, co na PHP
  3. Worker skript dokončí běh
  4. Připraven jít zase na další příslušné výzvy

My bash script vypadá takto:

  #! / Bin / sh
 Pokud ps ax | grep-v grep | grep php> / dev / null
 pak
     echo "práce je v současné době zpracování, exit"
 jiný
     echo "Pracovní neběží, začít už teď"
     php yourJobProcessingScript.php
 fi 

Poznámka: ECHO, jsou téměř úplně zbytečné, ale může pomáhat další člověk, který přijde, aby se pokusila upravit.

, Který uzavře nastavení pracovníka virtuální stroj, rychlý, jednoduchý a snadno kopírovat na každý nový kus hardwaru, který je přijal. "Chytrosti" distribuční soustavy, opravdu není na vizualizaci OS, jeho do činění s kódem pro zpracování vytvořených pracovních míst, pracovní uspořádání, a ujistěte se, že úloha spustit v případě potřeby (např. pokud host je nečinný ).

Nastavení Windows inicializovat pracovníků

Prvním úkolem je vypracovat příkazu potřebné ke spuštění virtuálního počítače z příkazového řádku Windows. Pokud jste nainstalovali VirtualBox ve výchozím umístění a vy jste jmenoval svého pracovníka GridMachine pak příkaz načítání vašeho pracovníka je:

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

Nicméně spustit skript "bezhlavý" státu musíme použít:

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

Spustí se virtuální stroj bez GUI a nechte ji zachránit státní elegantně. Druhý argument se vypne RDP tak to není v rozporu s Windows RDP, nebo vám zprávu o naslouchá na portu 3389. Název virtuálního stroje je malá a velká písmena!

Dále se budeme muset nastavit systém Windows až po nastartování našeho pracovníka VM, jakmile stroj byl nečinný. K tomu (na Windows XP), budete muset jít Start -> Programy -> Příslušenství -> Systémové nástroje -> Naplánované úlohy jak je uvedeno níže:

naplánovaných úloh

Potom klikněte na "Přidat naplánovanou úlohu", po němž Procházet přidat vlastní program. Přejděte do VBoxManage skript a klepněte na tlačítko OK. Naplánovat úkol pro některou z možností (budeme změnit v minutě) a pokračuje. Po přeskočení na další obrazovku Windows se vás zeptá, který chcete spustit tuto úlohu, kterou navrhuji buď "správce", nebo vytvoření nového privilegovaný uživatel. Pamatujte si, že nechceme narušovat standardní pracovníky účet na počítači, na nějakém místě. Klepněte na tlačítko Další a zaškrtněte Zobrazit rozšířené možnosti pro tento úkol.

Na konci běhu textového pole přidat náš řetězec "startvm GridMachine" a zajistit, že běží pouze při přihlášení je vlevo nezaškrtnuté. Navštivte harmonogram úkolů a další změny plánu klesnout až na možnost "při nečinnosti", zvolit dobu, po kterou bych, stroj se nečinnosti před přechodem na další záložku.

Nakonec Zrušte volbu, která uvádí, zastaví úlohu, pokud běží X množství času, ale zaškrtněte možnost zastavit úkol, pokud je stroj již není nečinný.

program

To je pak pro nastavení host Windows!

Přehled

V této části jsme se vytvořit virtuální stroj se chovat jako dělník, ale i způsob, jakým se hovoru a realizovat naše skripty zpracování zakázek (pro sebe PHP skriptu). Odtud se podíváme na to, jak nastavit naše kopie Windows na spuštění virtuálního stroje v bezhlavém režimu, když je počítač nečinný stane, a uložit svůj stav, když uživatel obnoví využití stroje. Doufejme, že v tuto chvíli vidíte, jak jednoduché je vytvořit takový systém a svědění získat nějaké pokusy jít sám!

Příště

V části 4 se budeme dívat na použití nástroje, které zajistí, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy up-to-date s posledním obchodních informací a logiky.

Office Grid Computing pomocí virtuálních prostředí - Část 1

Tím, , pátek 04.12.2009 23:23

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

Jako PHP developer budu používat nástroje, které používám každý den a to, Linux, MySQL , PHP, VirtualBox a Subversion (SVN). Nicméně doufám, že tento návod se přizpůsobí do jiných jazyků a technologií, stejně dobře.

Toto řešení mi poskytnete, budou se velmi volně založený na způsobu zpracování bychom třeba dosáhnout ovšem to nemusí být pravda celý článek, jak budu něco změnit na jednoduchost, nebo vytvářet zajímavější dle typu obrazu.

Tyto virtualizovaných prostředí bude běžet na strojích s Windows, protože to je to, co většina úřadů běhu. Zpracování, kancelářské stroje se nemělo zasahovat pracovníky pomocí těchto strojů by nevyžadují žádnou údržbu na stroji, a musí být snadno nasaditelné na nové stroje, jakmile budou k dispozici. Také by nové virtuální stroje nevyžaduje žádné další nastavení, protože to výrazně snižuje škálovatelnost a snadné, při které může distribuční soustavy prodloužit.

Proč Nasazení Office Computing Grid?

Za prvé si mohou myslet, proč ne právě pomocí cloud computing zdrojů, jako je Amazon EC2 platformu ? No důvodů může být několik, například:

  • Nebudete svěřit některé údaje na životní prostředí cloud computing
  • Nemůžete dát některé údaje do prostředí cloud computing z právních důvodů (např. údaje odjezdu ze země), případně z právních důvodů, např. NHS záznamů.
  • Vy chcete, aby vaše procesorů úzké a mají plnou kontrolu nad hardwarem i
  • Nemáte projekt finanční prostředky ke spuštění instancí cloud
  • Váš úřad nemá připojení k internetu, a proto to není možné použít cloud zdroje
  • Nelíbí se vám déšť, mraky naznačují, déšť, tak budete mít daleko

Jsem si jistý, výčet by mohl pokračovat, ale myslím, že to prozatím stačí.

Výhody gridové výpočetní Office

Dobře, pojďme udělat nějaké matematické (a v pravém fyzice stylu umožňuje provést některé rozsáhlé předpoklady). Představte si, že jste velký tlustý zpracování serveru 100 pracovních míst za den. Ve vaší kanceláři máte 50 strojů, které jsou nečinnosti 16 hodin denně, každý z těchto strojů je 10% jak silný jako svalnatý zpracování sever. (Všechny výsledky zde jsou zaokrouhleny na podceňovat zvýšení výkonu).

Ano, 1 stroj * 10% výkonu * 2 / 3 = 0,067 času, tj. o 1 pracovní plochy zpracování v nečinnosti procesu 6 plných pracovních míst za den.

Pokud nyní měřítku to až za 15 nečinnosti stolních počítačů až po proces co nejvíce pracovních míst za den jako hlavní server pro zpracování.

A tak v naší kanceláři předstírat, že 50 strojů bychom mohli zvýšit náš výkon procesoru od 1 server až 4 kompletní zpracování servery, nebo bychom mohli být zpracování úloh za den 400 místo 100.

Všimněte si, bez investice do nového hardwaru vaše firma právě zvýšila dávkové zpracování kapacita 4 krát! Potenciálně se chystáte zvýšit spotřebu energie, ale z většiny kancelářských prostředích Byl jsem na stroje jsou obvykle vlevo na přes noc tak, aby jste mohli vidět na zelené iniciativy.

Další výhody také znamená, že investice do nových (či aktualizované) zpracování servery mohou být odložena, pokud vaše kancelářské stroje jsou dostatečné a že, jak si zvýšit výkon vašeho kancelářských strojů Vaší kanceláře rozvodná síť stala silnější automaticky.

Technologie

Co budete potřebovat? (Nebo přesněji to, co jsem se používat):

  • Nečinnosti kancelářské stroje (v mém případě náhradní staré Windows XP notebook)
  • VirtualBox (nebo jiný virtualizační klientský software)
  • Virtuální stroj s PHP, mySQL running běží snížit OS, volám těchto mých LIMP servery:)
  • Práce spustit
  • Pracovní server (může být jiný virtuální stroj někde)

Typická práce

Typy úloh, které tento systém je navržen tak, aby je následující:

  • Systém obdrží seznam údaje, z nichž musíme zápas a vrátí výsledky
  • Párování znamená kontrola / Vyhledávání několik (poměrně statické) zdroje dat
  • Výsledky ze zdrojů dat mohou vyžadovat další potvrzení, sloučení, kontrola dalších datových zdrojů v reakci na výsledky
  • Data se vrací s odpovídající záznamy, plně validovány a zpracovány
  • Každý záznam v práci, je nezávislá na ostatních

Takže v podstatě se díváme na běžící úlohy, které vyžadují kombinace vyhledávání v databázích a nějaké číslo skřípat, docela obvyklý scénář, v obchodním prostředí.

Mřížka řešení jsou nejen výhodné pro zpracování práce tohoto typu. V podstatě se každý proces, který lze rozdělit na samostatné jednotky paralelně. Viz tento Wikipedia příklady a další informace: Grid Computing , ale pár známých příkladů je Seti @ Home a BIONC . Existují rámce pro provoz počítačové sítě, a ty jsou dobře stojí za to díval do.

Co docílíme?

Na konci těchto článků doufám, že se ukazuje, že nasazení Office sítě nemusí být velmi nákladné a časově náročné. Budu diskutovat:

  • Nastavení práce kontrolního systému, pracovní konfigurace
  • Vytvoření vhodného zpracování virtuální stroj
  • Jak nastavit systém na stroji s Windows
  • Zajištění, že používáte aktuální kód a data
  • Nasazení a benchmarking
  • Při pohledu do budoucna

Budu budovy (ok jsem stavěl, pak napsal), například aplikace pro testování koncepcí na lokální počítač v systému Windows XP a mé "GridMachine" virtuální stroj. Mým úkolem ovládání serveru bude můj hlavní stroj, který běží Fedora 11 .

To v žádném případě předvést plně funkční robustní systém, jeho znamenalo více demonstraci a diskutovat o tom, že tyto věci lze dosáhnout v poměrně krátkém čase a za nízkou cenu. Neváhejte a pošlete mi připomínky, opravy, nebo zlepšení a já v mých silách, aby tento článek aktualizován na zápas.

Příště

V části 2 se mi začít tím, že při pohledu na systém kontroly práce, a podívejte se na to, jak by měla práce být nakonfigurován tak, aby bylo dosaženo největšího množství zpracování, a zároveň zajistit, že každá práce je zpracována bez chyb.

Office Grid Computing pomocí virtuálních prostředí - Část 2

Tím, , pátek 04.12.2009 23:23

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 1 jsem dal přehled o systému a technologií, budu používat, stejně jako diskutoval některé z možných důvodů, proč byste chtěli vytvořit kancelář sítě.

Řízení práce

Pokud se chystáte být spuštěna práci pak budete potřebovat nějaký způsob, jak spravovat. Vaším úkolem řídicího systému (na svou práci serveru) musí být velmi dobře promyšlené ještě předtím, než pokusem o spuštění aplikace systému Office sítě. Tak za prvé, jaké jsou úkoly, systém kontroly práce:

  • Pracovních míst ruku na žádost zaměstnance
  • Řekni pracovníků, jaký typ úloh spustit
  • Sledování úkolů
  • Ujistěte se, že pracovní místa jsou poháněna pouze jednou
  • Poskytují zaměstnání dat pro pracovníky, nebo alespoň říct, kde si to

Systém také musí být rozšiřitelné řešení, které funguje zatím v jediném případě může být rozšířena spustit několik typů pracovních míst a podnikání vidí hodnotu v mřížce řešení. Například může získat zaměstnání priorit, více než jeden typ úlohy může existovat (tj. několik základen kód), případně můžete dokonce provozovat několik různých pracovníků stroje, které jsou optimalizovány pro každý typ zaměstnání (i když to není odklon od "obecné pracovník "nápad). Vždy se snažím přemýšlet o budoucnosti při vývoji systémů, může krátkodobě vést k vizi dlouhodobé frustraci a zvýšený dobu vývoje.

Server práce

Budeme potřebovat někde ovládat naši práci od, mělo by to být jediný systém ve své síti, která má pevnou Resource Locator, je, že IP adresa, jméno počítače, URL (pomocí interní DNS), atd. To je proto, že pracovníci musí vědět, kde hledat práci, pracovníci musí najít práci řídící systém (není práce řídicího systému najít zaměstnance).

Úloha server sám o sobě nemá opravdu složitý úkol (v základním systému, stejně), je třeba uložit seznam míst, ruku pracovních míst, obdrží výsledky, a následně je uložit pro pozdější. Jak se tyto části (např. "rozdávat práci"), jsou definovány může být poměrně jednoduchý. Později můžeme rozšířit systém zahrnuje administrační rozhraní můžete přidávat, upravovat, mazat, pozastavit pracovních míst, ale to je mimo toto cvičení.

Neexistuje žádný důvod pak, že vaše práce serveru nebylo možné virtuální stroj běží v rámci svého hlavního zpracování serveru, pokud to není kanalizace příliš mnoho prostředků z ní. Úloha serveru však potřebuje vysokou dostupnost, pokud to jde dolů v pátek večer budete ztrácet celý víkend zpracování, případně vás to stálo za pár týdnů v hodnotě doba zpracování (ve srovnání s hlavním serverem pro zpracování sám) . Můžete chtít, aby zvážila své práci na serveru zatížení vyvážené prostředí pro vysokou dostupnost.

Základní nastavení

Základní nastavení pro server, naše práce se bude skládat z toho, co jsem volat jeden z mých LIMP serverů (to je Li nux, ySql m, P HP). Kód běžící na pracovníky Thea bude skutečně fungovat, jaké úlohy může běžet interakcí s databází, práce s řídícím systémem. Později bychom mohli vytvořit webové služby, a ve skutečnosti ruku pracovních míst, spíše než mít pracovníci tvrdou práci sám, ale teď budeme pokračovat v používání principu KISS (Keep It Simple, Stupid!).

Takže, pojďme vytvořit tři mySQL tabulky řešit úlohy. Tyto práce budou ``, `jobRecords` a `` jobResults.

pracovních míst tabulky Zde jsem pomocí SQL Buddy Výborný alternativu k phpMyAdmin jen proto, že jeho snadnější instalaci na CentOS (další viz: 10 Velké alternativy k phpMyAdmin )

Tato tabulka se skládá z 5 jednoduchých polí,

  • ID: Jedinečná identifikace práci
  • Název: Může to být klientem odkaz, nebo libovolný počet jiných identifikátorů
  • Stav: Musíte vědět, kde je práce na, např.
    • 0: není zahájena
    • 1: Vyzvedli jsme
    • 2: Dokončeno
  • started_by: Kdo je začal dělat práci? To není úplně nutné, ale je hezké mít. Já bych navrhnout sledování zaměstnanců podle jejich IP adresy v síti
  • started_at: Kdy se pracovník začít práci? Sledováním práce, které nebyly dokončeny v množství X dobu víme, že je třeba vyzvednout práci znovu a začít zpracovávat další pracovník. Pracovníci by mohly zastavit zpracovávání / go Offline pro množství důvodů, výpadku napájení, havárie, ztráta sítě, atd.

Je to snadné, jak by tato tabulka být rozšířena o několik dalších oblastech s cílem umožnit sledování statistik, konečný čas sloupce, jak dlouho zaměstnání trvalo, počítadlo, kolik pracovníků zvedl práci (samozřejmě to musí obvykle 1), pracovní priority, seznam pokračovat dál a dál. Ve složitějších pracovních scénářů, že by bylo možné určit, kolik paměti by se pracovník musí mít přístup k (a tedy použít pouze vhodných pracovníků), nebo dokonce jaký typ pracovníka by bylo zapotřebí.

Umožňuje přidat několik příklad práce:

Například práce

V následující tabulce je opět velmi jednoduchý na pochopení, jsou to naše práce záznamů. Jsou spojeny s hlavním zaměstnání tabulky sloupec `` jobs_id. Tvoří v této tabulce velmi záleží na data, která potřebujete dodávky vašich pracovníků, umožňuje dělat velmi jednoduchý příklad, kde máme čtyři sloupce:

  • ID: ID záznamu
  • Jméno: Jméno
  • Adresa: Osoba na adresu
  • jobs_id: ID úlohy, že tento záznam je spojena

Třetí a poslední stůl se skládá z výsledků tabulky, má podobně jako tvoří naše záznamy stolu a přidáním některých sloupců může být součástí záznamů tabulky:

  • job_record_id: Odkaz výsledek práce stolu
  • Výsledek: Výsledek dat

... A to je vše, co potřebujete pro práci kontrolou! (I když na velmi základní úrovni) V mém případě jsem ukázal jsem k dalšímu stolu, kde se nachází moje osobní údaje ke zpracování, ale toto mohlo právě jak snadno se soubor parametrů, spustit simulaci kód, co si jen vzpomenete.

Výběr práce

Jak bylo uvedeno dříve, budou dělníci dělat svou práci managementu pro nás, takže vše, co potřebujete udělat, je opravdu najít si práci, která potřebuje zpracování a získat informace. Jak bychom to? Dobře vybrat naše kritéria výběru zaměstnání a hledat práci v SQL jsem se následující:

  1. Přijmout jakékoli zaměstnání, které nejsou označeny jako kompletní, ale z našich pracovníků a resetovat (náhradní __ME__ s identifikátorem, že nejjednodušší bude IP adresa):
      UPDATE `` SET `zaměstnání status` = 0, kde `status` = 1 `a` started_by = __ME__; 
  2. Pomocí našich kritérií pro výběr úlohy, vyberte si práci a řekne řídicího systému, který tento pracovník se zabývá se:
      UPDATE `` SET `zaměstnání status = 1`, `=` started_by __ME__, `started_at` = Now (), kde `status` = 0 nebo
     (`Status` = 1 `a` started_at> DATE_SUB (NOW (), interval X HOUR)) ORDER BY `id` ASC; 

    Tím, že chytne práce, které nebyly vráceny výsledky ve výši X jsme zajistit, že všechny úlohy jsou spouštěny v případě, že zaměstnanec bude shazovat nebo neomluvenou absenci.

  3. Další uchopit zaměstnání podrobnosti následují záznamy sami:
      SELECT * FROM `pracovních míst: Kam started_by` `= __ME__ LIMIT 1;
     SELECT * FROM `job_records: Kam` id `= __JOBID__; 

Po dokončení práce vložíme náš výsledek záznamy a označit práci dokončit. Pamatujte si, jak práce může pozastavit / obnovit kdykoliv počítat s nějakou robustnost ve skriptu. To by mohlo být, že úkol pozastaví půli aktualizace práci kontrolního systému, takže kontrola počtu záznamů v zaměstnání a počet výsledků uloží zpět do systému kontroly práce by moudré.

Navíc, když to ukazuje, jak je možné práci vybírat a řízeny z SQL dotazu rámec, který by měl být opravdu oddělovat vaše práce ovládat tak, že pokud se rozhodnete přejít na používání webové služby, soubor založený systém, XML , nebo jiné počet systémů, nebude mít vliv na kód, nad ním.

Pracovní konfigurace

Dalším aspektem je, aby zvážila velikosti úlohy a konfigurace. Tím, že hraje s prací konfigurací můžeme zasáhnout vynikající rovnováhu mezi rychlostí procesu replikace a spolehlivost. Udělejte si pár scénářů OFA:

  1. Práce trvat 1 den každý spustit: To znamená, že pracovníci potřebují 15 dnů na zpracování každého zaměstnání (pamatujte 10% energie pro 2/3rds času). To zjevně není moudré konfiguraci, vaším úkolem velikost je příliš velký! To by trvalo minimálně dvakrát čas na zpracování úlohy by měl jít první zaměstnanec neomluvenou absenci (čas vyzvednout, že se nevrátí a výsledkem přepracování času). V ideálním případě byste mít alespoň jeden plný pracovní snadno zrušeno na konci každého období dlouhé nečinnosti, tak budete mít práci běží znovu a v nejhorším případě zaměstnání trvalo dva dny, proces by měl první ztratí.
  2. Práce se 1 minutu běžet: To znamená, že pracovníci trvat asi 15 minut běžet každou práci. I když to zpočátku může zdát ideální, můžete získat další práci pro zpracování v době oběda, občerstvení, setkání, atd. tento scénář klade nároky na další oblasti vašeho systému a zavádí své vlastní problémy. Například, nejprve si setup / doba zpracování je poměr půjde vpravo dolů, a proto ztrácí účinnost systému. Vaše síť se bude stále streaming práce informace k jednotlivým pracovníkům frustrující zaměstnanci, kteří jsou Dong jejich každodenní práci. Vy jste také bude klást větší nároky na serveru zpracování zakázek, protože musí rozdávat spousty malých kousků práce na pravidelném základě. Konečně, v této situaci, pokud vaše práce server selže budete vytvářet velké zadní protokol nedokončenou práci zatímco větší pracovní místa, by na pokračování v řízení blažené nevědomosti, že práce server potíže.

Ve skutečnosti tam bude nikdo ideální nastavení pro nastavení sítě, záleží na dostupné zdroje, druhy práce, pracovní podmínky obrátky času, možnost práce v síti, a tak dále. Nicméně některé zásady by bylo:

  • Velikost pracovních míst tak, aby každý zaměstnanec může dostat do minimálně 3-4 pracovních míst v období 15 hodin (pravděpodobně nejdelší dobu nečinnosti)
  • Hrajte s velikosti úlohy tak, aby nastavení času stává docela zanedbatelné ve srovnání s dobu zpracování (s ohledem na výše uvedený bod).
  • Pokud se o práci nedokončí v dvojnásobné množství času (možná i méně), můžete očekávat, že na jeho dokončení předpokládat, že už dezertoval a začít zpracovávat s jiným pracovníkem. To znamená, že budete muset počkat až na trojnásobek normální délku práce na dokončení (možná i déle, pokud následné práci selže). Možná budete chtít snížit tomto okamžiku, ale dávejte pozor, aby jeho omezení příliš mnoho, jak můžete začít duplikace zpracování úkolů v pravidelných intervalech.
  • Práce by měly být nezávislé na vnější podmínky co nejvíce. Pracovní server, například, by mělo být kontaktován na začátku a na konci každé pracovní místo.
  • Nepoužívejte nasycení sítě, bude to mít dva negativní důsledky, bude vaše denní zaměstnance najít pomocí sítě frustrující a problémy mohou nastat s připojením časového limitu problém, který se bude jen zhoršovat, jak si škálovat síť.
  • Zajistit pracovní místa může běžet na vašich zaměstnanců. Pokud se práce příliš náročné na paměť a diskový prostor intenzivní práce začne potracení a jediné, co si všimnete, je snížení počtu pracovních míst zpracována žádný skutečný důvod, proč.

Předkládání výsledků zaměstnání

Při předkládání výsledků práce je důležité zkontrolovat, že výsledky nebyly předloženy jiným pracovníkem, a to zejména v případě, že současný pracovník byl spící po určitou dobu.

Pokud nejsou předloženy výsledky zajistí, že počet výsledků odpovídá počtu záznamů v práci.

Jak již bylo řečeno, a nemůže být více než zdůraznit, budovat odolnost proti chybám v práci a výsledky vyhledávání podání. Pracovníci mohou (a pravděpodobně bude) jít do režimu spánku v nejnevhodnější dobu a na to je třeba pro zajištěný. Také jednou pryč oddělovat své výsledky podání pomůže uspokojit budoucí změny systému kontroly práce mnohem jednodušší řešení.

Přehled

V tomto section jsme se zaměřili na to, co práci Control Server je třeba udělat a jak se dostat velmi základní nastavení systému. Diskutovali jsme o tom, jak získat práci z řídicího systému a jak nejlépe nastavit pracovní místa, aby co nejvíce využít vašeho systému Office sítě. Na závěr byl prezentován jeden nebo dva odstavce na předkládání výsledků zpět na server kontroly práce.

  • Ovládání úloh server spravuje pracovní místa a zajistí, že všechny pracovní jednotky jsou dokončeny
  • Abstrahováním svou práci vybrat / odevzdání výsledků můžeme změnit technologii ovládání serveru bez velké problémy
  • Nastavte si zaměstnání, aby se zajistilo, že jsou provozovány rychle a efektivně, aniž by příliš velký tlak na vaší síťové infrastruktury, a bez zdvojování zpracování úkolů v pravidelných intervalech.
  • Ujistěte se, že budování tolerance chyb a omylů checking do rutiny, mohou pracovníci pozastavit a obnovit a nejnevhodnější časů. Nezapomeňte zkontrolovat, zda výsledky již byly předloženy jiným pracovníkem.

Příště

V části 3 se budeme vytvářet virtuální zpracování a nastavení našich strojích s Windows, aby se stal nečinnosti úvazek.

Office Grid Computing pomocí virtuálních prostředí - Část 5

Tím, , pátek 04.12.2009 23:03

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkové zpracování úlohy miliony záznamů dat každý den a já jsem v poslední době přemýšlel o všech strojů, které sedět každý den dělat nic, po dobu několika hodin. Nebylo by dobré, kdybychom mohli použít ty stroje pro posílení výpočetního výkonu našich systémů? V tomto souboru článků budu dívat na potenciální výhody zaměstnávání Office sítě prostřednictvím virtualizovaných prostředích.

V části 4 jsme se zaměřili na použití nástroje, které zajistí, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy up-to-date s posledním obchodních informací a logiky.

Před nasazením

Před nasazením své distribuční soustavy, pokud je tu ještě jedna věc, kterou uděláte, a jednu věc sám je měřítkem vašeho stávajícího systému! Bez ohledu na to, co řeknete kolegy o tom, kolik práce navíc systém bude dělat, pokud jste čísla by toto své záruky nic. Tak,

  • kolik záznamů můžete zpracovat v současné době? Za den? Za hodinu?
  • Jak dlouho obvykle trvá, aby se obrátil práci?
  • Jak daleko větší kapacitu máte?

K dispozici je i další otázky:

  • Pokud váš zpracování server (nebo jeden z vašich serverů pro zpracování), jde dolů, jak to ovlivní vaše schopnosti, budete zmrzačen?
  • Jaké výhody doufáte / očekávat, že si z distribuční soustavy?
  • Jsou vaše kancelářské stroje je možné spustit pracovní místa?
  • Jsou vaše (nebo si můžete práci převést) pro práci v tomto stylu běhu?

Posledním důležitým bodem je, aby čas na žádné velké změny, jako je tento. Aktualizujte svůj operační kód pro práci s použitím nové metodiky, srovnávací znovu. Možná nastavit zpracování serveru spustit virtuální stroj, po zpracování všech serverů bude jen dalším pracovníkem (jen velmi mocný relativně). Nechte nový proces se usadit.

Nasazení

Můj návrh by byl pop do kanceláře jeden víkend provádět veškeré instalace a nastavení. Udělejte to těsně předtím, než čtrnáct dní na dovolenou a nechat ostatní, aby chudák se vypořádat s následky ... možná ne ...

Nasazení systému, jako je tento musí být pomalé. Ačkoliv se jedná o relativně jednoduché nastavení tohoto systému bude mít vliv na celou kancelář infrastruktury (i digitální signál). Za prvé, nasadit na několik strojů najednou, sledování síťového provozu, jak pracovník hostí hrát na den-to-denní bázi. Možná budete muset změnit své práci konfigurace v reakci na vaše nálezy.

Jakmile se systém usadil se na několik strojů (řekněme, že 10% všech kancelářských strojů, tj. 5) držet monitorování síťového provozu a hostitelském počítači performance. Další měřítko znovu, měli byste být nyní zpracování o 33% více pracovních míst než první kritérií. Zkontrolujte, zda tomu tak je, nebo že jste alespoň v tomto ballpark. Pokud ne, zjistit, co se děje předtím, než přejde. Opakujte tento cyklus, dokud spokojeně všechny kancelářské stroje běží bez zabíjení individuální výkon stroje nebo broušení sítě ke klidu.

Za všech okolností držet benchmarking, a to i poté, co jsou všechny nasazení. Zkontrolujte, jak nový kód aktualizace ovlivňují rychlost systému, podívejte se všichni pracovníci hlásí a zpracování pracovních míst. Pomalu (velmi pomalu), zvýšení vaší práci konfiguraci toho nejlepšího z vašich pracovníků a sítě.

Stop!

Co když chcete zastavit pracovníci z provozu na delší dobu? Všichni jsou tam běží, regenerační a snaží co nejvíce pro zpracování dat, jako je hlad, hmyz. Odpověď se může zdát zřejmé, ale jeho hodnotu přidávat jen v případě, jeho přehlížena. Jednoduše upravovat své zpracování skript exit (0) or die (), nebo nějaký jiný příkaz zabít zpracování práce. Důležitým důvodem, proč jsme se vždy snaží aktualizovat na nejnovější zpracování skriptu před běží!

Demonstrace systému

Aby bylo možné psát tento soubor krátkých článcích, které jsem vytvořil velmi malé sítě prokázat technologií a metodik. Četl jsem spoustu návodů článků, a používají různé nástroje pro nastavení a sledovat, co se děje. V žádném případě jsem šel ven a nasycených celou kancelář s provozem a ani jsem neměl přístup k běžnému PC zaměstnance, aby viděli, jak byl ovlivněn výkon host.

My demonstrace systém byl opravdu velmi pokorný. Použil jsem standardní desktopovou nastavit jako server kontroly práce. Na to jsem instaloval MySQL Server nainstalován nastavit jako master replikace, PHP , A a SVN propojeny přes apache (pro přístup prostřednictvím pracovníků VM).

Pak jsem vytvořil pracovník CentOS stroj na VirtualBox na 6 let Windows XP notebook. I nastavení plánovaných úloh, jak je uvedeno Po zkopírování VM na stroje a nechat to jít.

Virtuální stroj byl připraven s PHP, Subversion, a MySQL. Ověřil jsem si větev s názvem "pracovník" z práce kontrolují servery a úložiště se ujistil, že může být aktualizován pomocí "svn update '. Dále jsem nastavení MySQL jako otrok a zkontrolovat, zda data byla replikovat MySQL na serveru kontroly práce se na pracovníka VM. Po tom všem jsem setup bash skript a cronu.

My zpracování skriptu v podstatě šlo v duchu této (velmi jednoduché věci):

  • Přečtěte si v poli Název
  • Počítá se počet podobných jmen v tabulce ze zdroje dat ve dnech VM
  • Počítá se počet jmen jako výše, ale rozdělení jméno prostory (tj. jméno, střední, příjmení)
  • Opakoval tento proces 1000 krát

Každá práce se přibližně 20 minut běžet. V jednu chvíli jsem otevřel několik kopií pracovníka VM na notebooku windows a sledoval, jak se pracovní místa odškrtnout každý z adres IP pracovníka. Na tomto místě bych také potvrdil, že replikace se automaticky restartuje.

Odchod z notebooku do klidového vedlo pracovník zahájením zpracování úloh ze serveru kontroly práce. Při opětovné použití notebooku bylo zpoždění asi 30-60 sekund, to je slušné množství času a pracovníků bude muset být vědomi, že jejich stroje může pozastavit na krátkou dobu při návratu do stroje. Novější stroje nemusí mít pauzu tak dlouho. Přínosem výše zpracování vykonávané v rámci těchto strojů při nečinnosti by bylo více, které převažují zaměstnanci museli čekat na krátkou dobu (řekněme 1 minuta) Po příjezdu na jejich stroje ráno (často jsem čekat déle, že to pro Windows Defender Aktualizace se konat) za předpokladu, že byli informováni o této (užitečný čas chytit ranní kávu!).

Celkově Věřím, že jsem demonstroval technologie, které by mohly být použity k vytvoření takového systému. Ukázal jsem, že takový systém funguje na (velmi), v malém měřítku a některé další experimentování může být zmenšen až využívat zdroje kanceláře strojů. Pokud se mi dostat do bodu, jak toho dosáhnout by mě velmi zajímalo, / vidět, když někdo jiný.

Závěry / ​​hodnocení

V dalším kroku by bylo zřejmé, skutečně se v reálném světě, příkladem a začít nasazení systému, jako je tento v rámci kancelářského prostředí, a co se stane. Kladení podnikání, aby se zavázaly, aniž stezka hořící společnosti prokázat technologii a účinnost může být poněkud obtížné. Mřížky / Distribuované výpočty, je velmi populární, je několik kruhů a má jisté velké aplikace (BIONC, SETI @ Home, Folding @ home atd.). Nechtěl jsem však najít menšího rozsahu a jednoduchý systém, jako je ten můj vyhledávání, které by mohly být vrácena v rámci kancelářského prostředí.

Vytvořil jsem v podstatě bez systému, s použitím převážně open source software a nástrojů v téměř každé kanceláře. Technologie byly v podstatě prokázat a ukázat hrát a pracovat podle očekávání. Doufám, že jsem se ukázat, že se není moc práce a velmi jednoduché nastavení, které lze nasadit Office systém grid computingu, který je silný, levný, A a škálovatelné všichni ve stejnou dobu.

Jakmile je systém v provozu již téměř žádný konec výše úprav a vylepšení můžete udělat. Například je možné statistiky / benchmarking snadno přidat ukazovat hodnotu takového systému každý den. Nové stroje mohou být přidány rychle a snadno, jak a kdy dorazí s upgrady stávajících hardware posílení své výpočetní výkon.

Doufám, že jste si užili čtení této sérii článků a vám dal k zamyšlení na provoz kanceláře distribuční soustavy. Řešení zde nemusí nutně fungovat ve všech případech, ale je třeba přizpůsobit, aby vám umožní dostat své zpracování dat provádí pomocí vlastního řešení.

Neváhejte a pošlete mi připomínky, opravy, nebo zlepšení a já v mých silách, aby tento článek aktualizován na zápas.

Zend Framework: Základy - Recenze

Tím, , v sobotu 28.listopadu 2009 22:42

Můj zaměstnavatel v poslední době platí pro skupinu vývojářů z nás, aby se Zend Framework: Základy Samozřejmě, tady budu shrnul své myšlenky a názory na hřišti pro ostatní. Pro ty, kteří chtějí ušetřit čas, tady je moje shrnutí:

Pro vývojáře, kteří neměli čas podívat se na Zend Framework Kurz (Zend Framework: Základy) nabízí dobrý celkový obraz prostřednictvím zavedení si na klíčové oblasti a dává dostatek informací, aby mohl pokračovat. Pro ty, kteří strávili nějaký čas při pohledu na rámec, a šli jsme za jeden či dva návody Tento kurz nenabízí tolik dál.

Pozadí

Byl jsem PHP developer cca 5-6 roky, a začal pracovat s Zend Framework na jednotlivých součástí za posledních 6 měsíců. Jsem se rozvinout, a / nebo byl developer na pár malých Zend Framework MVC sites. Budu upřímný, neměl jsem obrovské množství expozice jiných rámců z hlediska kódování, ale strávil několik hodin zkoumání a hodnocení webových stránek projektu them. rámec a obce kolem Zend Framework to je docela vzrušující a tam se zdají být obrovské možnosti, kde jeho chodu.

O průběhu

Kurz je dodáván přes 9 dvě hodiny sezení WebEx (s 10-minutová přestávka uprostřed). Čas strávený prochází soubor prezentací poskytovaných Zend s diskusí kdykoliv. Můžete použít mikrofon mluvit s instruktorem, ale abych byl upřímný, jsem neviděl nikoho použít něco víc než chat okna. Navíc je VMWare Ubuntu stroj za předpokladu, že má například kód a projekty, které zkušební verzi Zend Studio. Rozhovory samozřejmě vůdce účastníkům buď přes řešení integrované VoIP, nebo můžete vytočit jedním z mnoha na celém světě volby v číslech.

V průběhu materiál se skládá z stručný přehled rámce a vzor MVC Než se vydáte na ukázkové aplikaci guestbook. Diskuse prokázala bootstrapping, Zend_Application, databázových tabulek, Přístup k databázi, formuláře, filtrování, ACL, ověřování, atd., atd. V podstatě pro všechny témata, která si vyžadují, aby se základní stránky do provozu po celou dobu dává vám nástroje k Jděte a pokročilejší v rámci (i když to přece částku "Podívejte se na stránky" mnoho času).

Čas je dána kódem nějaké příklady, a rozvíjet "Návštěvní kniha" a prosté "wiki" aplikace. Osobně jsem cítil, že poskytování kód nebo každé aplikace a pak nás žádá, abychom rozvíjet to, co byla v podstatě kopie spolu se opravdu poskytnout dobré zkušenost. Byl bych raději vyvíjet aplikace podobné, ale ne totožný. na příklad aplikace s výhodou mít průvodce který se odkazuje. Jinak stavební aplikace od nuly s demonstrátor by potenciálně vedla k dalším otázkám, proč a jak, a umožňuje tak lepší pochopení rámce, po tom všem se můžete podívat specifika po skončení kurzu.

Poslední přednáška se skládala z práce na wiki aplikace s pomoci / pokyny instruktora. Po absolvování kurzu zpětné vazby bylo přijato, bylo zdůrazněno několikrát přes kurz, který se Zend zpětná vazba velmi vážně, ve skutečnosti zřejmě naše verze byla samozřejmě zcela nová. Někteří jiní vývojáři ve společnosti bude brát samozřejmě brzy, takže bude zajímavé sledovat, jestli se to stalo.

Kurz styl byl neformální, možnost zpětné vazby a spolupráci mezi účastníky a instruktor. Samozřejmě vůdce byl přátelský, přístupný (e-mailové adresy jsou společné pro otázky), a zatímco jeho prezentaci snímků byl trochu nejistý zdálo plně kompetentní v rámci. On byl jednoznačně ten, kdo používá rámci pravidelně a ne někoho, kdo se učí učit Samozřejmě, že jsem měl rád "skutečný svět" zkušenost v tomto ohledu.

Celkový pocit

V některých cestách jsem zjistil, že samozřejmě ztráta času, v jiných to bylo velmi užitečné. Doufám, že dostanu své důvody v rámci jasně, a možná poskytnout některé k zamyšlení a užitečnou zpětnou vazbu (Knowing Me to je nepravděpodobné!).

Pro mě byl tento kurz zaměřen na příliš nízké úrovni. Po prošel Rychlý průvodce, přečtěte si Rob Allen je Zend Framework v akci, a pracoval s rámcem trochu jsem se opravdu nic moc. Já bych rád v průběhu vyzvednout od konce QuickStart a rozvíjet další dovednosti.

To znamená, že kurz titulu se jasně "Zend Framework: základy" a v tomto aspektu samozřejmě dosáhne, co se na to. Ostatní členové vývojového týmu, který dosud strávil čas se podíváme do rámce dokončení každé setkání s nadšením a otázky, které bylo opravdu pěkné vidět.

Není všechno ztraceno, to bylo dobré trávit čas potvrzení základní informace o rámcových a dostat se zeptat na pár otázek v oblastech, kde jsem si nebyl 100%. To bylo také čas, který jsem si sednout každý den a přemýšlet o kódování pomocí rámce a budoucích projektů, něco, co by se v mohl udělat jinak (Dovedete si představit vaše firma souhlasit, že to:)). V neposlední řadě také získat pěkné certifikát Zend říci, že jste se zúčastnili kurzu (i když e-mailem).

Zend Framework Certifikace

To byla jedna otázka, která stále přichází na mysl v průběhu, to by mě připravit na certifikaci? Rychlé a snadné je rezolutní NE. Kurz Instruktor byl zcela jasně, že s další doporučení, že pro certifikaci, měli byste opravdu používat rámce na každodenní bázi a cítit velmi pohodlně a věří v jeho použití a metodik.

Přehled

Vzhledem k tomu, co jsem napsal výše, budu shrnout vše, co ve dvou jednoduchých bodech:

  • Nové Zend Framework: Tento kurz má přesně to, co byste čekali, že vám pěkný úvod do rámce a dobrou průpravu na základy, ze kterých můžete stavět. Kurz Zdá se, že vzbudit zájem a nadšení pro rámec mezi vývojáři.
  • Používá Zend Framework: Když to bylo hezké, aby podepřít některé velmi základní Cítil jsem čas, úsilí a finanční prostředky, aby se kurz mohl být lepší v někde jinde. Bude hezké SEEA Zend vytvořit novou vyšší úroveň kurzu, aby vývojáři do další úrovně. - Alespoň na úroveň certifikace a předčit očekávání, že bych se okamžitě přihlásit.












Panorama Téma, které Themocracy

7 návštěvníků online
4 osoby, 3 roboty, 0 členů
Max návštěvníků dnes: 19 v 06:09 UTC
Tento měsíc: 19 v 19-08-2011 06:09 UTC
Tento rok: 130 u 28-03-2011 22:40 UTC
Za celé období: 130 u 28-03-2011 22:40 UTC