Kategórie: Články

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

Tým, , piatok 04.12.2009 23:23

Úvod

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

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

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

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

Prečo Nasadenie Office Computing Grid?

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

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

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

Výhody gridové výpočtovej Office

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

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

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

Takže predstierať, že v našej kancelárii na 50 strojov sme mohli zvýšiť naše výpočtový výkon servera od 1 do 4 kompletné spracovanie servery, alebo by sme mohli byť spracovanie 400 pracovných miest za deň namiesto 100.

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

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

Technológia

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

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

Typická práce

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

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

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

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

Čo docielime?

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

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

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

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

Nabudúce

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

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

Tým, , piatok 04.12.2009 23:23

Úvod

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

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

Riadenie práce

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

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

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

Pracovné server

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

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

Neexistuje žiadny dôvod potom, že vaša práca serveru nebolo možné virtuálny stroj, ktorý funguje v rámci svojej hlavnej server, spracovanie, za predpokladu, že nie je kanalizácia príliš veľa prostriedkov z nej. Server práce však potrebuje vysokú dostupnosť, pokiaľ to ide dole v piatok večer budete strácať celý víkend spracovania, prípadne vás to stálo za pár týždňov za spracovanie času (v porovnaní s hlavným serverom pre spracovanie sám) . Možno budete chcieť, aby zvážila svoju prácu na serveri zaťaženie vyvážené prostredie pre vysokú dostupnosť.

Základné nastavenie

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

Takže, umožňuje vytvoriť tri mySQL tabuľky vysporiadať s pracovnými miestami. Tieto práce budú ``, `jobRecords` a `` jobResults.

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

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

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

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

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

Napríklad práce

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

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

Tretí a posledný stôl sa skladá z výsledkov tabuľky, má podobne ako tvorí naše záznamy tabuľky, a pridaním niektorých stĺpcov môže byť súčasťou záznamov tabuľky:

  • job_record_id: Odkaz výsledok do tabuľky zákaziek
  • Výsledok: Výsledok dát

... A to je všetko, čo potrebujete pre prácu kontrolou! (Aj keď na veľmi základnej úrovni) V mojom prípade ma upozornil na iný stôl, kde sa nachádza moje osobné údaje spracovávať, ale to by mohlo rovnako dobre byť súbor parametrov, spustiť simuláciu kód, čo si len spomeniete.

Výber práce

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

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

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

  3. Ďalšie detaily uchopiť práci nasleduje záznamov sami:
      SELECT * FROM `pracovných miest: Kam started_by` `= __ME__ LIMIT 1;
     SELECT * FROM `job_records: Kam` id `= __JOBID__; 

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

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

Pracovné konfigurácie

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

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

V skutočnosti tam bude nikto ideálne nastavenie pre nastavenie siete, veľa závisí na dostupné zdroje, druhy práce, pracovné podmienky dobu návratnosti, sieťové schopnosti, a tak ďalej. Avšak niektoré pokyny by mali mať:

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

Predkladanie výsledkov zamestnania

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

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

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

Prehľad

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

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

Nabudúce

V časti 3 sa budeme vytvárať virtuálne spracovanie a nastavenie našich počítačoch so systémom Windows, aby sa stal Idle-úväzok.

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

Tým, , piatok 04.12.2009 23:03

Úvod

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

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

Pred nasadením

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

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

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

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

Posledným dôležitým bodom je, aby čas na žiadne veľké zmeny, ako je tento. Aktualizujte svoj operačný kód pre prácu s použitím novej metodiky, meradlo znova. Možné nastaviť zpracování serveri spúšťať virtuálny stroj po všetkých spracovania, server bude len ďalší pracovník (len veľmi mocný relatívne). Nechajte nový proces sa usadiť.

Nasadenie

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

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

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

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

Stop!

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

Demonštrácia systému

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

My demonštrácie systém bol naozaj veľmi pokorný. Použil som štandardné desktopovú nastaviť ako server kontroly práce. V tomto som mal nainštalovaný mySQL server nainštalovaný nastaviť ako master replikácie, PHP , A a SVN prepojené cez apache (pre prístup cez zamestnancov VM).

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

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

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

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

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

Odchod z notebooku k nečinnosti viedlo pracovník začatím spracovania úloh zo servera kontroly práce. Pri opätovné použitie notebooku bolo oneskorenie asi 30-60 sekúnd, to je slušné množstvo času a zamestnanci budú musieť byť vedomí, že ich stroj môže pozastaviť na chvíľku pri návrate do stroja. Novšie stroje nemusí mať pauzu tak dlho. Prínosom množstvo spracovanie vykonáva tieto stroje dobe nečinnosti by bolo viac, ktoré prevažujú zamestnanci museli čakať na krátku dobu (povedzme 1 minúta) Po príchode na ich stroje ráno (často som dlhšie čakať, že to pre Windows Defender Aktualizácia prebieha), za predpokladu, že boli vedomé tohto (vhodné čas chytiť rannú kávu!).

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

Závery / hodnotenie

V ďalším krokom by malo byť zrejmé, skutočne sa skutočný svet príkladom a začať implementovať systém, ako je tento, v kancelárskom prostredí, a čo sa stane. Kladenie business zaviazať sa k tejto bez stopy horiace spoločnosť preukázať technológiu a účinnosť môže byť trochu ťažké. Mriežky / Distribuované výpočty sú veľmi populárne, je niekoľko kruhov a má isté veľké aplikácie (BIONC, SETI @ Home, Folding @ home atď). Ja som však nájsť menšieho rozsahu a jednoduchý systém, ako je ten môj vyhľadávanie, ktoré by mohli byť vrátená v rámci kancelárskeho prostredia.

Vytvoril som v podstate slobodný systém sa používajú väčšinou open source softvér a nástrojov k dispozícii takmer v každej kancelárii. Technológie boli v podstate preukázať a ukázať hrať a pracovať podľa očakávaní. Dúfam, že som sa ukázať, že sa nie je moc práce a veľmi jednoduché nastavenie, ktoré je možné nasadiť Office systém grid computingu, ktorý je silný, lacný, A a škálovateľné všetci v rovnakom čase.

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

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

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

Zend Framework: Základy - Recenzia

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

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

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

Pozadie

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

Informácie o kurze

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

Počas kurzu sa skladá z materiálu stručný prehľad rámca a vzor MVC Než sa vydáte na ukážkovej aplikácii guestbook. Diskusia preukázala Bootstrapping, Zend_Application, databázových tabuliek, Prístup k databáze, formuláre, filtrovanie, ACL, overovanie, atď, atď V podstate pokrývajú všetky témy by ste potrebné získať základné stránky do prevádzky po celú dobu dáva vám nástroje na choď a získať pokročilejšie v rámci (aj keď to sa suma "Pozrite sa na stránky" veľa času).

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

Posledná prednáška sa skladala z práce na wiki aplikácie s pomocou / pokyny inštruktora. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. The course leader was friendly, approachable (email addresses were shared for questions), and whilst his presentation from the slides was a bit shaky seemed fully competent in the framework. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

In some ways I found the course a waste of time, in others it was very handy. Hopefully I'll get my reasons across clearly, and maybe provide some food for thought or useful feedback (knowing me this is unlikely!).

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. Other members of the development team that haven't spent the time looking into the framework finished each session with enthusiasm and asked questions which was really nice to see.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. It was also time that I got to sit down each day and think about coding using the framework and future projects, something I wouldn't of been able to do otherwise (can you imagine your company agreeing to that? :) ). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

Prehľad

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Used the Zend Framework: While it was nice to shore up some of the very basics I felt the time, effort, and funds to take the course could of been better spent elsewhere. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.

Generovanie tabuľky HTML trieda (HtmlTable.php)

Tým, utorok 05.05.2009 21:11

I required to generate a HTML table from PHP data for a project that I was working on. Unfortunately after a bit of Googling I couldn't really find anything that was suitable so I decided to create my own.

I realise that this may not be the best table generating class ever and there's probably a few bugs still in it, but I'd prefer to share and if anyone wants a better version I'll look into it :) I originally wanted to create a table built up of seperate objects eg cell object, row object (built up of cell objects), but I realised the overhead on this would be HUGE! So I've gone back to an array setup.

The class will calculate the maximum number of columns used in the header, footer, or body and write out that number of columns. Headers, Footers, and the Caption are optional. Attributes are made up of an array where the key is the attribute name and the value is the attribute value. Attributes are applied to table tag (on table creation – class initialisation), table rows (array[row][attribute]), and table cells (array[row][column][attribute]) this applies for headers, footers, and the table body.

Príklad

I always find the best way to look at something is to use an example so here we go:

$table = new HtmlTable( array('class' =>'sortable',
                'style' => 'width: 550px;'));
$header[0][0]['content'] = 'ID';
$header[0][1]['content'] = 'Title';
$header[0][2]['content'] = 'Date';
$header[0][3]['content'] = 'Site';

$table->addHeader($header);
$i = 0;
foreach ($newsList AS $newsItem) {
$itemLink = "{$newsItem['title']}";
$tableBody[$i] = array(0 => array('content' => $newsItem['id'],
'attributes' => array('style' => 'font-weight: bold;')),
1 => array('content' => $itemLink),
2 => array('content' => $newsItem['date_posted']),
3 => array('content' => $newsItem['site']) );
$i++;
 }
$table->addBody($tableBody);
echo $table->drawTable();
ID Titul Dátum Miesto
9 News 1 2009-04-04 10:40:00 site name
10 News 2 2009-04-04 12:44:11 site name

And the HTML looks like this:

 < table  class =  "sortable" style =  "width: 550px;" >
< thead >
	< tr    >
		< th   >ID</ th > 
 < th   >Title</ th >
		< th   >Date</ th >
		< th   >Site</ th >
</ tr >
</ thead >
< tbody >
	< tr    >
		< td  style =  "font-weight: bold;" >9</ td > 
 < td   >News 1</ td >
		< td   >2009-04-04 10:40:00</ td >
		< td   >site name</ td >
</ tr >
	< tr    >
		< td  style =  "font-weight: bold;" >10</ td >
		< td   >News 2</ td > 
 < td   >2009-04-04 12:40:00</ td >
		< td   >site name</ td >
</ tr > 
 </ tbody >
</ table > 

Kód

HtmlTable.php
If you have any comments please make them below, it would be great to hear some. If you end up using it also let me know and I'll extend it in the future :)

Log to DB using Zend Framework

By , Tuesday 14th April 2009 9:06 pm

I've managed to get a site up and running with the Zend Framework , everything is logging nicely to FireBug/FirePHP so next step was to log to the DB. I also wanted to log some additional information using the framework such as user agent, date and time, get and post variables. So to extend the manual a little here's what I did:

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

$columnMapping = array( 'priority' => 'priority',
'message' => 'message',
'datetime' => 'timestamp',
'user_agent'=> 'user_agent',
'get_vars' => 'get_vars',
'post_vars' => 'post_vars',
'site' => 'site'
);

$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('site',SITE);

$logger->info('Informational message');

Where the array keys in $columnMapping are my column names. 'Priority' and 'message' are understood by Zend_Log_Writers but the additional fields were added to give me some additional information.

Obviously this assumes that you have logging working using one of the other writers first :)

UK Names Directory and Facebook Application

By , Friday 10th April 2009 9:33 am

One of the fun things I've been involved in whilst working for Tracesmart is the names directory . Basically we took our huge information database and pulled out a big pile of stats about various names.

The process is all one big SEO effort in order to draw more traffic to the site, but it also provides some interesting information and name statistics.

Here's an example for my name Lloyd Watkin , or I suppose more correctly Steven Watkin . Take a minute to look up your name on the Tracesmart site, might be interesting ;)

We've also got names statistics data on the names directory page which tells you what names have been searched and how recently. Its quite interesting to see famous people's names fly up the stats when they appear in the news. A recent example is that of Liam Neeson who's wife died from a skiing accident recently, although obviously people aren't quite right on the spelling (hence the huge numbers of hits on this name) — Liam Nilson .

Facebook aplikácií

Once the names directory was created we set about creating a facebook application which we duely named ' My Name '. The facebook application is an extension of the names directory and provides some additional statistics. In order to add the names directory to your facebook account please visit:

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

Zakázané polia formulára nie sú predložené ...

Tým, , vo štvrtok 04.9.2008 11:01

Ako krátka poznámka, ako súčasť prebiehajúcej software realitnej kancelárie projektu som sa vrátil k editácii dátum vstupu do systému. Teraz namiesto toho, ktorý umožňuje užívateľom zadávať starý kúsok z textu som prešiel na Javascript dátum / čas výber (krátkodobo), ktorá umožňuje užívateľovi "vybrať" a dátum a čas z pop-up okná.

Teraz, na svoje staré Systema výber sa objavujú, keď používateľ klikne na vstupné pole . To by však umožňujú užívateľovi ignorovať textového poľa a ešte ísť a napíšte nejaké staré veci do terénu. To nebolo ideálne. Takže moje riešenie bolo, aby " vypnúť "pole formulára a dať rozpätie vedľa nej s onclick udalosť volanie dátum / čas pre výber. To znamená, že užívateľ bol nútený používať takmer pekné dátum / čas, takže výber dáta by ísť s správnom formáte (aj keď to ešte musí byť potvrdený!).

So I started passing my nicely formatted date-time(s) through the form and picking trying to pick them up with PHP 's $_GET or $_POST variables. Unfortunately'disabled "pole nie prešiel odosielanie formulára To bolo veľmi nepríjemné. The solution was to enable the input element using javascript when the form was submitted using the onsubmit event.

To znamená, že dáta z formulára boli odovzdané ako treba, a bol sformátovaný pripravený pre validáciu ... a

Kľúče Hľadať Array zápasy a návrat

Tým, , streda 13 august 2008 16:26

Mal som potrebu hľadať cez pole a vrátiť prvky, ktoré majú kľúče, ktoré zodpovedajú hľadaného výrazu. Tak som myslel, že podiel.

"W hy by som potrebovať?" By pravdepodobne prvá otázka, ktorú by som sa opýtať, aj keby som chcel hľadať pomocou poľa pre všetky prvky, ktoré súvisia s rozmermi položky potom by som mohol vytiahnuť príslušné kľúče pomocou tejto malej funkcie:

 <? 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 napríklad, ak som chcel hľadať rad položiek dát pre Dimension Data potom som mohol urobiť nasledovné (a vytlačiť na obrazovku pravdepodobne):

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

Which would return something like:

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

Vlastné php.ini s Plesk

Tým, , streda 13 august 2008 15:53

Máme dedikovaný server s ukFast A na ktoré je v prevádzke niekoľko domén , ktoré existujú na virtuálnych serveroch s operačným systémom Plesk . Mimochodom, na väčšine z mojich domén chcem schovať varovania a pre udržanie bezpečnosti chyby log súbory, ale na niektoré z mojich domén (napr. tie, ktoré som si na vývoj) Chcem ukázať, každý malý škaredé varovania a chyby, ktoré sa objaví.

Ak chcete upraviť moje PHP . INI "> php.ini To sa týka každej domény na serveri, nie je dobrý nápad, zvlášť keď niekoľko miest je plne živé verzia O námietkach, aby si okolo tohto musíte dať súbor s názvom vhosts.conf v conf adresári, napríklad /var/www/vhosts/<my_domain>/conf/vhost.conf .

Potom, čo ste pridali ďalší kód, opäť napríklad Aj v cene,

 php_value error_reporting E_ALL php_value display_errors On 

followed by running the following command (this reconfigures all of your domains its just rýchlejší lenivejší, než napísaním názvu domény ,

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

Ak máte pocit, trochu svieži potom môžete vždy typ z plnej verzie, ktorá je

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

Po tomto príkaze, ak sa pozriete na httpd.include súboru, uvidíte, že vaše httpd.include bude zahŕňať riadkové pre vhost.conf, niečo ako toto:

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












Panorama Téma, ktoré Themocracy

7 visitors online now
2 guests, 5 bots, 0 members
Max návštevníkov dnes: 21 v 13:35 UTC
Tento mesiac: 47 na 03.10.2011 14:47 UTC
Tento rok: 130 u 28-03-2011 22:40 GMT
Za celé obdobie: 130 u 28-03-2011 22:40 GMT