Dynamicky stránky Zend_Navigation kontejneru za běhu

Tím, a Čtvrtek 7Leden 2010 10:50 pm

Pokračování na můj poslední příspěvek o Zend_Navigation a trasy žádostí o sitemap.xml na vlastní řadič / akce , tento příspěvek je o dymnamically přidávání stránek do Zend_Navigation kontejneru v běhu / script provedení.

Je to celé dobře a dobře uvedením své stránky v ini nebo XML souboru, ale na nějakém místě budete mít změnu stránky webu, které chcete jako součást nabídky, Mapa stránek, nebo mají být zahrnuty ve vašem strouhance stopě. Proto to, co musíme udělat, je přidat stránky naší Zend_Navigation kontejneru za běhu. Příklady by to bylo v přidávání zprávami, blogu nebo stránky připomínky apod.

Pokračovat ve čtení "dynamicky přidávat stránky Zend_Navigation kontejneru za běhu" »

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

Tím, , ve středu 6. ledna 2010 12:13 am

Za účelem přímých žádostí / sitemap.xml do vlastního řadiče a akce ve vaší Zend Framework aplikaci stačí přidat následující ve vašem application.ini nebo alternativní 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

Příklad kód pro výstup může být viděno tím, že vytvoří akce v příslušném regulátoru např. moje mapa stránek spočívá v indexu regulátoru, mapa webu akce):

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

Sitemap snadno a rychle vygenerovat Zend_Navigation , velký rychlý tutorial (a obecně velmi užitečné pro Zend Framework cvičení) je Zend Odlitky - Dynamické vytvoření menu a Sitemap a strouhanka .

Zend Framework Per-modul založený nastavení

Tím, , v pátek 1.1.2010 10:40 pm

Jsem vytvořil Jít k tomuto příspěvku, který vyžaduje méně konfigurace, viz modul založený Layout - Zend Framework .

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

  / Aplikace
     / Regulátory
         ...
     / Modely
     / Modules
         / Default
             / Regulátory
             / Layout
                 / Scripts
             / Pohledy
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problém byl nastavení rozvržení skripty pro jednotlivé moduly základě. Odpověď přišla při používání akční pomocníka. Nastavení rozvržení na jednotlivé moduly základě zahrnuje tři kroky:

  1. Application.ini (nebo podobné konfigurace nastavení):
     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 rozvržení / scripts "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / modules / partnerské / Rozvržení / scripts " 
  2. Vytvořte si svůj akční Pomocník:
      <? Php
     / **
      * Nastavení rozložení na cestu za modulu základě
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Od 2010-01-01
      * /
     třída Pro_Controller_Action_Helper_SetLayoutPath
         rozšiřuje Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Sady rozložení cesta založená na modulu
          * /
         public function preDispatch ()
         {
        	 $ Modul = $ 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 ("layout")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. A konečně boostrap akčního pomocníka:
      ...
         / **
          * Nastavuje vzhled skripty pro jednotlivé moduly základě
          * /
         chráněné funkce _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 nastavením až databázové schéma o nové rámcové Zend projektu. Já jsem pomocí snaží využít doktrína ORM pro mé databáze modelů. Potřebuji nastavit schéma tak, aby mi umožnil nastavit výchozí datum a čas k `s` s datetime sloupce, např. při přidávání novou zprávu jsem dostal aktuální časové razítko. Po dlouhém hledání a experimentování jsem našel řešení, takže jsem jejich sdílení.

Ve vašem schématu YAML soubor, postupujte následujícím způsobem:

 Zpráva:
   actAs slovy:
     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
     Název: string (255)
     e-mail: string (300)
     message: String (2000)

Pokud na druhou stranu nechcete, aby soubor `` s updated_at sloupec, můžete použít následující:

 Zpráva:
   actAs slovy:
     Timestampable:
       vytvořeno:
         Jméno: created_at
         Typ: časové razítko
         formát: Ymd H: i: s
       aktualizace:
         postižené: true
   sloupce:
     id:
       Typ: integer
       Primární: true
       AutoIncrement: true
     Název: string (255)
     e-mail: string (300)
     message: String (2000)

PHP Design Patterns - Observer Pattern

Tím, , v úterý 29. prosince 2009 22:02

Četl jsem po hlavě návrhové vzory nedávno a se rozhodl napsat některé z modelů jako PHP příklady pro vlastní prospěch. První z nich, že jsem se rozhodl kódu up je vzor Observer . Formální definice Observer Pattern je:

Pozorovatel vzor (podmnožina asynchronní publish / subscribe vzor ) je software, návrhový vzor , ve kterém objekt , nazvaný předmět, vede seznam svých rodinných příslušníků, které se nazývají pozorovatelé, a upozorní je automaticky ze všech státních změn, obvykle tím, že volá jeden z jejich metod . Používá se především k provádění distribuované systémy zpracování událostí.

Jako systémy staly volně vázané ujistit, že když se stane událost všechny systémy, které vyžadují znalosti o těchto změnách informováni. Například, blogu, po uložení příspěvek budeme muset aktualizovat vyhledávač (např. Lucene), Mapa stránek, aktualizujeme naše značky, e-mail předplatitele atd. pozorovatele vzorem umožňuje vývojářům přidat další posluchače bez úpravy jejich pozorovatelný objekt . Tím, že napíchne pozorovatele (tj. vyhledávač aktualizace pozorovatel, generátor mapa stránek, atd.) do předmětu, tj. blogu redakční systém) můžeme dovolit, aby provést všechny potřebné aktualizace beze změn.

Pokračovat ve čtení "PHP návrhové vzory - Observer Pattern" »

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

Tím, , pátek 4. prosince 2009 23:59

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkových úloh zpracování miliony záznamů dat každý den a já jsem nedávno přemýšlel o všech těch strojů, které se nacházejí kolem každého a každý den nic nedělat několik hodin. Nebylo by dobré, kdybychom mohli používat tyto stroje k posílení výpočetního výkonu našich systémů? V tomto souboru článků budu se dívat na potenciálních výhodách zaměstnávání kancelářskou síť pomocí virtualizované prostředí.

V části 3 Vytvořili jsme virtuální stroj pro zpracování a nastavení Windows stroje, aby se stal nečinnosti úvazek.

Spuštění poslední kód

Nevyhnutelně po vytvoření svého pracovníků obchodní logiky se změní, bude chyby nalézt, bude rychlejší efektivnější kód vyrobeny tak opouštět vaši zaměstnanci seděli zpracování dat pomocí starý páchnoucí kód . Jak tedy zajistíme, že jsme vždy používat nejnovější a nejlepší verzi našich zpracování skriptů?

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

První metoda by bylo připojit se k našemu serveru práce pro ovládání přes Sambu, FTP, nebo podobný) a zatáhněte směrem dolů nejnovější verzi kódu. Není příliš efektivní, ale to bude dělat svou práci. Umožňuje zlepšit, že něco, co vytváří rsync scénář a pomocí tohoto pokaždé místo? Jinak co klade na naši poslední zpracování skriptu do subversion odhlašování kód začátku a pak už jen aktualizovat náš kód na každém běhu ( svn update )?

V závěru jsme mohli skončit s skriptu bash (nazvaný cronu každých 10 minut), která vypadá jako 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í výstupu"
 jiný
     echo "práce není spuštěna, spusťte nyní"
     cd / cesta / k / pracovní / kopie
     svn update
     php yourJobProcessingScript.php
 fi 

Nyní můžeme být jisti, že s každým běhu jsme definitivně poslední verze kódu. Jsme to zajistit, že se aktualizuje každý náš kód základnu a pokaždé jsme se provést útok a snížit provoz v síti pouze přenos souborů, rozdíly mezi naší sítě.

V mém demonstrace nastavení, udělal jsem přesně, jak je uvedeno výše. Subversion byl instalován na svém serveru práce zpracování a prostě jsem stáhl poslední kód z "pracovníka" pobočky pomocí inteligentního svn update '. Také jsem přidal číslo verze značku do svého zpracování skriptu, který byl vrácen do databáze jako součást výsledků návratu. Tímto způsobem jsem si, že můj kód byl aktualizován pokaždé, když jsem kopíroval svůj kufr do tj. pracovník pobočky, že jsem určitě používáte nejnovější zpracování skript.

Použití nejnovější data

Pokud vaše práce zpracování využívá datových zdrojů a pak v určitém okamžiku jsou tyto bude aktualizován také. Pokud voláte své zdroje dat na velmi řídkém základě vy budete zaplaví vaši síť s provozem, jakmile vaši zaměstnanci začnou přinášet všechno, co ke klidu. Pro mé řešení jsem se rozhodl, že bych chtěl přesunout své zdroje dat si s mými VM.

Držte ty jsi tam koně! Co když moje 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ší nainstalovat 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 je na podnikání, aby rozhodl. Je možná, že vaše zdroje dat jsou tak velké, že je to jen neproveditelné, aby toto množství dat ve vašich pracovních strojů. V takovém případě co byste dělali? Tak jsme se mohli podívat na volání místního datového serveru, ale to může způsobit problémy se sítí. V tomto případě se distribuční soustava, 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 jiných provozních strategií, například pouze volat své pracovníky mezi 8pm a 6 hodin ráno každou noc a / nebo škrtící zdroj dat požádá.

Přesun na řekněme naše zdroje dat částku 100 GB dat. No ano, to je docela dost dat se pohybovat po síti na aktualizaci. Jak bychom zajistit, že budeme mít poslední kopii dat v tomto případě? Rsync je možné, ale osobně si myslím, spuštěním svůj nejnovější zdroj dat na serveru pracovních zpracování a toto nastavení jako mistr v replikaci (s krásným dlouhým bin protokolu) může být způsob, jak jít:

replikace Při nastavení každého z vašich zaměstnanců se jako otrok do práce aktualizací kontrolní serveru do zdroje dat se dostaly až pěkně ke svým pracovníkům bez obrovským nárůstem síťové aktivity (tedy pokud byste provést aktualizaci dat obrovský a všichni vaši zaměstnanci kopat do najednou). To má výhody v tom, že rsync byste nedostal dlouhou pauzu před každou práci, jako aktualizace databáze, mysql bude démon na pracovníka průběžně aktualizovat své údaje, zatímco zpracování pokračuje.

To je, jak mám nastavit můj demonstrační server. Chcete-li nastavit replikaci jsem za vodítko na webu MySQL ( Nastavení replikace ) a během 20 minut jsem měl Inital pracovníka replikovat na pracovní ovládání serverů datové sady. Za každý další pracovník replikace nastavení a proces se osvědčil vždy, když byl kopírován VM.

Shrnutí

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

Příště

V závěrečné části této série, vhodně pojmenovaný část 5 , budeme diskutovat o nasazení tohoto systému. Budu shrnout, co jsme se naučili a co se mi podařilo vytvořit.

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

Tím, a pátek 4Prosinec 2009 11:37 pm

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkových úloh zpracování miliony záznamů dat každý den a já jsem nedávno přemýšlel o všech těch strojů, které se nacházejí kolem každého a každý den nic nedělat několik hodin. Nebylo by dobré, kdybychom mohli používat tyto stroje k posílení výpočetního výkonu našich systémů? V tomto souboru článků budu se dívat na potenciálních výhodách zaměstnávání kancelářskou síť pomocí virtualizované prostředí.

V části 2 jsme se podívali na pracovní místa server běží, a jak by práce být nakonfigurován tak, aby bylo dosaženo co největší množství zpracování a současně zajistit, že každá práce je zpracována bez výjimky.

Nastavení pracovníka - nebo nouzový serveru

Dalším krokem v tomto procesu je vytvořit virtuální pracovníky. Za to budu používat instalace CentOS pomocí VirtualBox. Chystám se instalovat MySQL a PHP na serveru, také známý jako Limp odst. Li nux, m ySQL, P k) Servera odst. Možná jsem dělal, že název se).

  • Instalace VirtualBox na počítač s Windows (podle odkazu)
  • Stáhnout a nainstalovat CentOS (aktuální verze 5.3) v rámci vytvořeného virtuálního stroje

Nemá smysl, abych na to jít je to asi 1000 's velkými cvičení venku (OK, tady je jeden: Vytvoření a Managing CentOS virtuální stroj pod VirtualBox ). Důležité poznamenat, myslím, že jsem volal můj virtuální stroj GridMachine.

Co se týče mé volby virtualizace klienta a operačního systému tam není žádný 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. Vybrala jsem si CentOS jako jeho dobrý stabilní OS a používám ho na svém vlastním webovém serveru. Jsem velkým zastáncem těch správných nástrojů pro práci (i když jsem aplikaci "používají nejrychlejší a nejsnadnější za vás mentality zde), takže pokud operační systém X spustí kód rychleji a efektivněji využít, že místo :)

Důležité je, aby vaše VM používá DHCP, jinak pro každý nový virtuální stroj by bylo nutné konfigurovat samostatně což je něco, co nemáme want.By pomocí DHCP není potřeba konfigurovat nastavení sítě individuálně pracovních strojů, bude DHCP předá z IP adres pro vás. Proto můžete zkopírovat virtuální stroj o kanceláři bez obav o nastavení každé z nich se (to zlepšuje škálovatelnost a sníží administrativní pracovník).

Proces, který by měl vést k dosažení by bylo získat nový fyzický stroj, instalace VirtualBoxu, a pak skoro nasadit virtuální obraz bez mnoho jiného. To by mohlo být moudré nastavit všechny své zaměstnance na jiné podsíti, takže můžete alespoň vidět, kolik stroje jsou v provozu. Budete také muset nastavit své stroje na dlouhodobý pronájem nebo leasing neomezenému DHCP.

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

To je zajímavá oblast a tam je několik ověřených metod pro zpracování úlohy na pracovníka. Zde jsem si jen diskutovat o dva nejvíce zřejmé:

  • Trvale běžící skript: skript, ať už je to skript, nebo PHP skript je proveden jednou na pracovníkovi a běží jako součást nekonečné smyčce. Já jsem tuto metodu diskontovaných jako jedna havárie scénáře a potenciálně vaši zaměstnanci přestane fungovat bez nějakého zásahu.
  • Cron na bázi skriptu: každých X minut cron démon startuje volání skriptu dostat se dít věci. Bez nějaké kontroly by to mohlo vést k mnoha tolik kopií svého běhu skriptu pracovníků.

Mé rozhodnutí bylo jít s cronem, který začíná shell skript každých 10 minutes. Můj skript provede následující úkoly:

  1. Pořiďte si seznam procesů, a to pro grep 'PHP'. Pokud není nalezen pak pokračujte.
  2. Zavolejte na pracovní kód, v mém případě by to bylo něco, co vychází PHP
  3. Pracovník skript dokončí svůj běh
  4. Připraveni jít znovu na další příslušné výzvy

Můj bash skript vypadá asi takto:

  #! / Bin / sh
 Pokud ps ax | grep-v grep | grep php> / dev / null
 pak
     echo "Práce je v současné době zpracování výstupu"
 jiný
     echo "práce není spuštěna, spusťte nyní"
     php yourJobProcessingScript.php
 fi 

Poznámka: echo je téměř naprosto zbytečné, ale může pomoci další osoba, která přijde, aby se pokusila upravit.

, Který uzavře soubor z pracovníka virtuálního stroje, rychlé, jednoduché a snadno zkopírovat do každého nového kusu hardwaru, který je obdržel. "Chytrost" z distribuční soustavy, opravdu není v vizualizované OS, to celé dělat s kódem vytvořené ke zpracování pracovních míst, na pracovním konfiguraci a na tom, aby se úloha spustí v případě potřeby (např. když hostitel je nečinný ).

Nastavení systému Windows inicializace Dělníci

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

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

Nicméně ke spuštění skriptu v 'bezhlavým' stavu musíme použít:

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

Tím se spustí virtuální stroj bez GUI a nechte ji uložit stav elegantně. Druhý argument se vypne PRV tak to není v rozporu s Windows RDP, nebo vám zprávu o naslouchá na portu 3389. Virtuální stroj jméno je malá a velká písmena!

Dále budeme potřebovat nastavit okna až k nastartování náš pracovník VM, jakmile stroj byl nečinný. K tomu (na Windows XP), budete muset jít na Start -> Všechny programy -> Příslušenství -> Systémové nástroje -> Naplánované úlohy jak je uvedeno níže:

Naplánované úlohy

Potom klikněte na "Přidat naplánovanou úlohu", po němž procházet přidat vlastní program. Přejděte do VBoxManage skriptu a klepněte na tlačítko OK. Naplánovat úkol pro některou z možností (budeme-li to změnit za minutu) a pokračovat. Po přeskočení na další obrazovku Windows se vás zeptá, který chcete spustit tento úkol, tak bych navrhnout režimu "Administrator 'nebo vytvoření nového privilegovaný uživatel. Pamatujte, že nechceme zasahovat do standardního účtu pracovníků na zařízení v každém bodě. Klepněte na tlačítko Další a zkontrolujte Ukázat pokročilé možnosti pro tento úkol.

Chcete-li do konce běhu textového pole přidat náš řetězec 'startvm GridMachine' a zajistit, aby běh pouze při přihlášení je vlevo unticked. Navštivte plánu další úkol a změnit plán klesnout až na volby "při nečinnosti", zvolit dobu, po kterou si přejete stroj nečinnosti před přechodem na další záložku.

Nakonec Zrušte volbu, která uvádí, zastavit úlohu, pokud byl spuštěn X množství času, ale zaškrtněte možnost zastavit úlohu, pokud stroj není nečinný.

naplánovat

To je to pak pro nastavení hostitelského systému Windows!

Shrnutí

V této části jsme vytvořili virtuální stroj, aby jednala jako pracovník, stejně jako způsob, kterým říkáme a spouštět skripty naše pracovní zpracování (pro sebe PHP skript). Odtud se podíváme na to, jak nastavit naše kopie Windows spustit do virtuálního počítače 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 na tomto místě vidíte, jak jednoduché je vytvořit takový systém a svědění se dostat některé experimenty se děje!

Příště

V části 4 se budeme dívat na použití nástroje s cílem zajistit, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy aktuální s nejnovějšími obchodních informací a logiky.

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

Tím, a pátek 4Prosinec 2009 11:23 pm

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkových úloh zpracování miliony záznamů dat každý den a já jsem nedávno přemýšlel o všech těch strojů, které se nacházejí kolem každého a každý den nic nedělat několik hodin. Nebylo by dobré, kdybychom mohli používat tyto stroje k posílení výpočetního výkonu našich systémů? V tomto souboru článků budu se dívat na potenciálních výhodách zaměstnávání kancelářskou síť pomocí virtualizované prostředí.

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

Řešení jsem poskytují bude velmi volně založený na typu zpracování bychom třeba dosáhnout nicméně to nemusí být pravda v průběhu celého článku, jak budu měnit věci pro jednoduchost, nebo produkovat více zajímavé scénáře použití.

Tyto virtualizovaného prostředí bude běžet na počítačích s Windows, protože to je to, co většina kanceláří spustit. Zpracování, které se do kancelářských strojů by neměla zasahovat zaměstnanci za použití 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 žádnou další konfiguraci, protože to výrazně snižuje škálovatelnost a snadné, při které může být rozšířeno distribuční soustava.

Proč Nasazení Office Computing Grid?

Za prvé si mohou myslet, proč stačí použít cloud computingu, jako zdroj EC2 platformy Amazon ? No důvody, může být několik, např.:

  • Nebudete svěřit některé údaje na životní prostředí cloud computingu
  • Nemůžete dát určitá data do prostředí cloud computingu z právních důvodů (např. údaje o odjezdu ze země), případně z právních důvodů, např. NHS záznamů.
  • Chcete, aby vaše řídící jednotky ukončit a mít plnou kontrolu nad hardwarem příliš
  • Nemáte projektu finanční prostředky ke spuštění instancí cloud
  • Vaše kancelář nemá připojení k internetu, a proto to není možné použít cloud zdroje
  • Nemáš rád déšť, mraky naznačují, déšť, proto budete mít daleko

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

Výhody na Grid Computing Office

Dobře, pojďme udělat nějaké matematiku (av pravém fyziky stylu umožňuje provést některé radikální předpoklady). Představte si, že mají velkou svalnatý zpracování server běží 100 úloh za den. V kanceláři máte 50 strojů, které jsou nečinné 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).

Takže, 1 stroj * 10% výkonu * 2/3 = 0,067 času, tj. o 1 pracovní plochy zpracování v nečinnosti může zpracovávat plných 6 úloh za den.

Pokud nyní měřítko toto nahoru za 15 volných počítačů pro zpracování jako mnoho úloh za den, jak Vám hlavní technologické server dělá.

Takže v naší kanceláři předstírat, 50 strojů jsme mohli rozšířit naše výpočetní výkon serveru od 1 do 4 plné zpracování serverech, nebo bychom mohli být zpracování úloh za den 400 místo ze 100 možných.

Oznámení, protože žádná investice do nového hardwaru vaše firma právě zvýšila její šarže zpracovatelské kapacity 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 strojů jsou obecně odešel na noc tak, aby jste mohli vidět jako zelené iniciativy.

Další výhody také znamenat, že investice do nové (nebo aktualizované) zpracování servery mohou být odloženo, pokud vaše kancelářské stroje jsou dostatečné a že, jak si vylepšit sílu vašich kancelářských strojů vaše kancelář síť stala silnější automaticky.

Technologie

Co budete potřebovat? (Nebo přesněji co jsem použít):

  • Idle kancelářské stroje (v mém případě náhradní staré Windows XP notebook)
  • VirtualBox (nebo jiný virtualizační software klienta)
  • Virtuální stroj s PHP, MySQL running běží seříznuté OS, volám těchto mých Limp servery :)
  • Práce na spuštění
  • Pracovní server (může být jiný virtuální stroj někde)

Typické Zaměstnání

Typy úloh, které tento systém je určen pro práci je následující:

  • Systém obdrží seznam dat, na kterých musíme zápas a vrátit výsledky
  • Odpovídající zahrnuje kontrolu / hledat několik (spíše statické) zdroje dat
  • Výsledky ze zdrojů údajů může požadovat další potvrzení, sloučení, kontrola dalších zdrojů údajů v reakci na výsledky
  • Data se vrátil s vyhledaných záznamů, plně potvrzena a zpracována
  • Každý záznam v zaměstnání je nezávislá na ostatních

Takže v podstatě se díváme na běžící úlohy, které vyžadují směs vyhledávání v databázích, a nějaké číslo křupavý a docela typický scénář, ve firemním prostředí.

Grid řešení jsou nejen výhodné pro zpracování úloh tohoto typu. V podstatě může každý postup, který lze rozdělit na samostatné jednotky probíhat paralelně. Viz tento wikipedii pro 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 výpočetních sítí, a to jsou stejně stojí za to do.

Co budeme dosáhnout?

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

  • Nastavení pracovní kontrolní systém, pracovní konfigurace
  • Vytváření vhodného zpracování virtuální stroj
  • Jak nastavit systém na počítač se systémem Windows
  • Zajištění, že používáte nejnovější kód a data
  • Nasazení a benchmarking
  • Při pohledu do budoucna

Budu budova (ok jsem postavil, tak to psal) příklad aplikace vyzkoušet koncepce na lokálním počítači používajícím Windows XP a můj Hasičské GridMachine 'virtuální stroj. Mým úkolem kontroly server bude můj hlavní stroj, který běží Fedora 11 .

To se v žádném případě určen k prokázání plně funkční spolehlivý 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. Prosím, neváhejte a pošlete mi nějaké připomínky, opravy a vylepšení, a já v mých silách, aby tento článek aktualizován, aby odpovídal.

Příště

V části 2 se mi začít tím, že při pohledu na systém pro ovládání úloh, a podívejte se na to, jak by měla práce být nakonfigurován tak, aby bylo dosaženo co největší množství zpracování a současně zajistit, že každá práce je zpracována bez výjimky.

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

Tím, a pátek 4Prosinec 2009 11:23 pm

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkových úloh zpracování miliony záznamů dat každý den a já jsem nedávno přemýšlel o všech těch strojů, které se nacházejí kolem každého a každý den nic nedělat několik hodin. Nebylo by dobré, kdybychom mohli používat tyto stroje k posílení výpočetního výkonu našich systémů? V tomto souboru článků budu se dívat na potenciálních výhodách zaměstnávání kancelářskou síť pomocí virtualizované prostředí.

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

Job Control

Pokud bude běžící úlohy potom budete potřebovat nějaký způsob, jak je řešit. Vaším úkolem řídící systém (na vašem pracovním serveru) musí být opravdu dobře promyšlený ještě předtím, než pokusem o spuštění aplikace systému Office mřížku. Tak za prvé, jaké jsou úkoly pro systém řízení práce:

  • Rozdávat práci na žádost zaměstnance
  • Řekněte pracovníků, jaký typ úlohy ke spuštění
  • Sledování práce
  • Ujistěte se, že úlohy jsou spustit pouze jednou
  • Poskytnout pracovní dat pro pracovníky, nebo alespoň říct, kde jej získat

Systém musí být také rozšiřitelná řešení, které funguje zatím v jednom případě může být prodloužena spustit několik typů pracovních míst, jako je podnikání vidí hodnotu v mřížce řešení. Například, práce získat priority, více než jeden druh povolání mohou existovat (tj. několik kód základny), případně můžete dokonce spustit několik různých pracovníka stroje, které jsou optimalizovány pro každý typ zaměstnání (i když to se vzdálí od generikum pracovníka "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 vidění dlouhodobější frustraci a navýšení rozvojové čas.

Job Server

Budeme potřebovat někde kontrolovat naši práci od, mělo by to být jediný systém ve vaší síti, která má pevnou Resource Locator, je, že IP adresa, jméno počítače, URL (pomocí interní DNS), atd. Je to proto, pracovníci potřebují vědět, kde hledat práci, pracovníci musí najít zaměstnání kontrolní systém (není úkolem řídicí systém najít pracovníky).

Práce server sám o sobě není opravdu složitý úkol (v základním systému tak jako tak), 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ší použití. Jak jsou definovány tyto části (např. "ruku zaměstnanosti"), může být velmi jednoduchý. Později můžeme rozšířit systém zahrnuje administrační rozhraní přidávat, upravovat, mazat, pozastavit pracovních míst, ale to je nad rámec tohoto cvičení.

Neexistuje žádný důvod pak, že vaše práce serveru nemůže být virtuální stroj běží v rámci hlavního zpracování serveru, pokud není kanalizace příliš mnoho zdrojů, z ní. Práce serveru však není potřeba vysoké dostupnosti, pokud to jde dolů v pátek večer vy budete ztratit celý víkend zpracování, případně vás to stálo pár týdnů v hodnotě zpracování času (ve srovnání s hlavním zpracování samotného serveru) . Možná budete chtít, aby zvážila své pracovní server na zatížení vyvážené prostředí pro vysokou dostupnost.

Základní nastavení

Základní nastavení pro našeho serveru práce bude skládat z toho, co Volám jeden z mých Limp serverů (to je Li nux, m ySql, P HP). Kód běžící na pracovníky Thea bude skutečně fungovat, co práce to může běžet interakcí s databází s úřady práce řídicího systému. Později bychom mohli vytvořit webovou službu a skutečně vyplácejí pracovních míst spíše než mít pracovníci Těžkou práci sami, 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 se vypořádat s pracovními místy. Ty budou práce ``, `jobRecords` a `jobResults`.

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

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

  • id: Jedinečná identifikace práci
  • Jméno: Může to být klient odkaz, nebo libovolný počet jiných identifikátorů
  • Stav: Musíte vědět, kde práce je, např.
    • 0: Nezahájeno
    • 1: Vyzvedli jsme
    • 2: Dokončeno
  • started_by: Kdo začal dělat svou práci? To není úplně nutné, ale je hezké mít. Já bych navrhnout, sledování pracovníků podle jejich IP adresy v síti
  • started_at: Kdy se pracovník zahájit práci? Sledováním práce, které nebyly dokončeny ve výši X dobu víme, že je třeba vyzvednout práci znovu a začít zpracování jiným pracovníkem. Pracovníci mohl zastavit zpracování / offline pro libovolný počet důvodů, výpadek proudu, havárie, ztráta sítě atd.

Je to snadné, jak by tato tabulka být prodloužena až na několik dalších oblastí, což umožňuje sledování statistik, což je cílový čas sloupce, jak dlouho trvalo práce, počítadlo, kolik pracovníků zvedl práci (zřejmě to potřebuje spíše 1), práce prioritou, lze 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 pracovník bude potřebovat přístup k (a proto používejte vhodné pracovníky), nebo dokonce jaký typ pracovníka, by bylo zapotřebí.

Umožňuje přidat několik příkladů pracovních míst:

příklad práce

Následující tabulka je opět velmi jednoduchý na pochopení, to jsou naše pracovní záznamy. Ty jsou napojeny na hlavní nabídku tabulky sloupec `s jobs_id nepovinné. Tvoří z této tabulky velmi závisí na typu dat, které je třeba poskytnout svým pracovníkům, umožňuje dělat velmi jednoduchý příklad, kde máme čtyři sloupce:

  • id: ID záznamu
  • Jméno: Jméno
  • adresa: Osoby adresa
  • jobs_id: úkolem číslo, že tento záznam je spojena s

Třetí a poslední stůl se skládá z výsledků tabulky, má hodně stejný make up jako naše záznamy tabulky, a přidáním některých sloupců by mohla být součástí spisové tabulky:

  • job_record_id: Odkaz výsledek na pracovní stůl
  • Výsledek: Výsledné údaje

... A to je vše, co potřebujete pro vytváření pracovních kontrolou! (I když na velmi základní úrovni) V mém případě jsem ukázal jsem do jiné tabulky, kde byla moje data ke zpracování, ale to by mohlo právě jak snadno být soubor, parametry pro spouštění simulace kód, co si jen vzpomenete.

Výběr práce

Jak již bylo uvedeno, budou pracovníci dělat svou práci správu pro nás teď, tak všechno, co potřebujeme opravdu udělat, je najít si práci, která potřebuje zpracování a získat informace. Jak bychom to udělat? Well vybrat podle našich kritérií výběru povolání a hledají práci, v SQL jsem následující:

  1. Vezměte všechny úlohy, které nejsou označeny jako kompletní, ale z našeho pracovníka a resetovat (nahradit __ ME__ s identifikátorem, bude nejsnazší být IP adresa):
      UPDATE `s` SET `pracovních míst stav` = 0 WHERE `stav` = 1 AND `started_by` = __ ME__; 
  2. Pomocí našich kritérií výběru povolání, vyberte si práci a říct kontrolní systém, který tento pracovník se zabývá tím:
      UPDATE `s` SET `pracovních míst stav` = 1, `started_by` = __ ME__, `started_at` = NOW () WHERE `stav` = 0 nebo
     (`Status` = 1 AND `` started_at> DATE_SUB (NOW (), INTERVAL X HOUR)) ORDER BY `id` ASC; 

    Tím, že chytne pracovních míst, které nebyly vráceny výsledky v množství X době, kdy jsme se zajistilo, že všechny úlohy jsou spouštěny v případě pracovníka zřítilo nebo jít dezertoval.

  3. Next grab the jobs details followed by the records themselves:
     SELECT * FROM `jobs` WHERE `started_by` = __ME__ LIMIT 1;
    SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Upon completion of the job we insert our result records and mark the job as complete. Remember as jobs can suspend/resume at any time allow for some robustness in your script. It might be that the task suspends half way through updating the job control system, so checking the number of records in a job and the number of results saved back to the job control system would be a wise move.

In addition, whilst this demonstrates how jobs can be selected and managed from an SQL-query frame you should really be abstracting your job control so that if you decide to switch to using a web service, a file based system, XML , or any other number of systems it will not affect the code above it.

Job Configuration

The next aspect to consider is job size and configuration. By playing with job configuration we can strike an excellent balance between speed, process replication, and reliability. Take a couple of scenarios:

  1. Jobs take 1 day each to run: This means that your workers need 15 days to process each job (remember 10% of the power for 2/3rds of the time). This is clearly not a wise configuration, your job size is way too big! It would take at least double the time to get a job processed should the initial worker go AWOL (time to pick up that it hasn't returned a result plus reprocessing time). In an ideal you'd have at least one full job easily cleared by the end of each long idle period, that way you keep the jobs ticking over and at worst case a job would take two days to process should the first go missing.
  2. Jobs take 1 minute to run: This means that your workers take about 15 minutes to run each job. Whilst this may initially seem ideal, you gain additional work processing during lunch time, coffee breaks, meetings, etc this scenario puts strain on other areas of your system and introduces its own problems. For example, firstly your setup/processing time ratio is going to go right down, therefore losing system efficiency. Your network is going to be constantly streaming job information to the various workers frustrating staff who are dong their day to day work. You're also going to put more strain on your job processing server as it has to dish out lots and lots of small pieces of work on a regular basis. Lastly, in this situation if your job server goes down you're going to create a huge back log of uncompleted work whereas bigger jobs could of continued processing blissfully unaware that the job server was experiencing difficulties.

In reality there will be no one ideal configuration for your grid setup, much depends on the available resources, types of job, job turnaround time requirements, network capability, and so on. However some guidelines would be:

  • Size jobs so that each worker can get through at least 3-4 jobs in a period of 15 hours (the longest likely idle time period)
  • Play with the job size so that setup time becomes fairly insignificant compared to the processing time (bearing in mind the above point).
  • If a job doesn't complete in double the amount of time (maybe less) you expect it to complete it assume that its gone AWOL and start processing it with another worker. This means you may have to wait up to three times the normal length of a job for it to complete (possibly longer if the subsequent job fails). You may want to reduce this time, but be careful not to reduce it too much as you may start duplicating processing tasks on a regular basis.
  • Jobs should be independent of outside requirements as much as possible. The job server, for example, should only be contacted at the start and end of every job.
  • Don't saturate your network, this will have two negative effects, your daytime staff will find using the network frustrating and problems may be experienced with connections timing out a problem that will only get worse as you scale your grid.
  • Ensure jobs can run on your workers. If jobs become too memory intensive or disk space intensive jobs will start aborting and the only thing you'll notice is a drop in number of jobs processed with no real reason why.

Submitting Results of a Job

When submitting the results of a job it is important to check that results have not been submitted by another worker, especially if the current worker has been dormant for some time.

When results are submitted ensure that the number of results matches the number of records within the job.

As stated previously, and can not be over emphasised, build fault tolerance into job retrieval and results submission. The workers can (and most likely will) go into suspend mode at the most inconvenient of times and this needs to be catered for. Also once again abstracting away your results submission will help cater for future changes to your job control system much easier to deal with.

Shrnutí

In this section we have looked at what a job control server needs to do and how to get a very basic system set up. We discussed how to retrieve a job from the control system and how best to configure jobs to get the most our of your office grid system. To finish, a paragraph or two on submitting results back to the job control server was presented.

  • A job control server manages jobs and ensures that all work units are completed
  • By abstracting your job select/results submission we can change the technology of the control server without much problems
  • Configure your jobs to ensure that they are run quickly and efficiently without putting too much pressure on your network infrastructure, and without duplicating processing tasks on a regular basis.
  • Ensure that you build fault tolerance and error checking into your routines, workers can suspend and resume and the most inconvenient of times. Remember to check if results have already been submitted by another worker.

Příště

In part 3 we'll create our virtual processing machine and set up our windows machines to become idle-time workers.

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

Tím, a pátek 4Prosinec 2009 11:03 pm

Úvod

Pracuji ve firmě, kde jsme se spustit mnoho dávkových úloh zpracování miliony záznamů dat každý den a já jsem nedávno přemýšlel o všech těch strojů, které se nacházejí kolem každého a každý den nic nedělat několik hodin. Nebylo by dobré, kdybychom mohli používat tyto stroje k posílení výpočetního výkonu našich systémů? V tomto souboru článků budu se dívat na potenciálních výhodách zaměstnávání kancelářskou síť pomocí virtualizované prostředí.

V části 4 jsme se zaměřili na použití nástroje s cílem zajistit, že používáte nejnovější verzi kódu a datových zdrojů tak, aby získané výsledky jsou vždy aktuální s nejnovějšími obchodních informací a logiky.

Pre-Deployment

Před nasazením své sítě systém, pokud je tu ještě jedna věc, kterou uděláte a jedna věc sám, že je to měřítko aktuální systém! Bez ohledu na to, co řeknete, kolegy o tom, kolik práce navíc systém bude dělat, pokud nemáte čísla couvat s tímto nahoru svých záruk jsou nic. Takže,

  • kolik záznamů můžete zpracovat v současné době? Za den? Za hodinu?
  • Jak dlouho obvykle trvá otočit 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 zpracování servery) jde dolů, jak to ovlivní vaše schopnosti, budete mrzák?
  • Jaké výhody doufáte / očekávat, že si z distribuční soustavy?
  • Jsou vaše kancelářské stroje je možné spustit na zaměstnání?
  • Jsou vaše (nebo můžete pracovních míst přepočtený) k wrok v tomto stylu běhu?

Poslední hlavní je, vzít si čas na žádné velké změny, jako je tato. Aktualizujte svůj operační kód pro práci s použitím nové metodiky, měřítko znovu. Možná nastavit zpracování serveru spustit virtuální stroj, po celou svou zpracování serverem bude jen další pracovník (jen velmi mocný relativně). Povolit nový proces se usadit.

Nasazení

Můj návrh by byl pop do kanceláře jednoho víkendu provádět všechny instalace a nastavení. Udělej to těsně předtím, než čtrnáct dní na dovolenou a nechat tak další chudák se vypořádat s následky ... možná ne ...

Nasazení systému, jako to musí být pomalé. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

What if you want to stop your workers from running at some time? They are all out there running, regenerating, and trying their best to process data like hungry insects. The answer may seem obvious but its worth adding just in case its overlooked. Simply edit your processing script with an exit(0) or die() or some other statement to kill your processing job. An important reason why we always try to update to the latest processing script before any run!

Demonstration System

In order to write this set of short articles I created a very small grid to demonstrate the technologies and methodologies. I read lots of articles, tutorials, and used various tools to setup and monitor what was going on. By no means have I gone out and saturated a whole office with traffic and nor have I had access to a regular staff members PC to see how host performance was affected.

My demonstration system was very humble indeed. I used my regular desktop set up as a job control server. On this I had installed mySQL server installed set up as a master in replication, PHP , and SVN linked through apache (for access via worker VM).

I then created a centOS worker machine on VirtualBox on a 6 year old windows XP laptop. I setup scheduled tasks as specified after copying the VM onto the machine and let it go.

The virtual machine was set up with PHP, subversion, and mySQL. I checked out a branch named 'worker' from my job control servers repository and made sure it could be updated using 'svn update'. Next I setup mySQL as a slave and checked that data was replicating from mySQL on the job control server down to the worker VM. After all this I setup the bash script and the cron job.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Counted the number of similar names in a table from the data source held on the VM
  • Counted the number of names as above but splitting the name by spaces (ie forename, middle, surname)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

The next obvious step would be to actually get a real world example and start to deploy a system such as this within an office environment and see what happens. Asking a business to commit to this without a trail blazing company to prove the technology and effectiveness may be a little difficult. Grid/Distributed computing is very popular is some circles and has some large applications (BIONC, SETI@Home, Folding@Home, etc). I did not, however, find a smaller scale and simple system like this in my searches that could be rolled out within an office environment.

I created a basically free system using mostly open source software and tools available in almost any office. The technologies were basically demonstrated and show to perform and work as expected. Hopefully I have show that with not much work and with a very simple setup you can deploy an office grid computing system that is powerful, cheap, and scalable all at the same time.

Once a system is up and running there is almost no end to the amount of customisation and improvements you can make. For example statistics / benchmarking can easily be added showing the worth of such a system every day. New machines can be added quickly and easily as and when they arrive with upgrades to existing hardware bolstering your processing power.

I hope you've enjoyed reading this series of articles and its given you food for thought on running an office grid system. The solution presented here won't necessarily work in all situations but should be adaptable to allow you to get your data processing done using your own solution.

Please feel free to send me any comments, corrections, or improvements and I'll do my best to keep this article updated to match.













Panorama Téma, které Themocracy

5 čtenářů nyní
3 hosté, 2 botů, 0 členů
Max visitors today: 6 at 01:41 am UTC
Tento měsíc: 18 na 07-05-2012 04:35 UTC
Tento rok: 69 na 27-02-2012 09:56 UTC
Za celé období: 130 28-03-2011 10:40 hod. v UTC