Posts tagged: Baza e të dhënave

Grid Computing Zyra e ambiente duke përdorur Virtual - Pjesa 4

Nga , e premte 4 Dhjetor 2009 23:59

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë punë grumbull përpunimit miliona e të dhënave e të dhënave çdo ditë dhe unë kam qenë duke menduar kohët e fundit për të gjitha makinat që ulen çdo ditë duke bërë asgjë për disa orë. A nuk do të jetë mirë në qoftë se ne mund të përdorni këto makina për të forcuar pushtetin e përpunimit të sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet potenciale të punësuar një zyrë rrjet duke përdorur mjedise virtualised.

pjesën 3 ne krijuar virtuale makinë tona të përpunimit dhe të ngritur dritaret e makinave të bëhen boshe në kohë punëtorë.

Drejtimin kodin fundit

Në mënyrë të pashmangshme, pas krijimit të punëtorëve logjikën e biznesit tuaj do të ndryshojë, bugs do të gjendet, kodi më të shpejtë më efikase do të prodhohet duke lënë punëtorët tuaj të ulur rreth përpunimit të të dhënave duke përdorur kodin e vjetër erë të keq . Si atëherë nuk kemi të siguruar që ne jemi gjithmonë duke përdorur versionin më të fundit dhe më të mëdha të përpunimit Scripts tona?

Ka disa mënyra shumë e lehtë të thjeshta që ne mund të bëjmë këtë, mashtrim, megjithatë, është për të reduktuar fuqinë përpunuese dhe trafikut të rrjetit në arritjen e kësaj. Lejon të fillojë me e thjeshta e zgjidhjeve dhe për të përmirësuar atë ngadalë gjatë disa iterations.

Metoda e parë do të ishte thjesht lidheni me serverin kontrollit tonë të punës (përmes samba, ftp, ose të ngjashme) dhe tërheq poshtë versionin e fundit të kodit. Jo shumë efikas, por kjo do të bëjë punë. Lejon të përmirësuar disi që, si për krijimin e një script rsync dhe duke përdorur atë kohë për çdo vend? Përndryshe çfarë në lidhje me vënien fundit script tona të përpunimit në përmbysje të kontrolluar nga kodin fillimisht dhe pastaj vetëm përditësimin kodin tonë në çdo të drejtuar ( svn Azhurimi )?

Në fund mund të përfundojë me një script bash (i quajtur nga cron çdo 10 minuta), e cila duket e thjeshtë si kjo:

  #! / Bin / sh
 nëse ps sëpatë | grep grep v-| grep php > / dev / null
 pastaj
     echo "Jobi është aktualisht përpunimi, dalje"
 tjetër
     echo "Jobi nuk është në ekzekutim, fillojnë tani"
     cd / path / to / pune / kopje
     svn Azhurimi
     php yourJobProcessingScript.php
 fi 

Tani ne mund të jetë i sigurt që me çdo afat ne jemi patjetër drejtimin kodin fundit. Ne jemi të siguruar këtë me azhurnimin e bazës tonë kodit kohë çdo Ne kryerjen e një të kandidojë dhe reduktimin e trafikut të rrjetit nga vetëm transferimin e dallimeve skedar nëpër rrjetin tonë.

Në setup tim demonstrim, kam bërë pikërisht si më sipër. Përmbysje ishte instaluar në serverin e përpunimit të punës time dhe unë thjesht tërhoqi kodin e fundit nga një degë s Gallery punetorit duke përdorur 'svn freskimi'. Kam gjithashtu shtoi një tag numër versioni të shkrimit tim të përpunimit i cili u kthye në bazën e të dhënave si pjesë e kthimit të rezultateve. Në këtë mënyrë unë mund të shoh se kodi im ishte duke u përditësuar çdo herë që unë kopjuar trungun tim në dmth degës punëtor që unë isha patjetër drejtimin e shkrimit të fundit të përpunimit.

Duke përdorur të dhënat më të fundit

Nëse përpunimi tuaj të punës e bën përdorimin e burimeve të të dhënave, atëherë në disa pika këto do të jenë të përditësuar shumë. Nëse ju telefononi burimeve të të dhënave tuaja në një bazë shumë të rrallë do të jeni të përmbytjeve rrjetin tuaj me trafik sa më shpejt që punëtorët tuaj të filloni duke e çuar çdo gjë në vend numëro. Për zgjidhjen e mia unë kam vendosur që do të doja të lëvizur burimet e mia të dhënave rreth me VMs mia.

Mbajeni ju jeni kuaj atje! Çfarë ndodh nëse burimet e mia të dhënat janë të mëdha? E pra kjo është me të vërtetë një rast se sa të dhëna jemi duke folur? Kjo mund të jetë me kosto më efektive për të instaluar një disk shtesë të madhe të vështirë në çdo makinë se për të blerë një server shtesë të përpunimit. Kjo është një pyetje e buxhetit dhe deri në të biznesit për të vendosur. Kjo ndoshta që burimet tuaja të dhënat janë kaq të mëdha që e saj vetëm pamundur për të mbajtur atë sasinë e të dhënave në makinat tuaja punëtore. Në këtë rast çfarë do të bëni? E pra ne mund të shikojmë në duke e quajtur një server lokal të dhënave, por kjo mund të shkaktojë probleme me rrjetin. Në këtë rast një sistem të rrjetit të tilla si kjo mund të bëhet realiste për të përfshirë në mjedisin tuaj zyre. Ajo mund gjithashtu të jetë që ju mund të shikoni në strategjitë alternative running, për shembull, vetëm duke e quajtur punëtorët tuaj midis ores 8 të mbrëmjes dhe 6 çdo natë dhe / ose të dhënat throttling kërkesa burim.

Lëvizja më lejon të thonë se shuma e të dhënave tona burimet në 100GB e të dhënave. E pra po kjo është mjaft pak e të dhënave për të lëvizur rreth rrjetit në një update. Si do të kemi siguruar që ne kemi kopje të fundit të të dhënave në këtë rast? Rsync është një mundësi, por personalisht mendoj se me drejtimin e burimit të fundit tuaj e të dhënave në server të përpunimit tuaj të punës dhe ngritjen kjo lart si një mjeshtër në replikimin (me një regjistër të bukur të gjatë bin) mund të jetë rruga për të shkuar:

përsëritje Me vendosjen e secilit prej punëtorëve tuaj si një skllav të rejat e kontrollit të punës server burimeve të të dhënave tuaja do të rrjedh poshtë nicely për punëtorët tuaj pa një rritje të madhe në veprimtarinë e rrjetit (që është nëse nuk keni kryer një përditësim të madh e të dhënave dhe të gjithë punëtorët tuaj shkelm në në të njëjtën kohë). Kjo ka përparësi mbi rsync në se ju nuk do të merrni një pauzë të gjatë para çdo punë, si përditësime dhënave, mysql daemon për punonjësit tuaj do të vazhdimisht update të dhënat e saj, ndërsa përpunimi vazhdon.

Kjo është se si unë të ngritur serverin tim demonstrim. Për të ngritur replikimin kam ndjekur udhëzues në faqen e MySQL simbolit Ngritja replikimin ) dhe brenda 20 minutash kam pasur punonjës time inital përsëritjes së kontrollit të punës dataset servers. Për çdo punonjës shtesë parametrat e replikimit dhe procesi ka punuar çdo herë kur VM është kopjuar.

Përmbledhje

Në këtë seksion të nenit kemi shikuar se sa e lehtë dhe pa dhimbje ajo është që të mbajë kodin tuaj të përpunimit deri në datën nga using rsync ose subverion simbolit SVN) për të bërë punën dhe për të zvogëluar trafikun e rrjetit në të njëjtën time. Ne gjithashtu diskutuam se si për të mbajtur informacionin tuaj të dhënave burim up-to-date me e lejuar atë të rrjedh poshtë për secilin prej punëtorëve tuaj. Kështu ne zona siguruar se do të vazhdojmë deri me logjikën e biznesit dhe informacionin në sistemin e rrjetit të zyrës sonë. Ka padyshim do të jetë alternativa të panumërta për kryerjen e këtyre detyrave, por këtu janë dy shembuj të thjeshtë për të treguar se sa e lehtë është një zgjidhje që do të vijnë nga.

Herën tjetër

Në pjesën e fundit të kësaj serie, të quajtur me vend Part 5 , ne do të diskutuar vendosjen e këtij sistemi për të. Unë do të përmblidhni atë që është mësuar dhe atë që kam arritur të krijojë.

Grid Computing Zyra e ambiente duke përdorur Virtual - Pjesa 1

Nga , e premte 4 dhjetor 2009 11:23 pm

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë punë grumbull përpunimit miliona e të dhënave e të dhënave çdo ditë dhe unë kam qenë duke menduar kohët e fundit për të gjitha makinat që ulen çdo ditë duke bërë asgjë për disa orë. A nuk do të jetë mirë në qoftë se ne mund të përdorni këto makina për të forcuar pushtetin e përpunimit të sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet potenciale të punësuar një zyrë rrjet duke përdorur mjedise virtualised.

Si PHP zhvilluesi unë jam duke shkuar për të përdorur mjetet që përdorin çdo ditë domethënë, Linux, MySQL , PHP, VirtualBox dhe përmbysje pushteti simbolit SVN). Megjithatë, unë shpresoj se ky udhëzues do të përshtaten me gjuhët e tjera dhe teknologjive ashtu si edhe.

Zgjidhja e kam siguruar do të jetë shumë lirshëm në bazë të llojit të përpunimit të ne do të duhet për të arritur megjithatë kjo nuk mund të jetë e vërtetë përmes artikull gjithë si unë do të ndryshojnë gjërat për thjeshtësi, ose për të prodhuar skenarët më interesante e përdorimit.

Këto mjedise virtualised do të kandidojë në makinat e dritareve pasi kjo është ajo që shumica e zyrave të kandidojë. Përpunimi se makina zyra nuk duhet të ndërhyjë me stafin duke përdorur ato makina, duhet të kërkojnë asnjë mirëmbajtje në makinë, dhe të jenë lehtësisht të dislokueshme në makina të reja si ato të bëhen të disponueshme. Gjithashtu, makinat e reja virtuale nuk duhet të kërkojnë ndonjë konfigurim shtesë që kjo në masë të madhe ul scalability dhe lehtësinë me të cilën sistemi i rrjetit mund të zgjatet.

Pse vendosë një Computing Grid Office?

Së pari ju mund të menduarit, jo pse vetëm përdorni një burim cloud tilla si platformë EC2 Amazon ? Well arsyet mund të jenë disa, për shembull:

  • Ju nuk do të besojë të dhëna të caktuara për një mjedis cloud
  • Ju nuk mund të vënë të dhëna të caktuara në një mjedis cloud për arsye ligjore (të dhëna p.sh. duke e lënë vendin), potencialisht për arsye ligjore, p.sh. të dhënat NHS.
  • Ju dëshironi të mbani njësitë tuaja përpunimit të mbyllur dhe të ketë kontroll të plotë mbi hardware shumë
  • Ju nuk keni fondet e projektit për të kandiduar raste reve
  • Zyra juaj nuk ka një lidhje në internet dhe për këtë arsye është e mundur të mos e saj për të përdorur një burim të re
  • Ju nuk më pëlqen shiu, retë sugjerojnë shi, prandaj ju mbani edhe larg

Unë jam i sigurt lista mund të vazhdojë, por unë mendoj se është mjaft tani për tani.

Avantazhet e një Grid Computing Office

E pra, lejon të bëni disa matematika (dhe në stilin e vërtetë fizikë lejon të bëjmë disa supozime thella). Paramendoni ju keni madhe server beefy përpunimit running 100 punë në ditë. Në zyrën tuaj ju kemi 50 makina të cilat janë të papunë 16 orë në ditë, secili prej këtyre makinave është 10% aq i fuqishëm sa pres beefy tuaj të përpunimit. (Të gjitha rezultatet këtu janë rrumbullakuar të nënvlerësojë rritjen e performancës).

Pra, 1 makine * energji 10% * 2/3 Ora = 0,067 dmth 1 përpunimit desktop në kohë boshe mund të procesit 6 punë të plota në ditë.

Nëse ju tani shkallë këtë ide ai merr 15 Desktop boshe për një proces sa më shumë punë në ditë si server kryesor juaj përpunimit bën.

Pra, në zyrën tonë pretendojë prej 50 makinave ne mund të rrisë fuqinë tonë të përpunimit nga 1 server deri në 4 serverat e plotë të përpunimit, ose ne mund të përpunimit 400 punë në ditë në vend të 100.

Njoftim për asnjë investim në harduer të ri Kompania juaj ka rritur vetëm përpunimin e tij grumbull kapacitet 4 herë! Potencialisht ju jeni duke shkuar për të rritur përdorimin tuaj të energjisë, por nga mjediset e zyrës më të unë kam qenë në makina janë lënë në përgjithësi në natës anyway, kështu që ju mund të shihni këtë si një nismë e gjelbër.

Avantazhe të tjera gjithashtu do të thotë se investimi në re (ose përditësuar) Serverat e përpunimit mund të shtyhet nëse makina juaj e zyrës janë të mjaftueshme dhe se si ju të përmirësuar fuqinë e makinave të zyrës tuaj Rrjeti zyra juaj bëhet më e fuqishme automatikisht.

Technologies

Çfarë ju duhet? (Ose më saktë çfarë kam përdorur):

  • Makina kota zyre (ne rastin tim një rezervë e vjetër dritare laptop XP)
  • VirtualBox (ose në një tjetër klient virtualisation software)
  • Një makinë virtuale me PHP, MySQL running drejtimin e një prerje poshtë OS, unë jam duke e quajtur këto servers mi squllur :)
  • Punë për të drejtuar
  • Job server (mund të jetë një tjetër makinë virtuale diku)

Punët tipike

Llojet e punës që ky sistem është projektuar për të kandiduar është si vijon:

  • Sistemi merr një listë të të dhënave mbi të cilat ne kemi nevojë që të shkojë dhe të kthehet rezultatet
  • Përshtatja përfshin kontrolluar / në kërkim disa (mjaft statik) të dhënat e burimeve
  • Rezultatet nga burimet e të dhënave mund të kërkojë validation mëtejshme, bashkimi, kontrollimi i burimeve të të dhënave shtesë në përgjigje të rezultateve të
  • Data është kthyer me të dhënat që përputhen, vërtetuar plotësisht dhe të përpunuara
  • Çdo rekord brenda një punë është e pavarur nga pjesa tjetër

Pra, në thelb ne jemi duke kërkuar në drejtimin e punëve të cilat kërkojnë një përzierje të Lookups bazës së të dhënave dhe disa crunching numër, një skenar mjaft tipike në një mjedis të biznesit.

Zgjidhjet e rrjetit nuk janë vetëm të dobishme për përpunimin e punë të këtij lloji. Në thelb, çdo proces i cili mund të ndahen në njësi të pavarura mund të kandidojë në paralele. Shiko këtë wikipedia shembuj dhe më shumë informacion: Computing Grid , por disa shembuj të famshëm janë të SETI @ home dhe BIONC . Nuk janë korniza për drejtimin rrjetet kompjuterike, dhe këto janë edhe me vlerë në kërkim.

Çfarë do të arrijmë?

Deri në fund të këtyre artikujve Unë shpresoj për të treguar se vendosjen e një rrjet zyre nuk duhet të jetë konsumojnë jashtëzakonisht të shtrenjta apo të kohës. Unë jam duke shkuar për të diskutuar:

  • Vendosja e sistemit të kontrollit të punës, konfigurimi punë
  • Krijimi i një makinë të përshtatshme të përpunimit virtuale
  • Si të setup sistemin në një makinë dritare
  • Siguruar që ju jeni duke përdorur kodin e fundit dhe të dhënat
  • Vendosja e krahasimit
  • Duke parë përpara

Do të jetë ndërtesë (ok kam ndërtuar, atëherë shkroi këtë) një kërkesë për shembull për të testuar konceptet në një makinë lokal duke përdorur Windows XP dhe ime, GridMachine s Gallery makinë virtuale. Kontrolli ime punë server do të jetë makinë im kryesor që shkon Fedora 11 .

Kjo është në asnjë mënyrë nuk ka për qëllim të demonstrojnë një sistem të plotë pune të fuqishme, e saj të thoshte më shumë një demonstrim dhe diskutimin duke treguar se këto gjëra mund të arrihet në një hapësirë ​​të arsyeshme të shkurtër kohe dhe me pak shpenzime. Ju lutem mos ngurroni të më dërgoni ndonjë koment, korrigjimeve, ose përmirësimet dhe unë do të bëj çmos që ta mbajmë këtë artikull përditësuar të ndeshjes.

Herën tjetër

pjesën 2 Unë do të fillojë duke shikuar në sistemin e kontrollit të punës, dhe shikoni se si Punë duhet të konfigurohet në mënyrë që të arrihet shuma më e madhe e përpunimit ndërsa të siguruar që çdo punë është përpunuar pa dyshim.

Grid Computing Zyra e ambiente duke përdorur Virtual - Pjesa 2

Nga , e premte 4 dhjetor 2009 11:23 pm

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë punë grumbull përpunimit miliona e të dhënave e të dhënave çdo ditë dhe unë kam qenë duke menduar kohët e fundit për të gjitha makinat që ulen çdo ditë duke bërë asgjë për disa orë. A nuk do të jetë mirë në qoftë se ne mund të përdorni këto makina për të forcuar pushtetin e përpunimit të sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet potenciale të punësuar një zyrë rrjet duke përdorur mjedise virtualised.

Pjesën 1 I dha një pasqyrë të sistemit dhe teknologjive unë do të përdorni, si dhe u diskutua si disa nga arsyet e mundshme pse ju do të duan të krijojnë një rrjet zyre.

Kontrolli i punës

Nëse ju do të jeni të konkurrojnë punë, atëherë ju do të jeni nevojë për disa rrugë për të menaxhuar ato. Kontrollit tuaj punë të sistemit (në serverin tuaj të punës) duhet të jetë me të vërtetë menduar mirë para se edhe u përpjekur për të drejtuar një rrjet zyre. Pra, së pari, cilat janë detyrat për një sistem të kontrollit të punës:

  • Dorë nga punët me kërkesë të punëtorëve
  • Tregoj punëtorë çfarë lloji i Punë për të drejtuar
  • Punë në Track
  • Sigurohuni që Punë janë drejtuar vetëm një herë
  • Sigurimi i të dhënave të punës për punëtorët, ose të paktën tregoni atyre se ku mund të merrni atë

Sistemi gjithashtu duhet të jetë e zgjeruar, një zgjidhje që punon për tani në një rast të vetëm mund të zgjatet për të kandiduar disa lloje të vendeve të punës si biznesin e sheh me vlerë në një zgjidhje të rrjetit. Për shembull, mund të fitojë Punë në prioritetet, më shumë se një lloj punë mund të ekzistojnë (Bazat dmth. disa code), përfundimisht ju mund të drejtuar edhe disa makina të ndryshme punonjësit që janë optimizuar për secilin lloj të punës (megjithëse kjo do të lëvizin larg nga punonjesi gjenerik 'ide). Gjithmonë të përpiqemi të mendojmë për të ardhmen, kur zhvillimin e sistemeve, një vizion afat shkurtër mund të çojë në frustrimit afat më të gjatë dhe kohë të rritjes e zhvillimit.

Server Job

Ne do të jeni nevojë diku për të kontrolluar punën tonë nga, kjo duhet të jetë sistemi i vetëm në rrjetin tuaj që ka një locator fikse të burimeve, të jetë që një adresë IP, emri i host, URL (duke përdorur të brendshme DNS), etj Kjo është për shkak se punëtorët duhet të dini ku të kërkoni për punë, punëtorët kanë nevojë për të gjetur sistemin e kontrollit të punës (nuk i kontrollit punë të sistemit të gjetur punëtorë).

Serveri punë në vetvete nuk ka të vërtetë kanë një detyrë të komplikuar (në një sistem themelor gjithsesi), ajo ka nevojë për të ruajtur një listë të vendeve të punës, dora nga puna, për të marrë rezultatet, dhe më pas ruajtur ato për rikthim më vonë. Si këto pjesë ('dorë nga punë' të tilla si) janë përcaktuar mund të jetë shumë themelore. Më vonë ne mund të zgjasë sistem të përfshijë një ndërfaqe të administratës për të shtuar, modifikoni, fshini, të pezullojë punët por kjo është përtej këtij ushtrimi.

Nuk ka asnjë arsye whatsoever atëherë që serveri juaj punë nuk mund të jetë një makinë virtuale drejtimin brenda serverit tuaj kryesore të përpunimit me kusht që ajo nuk thahet shumë burime prej saj. Serveri punë megjithatë ka nevojë për disponueshmërinë e lartë, në qoftë se ajo shkon poshtë në një mbrëmje të premten do të jeni të humbur një fundjavë e tërë e përpunimit, potencialisht ju kushton disa javë me vlerë të madhe të kohës të përpunimit (kur krahasohet me kryesore serverin tuaj të përpunimit të vetëm) . Ju mund të dëshirojnë të marrin në konsideratë vendosjen e serverit tuaj të punës në një mjedis të ngarkesës të ekuilibruar për disponueshmërinë e lartë.

Setup bazë

Skema themelore për serverin tonë të punës do të përbëhet nga ajo që unë jam duke e quajtur një nga serverat e mi squllur, që është nux Li, m ySql, P HP). Kodi kandidon për punëtorët Thea vërtetë do të punojnë jashtë çfarë Punë mund të drejtuar nga bashkëveprojmë me me bazat e të dhënave të kontrollit të punës e sistemit. Më vonë ne mund të krijojë një shërbim të internetit dhe në fakt dorën jashtë vendeve të punës në vend se punonjësit bëjnë punën e vështirë vetë, por tani për tani ne do të vazhdojmë duke përdorur parimin KISS (Keep it Simple, Stupid!).

Pra, ju lejon të krijojë tre MySQL tavolina për t'u marrë me punë. Këto do të jenë `Punë`, `jobRecords`, dhe `jobResults`.

Punë në tryezë Ja unë jam duke përdorur SQL Buddy një alternativë e madhe pak për phpMyAdmin vetëm për shkak se më e lehtë të saj për të instaluar në CentOS (për të tjerët e shohin: 10 alternativa të madhe për phpMyAdmin )

Kjo tabelë përbëhet nga 5 fusha të thjeshta,

  • id: Unike të identifikuar punën
  • Emri: Mund të jetë një referencë e klientit, ose ndonjë numër identifikues të tjera
  • Statusi: Ju duhet të dini se ku puna është në, p.sh.
    • 0: Nuk ka filluar
    • 1: kap
    • 2: Kompletuar
  • started_by: Kush filloi bërë këtë punë? Kjo nuk është e nevojshme tërësisht, por është një e mirë që të ketë. Unë do të sugjeroj punëtorë ndjekja me adresën e tyre IP në rrjetin tuaj
  • started_at: Kur punonjësi ka filluar punë? Nga ndjekja e punët që nuk kanë përfunduar brenda shumës X kohe ne e dimë se ne duhet të marr në punë një herë dhe të fillojnë të përpunimit nga një tjetër punëtor. Punëtorët mund të ndalojë përpunimin / shkoni e shkëputur për çdo numër arsyesh, e dështimit të pushtetit, Crash, humbje të rrjetit etj

Është e lehtë se si kjo tabelë mund të zgjatet me një disa fusha të tjera për të lejojnë për ndjekjen e statistikave, një kohë të përfundojë kolonë për të parë se sa kohë puna mori, një kundër për të parë se sa punëtorë të kap punë (natyrisht kjo duhet të kujdesen për 1), prioritet punë, lista mund të vazhdojë dhe më. Në skenarët punë më komplekse do të ishte e mundur që të përcaktojë se sa memorie punëtori do të duhet qasje në (dhe prandaj përdorni vetëm punëtorë të përshtatshme), apo edhe se çfarë lloji i punëtorit do të jetë e nevojshme.

Lejon të shtoni një punë disa shembuj:

Punë shembull

Tabela e ardhshëm përsëri është mjaft e thjeshtë për të kuptuar, këto janë të dhënat tona të punës. Ata janë të lidhur me kryesore tryezë punë nga një kolonë `s jobs_id`. Make up i kësaj tryeze shumë varet nga të dhënat që ju duhet të furnizimit të punëtorëve tuaj, ju lejon të bërë një shembull shumë të thjeshtë ku ne kemi katër kolona:

  • id: ID e procesverbalit
  • Emri: Emri i personit
  • Adresa: Adresa e personit
  • jobs_id: ID punë që ky rekord është i lidhur me

Tabela e tretë dhe i fundit përbëhet nga një tryezë e rezultateve, ajo ka shumë e njëjtë të bërë deri sa të dhënat tryezën tonë, dhe me shtimin e disa shtyllave mund të jetë pjesë e tabelës të dhënat:

  • job_record_id: Link rezultatin në tryezën e punës
  • Rezultati: Të dhënat rezultojnë

... Dhe kjo është e gjitha që ju duhet për kontrollin e punës! (Edhe pse në një nivel shumë bazik) Në rastin tim unë jam i vuri në një tjetër tryezë ku të dhënat e mia proces ishte vendosur, por kjo mund vetëm si lehtësisht qenë një file, parametrat për të drejtuar kodin simulim, ju atë emër.

Zgjedhjen e një punë

Siç u tha më parë, punëtorët do të bëjnë menaxhimin e punës tonë për ne tani për tani, kështu që të gjithë ne kemi nevojë të vërtetë të bëni është të gjeni një punë që ka nevojë për përpunim dhe për të marrë informacion. Si do ta bëjmë këtë? Pra i bie zgjedhjen tonë të punës kriteret dhe të kërkoni për punë, në SQL kam bërë në vijim:

  1. Merrni ndonjë punë që nuk janë shënuar si të plotë, por nga punonjësit tonë dhe ktheni ato (zëvendësim ME__ dokumentin me një identifikues, lehtë do të jetë adresa IP):
      UPDATE s `Punë` SET `status` = 0 KU `status` = 1 DHE `started_by` = __ ME__; 
  2. Duke përdorur zgjedhjen tonë të punës kriteret, zgjidhni një punë dhe tregoni sistemin e kontrollit se ky punëtor ka të bëjë me atë:
      UPDATE s `Punë` SET `status` = 1, `started_by` = __ ME__, `started_at` = NOW () KU `status` = 0 APO
     (`Status` = 1 DHE `started_at`> DATE_SUB (NOW (), Interval X ORE)) ORDER BY `id` s KLV; 

    Nga punët grabbing që nuk janë kthyer rezultatet në sasi X kohe ne kemi siguruar që të gjitha punët janë drejtuar në rast të një punëtori crashing ose duke shkuar AWOL.

  3. Next kap detajet punëve ndjekura nga të dhënat e vetë:
      SELECT * Nga `punë` KU `started_by` = __ ME__ AFATI 1;
     SELECT * Nga job_records `` `id` KU = __ JOBID__; 

Pas përfundimit të punës kemi futur të dhënat tona të rezultojnë dhe të shënojë punë si i plotë. Mos harroni si Punë mund të pezullojë / rinisë në çdo kohë të lejojë për disa Fuqia në shkrimin tuaj. Kjo mund të jetë se detyra pezullon gjysmë rrugë nëpërmjet përditësimit sistemin e kontrollit të punës, në mënyrë të kontrolluar numrin e regjistrimeve në një punë dhe numrin e rezultateve të ruajtur përsëri në sistemin e kontrollit të punës do të jetë një veprim i mençur.

Përveç kësaj, ndërsa kjo demonstron se si Punë mund të përzgjidhen dhe menaxhohen nga një kuadër SQL-query ju duhet të vërtetë të abstraguar kontrollin tuaj të punës në mënyrë që nëse ju vendosni të kaloni për të përdorur një shërbim web, një sistem file bazë, XML , ose ndonjë tjetër numri i sistemeve ajo nuk do të ndikojë në kodin e mësipërm të.

Konfigurimi Job

Aspekti tjetër për t'u marrë parasysh është madhësia punë dhe konfigurimit. Duke luajtur me konfigurimin e punës që ne mund të arrijnë një ekuilibër të shkëlqyer midis shpejtësisë, riperteritja e procesit, dhe besueshmërinë. Merrni një skenarë MKO çift:

  1. Punë të marrë 1 ditë çdo për të drejtuar: Kjo do të thotë se punëtorët tuaj duhet 15 ditë për të proceduar çdo punë (kujtoni 10 për qind të fuqisë për 2/3rds të kohës). Kjo nuk është qartë një konfiguracion i mençur, madhësisë tuaj të punës është mënyrë shumë e madhe! Ajo do të marrë të paktën dy herë kohën për të marrë një punë të përpunuara duhet punëtor fillestar të shkojë AWOL (koha të marr se ajo nuk i ka kthyer një rezultat plus kohë ripërpunimin). Në një ideal që ju do të keni të paktën një punë të plotë pastruar lehtë deri në fund të çdo periudhe të gjatë boshe, në këtë mënyrë ju mbani punët troket mbi dhe në të keqe rastin e një punë do të marrë dy ditë për proces duhet i pari të shkojnë të zhdukur.
  2. Punë marrin 1 minutë për të kandiduar: Kjo do të thotë se punëtorët tuaj të marrë rreth 15 minuta për të drejtuar çdo punë. Përderisa kjo mund të duket fillimisht ideal, keni fituar përpunimin shtesë të punës gjatë kohës së drekës, të prishet kafe, takime, etj, ky skenar vë tendosje në zona të tjera të sistemit tuaj dhe paraqet problemet e veta. Për shembull, së pari raporti Setup / përpunimit kohën tuaj do të shkoni djathtas poshtë, pra humbur efikasitetin e sistemit. Rrjeti juaj do të jetë informacioni vazhdimisht streaming punë të ndryshme stafit punëtorëve frustruese që janë kar ditën e tyre për punën e përditshme. Ju jeni gjithashtu do të vënë më shumë tendosje në serverin e përpunimit tuaj të punës si ajo ka për të shpërndaj shumë dhe shumë e copa të vogla të punës në një bazë të rregullt. Së fundi, në këtë situatë, nëse serveri juaj puna shkon poshtë ju do të jeni për të krijuar një regjistër të madh mbrapa e punës së pambaruar, ndërsa punët e mëdha mund të vazhduar përpunimin blissfully dijeni se serveri punë u përjetuar vështirësi.

Në realitet nuk do të ketë një konfigurim ideal për setup tuaj rrjetit, shumë varet nga burimet në dispozicion, llojet e Jobit, kthesën kërkesat punë me kohë, aftësive të rrjetit, dhe kështu me radhë. Megjithatë, disa udhëzime do të jenë:

  • Punë Madhësia në mënyrë që çdo punëtor mund ta merrni nëpërmjet të paktën punëve 3-4 në një periudhë prej 15 orëve (më i gjati ka gjasa periudha boshe kohë)
  • Luaj me madhësinë e punës në mënyrë që koha organizim bëhet mjaft i parëndësishëm në krahasim me kohën e përpunimit (duke pasur parasysh pika lart).
  • Nëse një punë nuk e bën të plotë në vlerë të dyfishtë të të kohës (ndoshta me pak) ju presin që ai të përfundojë ajo supozohet se AWOL tij shkuar dhe të fillojnë përpunimin atë me një tjetër punëtor. Kjo do të thotë që ju mund të duhet të presin deri në tri herë gjatësinë normale të punës për atë për të përfunduar (ndoshta më shumë në qoftë se puna pasuese dështon). Ju mund të dëshironi të reduktuar këtë kohë, por të jenë të kujdesshëm për të mos zvogëluar atë shumë si ju mund të filloni dublikuar detyra të përpunimit në një bazë të rregullt.
  • Punë në duhet të jetë i pavarur nga kërkesat e jashtme sa më shumë të jetë e mundur. Serveri punë, për shembull, duhet vetëm të kontaktohet në fillim dhe në fund të çdo punë.
  • Mos njom rrjetit tuaj, kjo do të ketë dy efekte negative, personeli juaj gjatë ditës do të gjeni duke përdorur rrjetin e frustruese dhe problemet mund të jetë me përvojë me lidhjet kohen nga një problem që vetëm do të merrni më keq si ju shkallë rrjetit tuaj.
  • Sigurimi Punë mund të kandidojë në punëtorët tuaj. Nëse Punë të bëhet shumë memorie Punë intensive apo disk hapësirë ​​intensive do të fillojë ndërpres dhe e vetmja gjë që ju do të vëreni është një rënie në numrin e vendeve të punës të përpunuara me asnjë arsye reale pse.

Rezultatet dorëzimin e një Jobit

Kur paraqitur rezultatet e një punë është e rëndësishme që të kontrolloni se rezultatet nuk janë dorëzuar nga një tjetër punonjës, veçanërisht në qoftë se punonjësi aktual ka qenë në gjumë për disa kohë.

Kur rezultatet janë paraqitur të sigurojë që numri i rezultateve të përputhet me numrin e shënimeve në punë.

Siç u tha më parë, dhe nuk mund të jetë mbi theksoi, të ndërtuar tolerancë gabimi në rikthim të punës dhe rezultateve nënshtrim. Punëtorët mund (dhe më shumë gjasa do të) shkojnë në mënyrë të pezullojë në më të papërshtatshëm të kohës dhe kjo duhet të catered për të. Gjithashtu edhe një herë abstraguar larg rezultatet paraqitjen tuaj do t'ju ndihmojë të kujdesem për ndryshimet e ardhshme në sistemin e kontrollit tuaj të punës shumë më e lehtë për t'u marrë me të.

Përmbledhje

Në këtë section kemi shikuar në atë që një kontroll punë server duhet të bëjnë dhe si të merrni një sistem shumë bazë ngritur. Ne diskutuam se si për të tërhequr një punë nga sistemi i kontrollit dhe si më e mirë për të konfiguruar punë për të marrë shumicën tonë i sistemit të rrjetit zyrën tuaj. Për të përfunduar, një paragraf ose dy në paraqitjen e rezultateve përsëri në server të kontrollit të punës u paraqit.

  • Një kontroll punë server menaxhon punët dhe siguron që të gjitha njësitë e punës janë përfunduar
  • Duke abstraguar punën tuaj Përzgjidhe / Rezultatet paraqitja ne mund të ndryshojmë teknologjinë e serverit kontrollit pa probleme shumë
  • Konfiguro punën tuaj për të siguruar që ata janë drejtuar shpejt dhe me efikasitet, pa vënë shumë presion në infrastrukturën e rrjetit tuaj, dhe pa dublikuar detyra të përpunimit në një bazë të rregullt.
  • Sigurohuni që ju të ndërtuar tolerancë gabimi dhe checking gabim në rutinat tuaj, punëtorët mund të pezullojë dhe të rinisë dhe më të papërshtatshëm të kohës. Mos harroni të kontrolloni nëse rezultatet tashmë janë dorëzuar nga një tjetër punëtor.

Herën tjetër

pjesën 3 ne do të krijoni virtuale makinë tona të përpunimit dhe të ngritur makina dritaret tona të bëhen boshe në kohë punëtorë.

Grid Computing Zyra e ambiente duke përdorur Virtual - Pjesa 5

Nga , e premte 4 dhjetor 2009 11:03 pm

Hyrje

Unë punoj në një kompani ku kemi drejtuar shumë punë grumbull përpunimit miliona e të dhënave e të dhënave çdo ditë dhe unë kam qenë duke menduar kohët e fundit për të gjitha makinat që ulen çdo ditë duke bërë asgjë për disa orë. A nuk do të jetë mirë në qoftë se ne mund të përdorni këto makina për të forcuar pushtetin e përpunimit të sistemeve tona? Në këtë grup të neneve Unë do të shikojmë në përfitimet potenciale të punësuar një zyrë rrjet duke përdorur mjedise virtualised.

Pjesën 4 ne shikuar në duke përdorur mjete për të siguruar që ne xhironi versionin më të fundit të burimeve të kodit dhe të dhënat në mënyrë që rezultatet e arritura janë gjithmonë up-to-date me informacionin e biznesit të fundit dhe logjikës.

Para-vendosjen

Para vendosjen e sistemit tuaj të rrjetit, nëse ka një gjë që ju bëni dhe një gjë vetëm se është pikë referimi sistemin tuaj aktual! Pa marrë parasysh se çfarë ju tregoni me kolegët rreth asaj se si shumë punë shtesë sistemin tuaj do të bëjë nëse nuk keni numrat për të mbështetur këtë ide garancitë tuaja nuk janë asgjë. Pra,

  • sa të dhënat mund të përpunojë momentalisht? Per Day? Në orë?
  • Sa kohë e bën atë në mënyrë tipike të marrë për ta kthyer rreth një punë?
  • Sa më shumë kapacitet keni?

Ka edhe pyetje shtesë:

  • Nqs serveri juaj e përpunimit (ose një nga serverat tuaj të përpunimit) shkon poshtë si do të ndikojë kjo aftësitë tuaja, do të jeni të gjymtuar?
  • Cilat jane avantazhet e ju shpresoni / presin për të marrë nga një sistem rrjetit?
  • Janë makina zyrën tuaj të aftë për drejtimin e punëve?
  • A juaj (ose mund Punë të konvertohet) që wrok në këtë stil të rrjedhshëm?

Pika e fundit e madhe është që të marrë kohën tuaj për çdo ndryshim të madh si ky. Update kodin tuaj të përpunimit të punojnë duke përdorur metodologjinë e re, reperit përsëri. Ndoshta të ngrejë serverit tuaj të përpunimit të drejtuar një makinë virtuale, pas gjithë serverin tuaj të përpunimit do të jetë vetëm një tjetër punëtor (vetëm një shumë të fuqishme relativisht). Lejo proces i ri për të zgjidhur.

Dislokimi

Sugjerimi im do të jetë për pop në një fundjavë të zyrës të kryejnë të gjitha instalimet dhe setup. Bëni këtë vetëm para dy javë pushime së dhe të lënë kështu të tjera të varfër chap të merren me pasojat ... ndoshta jo ...

Vendosja e një sistemi si ky duhet të jetë i ngadalshëm. Pavarësisht nga kjo janë relativisht të thjeshtë për të ngritur këtë sistem do të ndikojë në tërë infrastrukturën tuaj zyre (edhe një digjital). Së pari, rrokulliset nga një çift të makinave në një kohë, trafiku monitorimin e rrjetit, si pret punonjësi të kryer mbi një bazë të ditë-për-ditë. Ju mund të kenë nevojë për të ndryshuar konfigurimin tuaj të punës në përgjigje të gjetjeve tuaja.

Pasi sistemi ka vendosur me disa makina pak (lejon thonë se 10% e të gjitha makinave të zyrës, dmth 5) të mbajtur rrjet të trafikut të monitorimit dhe makinë host performance. etapë tjetër përsëri, ju duhet tani të përpunimit punë 33% më shumë se standardeve tuaj të parë. Kontrolloni kjo është kështu, ose që ju jeni të paktën në këtë ballpark. Nëse jo, të hetojë atë që po ndodh para se të lëvizin. Përsëriteni këtë cikël deri sa ju për fat të mirë kanë të gjitha makinat e zyrës duke vrarë pa performancën individuale apo makine bluarje rrjetin tuaj në vend numëro.

Në të gjitha kohërat të mbajtur krahasime, edhe pas të gjitha dislokimet janë bërë. Kontrolloni se si përditësime të reja kod të ndikojë në shpejtësinë e sistemit tuaj, kontrolloni të gjithë punëtorët janë raportuar në përpunimin dhe vende pune. Ngadalë (shumë ngadalë) Rritja konfigurimin tuaj të punës për të marrë maksimumin nga punëtorët tuaj dhe rrjetit.

Stop!

Çfarë ndodh nëse ju doni për të ndaluar punëtorët tuaj të kandidonte në një kohë? Ata janë të gjithë atje duke, regjeneruese, dhe duke u përpjekur të mirën e tyre për një proces të dhënave si insekte uritur. Përgjigjja mund të duket e qartë, por me vlerë të tij duke shtuar se vetëm në rast se neglizhohet saj. Thjesht editojnë shkrimit tuaj të përpunimit me një dalje (0) ose vdesin () ose disa deklarata të tjera për të vrarë punën tuaj të përpunimit. Një arsye e rëndësishme pse ne gjithmonë përpiqemi për të rinovuar të shkrimit të fundit të përpunimit para çdo afat!

Sistemi Demonstration

Në mënyrë që të shkruaj këtë sërë artikujsh të shkurtër dhe unë krijuar një rrjet shumë të vogël për të demonstruar e teknologjive dhe metodologji. Kam lexuar shumë artikuj, mësime, dhe të përdoren mjete të ndryshme për të setup dhe vëzhguar se çfarë po ndodhte. Në asnjë mënyrë nuk kam shkuar jashtë dhe i ngopur një zyrë të tërë me trafikun dhe as kam pasur akses në një PC të rregullt anëtarët e stafit për të parë se si performanca host ishte prekur.

Sistemi im demonstratë ishte shumë e përulur të vërtetë. I përdorur desktop tim të rregullt të ngritur si një server të kontrollit të punës. Në këtë kisha instaluar mySQL server instaluara ngritur si një mjeshtër në përsëritje, PHP , Â dhe SVN të lidhura nëpërmjet Apache (për qasje nëpërmjet VM punëtor).

Unë pastaj krijuar një makinë punëtor CentOS në VirtualBox në një 6 vjeçar laptop të vjetër Windows XP. Unë të setup detyrave të planifikuara siç specifikohet pas kopjuar VM mbi makinë dhe le të shkojnë.

Makinë virtuale u ngrit me PHP, përmbysje, dhe mySQL. I kontrolluar nga një degë të quajtur 'punonjës' nga kontrolli depo tim të punës servers dhe e bëri që ajo të mund të përditësuar duke përdorur 'svn freskimi'. Next kam Setup MySQL si një skllav dhe kontrolluar se të dhënat u përsëritur nga MySQL në server të kontrollit të punës deri në VM punëtor. Pas gjithë kësaj unë setup script bash dhe punë cron.

Script ime përpunimit thelb shkoi përgjatë vijave të këtë (gjëra shumë e thjeshtë):

  • Lexoni në fushën e emrit
  • Numëruar numrin e emrave të ngjashme në një tryezë nga burimi i të dhënave të mbajtur në VM
  • Numëruar numrin e emrave, si emrit të mësipërm, por ndarja e nga hapësirat dmth emri, të mesëm, mbiemri)
  • Përsëritet këtë proces 1000 herë

Çdo punë e mori rreth 20 minuta për të kandiduar. Në një moment kam hapur disa kopje të VM punëtor në laptopë dritaret dhe shikonte punët e të kontrolluar nga jashtë, secili prej adresave IP punëtore. Në këtë pikë unë gjithashtu konfirmoi se përsëritje automatikisht rifilluar.

Lënia laptopë për të papunë rezultoi në një punëtor filluar të përpunojë punë nga serveri kontrollit të punës. Kur rifillimin e përdorimit laptop ka pasur një vonesë prej rreth 30-60 sekonda, kjo është një sasi e drejtë të kohës dhe stafi do të duhet të bëhen të vetëdijshëm se makina e tyre mund të bëj një pauzë për një kohë të shkurtër, kur kthehen në makinë. Makina të reja nuk mund të ketë një pauzë për këtë kohë. Përfitimi i shumës së përpunimit të kryera nga këto makina gjatë periudhave të kota do të jenë më të mëdha më shumë se anëtarë të stafit që kanë të prisni një periudhë të shkurtër (të themi 1 minutë) erdhi në makinat e tyre të një mëngjes (unë shpesh presin më gjatë se kjo për një mbrojtës e Windows rinovuar të ndodhë), me kusht që ato janë bërë të vetëdijshëm për këtë (koha e dobishme për të rrëmbyer një kafe në mëngjes!).

Në përgjithësi unë të ndjehen të sigurt që kam treguar e teknologjive që mund të përdoren për të krijuar një sistem të tillë. Unë kam treguar se një sistem i tillë funksionon në një shkallë të (shumë) të vogël dhe me disa më shumë eksperimente mund të shkallëzuar deri të shfrytëzojë burimet e makinave në një zyrë. Nëse unë nuk do të marrë deri në pikën e bërë këtë unë do të jetë shumë i interesuar të di / shohim kur dikush tjetër bën.

Konkluzionet e vlerësimit /

Hapi i ardhshëm do të jetë e qartë që në fakt të marrë një shembull të vërtetë botërore dhe të fillojnë për të vendosur një sistem të tillë si ky brenda një mjedis zyre dhe shikoni se çfarë ndodh. Kërkuar një biznes të angazhohen për këtë pa një kompani gjurmë që flakëron për të provuar të teknologjisë dhe efektiviteti mund të jetë pak e vështirë. Grid / informatikë Shpërndarë është shumë popullor është disa qarqe dhe ka disa aplikacione të madhe të ushqimit (BIONC, SETI @ Home, Folding @ Home, etj). Unë nuk e bëri, megjithatë, të gjejnë një shkallë të vogël dhe të sistemit të thjeshtë si kjo në kërkimet e mia që mund të jetë i mbështjellë brenda një mjedis zyre.

I krijuar një sistem në thelb të lirë duke përdorur software më së shumti me burim të hapur dhe mjetet në dispozicion në pothuajse çdo zyrë. Teknologjitë u demonstruan në thelb dhe të tregojë për të kryer dhe të punojnë ashtu siç pritet. Shpresojmë që unë kam treguar se me punë jo shumë dhe me një organizim shumë të thjeshtë ju mund të vendosë një rrjet zyre sistem informatikë që është i fuqishëm, të lirë, Â shkallëzuar dhe të gjithë në të njëjtën kohë.

Pasi një sistem është dhe drejtimin nuk ka pothuajse asnjë fund në shumën e customization dhe përmirësime ju mund të bëni. Për statistikat shembull / benchmarking lehtë mund të shtohet duke treguar vlerën e një sistemi të tillë çdo ditë. Makina të reja mund të shtohen shpejt dhe me lehtësi si dhe kur ata arrijnë me përmirësimet të hardware ekzistues forcimin e fuqinë tuaj të përpunimit.

Unë shpresoj se ju kam gëzuar lexuar këtë seri artikujsh dhe saj ju dha ushqim për të menduar në drejtimin e një sistemi të rrjetit zyre. Zgjidhja e paraqitur këtu jo domosdoshmërisht do të punojë në të gjitha situatat, por duhet të jetë i adaptueshëm për të lejuar ju që të merrni përpunimi i të dhënave juaj bëhet duke përdorur zgjidhjen tuaj.

Ju lutem mos ngurroni të më dërgoni ndonjë koment, korrigjimeve, ose përmirësimet dhe unë do të bëj çmos që ta mbajmë këtë artikull përditësuar të ndeshjes.

Zend Kornizë: Bazat - Review

Nga , e shtunë 28 Nëntor 2009 10:42

Punëdhënësi im paguar kohët e fundit për një grup prej nesh zhvilluesit për të marrë Kornizën Zend me: Bazat e kursit, këtu unë do të përmbledh mendimet e mia dhe opinionet në kurs për të tjerët. Për ata që duke kërkuar për të kursyer kohë, këtu është përmbledhje e mia:

Për zhvilluesit të cilët nuk kanë pasur kohë për ta parë në Kornizën Zend këtë kurs (Zend Kornizë: Bazat) ofron një pasqyrë të mirë të përgjithshëm të kuadrit të ju futur në fushat kyçe dhe duke i dhënë informacion të mjaftueshëm në mënyrë që të vazhdojë. Për ata të cilët kanë kaluar kohë duke kërkuar në kuadrin e kanë ndjekur një ose dy mësime ky kurs nuk ofron shumë më përtej.

Sfond

Unë kam qenë një PHP zhvilluesi i saj për rreth 5-6 vjet, dhe kanë filluar duke punuar me Zend Kornizë në baza komponent gjatë 6 muajve të fundit. Unë kam zhvilluar dhe / ose qenë një zhvillues në një çift të Zend Kornizë të vogël MVC sites. unë do të jem i sinqertë, unë nuk kanë pasur një sasi të madhe të ekspozimit ndaj strukturave të tjera nga një pikë kodim të parë, por kanë kaluar disa ore studjuar faqet e internetit të projektit dhe vlerësimit them. e kornizës dhe komunitetit përreth Zend Kornizë ai është mjaft emocionuese dhe nuk duket të jenë mundësitë e mëdha në ku e saj do.

Rreth Kursit

Kursi është dorëzuar mbi 9 sesione dy orë WebEx (me një ndërprerje 10-minutëshe në mes). Ora është shpenzuar duke kaluar nëpër një sërë slides ofruara nga Zend me diskutim në çdo kohë. Ju mund të përdorni një mikrofon për të folur për mësuesi, por të jetë i sinqertë unë nuk kam parë askënd të përdorë asgjë më shumë se dritaren e chat. Përveç kësaj një makinë Ubuntu VMWare është kusht që ka kodin shembull dhe projekte të ngritur një version të një gjyqin e Zend Studio. Bisedimet kreu kurs për të pranishmit ose mbi një zgjidhje të VoIP të integruar, ose ju mund të thirrni në përdorimin e njërit prej dial many në mbarë botën në numra.

Gjatë materiale përbëhet nga një pasqyrë të shkurtër të Kornizës dhe model MVC para se të nisej në një aplikim të modelit të ftuarve. Diskutimi tregoi bootstrapping, Zend_Application, Tabelat DB, qasje Baza e të dhënave, forma, filtrim, ACL, të Vleresimin, etj, etj Në thelb që mbulon të gjitha temat që ju do të kërkojnë për të marrë një faqe bazë up një running gjithë kohës duke ju dhënë mjetet për të shkoni dhe të merrni më të avancuar në kuadër (edhe pse kjo e bëri shumë të 'Shikoni faqen e internetit' shumë e kohës).

Koha është dhënë kod deri disa shembuj, dhe për të zhvilluar e 'miq' dhe aplikimin e thjeshtë 'wiki-së. Personalisht ndjeva se siguruar kodin ose çdo app dhe pastaj na pyesnin për të zhvilluar atë që ishte në thelb një kopje së bashku me të vërtetë nuk ofrojnë një përvojë të mirë të mësuarit. Unë do të kishin preferuar të zhvillojë një kërkesë të ngjashme, por jo identike. me zbatimin shembull me të mirën e të paturit e një udhëzues për t'iu referuar. Përndryshe ndërtimin aplikimet nga e para me demonstrues do të çuar ndoshta në pyetje më shumë se pse dhe si, duke i dhënë kështu një kuptim më të mirë të kuadrit, pasi të gjithë ju mund të kërkoni specifikat pas kursit.

Leksioni i fundit përbëhej të punuar në zbatimin wiki me ndihmën / udhëzim nga mësuesi. Pas reagime kurs është marrë, u theksua disa herë nëpërmjet kursit që Zend merr reagime shumë seriozisht, ne fakt me sa duket versioni ynë i kursit ishte mjaft e re. Disa nga zhvilluesit e tjera të kompanisë do të marrë kursin shpejt kështu që do të jetë interesante të shihet nëse kjo ka ndodhur.

Stili kurs ishte informal, lejohet për komentin dhe bashkëpunim mes të pranishmit dhe instruktor. Udhëheqësi kurs ishte miqësor, i arritshëm (email adresat ishin ndarë për pyetje), dhe ndërsa prezantimin e tij nga slides ishte pak i dredhur u duk plotësisht kompetent në kuadër. Ai ishte në mënyrë të qartë një person që ka përdorur kornizën në një bazë të rregullt sesa dikush që është mësuar për të mësuar kursin, unë i pëlqente përvoja e 'botës së vërtetë' në këtë drejtim.

Ndjenja e përgjithshme

Në disa mënyra kam gjetur kursin një humbje kohe, në të tjerat ai ishte shumë i dobishëm. Shpresojmë se unë do të merrni arsyet e mia të gjithë në mënyrë të qartë, dhe ndoshta të japë disa ushqim për të menduar apo të dobishme reagime (duke e ditur mua kjo nuk ka gjasa!).

Për mua ky kurs synonte të nivelit të ulët. Duke kaluar nëpër udhëzues quickstart, lexoni Kornizë Zend Rob Allen në Veprim, dhe ka punuar me kuadrin pak nuk e kam të vërtetë të merrni asgjë shumë. Unë do të të pëlqente të kursit të marr nga fundi i quickstart dhe të zhvillojnë aftësitë e tjera.

Kjo tha, titulli sigurisht e bën të qartë shtetëror "Zend kornizë bazat" dhe në këtë aspekt kursi arrin atë që vendos të bëjë. Anëtarët e tjerë të ekipit të zhvillimit që nuk kanë shpenzuar kohë duke kërkuar në kuadrin përfunduar çdo seancë me entuziazëm dhe e pyeti pyetje e cila ishte me të vërtetë mirë për të parë.

Të gjitha nuk ishte e humbur, ajo ishte e mirë për të shpenzuar kohë konfirmuar të dhënat themelore të kuadrit dhe për të marrë të kërkojë disa pyetje në zonat ku nuk ishte 100%. Kjo ishte edhe koha që kam marrë të ulen çdo ditë dhe të mendojnë për kodim përdorur projektet kuadër dhe të ardhmen, diçka që unë nuk do të qenë në gjendje të bëjë ndryshe (mund ta imagjinoni kompania juaj duke rënë dakord për këtë? :)). E fundit por jo më pak edhe ju të merrni një certifikatë e bukur nga Zend për të thënë që keni ndjekur kursin (megjithëse me email).

Zend Kornizë Certifikimi

Kjo ishte një pyetje që vinin në mendje gjatë, do të përgatisë mua për certifikim? E shpejtë, e lehtë nuk është një oshëtimë. Mësuesi kurs ishte mjaft e qartë në se me këshilla shtesë që për vërtetimin ju duhet të vërtetë të jetë duke përdorur kornizën për një ditë në baza ditore dhe të ndjehen shumë të rehatshme dhe të sigurt në përdorimin e saj dhe metodologjitë.

Përmbledhje

Duke pasur parasysh gjithçka që unë kam shkruar më lart, unë do të përmblidhni gjithçka në dy pikat e plumbave të lehtë:

  • Re për Zend Kornizë: Ky kurs ka pikërisht ajo që ju do të presin, kjo ju jep një hyrje të bukur në kuadrin e një argumentim të mirë mbi bazat nga të cilat mund të ndërtohet. Kursi duket për të gjeneruar interes dhe entuziazëm për kuadrin në mesin e zhvilluesit.
  • Përdoret Kornizën Zend: Ndërkohë që ishte e bukur për të mbështetur disa nga bazat shumë ndjeva kohë, përpjekje, dhe fondet për të marrë kurs mund të janë shpenzuar më mirë diku tjetër. Ajo do të jetë mirë për see Zend krijuar një kurs të ri të nivelit të lartë për të marrë zhvilluesve të nivelit të ardhshëm -. Të paktën me standardet e certifikimit dhe më gjerë Për këtë unë do të nënshkruajë menjëherë.

Identifikohu për të DB përdorur Zend Kornizë

Nga , e martë 14 prill 2009 9:06 pm

Unë kam arritur të marrë një vend dhe drejtimin me Kornizën Zend , gjithçka është prerjet nicely to Firebug / FirePHP kështu Hapi tjetër ishte të hyni brënda për të DB. Unë gjithashtu donte të hyni brënda disa informata shtesë duke përdorur kuadrin e tillë si agjent përdoruesit, datën dhe kohën, të merrni dhe postoni variablave. Pra, për të zgjeruar manualin pak Ja se çfarë kam bërë:

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

$ ColumnMapping = array ('prioriteti' => 'prioriteti',
'Message' => 'mesazh',
'Datetime' => 'Timestamp',
'User_agent' => 'user_agent',
'Get_vars' => 'get_vars',
'Post_vars' => 'post_vars',
'Faqe' => 'faqe'
);

$ WriterDb = new Zend_Log_Writer_Db ($ DB, 'error_logging', $ columnMapping);
$ Sharrëxhi = new Zend_Log ($ writerDb);

$ Sharrëxhi-> setEventItem ('datetime', data ('Ymd H: i: s'));
$ Sharrëxhi-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Sharrëxhi-> setEventItem ('get_vars', print_r ($ _GET, i vërtetë));
$ Sharrëxhi-> setEventItem ('post_vars', print_r ($ _POST, i vërtetë));
$ Sharrëxhi-> setEventItem ('faqe', SITE);

$ Sharrëxhi-> info ('Mesazhi Informational');

Ku çelësat grup në dollarë columnMapping janë emrat e mi kolonë. "Prioritet 'dhe' Mesazhi 'janë kuptuar nga Zend_Log_Writers por fushat e tjera janë shtuar për të më jepni disa informacione shtesë.

Natyrisht kjo supozon se ju keni prerjet punës duke përdorur një nga shkrimtarët e tjera :) parë













Theme nga Panorama Themocracy

12 visitors online now
5 guests, 7 bots, 0 members
Max visitors today: 13 at 05:17 am UTC
Këtë muaj: 26 në 04-04-2012 UTC 10:27 PM
This year: 69 at 27-02-2012 09:56 am UTC
Gjithë koha: 130 në 28-03-2011 UTC 10:40 PM