Post tag: database

Office Grid computing gamit Virtual kapaligiran - Part 4

, Biyernes 4th Disyembre 2009 11:59 pm

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Sa bahagi 3 nilikha namin ang aming mga virtual machine sa processing at i-set up window machine na maging idle-time na mga manggagawa.

Pagpapatakbo ng pinakabagong code

Karaniwan na sa pagkatapos ng paglikha ng iyong mga manggagawa sa negosyo lohika ay magbabago, bug ay natagpuan, mas mabilis mas mahusay na code ay ginawa sa gayon Aalis ang iyong mga manggagawa Sab paligid pagproseso ng data gamit ang lumang nangangamoy code . Paano pagkatapos naming masiguro na palagi naming ginagamit ang pinakabagong at pinakadakilang bersyon ng aming mga script sa pagpoproseso?

May mga ilang napakadaling simpleng paraan na maaari naming gawin ito, pagdaya, gayunpaman, ay upang mabawasan ang pagproseso ng kapangyarihan at trapiko sa network sa pagkamit ng ito. Hinahayaan magsimula sa ang pinakasimpleng ng mga solusyon at mapabuti ang mga ito nang dahan-dahan sa loob ng isang ilang ng iterations.

Ang unang paraan ay sa lamang kumonekta sa kontrol ng aming trabaho sa server (sa pamamagitan ng samba, FTP, o katulad) at hilahin pababa ang pinakabagong bersyon ng code. Hindi masyadong mahusay, ngunit ito ay gawin ang trabaho. Hinahayaan mapabuti sa na medyo, kung paano ang tungkol sa paglikha ng isang ng rsync script at gamit na ang bawat oras sa halip? Bilang kahalili, kung ano ang tungkol sa paglagay aming pinakabagong processing script sa pagbabagsak check ang code sa simula at pagkatapos lamang pag-update ng aming code sa bawat run ( svn update )?

Sa dulo namin tapusin sa isang Bash script (na tinatawag sa pamamagitan ng cron bawat 10 minuto) na mukhang bilang simpleng bilang na ito:

  #! / Bin / SH
 kung PS palakol | grep-v grep | grep php > / dev / null
 pagkatapos
     echo "Job ay kasalukuyang pinoproseso, lumabas"
 iba
     umalingawngaw ang "Job ay hindi tumatakbo, simulan ngayon"
     cd / landas / / nagtatrabaho / kopya
     svn update
     php yourJobProcessingScript.php
 Fi 

Ngayon ay maaari naming siguraduhin na sa bawat run sa tiyak na kami ay tumatakbo ang pinakabagong code. Kami ay ang pagtiyak na ito sa pamamagitan ng pag-update ng aming code base sa bawat at bawat oras na magsagawa kami ng isang run at pagbabawas ng trapiko sa network sa pamamagitan ng lamang sa paglilipat ng mga pagkakaiba ng file sa kabuuan ng aming network.

Sa aking pagpapakita setup, ginawa ko nang eksakto tulad ng sa itaas. Pagbabagsak ay naka-install sa aking server sa pagproseso ng trabaho at pulled ko lamang ang pinakabagong code mula sa isang sangay ng 'manggagawa' gamit ang 'svn update'. Din ako nagdagdag ng isang tag ng numero ng bersyon sa aking processing script na ibinalik sa database bilang bahagi ng pagbabalik ng mga resulta. Sa ganitong paraan maaari ko bang makita ang aking code ay ina-update sa bawat oras na kinopya ko ang aking baul sa ang ibig sabihin ng sangay ng manggagawa na tiyak ko ay tumatakbo ang pinakabagong script processing.

Gamit ang pinakabagong data

Kung ang iyong trabaho processing gumagawa ng paggamit ng mga pinagkukunan ng data sa ilang mga punto ang mga ito ay pagpunta sa ma-update masyado. Maliban kung tawagan mo ang iyong mga mapagkukunan ng data sa isang madalang batayan mo ay pagpunta sa baha ang iyong network na may trapiko sa lalong madaling bilang iyong manggagawa magsimulang tumakbo ang nagdadala ng lahat sa isang pagtigil. Para sa aking mga solusyon ko nagpasya na Gusto ko upang ilipat ang aking mga pinagmumulan ng data sa paligid sa aking VMs.

Hold ikaw horse doon! Paano kung ang aking mga pinagkukunan ng data ay malaking? Well ito talaga ay isang kaso ng kung magkano ang data ay namin ang pakikipag-usap? Ito ay maaaring maging mas epektibong gastos upang i-install ng isang karagdagang mas malaking hard drive sa bawat machine kaysa sa bumili ng isang karagdagang pagproseso ng server. Ito ay isang katanungan ng badyet at ay hanggang sa negosyo upang magpasya. Ito siguro na ang iyong mga mapagkukunan ng data ay kaya malaki na ang lamang unfeasible upang panatilihing na halaga ng data sa iyong mga machine ng manggagawa. Sa kasong iyon kung ano ang gusto mong gawin? Rin namin maaaring tumingin sa pagtawag ng isang lokal na server data, ngunit ito ay maaaring maging sanhi ng mga isyu sa network. Sa kasong ito ang isang grid system tulad ng ito ay maaaring maging unrealistic upang isama sa iyong opisina ng kapaligiran. Maaari din ito na maaari mong hanapin sa mga kahaliling tumatakbo diskarte, halimbawa lamang pagtawag sa iyong mga manggagawa 8:00-6:00 bawat gabi at / o throttling data pinagmulan kahilingan.

Paglipat sa hinahayaan ang sinasabi ng aming mga data mga pinagkukunan halaga sa 100Gb ng data. Well yes na ang lubos na isang bit ng data upang ilipat sa paligid ng network sa isang update. Paano namin matiyak na mayroon kaming ang pinakabagong kopya ng data sa kasong ito? Rsync ay isang posibilidad, ngunit personal na tingin ko sa pamamagitan ng pagpapatakbo ng iyong pinakabagong data pinagmulan sa iyong server sa pagproseso ng trabaho at ang setting na ito bilang isang master sa pagtitiklop (na may isang magandang mahaba bin log) ay maaaring ang paraan upang pumunta:

pagtitiklop Sa pamamagitan ng pagtatakda ng bawat ng iyong mga manggagawa bilang isang alipin sa trabaho update sa server ng kontrol sa iyong mga mapagkukunan ng data ay tumagas down na mabuti sa iyong mga manggagawa na walang isang malaking pagtaas sa aktibidad ng network (na maliban kung nagsagawa ka ng isang malaking update data at lahat ng iyong manggagawa sipa sa sabay-sabay). Ito ay may pakinabang sa paglipas ng rsync sa na hindi mo nais makakuha ng isang mahabang pause bago bawat trabaho; bilang ng mga update ng database, ang MySQL demonyo sa iyong manggagawa ay patuloy na i-update ang data habang ang pagpoproseso ng patuloy.

Ito ay kung paano ko ise-set up ng aking pagpapakita server. Upang i-set up ang pagtitiklop ko sinunod ang gabay sa ang MySQL site ( Pagse-set up pagtitiklop ) at sa loob ng 20 minuto ko ay aking inital manggagawa Kinokopya ang trabaho ng control server dataset. Para sa bawat karagdagang manggagawa ang mga setting ng pagtitiklop at proseso ay nagtrabaho sa bawat oras na kapag VM ay kinopya.

Buod

Sa seksyong ito ng mga artikulo na namin tumingin sa kung paano madali at hindi masakit ito ay upang panatilihin ang iyong code sa pagproseso ng hanggang sa petsa ng using rsync o subverion (SVN) upang gawin ang trabaho at mabawasan ang trapiko sa network sa parehong time. tinalakay din namin kung paano upang panatilihin ang iyong data ng impormasyon sa pinagmulan up-to-date sa pamamagitan ng nagpapahintulot sa mga ito sa tulo pababa sa bawat ng iyong mga manggagawa. Kaya namin lugar sa pagtiyak na hindi namin panatilihin up sa mga lohika ng negosyo at impormasyon sa aming system ng grid ng opisina. May malinaw naman ay ang hindi mabilang na mga alternatibo sa pagganap ng mga gawain, ngunit dito ay dalawang simpleng halimbawa upang ipakita kung gaano kadali ang solusyon ay dumating sa pamamagitan ng.

Susunod na

Sa huling bahagi ng serye na ito, aptly pinangalanan Bahagi 5 , kami ay talakayin ang paganahin ng system na ito para. Kukunin ko magbuod kung ano ay natutunan at kung ano ako pinamamahalaang upang lumikha ng.

Office Grid computing gamit Virtual kapaligiran - Part 1

, mga Biyernes 4th Disyembre 2009 11:23

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Bilang isang PHP developer ako pagpunta sa gamitin ang mga tool na ginagamit ko sa bawat araw katulad, Linux, MySQL , PHP, VirtualBox at pagbabagsak (SVN). Gayunpaman Umaasa ako gabay na ito ay iangkop sa iba pang mga wika at teknolohiya lamang pati na rin.

Ang solusyon na magbigay ako ay masyadong maluwag batay sa uri ng pagproseso gusto namin kailangan upang makamit gayunpaman ito ay maaaring hindi tunay na sa pamamagitan ng buong artikulo tulad ng kukunin ko na baguhin ang mga bagay na simple, o upang makabuo ng mas kawili-wiling pangyayari paggamit.

Ang mga virtualised kapaligiran ay tumakbo sa windows machine dahil ito ay kung ano ang karamihan ng mga tanggapan na tumakbo. Ang processing na ang mga opisina machine gawin ay hindi dapat makagambala sa staff gamit ng mga mga machine, dapat na nangangailangan ng walang maintenance sa machine, at madaling deployable sa bagong machine bilang maging sila magagamit. Gayundin, ang mga bagong virtual machine ay hindi dapat nangangailangan ng anumang karagdagang mga configuration na ito lubos na binabawasan ang kakayahang sumukat at kadalian na kung saan ang grid system ay maaaring pinalawak.

Bakit lumawak isang Grid computing Office?

Una maaari kang iniisip, bakit hindi lamang gamitin ang isang ulap computing mapagkukunan tulad ng EC2 Amazon platform ? Na rin ang mga dahilan ay maaaring maraming, halimbawa:

  • Hindi mo pagkatiwalaan ilang mga data sa isang ulap computing kapaligiran
  • Ikaw ay hindi maaring ilagay ang ilang mga data sa isang ulap computing kapaligiran para sa legal na dahilan (eg data na umaalis sa bansa), potensyal na para sa mga legal na dahilan, gaya ng NHS talaan.
  • Gusto mong panatilihin ang iyong mga yunit ng processing isara at magkaroon ng buong kontrol ng hardware masyadong
  • Hindi mo na kailangang ang mga pondo ng proyekto upang patakbuhin ang mga pagkakataon ng ulap
  • Iyong opisina ay hindi magkaroon ng isang koneksyon sa internet at samakatuwid nito hindi posible na gumamit ng isang mapagkukunan ng ulap
  • Hindi mo gusto ng ulan, ang mga ulap iminumungkahi ulan, kaya mo rin panatilihin ang layo

Ako ba ang listahan ay maaaring magpatuloy, ngunit tingin ko na sapat para sa ngayon.

Pakinabang ng isang Grid computing Office

Well, ay nagbibigay-daan sa gawin ang ilang mga matematika (at sa totoo pisika estilo ay nagbibigay-daan sa gumawa ng ilang mga malawak na pagpapalagay). Isipin mo na may malaking malakas processing server na tumatakbo ng 100 mga trabaho bawat araw. Sa iyong opisina mayroon ka ng 50 machine na idle 16 oras sa isang araw, ang bawat isa sa mga machine ay 10% bilang malakas na bilang iyong malakas processing maputol. (Bilugan ang lahat ng mga resulta sa dito sa pangmamata ang pagtaas ng pagganap).

Kaya, ang 1 machine * 10% ng kapangyarihan * 2/3 oras = 0.067 is 1 desktop processing sa idle time maproseso ng 6 buong trabaho bawat araw.

Kung ngayon ka masukat ito hanggang ito ay tumatagal ng 15 idle desktop upang iproseso ng maraming trabaho bawat araw bilang ang iyong pangunahing server ng ​​processing.

Kaya sa aming magpanggap opisina ng 50 machine namin ma-dagdagan ang aming pagproseso ng kapangyarihan mula sa 1 server up sa 4 buong server processing, o namin ang pagproseso ng 400 mga trabaho bawat araw sa halip ng 100.

Paunawa, para sa walang pamumuhunan sa bagong hardware ang iyong kumpanya lamang nadagdagan ang kapasidad ng batch processing 4 na beses! Potensyal na kayo ay pagpunta sa dagdagan ang iyong paggamit ng kapangyarihan ngunit mula sa pinaka-kapaligiran opisina ko na sa machine ay karaniwang naiwan sa magdamag pa rin, kaya maaari mong makita ito bilang isang berdeng hakbangin.

Iba pang mga pakinabang ay ibig sabihin na pamumuhunan sa bagong (o na-update) processing server ay maaaring maantala kung ang iyong mga opisina machine ay sapat at na bilang mo mapagbuti ang kapangyarihan ng iyong mga machine sa opisina ng iyong opisina grid nagiging mas malakas na awtomatikong.

Teknolohiya

Ano ang kailangan mo? (O mas tama kung ano ang ko bang gamitin):

  • Idle opisina machine (sa aking kaso ng isang ekstrang lumang windows XP laptop)
  • VirtualBox (o isa pang client ng software ng virtualisation)
  • Ang isang virtual machine sa PHP, MySQL running pagpapatakbo ng isang cut down na OS, ako pagtawag ito ang aking mga malata server :)
  • Trabaho upang tumakbo
  • Job server (ay maaaring maging isa pang virtual machine sa lugar)

Karaniwang Trabaho

Ang mga uri ng mga trabaho na ang sistema na ito ay dinisenyo upang tumakbo bilang mga sumusunod:

  • Ang sistema na natatanggap ng isang listahan ng mga data na kung saan na kailangan namin upang tumugma sa at ibalik ang mga resulta
  • Pagtutugma nagsasangkot check / naghahanap ilang (medyo static) mapagkukunan ng data
  • Mga resulta mula sa mga pinagkukunan ng data ay maaaring mangailangan ng karagdagang pagpapatunay, pinagsasama, pagsuri ng karagdagang mapagkukunan ng data bilang tugon sa mga resulta
  • Nagbalik ang data ay sa pagtutugma ng mga tala, ganap na napatunayan at maproseso
  • Ang bawat record sa loob ng isang trabaho ay malayang ng ang natitirang

Kaya talaga namin hinahanap sa pagtakbo ng mga trabaho na nangangailangan ng isang timpla ng database lookups at ilang mga numero crunching, isang pantay karaniwang sitwasyon sa isang kapaligiran ng negosyo.

Mga Grid solusyon ay hindi lamang ang kapaki-pakinabang para sa pagproseso ng mga trabaho ng ganitong uri. Talaga, anumang proseso na maaaring nahati sa mga independiyenteng mga yunit ay maaaring magpatakbo ng kahanay. Tingnan ang Wikipedia para sa mga halimbawa at karagdagang impormasyon: Grid computing , ngunit isang pares ng mga tanyag na halimbawa ay Seti @ Home at BIONC . May mga frameworks para sa pagpapatakbo ng mga grids computing, at ito ay mahusay nagkakahalaga naghahanap sa.

Ano ang kami ay makamit?

Sa pamamagitan ng dulo ng mga artikulo na Umaasa ako upang ipakita na ang paganahin ng isang grid ng opisina hindi kailangan maging hugely mahal o oras na gugulin. Ako pagpunta upang talakayin:

  • Pagse-set up ang kontrol ng sistema ng trabaho, trabaho configuration
  • Paglikha ng isang naaangkop na na processing virtual machine
  • Kung paano i-setup ang sistema sa isang makina ng bintana
  • Tinitiyak ikaw ay gumagamit ng mga pinakabagong code at data
  • Deployment at benchmarking
  • Naghahanap ng maaga

Kukunin ko ang gusali (ok na binuo ko, sinulat ito) ang isang halimbawa ng application upang subukan ang mga konsepto sa isang lokal na machine na gamit ang mga bintana XP at aking 'GridMachine na' virtual machine. Ang aking trabaho control server ay aking pangunahing makina na nagpapatakbo ng Fedora 11 .

Ito ay sa walang paraan ay nilayon upang ipakita ang isang ganap na gumagana ng malakas na sistema, ang ibig sabihin higit pa sa pagpapakita at tatalakayin na ipinapakita na ang mga bagay na ito ay maaaring nakakamit sa isang makatwirang maikling puwang ng oras at sa maliit na gastos. Mangyaring huwag mag-atubiling ipadala sa akin ang anumang mga puna, pagwawasto, o mga pagpapabuti at kong gawin ang aking pinakamahusay na upang mapanatili ang artikulong ito na-update upang tumugma sa.

Susunod na

Sa bahagi 2 ay ako magsisimula sa pamamagitan ng pagtingin sa sistema ng kontrol ng trabaho, at tumingin sa kung paano ang mga trabaho ay dapat na-configure upang makamit ang pinakamalaking halaga ng pagproseso habang tinitiyak na ang bawat trabaho ay naproseso walang sablay.

Office Grid computing gamit Virtual kapaligiran - Part 2

, mga Biyernes 4th Disyembre 2009 11:23

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Sa Bahagi 1 ako nagbigay ng isang pangkalahatang-ideya ng system at mga teknolohiya na ako ay gumagamit pati na rin tinalakay ang ilan sa mga potensyal na mga kadahilanan kung bakit gusto mo na lumikha ng isang grid ng opisina.

Job Control

Kung ikaw ay pagpunta upang patakbuhin ang mga trabaho pagkatapos ikaw ay pagpunta sa kailangan ang ilang mga paraan upang pamahalaan ang mga ito. Kailangan ng sistema ng kontrol ng iyong trabaho (sa iyong server sa trabaho) ay talagang naisip bago kahit na sinusubukan mong magpatakbo ng isang grid ng opisina. Kaya una, ano ang mga gawain para sa isang sistema ng kontrol ng trabaho:

  • Ibigay ang mga trabaho sa kahilingan mula sa mga manggagawa
  • Sabihin manggagawa kung ano ang uri ng trabaho upang tumakbo
  • Subaybayan ang mga trabaho
  • Tiyakin na ang mga trabaho ay tatakbo lamang sa sandaling
  • Magbigay ng data trabaho sa mga manggagawa, o hindi bababa sa sabihin sa kanila kung saan upang makakuha ng ito

Din ng sistema ang kailangang extensible, isang solusyon na gumagana para sa ngayon sa isang kaso ay maaaring pinalawak na magpatakbo ng ilang mga uri ng mga trabaho bilang ng negosyo nakikita ang halaga sa isang solusyon ng grid. Halimbawa, ang mga trabaho ay maaaring makakuha ng prayoridad, higit sa isang uri ng trabaho ay maaaring umiiral (ie mga ilang bases ng code), kalaunan maaari kang kahit na magpatakbo ng mga iba't ibang machine ng manggagawa na-optimize para sa bawat uri ng trabaho (bagaman na ilipat ang layo mula sa 'generic manggagawa 'ideya). Laging subukang mag-isip tungkol sa hinaharap kapag pagbuo ng sistema, ang isang maikling kataga ng paningin ay maaaring humantong sa na kataga ng pagkabigo at mas mataas na oras ng pag-unlad.

Job Server

Kami ay pagpunta sa kailangan sa isang lugar upang makontrol ang aming mga trabaho mula sa, ito ay dapat na lamang ang sistema sa iyong grid na may isang nakapirming tagahanap mapagkukunan, na ang isang IP address, pangalan ng host, URL (gamit ang panloob na DNS), atbp Ito ay dahil ang mga manggagawa na kailangan upang malaman kung saan upang tumingin para sa mga trabaho, mga manggagawa na kailangan upang mahanap ang kontrol ng sistema ng trabaho (hindi ang kontrol ng sistema ng trabaho mahanap ang ang mga manggagawa).

Ang server ng trabaho mismo ay hindi talagang magkaroon ng isang komplikadong gawain (sa isang pangunahing sistema sa paano't paano man), na kinakailangan nito upang mai-imbak ang isang listahan ng mga trabaho, kamay out trabaho, makatanggap ng mga resulta, at pagkatapos mag-imbak ang mga ito para sa mamaya pagsasauli. Paano ay tinukoy ang mga bahagi (tulad ng 'kamay ang trabaho) ay maaaring maging napaka-basic. Mamaya sa maaari naming palawakin ang sistema upang isama ang isang pangangasiwa interface upang idagdag, i-edit, tanggalin, isuspinde trabaho ngunit ito ay lampas sa pagsasanay na ito.

May ay walang dahilan sa kahit ano pa man pagkatapos na ang iyong trabaho server ay hindi maaaring maging isang virtual machine na tumatakbo sa loob ng iyong pangunahing processing server ibinigay ito ay hindi maubos ang masyadong maraming mga mapagkukunan mula dito. Gayunpaman ang trabaho server ay kailangan mataas availability, kung ito napupunta sa isang Biyernes gabi na kayo ay pagpunta sa mawalan ng isang buong linggo ng processing, potensyal na costing sa iyo ng isang pares ng mga linggo na halaga ng oras ng pagpoproseso (kapag inihambing sa iyong pangunahing processing server ay nag-iisa) . Baka gusto mong isaalang-alang ang paglalagay ng server ng iyong trabaho sa isang balanseng kapaligiran load para sa mataas na availability.

Basic Setup

Ang pangunahing setup para sa aming mga server ng ​​trabaho ay binubuo ng kung ano ang ako ng pagtawag sa isa sa aking mga malata server (na Li nux, ang m ySql, P HP). Ang code na tumatakbo sa Thea manggagawa ay talagang gumagana out kung ano ang mga trabaho ang maaaring tumakbo sa pamamagitan ng nakikipag-ugnayan sa may trabaho database ng control sistema. Mamaya sa kami ay maaaring lumikha ng isang serbisyo ng web at talagang kamay ang trabaho kaysa sa pagkakaroon ng mga manggagawa na gawin ang mahirap na trabaho na kanilang sarili, ngunit sa ngayon kami ay patuloy na gamit ang Halik prinsipyo (Panatilihing ito Simple, bobo!).

Kaya, ay nagbibigay-daan sa lumikha ng tatlong MySQL talahanayan upang makitungo sa mga trabaho. Ito ay `trabaho`, `jobRecords`, at `jobResults`.

trabaho talahanayan Narito ako gumagamit ng SQL Buddy isang magandang maliit na alternatibo sa phpMyAdmin dahil lang nito mas madaling i-install sa centOS (para sa iba na makita: 10 Mahusay na mga alternatibo sa phpMyAdmin )

Ang table na ito ay binubuo ng 5 simpleng patlang,

  • id: natatanging kilalanin ang trabaho
  • pangalan: Puwede maging isang reference ng client, o anumang bilang ng iba pang mga identifier
  • Katayuan: Kailangan mong malaman kung saan ang trabaho ay sa, hal
    • 0: Hindi makapagsimula
    • 1: Napili up
    • 2: Nakumpleto
  • started_by: Sino ay nagsimula ng paggawa ng trabaho? Ito ay hindi ganap na kinakailangan ngunit ay isang magandang magkaroon. Gusto ko iminumungkahi ang pagsubaybay ng mga manggagawa sa pamamagitan ng kanilang mga IP address sa iyong network
  • started_at: Kapag ang manggagawa simulan ang trabaho? Sa pamamagitan ng pagsubaybay sa mga trabaho na hindi nakumpleto sa loob ng X halaga ng oras na malaman namin na kailangan namin upang kunin ang trabaho sa sandaling muli at simulan ang pagproseso ng isa pang manggagawa. Manggagawa ay maaaring ihinto ang processing / pumunta ng offline para sa anumang bilang ng mga dahilan, kapangyarihan pagkabigo, pag-crash, pagkawala ng network, atbp

Ito ay madali kung paano ang talahanayan na ito ay maaaring pinalawak na may ilang mga karagdagang mga patlang upang pahintulutan para sa mga istatistika ng pagsubaybay, isang haligi ng Tapos na oras upang makita kung gaano katagal ang trabaho kinuha, isang kontra upang makita kung gaano karaming mga manggagawa ang pinili ang trabaho (malinaw naman ang pangangailangan na ito sa posibilidad na 1), priority ng trabaho, ang listahan ay maaaring pumunta sa at sa. Sa mga mas kumplikadong sitwasyon trabaho ay posible upang tukuyin kung gaano karaming memory ang manggagawa ay kailangan ng access sa (at samakatuwid lamang gumamit ng mga angkop na manggagawa), o kahit anong uri ng mga manggagawa ay kinakailangan.

Hinahayaan magdagdag ng ilang mga trabaho sa halimbawa:

Halimbawa trabaho

Muli Ang susunod na talahanayan ay medyo simpleng upang maunawaan, ang mga ito ay ang aming mga talaan sa trabaho. Sila ay naka-link sa pangunahing talahanayan ng trabaho sa pamamagitan ng isang hanay ng `jobs_id`. Ang bumubuo ng talahanayan na ito napaka depende sa mga data na kailangan mo upang magbigay sa iyong mga manggagawa, ay nagbibigay-daan sa isang napaka-simpleng halimbawa na kung saan kami ay may apat na mga haligi:

  • id: ID ng record
  • pangalan: pangalan Tao
  • address: address Tao
  • jobs_id: Ang ID ng trabaho na ang tala na ito ay naka-link sa

Ang ikatlong at huling talahanayan ay binubuo ng isang talahanayan ng mga resulta, ito ay may magkano ang parehong bilang aming mga talaan ng talahanayan, at sa pagdagdag ng ilang mga haligi ay maaaring maging bahagi ng talahanayan ng mga talaang:

  • job_record_id: I-link ang resulta sa trabaho ang talahanayan
  • resulta: Ang mga resulta ng data

... At na ang lahat na kailangan mo para sa trabaho control! (Kahit na sa isang pangunahing antas) Sa aking kaso ako tulis sa ibang mesa na kung saan ang aking data sa proseso ay matatagpuan, ngunit ito ay maaari lamang bilang madaling naging isang file, ang mga parameter upang patakbuhin ang simulation code, mo pangalanan ito.

Pagpili ng isang trabaho

Tulad ng ipinahayag dati, ang manggagawa ay gawin ang aming trabaho sa pamamahala para sa amin para sa ngayon, kaya lahat ng kailangan namin talagang gawin ay mahanap ang isang trabaho na nangangailangan ng processing at makuha ang impormasyon. Paano namin gawin ito? Rin pumili sa aming mga pamantayan sa pagpili ng trabaho at hanapin para sa mga trabaho, sa SQL ko ang mga sumusunod:

  1. Gumawa ng anumang mga trabaho na hindi minarkahan bilang kumpletong ngunit mula sa aming mga manggagawa at i-reset ito (halili ang __ ME__ sa isang identifier, pinakamadaling IP address):
      Update `trabaho` Itakda `status` = 0 SAAN `status` = 1 AT `started_by` = __ ME__; 
  2. Gamit ang aming mga pamantayan sa pagpili ng trabaho, pumili ng isang trabaho at sabihin ang control system na manggagawa na ito ay pagharap dito:
      Update `trabaho` Itakda `status` = 1, `started_by` = __ ME__, `started_at` = NGAYON () SAAN `status` = 0 O
     (`Status` = 1 AT `started_at`> DATE_SUB (NGAYON (), interval X HOUR)) UPANG NG `id` ASC; 

    Sa pamamagitan ng daklot mga trabaho na hindi nagbalik ng mga resulta sa X halaga ng oras namin matiyak na ang lahat ng mga trabaho ay tatakbo sa kaganapan ng isang manggagawa sa pag-crash o pagpunta ng AWOL.

  3. Susunod grab ang mga detalye ng trabaho na sinusundan ng mga ng mga tala kanilang sarili:
      Piliin ang * MULA `trabaho` SAAN `started_by` = __ ME__ LIMIT 1;
     Piliin * mula sa `job_records` SAAN `id` = __ JOBID__; 

Sa pagkumpleto ng trabaho ipasok namin ang aming mga talaan sa resulta at markahan ang mga trabaho ng kumpleto. Tandaan bilang maaaring suspindihin ng mga trabaho / ipagpatuloy sa anumang oras payagan para sa ilang mga katabaan sa iyong script. Maaaring ito ay na ang gawain ng suspends kalahati paraan sa pamamagitan ng pag-update ng kontrol sa sistema ng trabaho, kaya check ang bilang ng mga talaan sa isang trabaho at ang bilang ng mga resulta ng na-save pabalik sa sistema ng kontrol ng trabaho ay maging isang matalino ilipat.

Bilang karagdagan, habang ito ay nagpapakita kung paano trabaho ay maaaring piliin at pinamamahalaan mula sa isang SQL query frame Dapat mo ba talagang sa abstracting ng iyong trabaho control kaya na kung nagpasya kang lumipat sa paggamit ng isang web serbisyo, ng isang file na nakabatay sa sistema, XML , o anumang iba pang Ang bilang ng mga sistema na hindi ito makakaapekto ang code sa itaas nito.

Job Configuration

Ang susunod na aspeto upang isaalang-alang ang sukat at configuration ng trabaho. Sa pamamagitan ng naglalaro sa configuration ng trabaho namin hampasin ng isang mahusay na balanse sa pagitan ng bilis, pagtitiklop ng proseso, at kahusayan. Tumagal ng ilang of mga sitwasyon:

  1. Trabaho tumagal ng 1 araw sa bawat tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa ay kailangan ng 15 araw upang iproseso ang bawat trabaho (tandaan ang 10% ng kapangyarihan para sa mga 2/3rds ng oras). Ito ay malinaw na hindi isang matalino na pagsasaayos, ang sukat ng iyong trabaho ay paraan masyadong malaki! Tumagal ng hindi bababa sa double ang oras upang makakuha ng trabaho sa isang naproseso dapat ang unang manggagawa pumunta AWOL (oras upang pumili up na ito ay hindi nagbalik ng isang resulta plus reprocessing oras). Sa isang ideal na gusto mong magkaroon ng hindi bababa sa isang buong trabaho na madaling clear sa pamamagitan ng dulo ng bawat mahabang panahon na walang ginagawa, na paraan na panatilihin mo ang trabaho gris sa loob at sa pinakamalala kaso ang trabaho ng isang ay tumagal ng dalawang araw sa proseso dapat ang unang pumunta nawawala.
  2. Trabaho tumagal ng 1 minuto upang tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa ay tumagal ng halos 15 minuto upang patakbuhin ang bawat trabaho. Habang ito ay maaaring simula tila mainam, makakuha ng karagdagang pagproseso ng trabaho sa panahon ng tanghalian oras, coffee break, pagpupulong, atbp sitwasyong ito ay naglalagay ng pilay sa iba pang mga lugar ng iyong system at introduces kanyang sariling problema. Halimbawa, una ang iyong setup / oras ng pagpoproseso ratio ay pagpunta sa pumunta karapatan down na, kaya nawawala ang sistema ng kahusayan. Ang iyong network ay pagpunta sa patuloy streaming trabaho impormasyon sa iba't ibang mga manggagawa ng mga kawani ng nakakadismaya na dong ang kanilang araw-araw na gawain. Mo rin ay pagpunta sa ilagay ang higit pa pilay sa iyong server sa pagproseso ng trabaho dahil ito ay upang magbigay ng maraming at maraming ng mga maliliit na piraso ng trabaho sa isang regular na batayan. Panghuli, sa sitwasyong ito kung ang iyong server ng trabaho napupunta down na kayo ay pagpunta sa lumikha ng isang malaking log likod ng uncompleted gawain habang mas malaking trabaho ay maaaring ng patuloy pagproseso blissfully nakalimot na ang mga trabaho ng server ay nakakaranas ng mga paghihirap.

Sa katotohanan ay hindi isang mainam na configuration para sa iyong setup ng grid, magkano ay depende sa mga magagamit na mapagkukunan, mga uri ng trabaho, trabaho kinakailangan sa oras ng turnaround, kakayahan ng network, at iba pa. Subalit ang ilang mga alituntunin ay:

  • Trabaho laki kaya na ang bawat manggagawa ay maaaring makakuha ng sa pamamagitan ng hindi bababa sa 3-4 na trabaho sa isang panahon ng 15 oras (ang pinakamahabang malamang na idle na oras ng panahon)
  • Maglaro sa laki ng trabaho upang setup ng oras nagiging medyo hindi gaanong mahalaga kung ihahambing sa ang oras ng pagpoproseso (nadadala sa isip ang sa itaas point).
  • Kung ang isang trabaho na hindi kumpleto sa double ang dami ng oras (maaaring mas mababa) na inaasahan mong ito upang makumpleto ito ay ipinapalagay na nito nawala na AWOL at magsisimulang iproseso ang mga ito sa ibang manggagawa. Nangangahulugan ito na maaaring mayroon ka upang maghintay ng hanggang sa tatlong beses ng normal na haba ng isang trabaho para sa mga ito upang makumpleto (marahil na kung ang kasunod na trabaho nabigo). Baka gusto mong bawasan ang oras na ito, ngunit maging maingat na hindi upang mabawasan ito masyadong maraming bilang maaari mong simulan duplicating ang mga gawain sa pagproseso sa isang regular na batayan.
  • Trabaho ay dapat na hiwalay labas kinakailangan hangga't maaari. Ang server ng trabaho, halimbawa, ay dapat lamang makipag-ugnayan sa simula at dulo ng bawat trabaho.
  • Huwag mababad ang iyong network, ito ay may dalawang negatibong mga epekto, ang iyong araw kawani ay mahanap gamit ang network nakakadismaya at mga problema ay maaaring naranasan sa koneksyon tiyempo ng isang problema na lamang makakuha ng mas masahol bilang mo masukat ang iyong grid.
  • Mga matiyak trabaho ay maaaring tumakbo sa iyong mga manggagawa. Kung ang mga trabaho ay maging masyadong memory intensive o disk space mga intensive trabaho ay magsisimula aborting at ang tanging bagay na mapapansin mo ay isang drop sa bilang ng mga trabaho na-proseso sa hindi tunay na dahilan kung bakit.

Pagsusumite ng mga Resulta ng ng trabaho

Kapag ng pagsusumite ang mga resulta ng isang trabaho ay mahalaga upang suriin na nagreresulta hindi naisumite na ng ibang manggagawa, lalo na kung ang kasalukuyang manggagawa ay natutulog para sa ilang oras.

Kapag ang mga resulta ay isinumite matiyak na ang bilang ng mga resulta tumutugma ang bilang ng mga talaan sa loob ng trabaho.

Tulad ng isinasaad sa dati, at hindi maaaring maging higit sa emphasized, bumuo ng kasalanan pagpapaubaya sa pagkuha ng trabaho at pagsusumite ng mga resulta. Ang manggagawa ay maaaring (at malamang ay) pumunta sa suspindihin mode sa ang pinaka-maginhawa ng beses na at ito ay nangangailangan na catered para sa. Gayundin muli ng abstracting malayo ang iyong mga resulta ng pagsusumite ay makakatulong sa magsilbi sa mga hinaharap na pagbabago sa iyong system trabaho kontrol lubhang mas madaling makitungo sa.

Buod

Sa ito section namin tumingin sa kung ano ang isang server ng kontrol ng trabaho ay kailangang gawin at kung paano upang makakuha ng isang pangunahing sistema-set up. Tinalakay namin kung paano makuha ang isang trabaho mula sa control ng system at kung paano pinakamahusay na upang i-configure ang mga trabaho upang makuha ang karamihan sa aming ng iyong system sa grid ng opisina. Upang tapusin, isang talata o dalawang sa pagsusumite ng mga resulta pabalik sa server ng kontrol ng trabaho ay iniharap.

  • Ang kontrol ng server ng trabaho ay namamahala ng mga trabaho at tinitiyak na ang lahat ng mga yunit ng trabaho ay nakumpleto
  • Sa pamamagitan ng ng abstracting iyong trabaho piliin / resulta ng pagsusumite maaari naming baguhin ang teknolohiya ng control sa server walang magkano ang problema
  • Isaayos ang iyong trabaho upang matiyak na sila ay tumakbo nang mabilis at mahusay na walang paglalagay ng masyadong maraming presyon sa iyong network infrastructure, at walang ng duplicating gawain ng pagproseso sa isang regular na batayan.
  • Tiyakin na ang binuo mo kasalanan tolerance at ang error checking sa iyong mga gawain, ang mga manggagawa ay maaaring suspindihin at ipagpatuloy at ang pinaka-maginhawa ng beses. Tandaan upang suriin kung ang mga resulta na nai-isinumite ng ibang manggagawa.

Susunod na

Sa bahagi 3, kami ay lumikha ng aming mga virtual machine sa pagpoproseso at set up ng aming mga machine bintana upang maging idle-time na mga manggagawa.

Office Grid computing gamit Virtual kapaligiran - Bahagi 5

, mga Biyernes 4th Disyembre 2009 11:03

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Sa Bahagi 4 namin tumingin sa gamit ang mga tool upang masiguro na kami ay tumatakbo sa pinakabagong bersyon ng mga pinagkukunan ng code at data upang makuha resulta ay laging up-to-date sa pinakabagong impormasyon sa negosyo at lohika.

Pre-deployment

Bago paganahin ang iyong mga sistema ng grid kung mayroong isang bagay na gagawin mo at isang bagay lamang ang benchmark iyong kasalukuyang system! Walang bagay na kung ano ang sabihin sa iyo ang mga kasamahan tungkol sa kung magkano ang dagdag na trabaho ang iyong system ay pagpunta sa gawin maliban kung mayroon kang mga numero ito i-back up ang iyong mga garantiya ay walang. Kaya,

  • kung gaano karaming mga tala maaari mong proseso ang kasalukuyang? Bawat Araw? Bawat oras?
  • Gaano katagal ang karaniwang tumagal upang i-sa paligid ng isang trabaho?
  • Magkano higit kapasidad ang mayroon ka?

Mayroon ding mga karagdagang katanungan:

  • Kung ang iyong processing server (o isa ng iyong mga server sa pagproseso) napupunta down kung paano ito makakaapekto sa iyong kakayahan, ikaw ay lumpo?
  • Ano ang pakinabang ang inaasahan mo / asahan upang makakuha ng mula sa isang sistema ng grid?
  • Sigurado sa iyong opisina ng machine kaya ng tumakbo ang mga trabaho?
  • Ay iyong (o maaari mong trabaho iko-convert) sa wrok sa ito estilo ng tumatakbo?

Ang huling mga pangunahing punto ay upang dalhin ang iyong oras sa anumang mga pangunahing pagbabago tulad nito. I-update ang iyong code sa pagpoproseso upang gumana gamit ang bagong pamamaraan, benchmark muli. Posibleng set up ang iyong processing server upang magpatakbo ng isang virtual machine, matapos ang lahat ng pagpoproseso ng iyong server ay lamang ng isa pang manggagawa (isang napaka-makapangyarihang isang relatibong). Payagan ang bagong proseso upang manirahan.

Paglawak

Ang aking mungkahi ay magiging mag-pop sa linggo sa opisina isa isagawa ang lahat ng mga gusali at setup. Gawin ito bago ang holiday ng dalawang linggo at umalis kaya iba pang mahihirap na pagputok-putok sa makitungo sa mga sa mga kahihinatnan ... maaaring hindi ...

Deployment para sa isang sistema tulad nito ay kailangan na maging mabagal. Sa kabila nito relatibong simpleng mag-set up ang system na ito ay makakaapekto sa iyong buong opisina imprastraktura (na rin ang digital). Una, igulong sa isang pares ng mga machine sa isang oras, monitor ng network ng trapiko, kung paano ang mga host manggagawa gumanap sa isang pang-araw-araw na batayan. Maaaring kailanganin mong baguhin ang configuration ng iyong trabaho sa pag-tugon sa iyong mga natuklasan.

Kapag ang sistema ay palagian na may ilang mga machine (nagbibigay-daan sa sabihin 10% ng lahat ng machine office, ie 5) mapanatili ang trapiko sa network ng pagmamanman at host machine performance. Susunod na benchmark muli, dapat mong ngayon ay pinoproseso 33% na higit pang mga trabaho sa iyong unang benchmarks. Suriin na ito ay kaya, o na ikaw ay hindi bababa sa halos katumbas na ito. Kung hindi, siyasatin kung ano ang pagpunta sa bago lumipat sa. Ulitin ang cycle hanggang ka maligaya na ang lahat ng mga opisina ng mga machine na tumatakbo nang walang pagpatay ng performance ng indibidwal na machine o paggiling ng iyong network sa isang pagtigil.

Sa lahat ng oras panatilihin ang benchmarking, kahit na matapos ang lahat ng mga deployments ay ginawa. Suriin kung paano makakaapekto ang mga update ng bagong code sa bilis ng iyong system, suriin ang lahat ng mga manggagawa ay pag-uulat sa at pagproseso ng mga trabaho. Dahan-dahan (masyadong mabagal) pagdagdag sa configuration ng iyong trabaho upang makuha ang pinakamahusay mula sa iyong mga manggagawa at network.

Itigil!

Paano kung gusto mong ihinto ang iyong mga manggagawa mula sa pagtakbo sa ilang oras? Sila ay ang lahat out doon tumatakbo, regenerating, at sinusubukan ang kanilang mga pinakamahusay na-proseso ang data tulad ng gutom na mga insekto. Ang sagot ay maaaring mukhang halata ngunit nito nagkakahalaga ng pagdaragdag lamang sa kaso nito overlooked. I-edit lamang ang iyong mga script sa pagproseso sa isang exit (0) o mamatay () o ilang iba pang mga pahayag sa pumatay ng iyong trabaho sa pagproseso. Isang mahalagang dahilan bakit lagi naming subukang i-update ang pinakabagong script ng processing bago anumang run!

Pagpapakita System

Upang isulat ang hanay na ito ng mga maikling artikulo nilikha ko ang isang maliit na grid upang ipakita ang mga teknolohiya at methodologies. Ako basahin ang maraming ng mga artikulo, mga tutorial, at ginagamit ng iba't-ibang mga kasangkapan sa setup at subaybayan kung ano ang pagpunta sa. Sa pamamagitan ng walang paraan na ako ay nawala at puspos ng isang buong opisina sa trapiko at hindi rin ako ay may access sa isang regular na PC miyembro ng kawani upang makita kung paano ang host pagganap ay apektado.

Aking pagpapakita system ay napaka-abang talaga. Ginamit ko ang aking regular na desktop na-set up bilang isang server ng kontrol ng trabaho. Sa ito ako ay naka-install MySQL server install-set up bilang isang master sa pagtitiklop, PHP , A at ng SVN link sa pamamagitan ng Apache (para sa access sa pamamagitan ng manggagawa VM).

Pagkatapos ko nilikha ang isang centOS manggagawa machine sa VirtualBox sa isang 6 na taong gulang windows XP laptop. Ko-setup ng mga naka-iskedyul na mga gawain tulad ng tinukoy matapos kopyahin ang VM papunta sa machine at ipaalam sa ito pumunta.

Ang virtual machine-set up gamit ang PHP, pagkawasak, at MySQL. Check out ako ng isang sangay na pinangalanang 'manggagawa' mula sa mga server ng aking trabaho repositoryo control at ginawa bang maaari itong ma-update gamit ang 'svn update'. Susunod ako ng setup MySQL bilang isang alipin at check ang data na iyon ay Kinokopya mula sa MySQL sa server ng kontrol ng trabaho pababa sa VM manggagawa. Matapos ang lahat ng ito ko setup ang Bash script at ang cron trabaho.

Aking processing script talaga nagpunta kasama ang mga linya na ito (napaka-simpleng mga bagay-bagay):

  • Basahin ang sa ang pangalan ng patlang
  • Binibilang ang bilang ng mga katulad na pangalan sa isang table mula sa data ng pinagmulan na gaganapin sa ang VM
  • Binibilang ang bilang ng mga pangalan bilang sa itaas ngunit malakas ang pangalan ng mga puwang (ie pinangalanan, gitna, apelyido)
  • Paulit-ulit na ang prosesong ito 1,000 ulit

Trabaho bawat kinuha ng humigit-kumulang 20 minuto upang tumakbo. Sa isang punto ko ay binuksan ng ilang mga kopya ng mga manggagawa ang VM sa laptop bintana at pinapanood ang mga trabaho ay naka-check-off sa pamamagitan ng bawat isa ng ang manggagawa IP address. Sa puntong ito nakumpirma ko rin na awtomatikong-restart ang pagtitiklop.

Aalis ang laptop sa idle nagresulta sa isang manggagawa na nagsisimula upang iproseso ang mga trabaho mula sa server ng kontrol ng trabaho. Kapag ipagpatuloy laptop paggamit nagkaroon ng pagkaantala ng 30-60 segundo, ito ay isang makatarungang halaga ng oras at kawani ay kailangang gawin ng kamalayan na ang kanilang machine ay maaaring i-pause para sa isang maikling habang kapag bumabalik sa ang makina. Mas bagong machine ay hindi maaaring magkaroon ng isang i-pause ng mga ito mahaba. Ang mga benepisyo ng ang halaga ng pagproseso na gumanap ng mga machine habang idle panahon ay higit na malamangan ng mga miyembro ng kawani na kinakailangang maghintay ng isang maikling panahon (sabihin ang 1 minuto) sa pagdating sa kanilang mga machine ng isang umaga (madalas ko maghintay na na ito para sa isang Windows defender i-update upang kumuha ng lugar) na ibinigay sila ay ginawa ng kamalayan na ito (kapaki-pakinabang na oras upang makakuha isang umaga kape!).

Pangkalahatang Pakiramdam ko ay tiwala na ako ay ipinapakita ang mga teknolohiya na maaaring magamit upang lumikha ng tulad ng isang sistema. Ipinakita ko na ang ganitong sistema ay gumagana sa sa isang (masyadong) maliit na sukat at sa ilang mga higit pa eksperimento ma-scale gamitin ang mga mapagkukunan ng mga machine ng isang opisina. Kung hindi ko makuha ang punto ng paggawa nito Gusto ko masyadong interesadong malaman / makita kapag may ibang tao ang.

Konklusyon / Pagsusuri

Ang susunod na halata na hakbang ay upang aktwal na makakuha ng isang tunay na halimbawa ng mundo at simulan upang lumawak ang isang sistema tulad ng mga ito sa loob ng isang opisina ng kapaligiran at tingnan kung ano ang mangyayari. Humihiling ng isang negosyo na gumawa na ito nang walang isang bulaos ng kumpanya na nagliliyab upang patunayan ang teknolohiya at pagiging epektibo ay maaaring maliit na mahirap. Grid / ipinamamahagi computing ay napaka-tanyag ay ang ilang mga bilog at may ilang mga malalaking mga aplikasyon (BIONC, SETI @ Home, ang Folding @ home, atbp). Hindi ko, gayunpaman, makahanap ng isang mas maliit na sukat at simpleng sistema tulad nito sa aking mga paghahanap na maaaring lulon sa loob ng isang opisina ng kapaligiran.

Nilikha ko talaga libreng sistema na gumagamit ng halos open source software at mga kasangkapan na magagamit sa halos anumang opisina. Ang mga teknolohiya ay talaga ipinapakita at ipakita upang gawin at gumagana tulad ng inaasahan. Sana mayroon akong ipakita na may hindi magkano ang trabaho at sa isang napaka-simpleng setup maaari mong lumawak isang opisina grid computing system na malakas, murang, A at nasusukat ang lahat sa parehong oras.

Kapag sistema ay up at tumatakbo doon ay halos walang katapusan sa ang halaga ng pagpapasadya at pagpapabuti maaari mong gawin. Para sa statistics ng halimbawa / benchmarking ay madaling idinagdag na nagpapakita ng halaga ng mga tulad ng isang sistema araw-araw. Bagong machine maaaring idagdag mabilis at madaling bilang at kapag dumating sila sa mga upgrade sa mga umiiral na hardware bolstering iyong processing kapangyarihan.

Umaasa ako Nasiyahan pagbabasa na ito serye ng mga artikulo at ang nagbigay sa iyo ng pagkain para sa pag-iisip sa pagpapatakbo ng isang sistema ng grid ng opisina. Ang solusyon na ipinakita dito ay hindi kinakailangang gumagana sa lahat ng mga sitwasyon ngunit dapat ay madaling ibagay upang payagan ka upang makakuha ng iyong mga data processing tapos gamit ang iyong sariling mga solusyon.

Mangyaring huwag mag-atubiling ipadala sa akin ang anumang mga puna, pagwawasto, o mga pagpapabuti at kong gawin ang aking pinakamahusay na upang mapanatili ang artikulong ito na-update upang tumugma sa.

Zend Framework: Fundamentals - Repasuhin

, Sabado 28th Nobyembre 2009 22:42

Aking tagapag-empleyo ay kamakailan-lamang na binayaran para sa isang grupo ng sa amin sa mga developer upang kumuha ng Zend Framework: Fundamentals kurso, narito Kukunin ko magbuod ang aking mga saloobin at mga opinyon sa mga kurso para sa mga iba. Para sa mga naghahanap upang makatipid ng oras, narito ang aking buod:

Para sa mga developer na hindi nagkaroon ng oras upang tumingin sa ang Zend Framework na ito kurso (Zend Framework: Fundamentals) ay nag-aalok ng isang mahusay na pangkalahatang larawan ng balangkas nagpapakilala sa iyo sa ang susi lugar at nagbibigay ng sapat na impormasyon upang magpatuloy. Para sa mga na ginugol oras na naghahanap sa balangkas at sinundan ng isa o dalawang mga tutorial kurso na ito ay hindi nag-aalok ng magkano lampas.

Likuran

Ako ay isang PHP developer para sa mga paligid ng 5-6 taon, at nagsimula nagtatrabaho sa ang Zend Framework sa isang bahagi ng batayan sa nakaraang 6 na buwan. Ko na binuo at / o isang developer sa isang pares ng mga maliit na Zend Framework MVC sites. kukunin ko na maging matapat, hindi ko ay may isang malaking halaga ng pagkalantad sa iba pang mga frameworks mula sa isang pagkukudigo punto ng view ng ngunit ginugol ng ilang oras ng pananaliksik ang mga website proyekto at evaluate them. Ang framework at ang komunidad na nakapaligid Zend Framework ito ay lubos nakapupukaw at may mukhang malaking posibilidad sa kung saan ang pagpunta.

Tungkol sa Course

Ang mga kurso ay inihatid sa 9 dalawang session ang oras webex (na may isang 10-minuto na break na sa gitna). Ang oras na ginugol ng pagpunta sa pamamagitan ng isang hanay ng mga slide na ibinigay ng Zend sa talakayan sa anumang oras. Maaari mong gamitin ang isang mikropono upang makipag-usap sa magtuturo, ngunit upang maging matapat na hindi ko nakita sinuman gamitin ang anumang bagay na higit pa kaysa sa chat window. Sa karagdagan isang VMWare Ubuntu machine ay ibinigay na may halimbawa ng code at mga proyekto-set up ng isang bersyon pagsubok ng Zend Studio. Ang mga kurso lider talks sa mga dadalo alinman sa isang pinagsamang VoIP solusyon, o mo i-dial sa gamit ang isa sa maraming mga pandaigdigang dial sa mga numero.

Habang ang mga kurso materyal ay binubuo ng isang maikling pangkalahatang-ideya ng Balangkas at ang MVC pattern bago heading sa isang application sample ng guestbook. Talakayan ang ipinapakita bootstrapping, Zend_Application, Table ng DB, Database access, Forms, Filtering, ACL, Pagpapatunay, atbp, atbp. Talaga sumasaklaw sa lahat ng mga paksa na gusto mo ay nangangailangan upang makakuha ng isang pangunahing site up ng isang tumatakbo sa lahat ng oras na nagbibigay sa iyo ng mga kasangkapan upang pumunta at makakuha ng mas advanced sa framework (bagaman ito ay halaga sa 'Tingnan magkano ang website ng oras).

Ang oras ay ibinigay sa code ng ilang mga halimbawa, at upang bumuo ng 'guestbook' at application simpleng 'wiki'. Personal na nadama ko na ang pagbibigay ng code o sa bawat app at pagkatapos ay humihingi sa amin upang bumuo ng kung ano ay mahalagang isang kopya sa tabi ay hindi talagang magbigay ng isang mahusay na karanasan sa pag-aaral. Gusto ko ginustong upang bumuo ng isang application katulad na, ngunit hindi magkapareho. sa halimbawa ng application sa mga benepisyo ng pagkakaroon ng isang gabay upang sumangguni sa. Bilang kahalili pagbuo ng mga application mula sa simula sa demostrador ay ng posibleng humantong sa mas maraming mga katanungan tungkol sa kung bakit at kung paano, kaya nagbibigay ng isang mas mahusay na-unawa ng ang balangkas, matapos ang lahat ng maaari kang tumingin hanggang mga pagtutukoy matapos ang kurso.

Ang huling panayam na binubuo ng nagtatrabaho sa wiki application sa tulong / gabay mula sa magtuturo. Pagkatapos ng kurso ng feedback ay kinuha, ito ay emphasized maraming beses sa pamamagitan ng mga kurso na ang Zend tumatagal puna sineseryoso, sa katunayan tila ang aming bersyon ng kurso ay lubos na bagong. Ang ilan sa iba pang mga developer sa mga kumpanya ay pagkuha ng kurso sa lalong madaling panahon upang ito ay kagiliw-giliw na upang makita kung ito ay nangyari.

Ang estilo ng kurso ay impormal, na pinapayagan para sa puna at pakikipagtulungan sa pagitan ng mga dadalo at ang magtuturo. Ang kurso lider ay palakaibigan, mararating (email address ay ibabahagi para sa mga tanong), at habang ang kanyang pagtatanghal mula sa mga slide ay isang bit nangangalog tila ganap na kakayahan sa framework. Siya ay malinaw na isang tao na ginamit ang balangkas sa isang regular na batayan sa halip na isang tao na itinuro upang magturo sa mga kurso, nagustuhan ko ang karanasan sa 'totoong mundo' sa na paggalang.

Pangkalahatang Sinusuwerte

Sa ilang mga paraan na natagpuan ko ang kurso ng isang basura ng oras, sa iba ito ay lubhang madaling gamitin. Sana makikita ko makukuha ang aking mga dahilan sa buong malinaw, at maaaring magbigay ng ilang mga pagkain para sa pag-iisip o kapaki-pakinabang na feedback (alam sa akin na ito ay malamang na hindi!).

Para sa aking sarili kurso na ito ay naglalayong sa masyadong mababa isang antas. Pag-nawala sa pamamagitan ng quickstart gabay, basahin Rob Allen ng Zend Framework sa Action, at nagtrabaho sa framework ng kaunti hindi ko talagang makakuha ng anumang bagay na masyadong maraming. Gusto ko ng nagustuhan ang kurso upang pumili mula sa dulo ng quickstart at bumuo ng karagdagang mga kasanayan.

Na sinabi, ang pamagat ng kurso ang malinaw na estado "Zend Framework: Fundamentals" at sa na aspeto kurso achieves kung ano ang nagtatakda kung gawin. Iba pang mga miyembro ng pag-unlad ng koponan na hindi ginugol oras ang naghahanap sa ang balangkas tapos bawat session na may sigasig at itanong kung saan ay talagang Nice upang makita.

Lahat ay hindi nawala, ito ay magandang upang patagalin ang nagpapatunay ang mga pangunahing detalye ng balangkas at makakuha ng hilingin sa isang pares ng mga katanungan sa mga lugar kung saan ako ay hindi 100%. Ito ay din ang oras na nakuha ko sa umupo sa bawat araw at sa tingin tungkol sa pagkukudigo gamit ang mga proyekto ng balangkas at sa hinaharap, isang bagay ay hindi ko ng nagawa upang gawin kung hindi man (maaari mong isipin ang iyong kumpanya sumasang-ayon iyon? :)). Huling ngunit hindi bababa sa ka ring makakuha ng isang magandang sertipiko mula ang Zend sa sabihin na pumasok sa kurso (kahit na sa pamamagitan ng email).

Zend Framework Certification

Ito ay isang katanungan na pinananatiling darating sa tututol sa panahon ng kurso, ito ay maghanda ako para sa certification? Ang mabilis, madaling isang resounding Walang. Ang kurso magtuturo ay lubos na malinaw na sa na ang karagdagang payo na para sa sertipikasyon na ang dapat mo ba talagang gumagamit ng balangkas sa isang-araw-araw na batayan at pakiramdam napaka komportable at tiwala sa kanyang paggamit at methodologies.

Buod

Ibinigay ang lahat ko na nakasulat sa itaas, makikita ko magbuod ng lahat sa dalawang madaling mga punto bullet:

  • Bagong sa Zend Framework: kurso na ito ay kung ano mismo ang gusto mong asahan, ito ay nagbibigay sa iyo ng isang magandang panimula sa ang balangkas at isang mabuting saligan sa mga pangunahing kaalaman kung saan maaari kang bumuo. Kurso ang tila upang makabuo ng interes at sigasig para sa framework sa gitna ng mga developer.
  • Ginamit ang Zend Framework: Habang ito ay magandang sa baybayin up ang ilan sa mga napaka pangunahing kaalaman nadama ko ang oras, pagsisikap, at mga pondo upang gawin ang mga kurso ay maaaring ng mas mahusay na ginugol sa ibang dako. Ito ay gandang see Zend lumikha ng isang bagong mas mataas na antas ng kurso upang kumuha ng mga developer sa susunod na antas. Hindi bababa sa pamantayan ng sertipikasyon at lampas Para sa na Gusto kong mag-sign up kaagad.

Mag-log sa DB paggamit ng Zend Framework

, mga Martes ika-14 Abril 2009 21:06

Ko na pinamamahalaang upang makakuha ng isang site up at tumatakbo sa Zend Framework , ang lahat ay pag-log mabuti sa arsonista / FirePHP kaya ang susunod na hakbang ay upang mag-log sa DB. Nais ko ring mag-log ng ilang karagdagang impormasyon gamit ang balangkas na tulad ng user agent, petsa at oras, kumuha at mag-post ng mga variable. Kaya para i-extend ang manual ng kaunti dito ay kung ano ako:

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

$ ColumnMapping = array ('priority' => 'priority',
'Mensahe' => 'mensahe',
'Datetime' => 'timestamp',
Ang 'user_agent' => 'user_agent',
Ang 'get_vars' => sa 'get_vars',
Ang 'post_vars' => sa 'post_vars',
'Site' => 'site'
);

$ WriterDb = bagong Zend_Log_Writer_Db ang ($ db, ng 'error_logging', $ columnMapping);
$ Magtotroso = bagong Zend_Log ang ($ writerDb);

$ Magtotroso-> setEventItem ('Datetime', petsa ('Ymd H: i: s'));
$ Magtotroso-> setEventItem (ang 'user_agent', $ _SERVER [na 'HTTP_USER_AGENT']);
$ Magtotroso-> setEventItem (sa 'get_vars', print_r ($ _GET, totoo));
$ Magtotroso-> setEventItem (sa 'post_vars', print_r ($ _POST, totoo));
$ Magtotroso-> setEventItem ('site', SITE);

$ Magtotroso-> info ('kaalamang mensahe');

Kung saan ang mga key ng array sa $ columnMapping ay aking mga haligi pangalan. 'Priority' at 'mensahe' ay naiintindihan ng mga Zend_Log_Writers ngunit ang mga karagdagang mga patlang ay idinagdag sa bigyan ako ng ilang karagdagang impormasyon.

Malinaw naman ito Ipinagpapalagay na iyong pag-log Paggawa gamit ang isa sa iba pang mga manunulat unang :)













Panorama Tema sa pamamagitan ng Themocracy

8 mga bisita sa online ngayon
5 mga bisita, 3 bot, 0 miyembro
Max mga bisita ngayon: 11 sa 06:30 am UTC
Sa buwang ito: 16 sa 2012/01/05 1:02 pm UTC
Ito taon: 69 sa 27-02-2012 09:56 am UTC
Lahat ng oras: 130 sa 28-03-2011 10:40 pm UTC