Kategorie: Články

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 poskytují bude velmi volně založený na způsobu zpracování bychom třeba dosáhnout To však nemusí být pravda celý článek, jak budu něco změnit na jednoduchost, nebo produkovat další zajímavé scénáře použití.

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 tabulky, a navíc některé sloupce by mohlo 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 si mít alespoň jeden full job snadno vyklizena na konci každého období dlouhé nečinnosti, tak budete mít práci běží znovu a v nejhorším případě, že práci bude trvat dva dny, aby proces by měl jít první chybí.
  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ích míst, aby co nejvíce našich 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ámcovými trochu jsem se opravdu dostat 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.

Generování tabulky HTML třída (HtmlTable.php)

Tím, úterý 5.5.2009 21:11

I potřebné pro generování HTML tabulky z PHP dat pro projekt, který jsem pracoval na. Bohužel po chvilce hledání Google nemohl jsem najít opravdu všechno, co bylo vhodné, takže jsem se rozhodl vytvořit svůj vlastní.

Uvědomuji si, že to nemusí být nejlepší tabulce vytvářet třídy a někdy je to asi ještě několik chyb v něm, ale já bych raději sdílet, a pokud někdo chce lepší verzi Podívám se na to:) Původně jsem chtěl vytvořit Tabulka vybudoval jednotlivých objektů, např. buněk objekt, řada objektů (zastavěná buněk objektů), ale jsem si uvědomil, horní na to by bylo obrovské! Tak jsem se vrátil na pole nastavení.

Třída vypočítá maximální počet sloupců použitých v záhlaví, zápatí nebo tělo a napište na to, že počet sloupců. Záhlaví, zápatí, a titulek jsou volitelné. Atributy jsou složeny z pole, kde klíčem je název atributu a hodnota je hodnota atributu. Atributy jsou aplikovány na stůl tag (na vytváření tabulek - třída inicializace), řádky tabulky (pole [řádek] [attribute]), a buňky tabulky (array [řádek] [sloupec] [attribute]), to platí pro záhlaví, zápatí, a Tělo tabulky.

Příklad

Vždycky jsem si najít nejlepší způsob, jak se dívat na něco, co je použít příklad, takže je to tady:

 $ Tabulka = new HtmlTable (array ('třídy' => 'sortable "
                 'Styl' => 'width: 550px ;'));
 $ Header [0] [0] ['obsah'] = "ID";
 $ Header [0] [1] ['obsah'] = 'Název';
 $ Header [0] [2] ['obsah'] = 'Datum';
 $ Header [0] [3] ['obsah'] = 'webu';

 $ Tabulka-> addHeader ($ header);
 $ I = 0;
 foreach ($ newsList za $ newsItem) {
 $ ItemLink = "{$ newsItem ['title']}";
 TableBody $ [$ i] = array (0 => array ('content' => $ newsItem ['id'],
 'Atributy' => array ('styl' => 'font-weight: tučně ;')),
 1 => array ('content' => $ itemLink),
 2 => array ('content' => $ newsItem ['date_posted']),
 3 => array ('content' => $ newsItem ['webu']));
 $ I + +;
 }
 $ Tabulka-> addBody ($ tableBody);
 echo $ stůl-> drawTable ();
ID Titul Datum Místo
9 Novinky 1 2009-04-04 10:40:00 Název webu
10 News 2 2009-04-04 12:44:11 Název webu

A HTML vypadá takto:

  =  "sortable" style =  "width: 550px;" > <Table class = "sortable" style = "width: 550px;">
 <Thead>
	 <TR    >
		 <Ročníku    > ID </ td> 
  <Ročníku    > Název </ th>
		 <Ročníku    > Datum </ th>
		 <Ročníku    > Místo </ th>
 </ Tr>
 </ Thead>
 <Tbody>
	 <TR    >
		 =  "font-weight: bold;" >9</ td > <Td style = "font-váha: tučný;"> 9 </ td> 
		 <TD    > Aktuality 1 </ td> <td    > 2009-04-04 10:40:00 </ td> <td    > < tr > Název webu </ td> </ tr> <tr    = "font-weight: bold;" >10</ td > < td > <Td style = "font-váha: tučný,"> 10 </ td> <td    > News 2 </ td> 
  <TD    > 2009-04-04 12:40:00 </ td>
		 <TD    > Název webu </ td>
 </ Tr> 
  </ Tbody>
 </ Table> 

Kód

HtmlTable.php
Pokud máte jakékoli připomínky, prosím, aby byly dále, že by bylo skvělé slyšet. Máte-li skončit používat také dejte mi vědět a já to prodloužení v budoucnu:)

Přihlaste se do DB s použitím Zend Framework

Tím, , v úterý 14.dubna 2009 21:06

Podařilo se mi dostat stránky a provoz na Zend Framework , vše je pěkně přihlášení do Firebug / FirePHP, takže další krok byl pro přihlášení do databáze. Také jsem chtěl nahrát nějaký další informace pomocí rámce, jako uživatelského agenta, datum a čas, GET a POST proměnných. Takže rozšířit manuálu trochu tady je to, co jsem udělal:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$ ColumnMapping = array ('priority' => 'priorita',
"Poselství '=>' Zpráva ',
'Datetime' => 'časové razítko,
"User_agent '=>' user_agent"
"Get_vars '=>' get_vars"
"Post_vars '=>' post_vars"
'Webu' => 'webu'
);

$ WriterDb = new Zend_Log_Writer_Db ($ db, "error_logging ', $ columnMapping);
$ Logger = new Zend_Log ($ writerDb);

$ Logger-> setEventItem ('datetime', date ("Ymd H: i: s '));
$ Logger-> setEventItem ("user_agent ', $ _SERVER [' HTTP_USER_AGENT ']);
$ Logger-> setEventItem ("get_vars", print_r ($ _GET, true));
$ Logger-> setEventItem ("post_vars", print_r ($ _POST, true));
$ Logger-> setEventItem ("stránky", web);

$ Logger-> info ("Informační zprávy");

V případě, že pole kláves v $ columnMapping jsou mé názvy sloupců. "Priority" a "poselství" jsou chápány v Zend_Log_Writers , ale další pole byly přidány, aby mi dal nějaké další informace.

Samozřejmě to předpokládá, že jste přihlášení práci v jednom z dalších spisovatelů první:)

Velká Británie Jména Directory a aplikace Facebook

Tím, , v pátek 10.4.2009 09:33

Jedna z věcí, o zábavu jsem byl zapojen do práce, zatímco pro Tracesmart je název adresáře . V podstatě jsme se naší obrovské databázi informací a vytáhl velkou hromadu statistické údaje o různých jménech.

Tento proces je jedna velká SEO úsilí, aby k tomu větší návštěvnost na webových stránkách, ale také poskytuje zajímavé informace a název statistiky.

Zde je příklad pro mé jméno Lloyd Watkin , a myslím, že více správně Steven Watkin . Se chvíli hledat svůj název na místě Tracesmart, by mohlo být zajímavé;)

Také jsme dostali jména statistických údajů na název adresáře stránku, která vám řekne, jaká jména jsou hledal a jak se v poslední době. Jeho poměrně zajímavé vidět jména slavných lidí létat až za hodinu, pokud se objeví v médiích. Nedávným příkladem je to Liam Neeson , kdo je žena zemřela před nehodě na lyžích v poslední době, i když pochopitelně lidé nejsou tak docela pravdu o způsobu psaní (tedy obrovské množství zobrazení tohoto jména) - Liam Nilson .

Facebook aplikací

Jakmile je jméno adresáře byl vytvořen jsme o vytvoření aplikace Facebook kterou jsme duely s názvem " My Name ". Aplikace Facebook je rozšíření jmen adresářů a poskytuje některé další statistické údaje. Pro přidání jména na váš účet na Facebooku najdete na adrese:

http://apps.facebook.com/my-name/

Zakázáno pole formuláře nejsou předloženy ...

Tím, čtvrtek 04.09.2008 11:01

Jako krátká poznámka, jako součást pokračujícího software realitní kanceláře projektu jsem se vrátil k editaci datum vstupu do systému. Nyní místo toho, který umožňuje uživatelům zadávat starý kousek z textu jsem přešel na Javascript data / času výběr (krátkodobě), která umožňuje uživateli "vybrat" a datum a čas z pop-up okna.

Nyní, na své staré Systema výběr by vyskočí, když uživatel klikl na vstupní pole . To by však umožňují uživateli ignorovat textového pole a ještě jít a napište nějaké staré věci do terénu. To nebylo ideální. Takže moje řešení bylo, aby " vypnout "pole formuláře a dát rozpětí vedle ní s onclick událost volání datum / čas pro výběr. To znamená, že uživatel byl téměř nucen používat pěkné datum / čas, takže výběr data by jít na správném formátu (i když to ještě musí být ověřena!).

Tak jsem začal kolem mé zformátovaný data a času (s) prostřednictvím formuláře a sběr se snaží, aby je vyzvedla pomocí PHP 's $ _GET nebo $ _POST proměnné. Unfortunately'disabled "pole nejsou prošel odesílání formuláře To bylo velmi nepříjemné. Řešením bylo umožnit vstup elementu pomocí javascriptu, kdy byla forma předloženy onSubmit akce.

To znamená, že data z formuláře se prošel podle potřeby a byl zformátovaný připraven pro validaci ... A

Klíče Hledat Array zápasy a návrat

Tím, , středa 13 srpen 2008 16:26

Měl jsem potřebu hledat přes pole a vrátit prvky, které mají klávesy, které odpovídají hledaného výrazu. Tak jsem si myslel bych sdílet.

"W hy bych potřebovat?" By pravděpodobně první otázka, kterou bych se zeptat, i kdybych chtěl hledat pomocí pole pro všechny prvky, které souvisí s rozměry položky pak bych mohl vytáhnout příslušné klíče pomocí této malé funkce:

 <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> 

Tak například když jsem chtěl hledat řadu položky dat pro Dimension Data pak jsem mohl udělat následující (a vytisknout na obrazovku pravděpodobně):

 $dimensions = searchArrayKeys($itemArray,'dimension'); 

Který by se vrátil něco jako:

 print_r($dimensions); Array ( [dimension_height] => 20 [dimension_width] => 30 [dimension_depth] => 40 ) 

Vlastní php.ini s Plesk

Tím, , středa 13 srpen 2008 15:53

Máme dedikovaný server s ukFast A na které je v provozu několik domén , které existují na virtuálních serverech s operačním systémem Plesk . Mimochodem, na většině mých domén chci schovat upozornění a bezpečnostní udržet chyby log soubory, ale na některé z mých domén (například jsem v rozvojových) Chci ukázat, každý malý ošklivé varování a chyby, které se objeví.

Je-li upravit mé PHP . INI "> php.ini To se týká každé domény na serveru, není dobrý nápad, zejména, když několik míst je plně živé verze O námitkách, aby si kolem tohoto musíte dát soubor s názvem vhosts.conf v conf adresáři, například /var/www/vhosts/<my_domain>/conf/vhost.conf .

Poté, co jste přidali další kód, opět například I ceně,

 php_value error_reporting E_ALL php_value display_errors On 

následované spuštěním následujícího příkazu (toto rekonfigurace všech vašich domén, je to jen rychlejší línější, než napsáním názvu domény ,

 # /usr/local/psa/admin/bin/websrvmng -a 

Pokud máte pocit, trochu svěží pak můžete vždy typ z plné verze, která je

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

Po tomto příkazu, pokud se podíváte na httpd.include souboru, uvidíte, že vaše httpd.include bude zahrnovat řádkové pro vhost.conf, něco jako toto:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 












Panorama Téma, které Themocracy

6 návštěvníků online
4 osoby, 2 boty, 0 členů
Max návštěvníků dnes: 16 v 01:33 UTC
Tento měsíc: 17 na 01.09.2011 23:27 UTC
Tento rok: 130 u 28-03-2011 22:40 UTC
Za celé období: 130 u 28-03-2011 22:40 UTC