Office Grid computing gamit Virtual kapaligiran - Part 4
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:
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.

















































