Kategorija: PHP

Route pieprasījumus sitemap.xml uz pasūtījuma kontrolieris / darbības

Ar , trešdiena 6 Jan 2010 12:13

Lai novirzītu pieprasījumu / sitemap.xml uz pielāgotu vadības un rīcības savā Zend Framework pieteikumu vienkārši pievienojiet šādu jūsu application.ini vai alternatīvu config failu (piem., es izmantoju navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = indeksu
 resources.router.routes.sitemap.defaults.action = sitemap

Piemērs kods izvada var redzēt, izveidojot darbības attiecīgo datu apstrādātāju (piemēram, manu sitemap slēpjas indeksā kontrolieris, sitemap darbība):

 < php
 klase IndexController
     paplašina Zend_Controller_Action
 {
     / **
      * Renders sitemap pamatā Zend_Navigation uzstādīšana
      * /
     valsts funkciju sitemapAction ()
     {
    	 echo $ this-> view-> navigācijas () -> sitemap ();
    	 $ This-> view-> izkārtojumu () -> disableLayout ();
    	 $ This-> _helper-> viewRenderer-> setNoRender (patiess);
     }
 }

Portālkartes var ātri un viegli iegūt, izmantojot Zend_Navigation , liels ātri pamācību (un kopumā ļoti noderīga Zend Framework tutorials) ir Zend rada - Dinamiski izveidot izvēlni sitemap un rīvmaizi .

Zend Framework Per-Module balstītus iestatījumus

Ar , piektdiena 1 Jan 2010 22:40

Esmu izveidojis follow uz šo amatu, kas prasa mazāk konfigurācija, lūdzu, skatiet modulis balstās Layout - Zend Framework .

Izmantojot Zend Framework ar moduļiem, tā skaidrs, ka, ja jūs darbojas dažādas (sub-) vietām pie paša pieteikuma Jūs ne vienmēr vēlas to pašu izkārtojumu skripti par katru daļu. Es izlēmu iet ar šādu vietnes struktūrā:

  / Application
     / Kontrolieri
         ...
     / Modeļiem
     / Moduļi
         / Default
             / Kontrolieri
             / Layout
                 / Scripts
             / Viedokļi
                 / Scripts
         / AnotherModule
             ...
     / Scripts

Problēma bija izveidot izkārtojumu skriptus par katru moduli atsevišķi. Atbilde nāca, izmantojot, izmantojot rīcības Helper. Izveidojot izkārtojumi par vienu moduli pamats ietver trīs darbības:

  1. Application.ini (vai līdzīgas konfigurācijas setup):
      admin.resources.layout.layoutPath = APPLICATION_PATH "/ modules / admin / izkārtojumus / scripts"
     default.resources.layout.layoutPath = APPLICATION_PATH "/ modules / default / izkārtojumus / scripts"
     member.resources.layout.layoutPath = APPLICATION_PATH "/ modules / biedrs / izkārtojumus / scripts"
     affiliate.resources.layout.layoutPath = APPLICATION_PATH "/ modules / filiāli / izkārtojumus / scripts" 
  2. Izveidojiet savu rīcību Helper:
      <? Php
     / **
      * Iestata izkārtojumu ceļu uz vienu moduli pamats
      *
      * @ Author Lloyd Watkin <lloyd@evilprofessor.co.uk>
      * @ Kopš 2010/01/01
      * /
     klase Pro_Controller_Action_Helper_SetLayoutPath
         paplašina Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Sets izkārtojums pamatotā ceļa moduli
          * /
         valsts funkciju preDispatch ()
         {
        	 $ Modulis = $ šīs-> getRequest () -> getModuleName ();
    
    	     if ($ bootstrap = $ šīs-> getActionController ()
    	                        -> GetInvokeArg ("bootstrap")) {
    
    	         $ Config = $ bootstrap-> getOptions ();
    
    	         if (isset ($ config [$ moduli] [resursi '] [' izkārtojums '] [' layoutPath '])) {
    	             $ LayoutPath =
    	                  $ Config [$ moduli] [resursi '] [' izkārtojums '] [' layoutPath '];
    	             $ This-> getActionController ()
    	                  -> GetHelper (izkārtojums)
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. Un visbeidzot boostrap darbības palīgs:
      ...
         / **
          * Izveido izkārtojums skriptus par katru moduli, pamatojoties
          * /
         aizsargājamo funkcija _initLayoutHelper ()
    	 {
    	     $ This-> bootstrap (frontController ");
    	     $ Izkārtojums = Zend_Controller_Action_HelperBroker: addHelper (
    	         jauns Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Mācība: DATETIME noklusējuma NOW ()

Ar , trešdiena 30. 2009 Decembris 18:30

Es esmu cīnās ar ko izveido datubāzes shēmu par jaunu Zend Framework projektu. Es esmu izmantojot mēģinot izmantot Doktrīna ORM manu datu bāzes modeļiem. Man ir nepieciešams izveidot shēmu, lai tas ļāva man, lai uzstādītu noklusēto datumu un laiku, `datetime` kolonna, piemēram, pievienojot jaunu ziņu man pašreizējā laikspiedolu. Pēc daudz meklēšanu un eksperimentējot es atklāju risinājumu, tāpēc es esmu dalīšanas to.

Savā shēmas YAML failu, vienkārši rīkojieties šādi:

 Message:
   actAs:
     Timestampable:
       izveidots:
         nosaukums: created_at
         tips: Laikspiedols
         formāts: Ymd H: i: s
       atjaunošana:
         nosaukums: last_updated
         tips: Laikspiedols
         formāts: Ymd H: i: s
   kolonnas:
     ID:
       tips: vesels skaitlis
       galvenais: patiess
       autoincrement: patiess
     nosaukums: string (255)
     e-pasts: string (300)
     ziņa: string (2000)

Ja, no otras puses, jūs nevēlaties `updated_at` ailē var izmantot šādi:

 Message:
   actAs:
     Timestampable:
       izveidots:
         nosaukums: created_at
         tips: Laikspiedols
         formāts: Ymd H: i: s
       atjaunošana:
         invalīdiem: patiess
   kolonnas:
     ID:
       tips: vesels skaitlis
       galvenais: patiess
       autoincrement: patiess
     nosaukums: string (255)
     e-pasts: string (300)
     ziņa: string (2000)

PHP Design Patterns - Observer Pattern

Ar , otrdiena 29 decembris 2009 22:02

Esmu bijis lasījums Head First Design Patterns nesen, un ir nolēmis uzrakstīt dažus modeļus, kā PHP piemēri par manu pašu labā. Pirmais, ka es esmu nolēmis kods up ir Observer Pattern . Formāla definīcija Observer Pattern ir:

Novērotājs modelis (no asinhronas apakškopu publicēt / abonēt modelis ) ir programmatūra, dizaina modelis , kurā objekts , ko sauc par tēmu, uztur sarakstu apgādājamiem, ko sauc par novērotājiem, un par to paziņo automātiski jebkura stāvokļa izmaiņām, parasti pa tālruni viens no viņu metodēm . Tas galvenokārt tiek izmantots, lai īstenotu izplata notikumu apstrādes sistēmas.

Kā sistēmas kļūst brīvi sapārotas, pārliecinoties, ka tad, kad notikums notiek visu sistēmas, kas prasa zināšanas par šo atjauninājumu ir informēti. Piemēram, blog post, pēc glābšanas amata mums var būt nepieciešams atjaunināt meklētājprogrammu (piemēram, Lucene), atjauniniet savu sitemap, tags, e-pasts parakstītā lietotājiem uc novērotājs modelis ļauj izstrādātājiem, lai pievienotu papildu klausītāju bez rediģēšanas viņu redzamiem objektu . Pēc injicēšanas novērotājiem (ti meklētājprogrammu update novērotājs, sitemap ģenerators, utt) par tēmu (ti blog post rediģēšanas sistēmu), mēs varam atļaut tai veikt visus nepieciešamos atjauninājumus bez izmaiņām.

Turpināt lasījums "PHP Design Patterns - Observer Pattern" »

Biroja Grid Computing, izmantojot virtuālo vidi - 4.daļa

Ar , piektdiena Dec 4, 2009 11:59

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

Ar 3 daļu mēs izveidojām mūsu virtuālajā apstrādes mašīnas un iestatīt Windows mašīnas, lai kļūtu dīkstāves laika darba ņēmējiem.

Running jaunākās kodu

Neizbēgami pēc veidojot savus strādniekus biznesa loģiku mainīsies, bugs tiks atrasta, ātrāk efektīvāk kods tiks ražots, tādējādi atstājot savu darba sēdēja ap apstrādā datus, izmantojot veco smirdošs kodu . Kā tad mēs nodrošinātu to, ka mēs vienmēr izmantot jaunāko un lielāko versija mūsu apstrādes skriptu?

Ir daži ļoti viegli vienkāršus veidus, kā mēs varētu darīt, triks, tomēr, ir samazināt apstrādes jaudu un tīkla trafiku lai to sasniegtu. Sāksim ar vienkāršāko risinājumu un uzlabotu tā lēnām pār pāris atkārtojumiem.

Pirmā metode būtu vienkārši savienot ar mūsu darba kontroles servera (ar samba, FTP vai līdzīgām), un pavelciet uz leju jaunāko versiju kodu. Ne ļoti efektīvs, bet tas būs darīt to darbu. Ļauj uzlabot, ka nedaudz, kā par radot rsync skriptu, un, izmantojot, ka katru reizi tā vietā? Alternatīvi, ko par liekot mūsu jaunākās apstrādes skriptu kaitniecību pārbaudes veic koda sākumā un pēc tam vienkārši atjaunināt mūsu kodu katrā reizē ( svn update )?

Galu galā mēs varētu beigties ar bash skriptu (ko sauc par cron ik pēc 10 minūtēm), kas izskatās tik vienkārši, kā šis:

  # / Bin! / Sh
 ja ps ax | grep-v grep | grep php > / dev / null
 Pēc tam
     echo "Darba pašreiz ir apstrāde, izbraukšana"
 vēl
     echo "Darba nedarbojas, sāc jau tagad"
     cd / ceļš / uz / darba / kopija
     svn update
     php yourJobProcessingScript.php
 fi 

Tagad mēs varam būt pārliecināti, ka ar katra vada mēs noteikti darbojas jaunāko kodu. Mēs esam to nodrošinātu, papildinot mūsu kodu bāze katru reizi, kad mēs veiktu palaist un samazinot tīkla trafiku, tikai pārceļot uz faila atšķirības mūsu tīklā.

Manā demonstrācijas setup, es darīju tieši tā, kā iepriekš. Subversion tika uzstādīta uz mana darba apstrādi servera un es vienkārši velk jaunākās kodu no "darba ņēmēja" filiāle, izmantojot "svn update". Es arī pievienoja versijas numuru tagu uz manu apstrādes skriptu, kas tika atdota datu bāzi kā daļu no rezultātiem atpakaļ. Tādā veidā es varēju redzēt, ka mans kods tika atjaunināts katru reizi, kad es kopēt manu stumbrs vērā darba ņēmēja filiāle, ti, ka man noteikti bija rādīt jaunākās apstrādes skriptu.

Izmantojot jaunākos datus

Ja jūsu darbs apstrādi izmanto datu avotus, tad kādā brīdī tie būs jāatjaunina too. Ja vien jūs izsauktu datu avotiem par ļoti reti pamats jūs gatavojas plūdu savu tīklu ar satiksmes, tiklīdz jūsu darbinieki sāks darboties celt visu strupceļā. Par manu risinājumu, es nolēmu, ka es gribētu, lai pārvietotu savu datu avotiem apkārt ar savu virtuālo mašīnu.

Turiet jūs zirgi tur! Ko darīt, ja datu avoti ir milzīgs? Nu šis tiešām ir gadījums, cik daudz datu ir mēs runājam? Tas var būt rentablāki uzstādīt papildu lielāku cieto disku uz katras mašīnas, nevis pirkt papildu apstrādes serveri. Tas ir jautājums par budžetu un ir līdz uzņēmuma ziņā. Tas varbūt, ka jūsu datu avoti ir tik liels, ka tā vienkārši neiespējami, lai saglabātu šo datu apjomu savam darba ņēmējam mašīnas. Tādā gadījumā ko tu darītu? Nu mēs varētu apskatīt zvana lokālā datu serveri, bet tas var izraisīt problēmas ar tīklu. Šajā gadījumā režģa sistēmu, piemēram, tas var būt nereāli iekļaut jūsu biroja vidē. Tā var arī būt, ka jūs varat aplūkot alternatīvas darbības stratēģijās, piemēram, tikai aicinot savu darbinieku 20:00-06:00 katru nakti un / vai droselēšanas datu avotu pieprasījumus.

Virzoties tālāk ļauj teikt, ka mūsu datu avoti apjoms datu 100GB. Nu jā, ka ir diezgan daudz datu, lai pārvietotos tīklā atjauninājumu. Kā mēs nodrošinām, ka mums ir jaunākās datu kopiju šajā gadījumā? Rsync ir iespēja, bet personīgi es domāju, ka, darbinot jaunāko datu avots par jūsu darbu apstrādes servera un veidojot šo augšu, kā meistars replikāciju (ar jauku ilgi bin log) varētu būt veids, kā iet:

replikācijas Nosakot katru no jūsu darbiniekiem izveidota kā vergu darba kontroles servera atjauninājumus jūsu datu avotiem būs sajust uz leju, labi, lai jūsu darbiniekiem bez milzīgu pieaugumu tīkla aktivitātes (tas ir, ja vien jūs veikt milzīgu datu atjauninājums un visas jūsu darbiniekiem kick uzreiz). Šis ir priekšrocības salīdzinājumā ar rsync, jo jums nebūs ilgu pauzi pirms katra darba, kā datu bāzes atjauninājumus, mysql dēmonu jūsu darbinieks nepārtraukti atjaunināt datus, kamēr apstrāde turpinās.

Tas ir, kā es izveidoju manu demonstrējumu serveri. Lai iestatītu atkārtošanas Es sekoju rokasgrāmata par mySQL vietā ( izveide replikāciju ) un 20 minūšu laikā, man bija mana Iekšējās darba ņēmējs atdarināt darba kontroli serveriem datu kopas. Par katru papildu darba ņēmējs replikāciju uzstādījumus un process strādāja katru reizi, kad VM tika kopēts.

Kopsavilkums

Šajā sadaļā rakstā mēs esam apskatīja, cik viegli un nesāpīgs ir saglabāt savu apstrādes kodu, līdz dienai, using rsync vai subverion (SVN), lai veiktu darbu, un samazina tīkla trafiku, tajā pašā time. Mēs arī apsprieda to, kā saglabāt savu datu avotu informāciju, up-to-datums, ļaujot tam sajust katram jūsu darbiniekiem. Tādējādi mums jomā, nodrošinot, ka mēs sekot līdzi biznesa loģiku un informācija mūsu birojā režģa sistēmu. Ir acīmredzami būs neskaitāmas alternatīvas Veicot šos uzdevumus, bet šeit ir divi vienkārši piemēri, lai parādītu, cik vienkārši risinājums ir nākt ar.

Nākošreiz

Pēdējā daļā šīs sērijas, aptly nosaukts 5.daļa , mēs apspriestu izvēršot šo sistēmu. Es apkopot to, kas ir iemācījušies un ko man izdevās izveidot.

Biroja Grid Computing, izmantojot virtuālo vidi - 3.daļa

Ar , piektdiena Dec 4, 2009 23:37

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

In part 2 mēs apskatījām darbu serveris darbosies, un kā darba vietas, jākonfigurē, lai sasniegtu lielāko pārstrādes apjoma, vienlaikus nodrošinot, ka katrs darbs ir apstrādāti bez neizdoties.

Izveidojot savu darba ņēmējs - vai mīksts serveri

Nākamais solis ir izveidot savu virtuālo darba ņēmējiem. Par to es esmu gatavojas izmantot uzstādīt CentOS, izmantojot VirtualBox. Es esmu gatavojas uzstādīt MySQL un PHP uz servera, kas pazīstams arī kā mīksts (Li nux, m ySQL, P HP) Servera (es varētu būt veikti šo nosaukumu up).

  • Install VirtualBox uz jūsu Windows mašīna (sekojiet saitei)
  • Lejupielādēt un instalēt CentOS (pašreizējā versija 5.3), kas izveidota virtuālā mašīna

Nav nekādas jēgas man iet uz šo tur droši vien 1000 's liels konsultācijas, kas tur (ok, šeit ir viens: izveide un Managing CentOS virtuālās mašīnas zem VirtualBox ). Svarīgi atzīmēt, es domāju, ka es aicināju savu virtuālo mašīnu GridMachine.

Runājot par manu izvēli virtualizācija klientu un operētājsistēmas iet tur nav liels pārliecinošs iemesls katra izvēle. VirtualBox ir kaut kas es izmantot manas mājas mašīnu, un to atbalsta trim galvenajām operētājsistēmām. Es izvēlējos CentOS kā tā ir laba stabilu OS, un es to izmantot par savu web serveri. Es esmu liels ticīgais pareizo rīku darbu (lai gan es esmu piemērojot "izmanto ātrākais un vieglākais jūs mentalitāte šeit), tāpēc, ja operētājsistēma X darbojas savu kodu, ātrāk un efektīvāk izmantot šo vietā:)

Svarīgi pārliecināties, ka jūsu VM izmanto DHCP, pretējā gadījumā par katru jaunu virtuālo mašīnu būtu nepieciešams konfigurēt atsevišķi, kas ir kaut kas mums nav want.By izmantojot DHCP mums nav nepieciešams konfigurēt tīkla uzstādījumus individuāli strādnieku mašīnām, DHCP nodos out IP jums. Tādējādi jūs varat kopēt jūsu virtuālā mašīna par biroju, neuztraucoties par iestatījumu katram vienu uz augšu (tas uzlabo mērogojamību un samazina darbinieks pārvaldi).

Procesu, jums vajadzētu censties sasniegt, būtu, lai iegūtu jaunas fizisko mašīnu, instalēt VirtualBox, tad diezgan daudz izvietot virtuālo attēlu bez daudz kas cits. Tas varētu būt gudrs setup visiem saviem darbiniekiem par dažādiem apakštīkla, lai jūs varētu vismaz redzēt, cik daudz mašīnu darbojas. Jums būs nepieciešama arī, lai izveidotu savu mašīnu uz ilgtermiņa nomas līgumu vai neierobežotu nomas DHCP.

Kā palaist Jobs strādnieks

Šī ir interesanta joma, un ir vairākas derīgas metodes, pārstrādes darbavietu darbiniekiem. Šeit es ņemšu tikai apspriest divus acīmredzami:

  • Mūžīgie darbības skriptu: skripts, vai tas shell skriptu, vai PHP skripts tiek izpildīts, kad darba ņēmēja un darbojas kā daļa no infinite loop. Esmu diskontētās šo metodi kā vienu crash no skripta, un, iespējams, jūsu darbinieki beigs darboties bez kaut kādas iejaukšanās.
  • Cron balstīta skriptu izpildi: Katru X minūtes cron daemon kicks off zvanu uz savu skriptu, lai iegūtu lietas turpinās. Bez daži pārbaudot tas varētu novest pie daudz daudz kopijas jūsu darbinieka skriptu darbojas.

Mans lēmums bija iet ar cron, kas kicks off shell skriptu ik pēc 10 minutes. Mans shell skriptu veic šādus uzdevumus:

  1. Get process sarakstu un grep šo par "php". Ja nav atrasts, tad turpināt.
  2. Zvaniet savu darbu kods, manā gadījumā tas būtu kaut kas balstīta PHP
  3. Worker skripts pabeidz palaist
  4. Gatavi doties atkal uz nākamo zvani netiek pienācīgi

Mana bash skripts izskatās kaut kā šādi:

  # / Bin! / Sh
 ja ps ax | grep-v grep | grep php> / dev / null
 Pēc tam
     echo "Darba pašreiz ir apstrāde, izbraukšana"
 vēl
     echo "Darba nedarbojas, sāc jau tagad"
     php yourJobProcessingScript.php
 fi 

Piezīme: echo 's ir gandrīz pilnīgi bezjēdzīgi, bet var palīdzēt nākamajai personai, kas nāk kopā, lai mēģinātu un rediģēt tos.

Tas secina, izveidoja darba ņēmēja virtuālās mašīnas, ātrs, vienkāršs un viegli, lai kopētu uz katru jaunu gabals aparatūru, kas tiek saņemti. "Gudrību" no tīkla sistēma tik tiešām nav vizualizē OS, tā visi darīt ar kodu, kas izveidota, lai process darba vietas, darba konfigurāciju, un, lai pārliecinātos, ka darbs sākas, kad nepieciešams (ti, ja uzņēmējas ir dīkstāvē ).

Iestatīšana Windows, lai inicializētu darbinieku

Pirmais uzdevums ir izstrādāt komandu nepieciešams, lai palaistu virtuālo mašīnu no Windows komandrindas. Ja esat uzstādītas noklusējuma atrašanās vietā un VirtualBox esat nosauca savam darba ņēmējam GridMachine tad komanda nepieciešama, lai slodze jūsu darba ņēmējs ir:

  "C: \ Program Files \ Saule \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Tomēr, lai palaistu skriptu "bez galvām" valsts mums ir nepieciešams izmantot:

  "C: \ Program Files \ Saule \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Tas sāksies virtuālā mašīna bez GUI un ļauj tai saglabāt valsts graciozi. Otrais arguments izslēdzas RDP, lai tas nav pretrunā ar logiem RDP, vai dot jums ziņu par klausīšanās uz 3389 portu. Virtuālā mašīna nosaukums ir reģistrjutīga!

Tālāk, mums būs nepieciešams, lai uzstādītu logiem līdz kick off mūsu darbinieks VM, kad mašīna ir dīkstāvē. Lai to izdarītu (Windows XP), jums vajadzēs doties Start -> All Programs -> Accessories -> System Tools -> Ieplānotie uzdevumi, kā norādīts zemāk:

plānoto uzdevumu

Tālāk noklikšķiniet uz 'Pievienot Plānotais uzdevumu ", kam seko pārlūkojiet, lai pievienotu pielāgotu programmu. Dodieties uz savu VBoxManage skriptu un uzklikšķiniet OK. Ieplānojiet savu uzdevumu attiecībā uz kādu no iespējām (mēs mainīt šo minūti) un turpināt. Pēc tam, izlaižot nākamo ekrānu logi lūgs jums, kas jūs vēlaties palaist šo uzdevumu, es gribētu ieteikt vai nu "administrators" vai izveidojot jaunu priviliģētu lietotāju. Atcerieties, mēs nevēlamies iejaukties standarta personālu kontu mašīnu jebkurā vietā. Noklikšķiniet uz nākamo un pārbaudīt parādīt uzlabotas iespējas šo uzdevumu.

Uz beigām palaist textbox pievienot mūsu "startvm GridMachine" string un nodrošinātu, ka darbojas tikai tad, kad pieteicies ir palicis unticked. Apmeklējiet grafiks uzdevumu nākamo un mainīt grafiku nolaižamajā iespēju ", kad tukšgaitas", izvēlieties laiku vēlaties mašīna ir dīkstāvē pirms pāriešanas uz nākamo cilni.

Visbeidzot, untick risinājums, kas noteikts pārtraukt uzdevumu, ja tas ir darboties X daudz laika, bet atzīmējiet opciju, lai apturētu uzdevums, ja iekārta vairs dīkstāvē.

grafiks

Tas ir tas tad windows uzņēmējas setup!

Kopsavilkums

Šajā sadaļā mēs esam izveidojuši virtuālo mašīnu, kas darbojas kā darba ņēmējs, kā arī veidu, kādā mēs saucam un izpildīt mūsu darbs apstrādes skriptus (par sevi PHP skriptu). No šejienes mēs apskatīsim, kā izveidot savu Windows kopijas uzsākt virtuālās mašīnas, bez galvām režīmā, kad dators kļūst idle, un saglabāt savu stāvokli, kad lietotājs atsāk izmantošanu mašīna. Cerams, ka šajā brīdī jūs redzēt, cik vienkārši ir izveidot tādu sistēmu, un ir nieze, lai iegūtu daži eksperimenti turpinās sevi!

Nākošreiz

Ar 4 Part būsim meklē, izmantojot līdzekļus, lai nodrošinātu, ka jūs lietojat jaunāko versiju kodu un datu avotiem, lai iegūtie rezultāti ir vienmēr up-to-dienu ar jaunāko biznesa informāciju un loģiku.

Biroja Grid Computing izmantojot Virtual vidē - 1.daļa

Ar , piektdiena Dec 4, 2009 11:23

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

PHP attīstītājs es esmu gatavojas izmantot rīkus, ka es izmantot katru dienu, proti, Linux, MySQL , PHP, VirtualBox un apvērsumu (SVN). Tomēr es ceru, ka šī rokasgrāmata būs pielāgoties citām valodām un tehnoloģijām tikpat labi.

Risinājums Es jāsniedz, tiks ļoti brīvi balstīta uz pārstrādes veidu mēs būtu nepieciešams, lai sasniegtu tomēr tas var nebūt taisnība caur visu rakstu, kā es jums mainīt lietas pēc vienkāršības, vai radīt vairāk interesantu izmantošanas iespējām.

Šie virtualised vides darbosies uz Windows mašīnas, jo tas ir tas, ko par biroju vairākums palaist. Pārstrāde, biroju iekārtas do nedrīkst būt pretrunā ar darbiniekiem, izmantojot šo mašīnu, ja nav nepieciešama īpaša apkalpošana pie mašīnas, un ir viegli izvietojamas uz jaunām iekārtām, kā tās kļūst pieejamas. Arī jaunu virtuālo mašīnu nedrīkst pieprasīt papildu konfigurācija, jo tas ievērojami samazina mērogojamību un vieglumu, ar kādu tīkla sistēmu var paplašināt.

Kāpēc Ieviest Office Computing Grid?

Pirmkārt, jums var domāt, kāpēc ne tikai izmantot mākonis skaitļošanas resursu, piemēram, Amazon EC2 platformu ? Nu tad tā iemesli var būt vairāki, piemēram:

  • Jums nav uztic konkrētus datus mākonis skaitļošanas vidē
  • Jūs nevarat ievietot dažus datus mākonis skaitļošanas vidi juridisku iemeslu dēļ (piemēram, datu atstāj valsti), iespējams juridisku iemeslu dēļ, piemēram, NHS ierakstus.
  • Jūs vēlaties, lai jūsu procesora bloku tuvu un ir pilnīga kontrole pār aparatūras pārāk
  • Jums nav projekta līdzekļiem, lai palaistu mākonis gadījumos
  • Jūsu birojs nav savienojuma ar internetu, un tāpēc tās nav iespējams izmantot mākonis resurss
  • Tev nepatīk lietus, mākoņi liecina lietus, tāpēc jūs turēt tālu

Es esmu pārliecināts, ka sarakstu varētu turpināt, bet es domāju, ka ir pietiekami, tagad.

Priekšrocības Office Computing Grid

Nu, ļauj veikt dažas matemātikas (un patiess fizikas stilā ļauj veikt dažas slaucīšana pieņēmumi). Iedomājieties, jums ir liels gaļīgs apstrādes servera, kurā darbojas 100 darba vietas dienā. Savā birojā jums ir 50 mašīnas, kas ir idle 16 stundas dienā, katru no šīm mašīnām ir 10%, kā spēcīgs kā savu gaļīgs apstrādes atdalīt. (Visi rezultāti šeit ir noapaļotas līdz nenovērtēt veiktspējas pieaugumu).

Tātad, 1 mašīna * 10% jaudu * 2 / 3 laika = 0,067, ti, 1 desktop apstrādes dīkstāves laikā varētu apstrādāt 6 pilnas darba vietas dienā.

Ja tagad mērogu šo augšu, tā aizņem 15 dīkstāvē galddatoriem procesā, kā daudzas darbavietas katru dienu kā savu galveno apstrāde serveris.

Tātad mūsu izlikties birojā 50 mašīnu mēs varētu paaugstināt mūsu pārstrādes jaudu no 1 servera līdz 4 pilnas apstrādes serveriem, vai arī mēs varētu būt apstrāde 400 darbu dienā, nevis 100.

Paziņojumā, ne investīcijas jaunās aparatūras jūsu uzņēmums ir tikko palielinājis partijas apstrādes jaudu 4 reizes! Potenciāli jūs gatavojas palielināt savu jaudas izmantošana, bet no vairuma biroju vidēm es esmu bijis mašīnām parasti atstāj uz nakti anyway, lai jūs varētu redzēt to kā zaļo iniciatīvas.

Citas priekšrocības arī nozīmē, ka investīcijas jaunu (vai papildināts) apstrādes serveriem var aizkavēties, ja Jūsu biroja iekārtas ir pietiekamas un ka, kā jums uzlabot jaudu jūsu biroja tehnikas ofisā energosistēma kļūtu spēcīgāk automātiski.

Tehnoloģijas

Kas Jums nepieciešams? (Vai precīzāk Ko man vajadzībām):

  • Idle biroja iekārtas (manā gadījumā rezerves veco logu XP klēpjdators)
  • VirtualBox (vai citu virtualizācija klienta programmatūra)
  • Virtuālo ar PHP, MySQL running mašīna darbojas samazināt OS, es esmu aicinot šiem maniem Limp serveriem:)
  • Darbs, lai palaistu
  • Darba serveris (var būt cits virtuālo mašīnu kaut kur)

Tipiski Darbs

Darba vietu, ka šī sistēma ir izstrādāta, lai palaistu veidiem ir šāds:

  • Sistēmas saņem to datu sarakstu, uz kuriem mums ir nepieciešams, lai atbilstu un atgriezties rezultātus
  • Matching ietver pārbaudi / meklējot vairākas (samērā statisks) datu avotus
  • Rezultāti no datu avotiem var pieprasīt papildu apstiprinājums, apvienošana, pārbaudei, papildu datu avotiem, atbildot uz rezultātiem
  • Dati tiek atgriezta ar atbilstošiem ierakstiem, pilnībā validēti un apstrādāti
  • Katrs darbs ieraksts ir neatkarīga no pārējiem

Vārdu sakot, mēs meklējam tajā darbojas darbavietas, kas prasa maisījumu datubāzi lookups un daži numurs crunching, diezgan tipiski scenārijs uzņēmējdarbības vidi.

Grid risinājumi ir ne tikai izdevīgi apstrādes darbu šāda veida. Būtībā jebkurš process, ko var sadalīt neatkarīgas vienības var darboties paralēli. Skatiet šo wikipedia Piemērus un vairāk informācijas: Grid Computing , bet slavenā piemēri pāris ir Seti @ Home un BIONC . Ir sistēmas, lai darbojas skaitļošanas tīkli un šie ir labi vērts meklēt.

Ko mēs panākt?

Līdz šo pantu es ceru parādīt, ka izvietot biroju tīklā nav ļoti dārgs vai laikietilpīga. Es esmu gatavojas apspriest:

  • Izveide darba kontroles sistēmas, darba konfigurācija
  • Radīt atbilstošu apstrādi virtuālā mašīna
  • Kā setup sistēmas Windows mašīna
  • Nodrošināsim jūs izmantojat jaunāko kodu un datu
  • Izvietošanas un salīdzinošās novērtēšanas
  • Raugoties uz priekšu

Es būšu ēka (ok es būvēts, tad uzrakstīja šo) piemēru piemērošanu, lai pārbaudītu koncepcijas vietējo mašīna, lietojot Windows XP un manu "GridMachine" virtuālo mašīnu. Mans darbs kontroles serveri būs mans galvenais mašīnu, kas iet Fedora 11 .

Tas nekādā ziņā nav domāti, lai pierādītu, pilnīgi darba stabila sistēma, tās nozīmēja vairāk demonstrācijas un apspriešanas liecina, ka šīs lietas var panākt samērā īsā laika posmā un ar nelielām izmaksām. Lūdzu, jūtieties brīvi, lai nosūtītu man komentārus, korekcijas vai uzlabojumus, un es darīšu manas vislabāk, lai saglabātu šo rakstu atjaunināts, lai atbilstu.

Nākošreiz

In part 2 es sākt, aplūkojot darba kontroles sistēmas, un izvērtēs, kā darbavietas, jākonfigurē, lai sasniegtu lielāko pārstrādes apjoma, vienlaikus nodrošinot, ka katrs darbs ir apstrādāti bez neizdoties.

Biroja Grid Computing, izmantojot virtuālo vidi - 2.daļa

Ar , piektdiena Dec 4, 2009 11:23

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

In 1 daļā I sniedza pārskatu sistēmas un tehnoloģijas, man būs, izmantojot, kā arī apspriesti daži no iespējamiem iemesliem, kāpēc vēlaties izveidot biroju tīklu.

Job Control

Ja jūs būs ekspluatācijas darbu, tad jūs gatavojas ir nepieciešams zināms veids, lai pārvaldītu tos. Jūsu darbs kontroles sistēma (jūsu darbs serverī) ir jābūt ļoti labi pārdomāts līdz pat mēģināt palaist biroja tīklam. Tātad, pirmkārt, kādi ir darba kontroles sistēmas uzdevumi:

  • Izkārt darbavietas kad to pieprasa darba ņēmēju
  • Pastāstiet darbiniekiem, kāda veida darbavietas palaist
  • Track darbu
  • Nodrošināt, ka darba vietas ir rādītas tikai vienu reizi
  • Nodrošina darbu datu darbiniekiem, vai vismaz pateikt, kur to iegūt

Sistēmai arī jābūt paplašināms, risinājums, kas strādā tagad vienā gadījumā var tikt pagarināts palaist vairākas darba veidiem, kā biznesa redz vērts režģa risinājumu. Piemēram, darba vietās, var iegūt prioritātes, vairāk nekā viena darba veids var pastāvēt (ti vairākas kods bāzēm), iespējams, jums var pat palaist vairākus atšķirīgus darba ņēmēju mašīnas, kas ir optimizētas katram darba veidam (kas gan nebija virzīties prom no "sugas strādnieks "ideja). Vienmēr mēģiniet domāt par nākotni, izstrādājot sistēmu, īstermiņa redzējums var izraisīt ilgtermiņa vilšanās un palielināt izstrādes laiku.

Darba Server

Mēs ejam uz nepieciešamību kaut kur, lai kontrolētu savu darbu no, tas ir tikai sistēma jūsu režģis, kas ir noteikta resursu vietrādis, ir tā IP adresi, resursdatora nosaukumu, URL (izmantojot iekšējo DNS), uc Tas ir tāpēc, ka darbiniekiem jāzina, kur meklēt darbu, darbiniekiem ir nepieciešams atrast darbu vadības sistēmu (ne darba kontroles sistēmu atrast darbiniekus).

Darbs serveris pats nav īsti ir sarežģīts uzdevums (jo pamata sistēmas tik un tā), tai ir nepieciešama, lai saglabātu vakanču sarakstu, neizvietot darbu, saņemt rezultātus, un pēc tam saglabājiet tos turpmākai atgūt. Cik šīs detaļas (piemēram, "rokas no darbavietām") ir definēti var būt ļoti vienkāršas. Vēlāk mēs varam paplašināt sistēmu, iekļaujot administrācijas saskarni pievienot, rediģēt, dzēst, pārtraukt darba vietas, bet tas pārsniedz šo procedūru.

Nav nekādu iemeslu tam, ka jūsu darbs Serveris nevarēja būt virtuālā mašīna darbojas jūsu galveno apstrādes servera, ja tas nav aizplūšanu pārāk daudz resursu no tā. Darbs serveris Tomēr nav nepieciešams augstas pieejamības, ja tā iet uz leju piektdienas vakarā, jūs gatavojas zaudēt visu nedēļas nogali apstrādes, iespējams, maksā jums pāris nedēļas vērts apstrādes laiku (salīdzinot ar jūsu galveno apstrādes servera vien) . Jūs varētu vēlēties apsvērt savu darbu serverī slodzes līdzsvarotu vidi augstu pieejamību.

Basic Setup

Pamata setup, lai mūsu darbs serveris veidos, ko es esmu aicinot vienu no saviem Limp serveriem (tas ir Li nux, m ySql, P HP). Kods darbojas uz Teu darbiniekiem būs faktiski strādā, kādas darbavietas to var palaist, mijiedarbojoties ar ar darba kontroles sistēmu datu bāzēm. Vēlāk mēs varētu izveidot tīmekļa pakalpojumu, un faktiski rokas no darba vietas nevis darba ņēmējiem darīt smago darbu pašiem, bet tagad mēs turpināsim izmantot KISS principu (Keep it vienkāršs, stulbs!).

Tātad, ļauj izveidot trīs mySQL tabulas, lai risinātu ar darbu. Tie būs `darbu`, `jobRecords` un `jobResults`.

darbu tabulu Šeit es esmu, izmantojot SQL Buddy ļoti maz alternatīvu phpMyAdmin tikai tāpēc, ka tā vieglāk instalēt CentOS (citiem sk.: 10 Great alternatīvas phpMyAdmin )

Šī tabula sastāv no 5 vienkāršās,

  • id: identificētu darbu
  • nosaukums: Varētu būt klienta atsauksme, vai kādu citu identifikatoru skaits
  • Statuss: Jums ir jāzina, kur darbs ir, piemēram,
    • 0: Nav sākts
    • 1: pacēla
    • 2: Pabeigta
  • started_by: Kurš sāka darīt darbu? Tas nav pilnīgi nepieciešama, bet ir patīkami būt. Es gribētu ieteikt uzskaites darbinieki no to IP adresi no jūsu tīkla
  • started_at: Kad darbinieks sāk darbu? Kontrolējot darba vietas, kas nav pabeigts X laika mēs zinām, mums ir nepieciešams uzņemt darba atkal un sākt pārstrādei citā darbinieks. Darba ņēmēji varētu pārtraukt apstrādes / go bezsaistē jebkura vairāku iemeslu dēļ, enerģijas padevei, crash, tīkla zudums, utt

To ir viegli, kā šo tabulu varētu paplašināt ar dažiem papildu laukus, lai ļautu statistikas uzskaiti, finiša laiks kolonnā, lai redzētu, cik ilgi darbs paņēma counter lai redzētu, cik darba ņēmēju paņēma darbu (protams, tas ir tendence 1) darba prioritāte, sarakstu var turpināt vēl un vēl. Vairāk sarežģītu darbu scenāriji būtu iespējams noteikt, cik daudz atmiņas darba ņēmējam būtu nepieciešama piekļuve (un tādēļ tikai jāizmanto piemēroti darba ņēmēji), vai pat kāda veida darba ņēmējam būtu nepieciešama.

Lets pievieno dažus, piemēram darba vietas:

Piemēram darbu

Nākamajā tabulā atkal ir diezgan viegli saprast, šie ir mūsu darbs ierakstus. Tie ir saistīti ar galvenajām darba vietu tabulā, kolonnā `jobs_id`. Veido Šīs tabulas ir ļoti atkarīgs no datiem, kas jums ir nepieciešams piegādāt uz jūsu darbiniekiem, ļauj izdarīt ļoti vienkāršu piemēru, kad mums ir četras ailes:

  • id: ID ierakstu
  • nosaukums: Personas vārdam
  • adrese: Personas adrese
  • jobs_id: darba ID, ka šis ieraksts ir saistīts ar

Trešais un pēdējais tabula sastāv no rezultātu tabulā, tas ir līdzīgi veido kā mūsu ierakstus tabulā, un pievienojot dažas kolonnas varētu būt daļa no uzskaites tabulu:

  • job_record_id: Link rezultāts uz darba galda
  • Rezultāts: Rezultāts dati

... Un tas ir viss, kas vajadzīgs darba kontroli! (Lai gan ļoti vienkāršas) Manā gadījumā es esmu norādījis uz citu tabulu, kur mana datu apstrādei atradās, bet to var tikpat viegli ir fails, parametri, lai palaistu simulāciju kodu, jūs nosaukums tam.

Izvēloties darbu

Kā norādīts iepriekš, darba ņēmējiem do mūsu darba vadība mums tagad, lai viss, kas mums nepieciešams, lai tiešām darīt, ir atrast darbu, kas nepieciešams pārstrādes un saņemt informāciju. Kā mēs to darām? Nu uzņemt mūsu darbu atlases kritērijiem un meklēt darba vietas, jo SQL man bija šādi:

  1. Veikt darbu, kas nav atzīmēti kā pabeigta, bet no mūsu darbinieku un atjaunotu tos (aizstāt __ME__ ar identifikatoru, vienkāršākais būtu IP adreses):
      UPDATE `darbu` SET `status` = 0 WHERE `status` = 1 UN `started_by` = __ME__; 
  2. Izmantojot mūsu darbu atlases kritērijiem, izvēlieties darbu un pateikt, ka šis darba ņēmējs ir ar to nodarbojas kontroles sistēma:
      UPDATE `darbu` SET `status` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 vai
     (`Status` = 1 UN `started_at`> DATE_SUB (NOW (), Interval X stunda)) ORDER BY `id` ASC; 

    Ar satveršanas darba vietas, kas nav atgriezušies rezultātus X laiku mēs nodrošinām, ka visi darbi ir darboties gadījumā, ja darba ņēmēja crashing vai iet AWOL.

  3. Nākamais greifers darbavietas informāciju pēc ierakstus sevi:
      SELECT * FROM `darbu` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Pabeidzot darbu, mēs ievietotu savu rezultātu uzskaiti un atzīmēt darbu kā pabeigtu. Atcerieties, jo darbus var pārtraukt / atjaunot jebkurā brīdī pieļautu zināmu stabilitāti, kas savu skriptu. Varētu būt, ka uzdevums atliek pusi veidā caur atjauninot darba kontroles sistēmas, lai pārbaudītu ierakstu skaits darbu un rezultātu atkal saglabātu darba kontroles sistēmu skaits varētu būt gudrs kustēties.

Turklāt, lai gan tas parāda, cik darba vietas var izvēlēties un pārvalda no SQL query rāmis jums patiešām ir, abstrahējoties Jūsu darba kontroli, lai, ja jūs nolemjat pāriet uz, izmantojot interneta pakalpojumu, failu balstītai sistēmai, XML , vai jebkuru citu vairākas sistēmas, tas neietekmē kods virs tā.

Darba konfigurācija

Nākamais aspekts, kas jāapsver, ir darba apjomu un konfigurāciju. Spēlējoties ar darbavietu konfigurācija mēs varam panākt lielisku līdzsvaru starp ātrumu, process replikāciju un uzticamību. Paņem pāris kādu teksta apstrādes scenāriji:

  1. Darbs jāveic 1 dienā katru rādīt: Tas nozīmē, ka jūsu darbinieki ir 15 dienas, lai apstrādātu katru darbu (atceros 10% no jaudas 2/3rds laika). Tas ir skaidri nav gudrs konfigurācija, jūsu darba apjomu, ir pārāk liels! Būtu nepieciešams vismaz divreiz laiku, lai iegūtu pārstrādātu darbu vajadzētu sākotnējos darbinieks aiziet AWOL (laiks uzņemt, ka tā nav atgriezies rezultāts plus pārstrādes laikā). Ir ideāla, jūs ir vismaz vienu pilnu darbu viegli noskaidroti līdz katra ilgs tukšgaitas periodu, tādā veidā jūs saglabāt darbavietas atzīmējot beidzies, un sliktākajā gadījumā darbu varētu ilgt divas dienas, lai process būtu vispirms iet missing.
  2. Darbs jāveic 1 minūti, lai palaistu: Tas nozīmē, ka jūsu darbinieki aizņems apmēram 15 minūtes, lai palaistu katru darbu. Kaut arī tas sākotnēji var likties ideāls, jūs iegūstat papildu darbs apstrādes laikā pusdienas laikā, kafijas pauzes, tikšanās, utt šis scenārijs rada spriedzi citiem jūsu sistēmas, un ievieš savas problēmas. Piemēram, vispirms jūsu setup / apstrādes laiks attiecība gatavojas iet pa labi uz leju, tādējādi saglabājot sistēmas darba efektivitāti. Jūsu tīkls būs pastāvīgi straumēšanas darba informāciju ar dažādiem darba ņēmējiem nomākta darbinieki, kas ir dong viņu ikdienas darbā. Jūs esat arī gatavojas likt lielāku spriedzi jūsu darbu apstrādes servera, jo tas ir ēdiens no partijām un partijām, mazos gabaliņos, kas strādā uz regulāri. Visbeidzot, šajā situācijā, ja jūsu darbs servera iet uz leju, jūs gatavojas izveidot milzīgu atpakaļ žurnālu nepabeigtajiem darbiem tā kā lielāka darbavietu varētu turpināt apstrādes blissfully neapzinās, ka darbs serveris bija nonākusi grūtībās.

Patiesībā nebūs neviena ideāla konfigurācija tīkla setup, daudz kas ir atkarīgs no pieejamajiem līdzekļiem, darbu veidiem, darba atgriešanas laiku prasībām, tīkla jaudu, un tā tālāk. Tomēr dažas vadlīnijas būtu:

  • Izmērs darbu, lai katrs darba ņēmējs var iegūt, izmantojot vismaz 3-4 darba vietas uz 15 stundām (garākā iespējams dīkstāves laiku)
  • Spēlē ar darba apjomu tā, ka uzstādīšanas laikā kļūst samērā nenozīmīga, salīdzinot ar apstrādes laiku (ņemot vērā iepriekšējo punktu).
  • Ja darbs nav pilnīgs divreiz vairāk laika (varbūt mazāk) jūs gaidīt to, lai pabeigtu to pieņemt, ka tā gājusi AWOL un sākt tā tiek apstrādāta ar kādu citu darbinieku. Tas nozīmē, ka Jums var būt jāgaida līdz trīs reizes lielāka par parasto ilgumu darbs ir pabeigts (iespējams arī ilgāk, ja turpmāko darbu neizdodas). Jūs varat samazināt šo laiku, bet jābūt uzmanīgiem, lai samazinātu to pārāk daudz, kā jūs varat sākt dublējot apstrādes uzdevumus regulāri.
  • Darbs būtu neatkarīga no ārpus prasībām, cik vien iespējams. Darbs serveri, piemēram, tikai sazināties sākumā un beigās katru darbu.
  • Nelietojiet piesātinātās savu tīklu, tas ir divas negatīvas sekas, jūsu dienas darbinieki būs atrast, izmantojot tīklu, nomākta, un problēmas var būt pieredze ar savienojumiem laika out problēmu, ka būs tikai sliktāk, kā jūs skalu jūsu tīklam.
  • Nodrošināt darba vietas var palaist uz jūsu darbiniekiem. Ja darba vietu kļuvusi pārāk atmiņietilpīga vai diskā intensīvu darbu sāks Pārtrauc un vienīgā lieta, jūs paziņojums ir piliens darbavietu skaits apstrādāti bez reālas iemesls, kāpēc.

Iesniegšana rezultāti Darbs

Iesniedzot rezultātus, darbs ir svarīgi pārbaudīt, vai rezultāti nav iesniedzis cits darbinieks, it īpaši, ja pašreizējā darba ņēmējs ir neaktivizētas kādu laiku.

Ja rezultāti tiek iesniegti nodrošina, ka rezultāti saskan ar skaitu ierakstu, kas darbu.

Kā norādīts iepriekš, un nav iespējams novērtēt par augstu, veidot defektu pielaidi par darbu izguves un rezultātu iesniegšanu. Darbinieki var (un, visticamāk, būs) iedziļināties apturēt režīmā pie visvairāk neērta reizes, un to nepieciešams aizrādījums. Arī vēlreiz abstrahējoties prom savus rezultātus iesniegumu palīdzēs rūpēties par turpmākām izmaiņām jūsu darba kontroles sistēma daudz vieglāk tikt galā ar.

Kopsavilkums

Šajā section mums ir aplūkots, kas darba kontroles servera jādara un kā iegūt ļoti pamata sistēma izveidota. Mēs apspriedām, kā iegūt no kontroles sistēmas darbu un to, kā vislabāk konfigurēt darba vietu, lai saņemtu lielāko daļu mūsu Jūsu biroja režģa sistēmu. Lai pabeigtu, punkts vai divi Iesniedzot rezultātus atpakaļ darba kontroli serveris tika iesniegts.

  • Darba kontroli serveris pārvalda darbavietas un nodrošina, ka darba vienības ir pabeigti
  • Ar abstrahējoties Jūsu darba izvēlaties / rezultātu iesniegšanas mēs varam mainīt tehnoloģiju kontroles servera bez daudz problēmu
  • Konfigurējiet savu darbu, lai nodrošinātu, ka tie darbojas ātri un efektīvi, bez pārāk lielu spiedienu uz savu tīkla infrastruktūru, un nedublējot apstrādes uzdevumus regulāri.
  • Pārliecinieties, ka jums veidot defektu pielaidēm un kļūdu checking savā rutīnu, darbinieki var apturēt un atsākt un visvairāk neērta reizes. Neaizmirstiet pārbaudīt, vai rezultāti jau ir iesniedzis cits darbinieks.

Nākošreiz

Ar 3 daļu mēs izveidot savu virtuālo apstrādes iekārta, un izveidot mūsu logiem mašīnas kļūt dīkstāves laika darba ņēmējiem.

Biroja Grid Computing izmantojot Virtual vides - 5.daļa

Ar , piektdiena Dec 4, 2009 11:03

Ievads

Es strādāju uzņēmumā, kurā mēs palaist daudzas partijas darba vietu apstrādes miljonu ierakstu datu katru dienu, un es esmu bijis domāt nesen par visām mašīnām, kas sēž apkārt katru dienu, neko nedarot, vairākas stundas. Vai tas nebūtu labi, ja mēs varētu izmantot šos mehānismus, lai atbalstītu pārstrādes jaudu no mūsu sistēmu? Ar šo komplektu raksti Es esmu, lai aplūkotu potenciālo ieguvumu nodarbina biroja tīklu , izmantojot virtualised vidēs.

Ar 4 Part mēs skatījāmies, izmantojot līdzekļus, lai nodrošinātu, ka mēs esam darbojas jaunākā versija kodu un datu avotiem, lai iegūtie rezultāti ir vienmēr up-to-dienu ar jaunāko biznesa informāciju un loģiku.

Pirms nosūtīšanas

Pirms izvietojat savu tīklu sistēmā, ja tur ir viena lieta, ko jūs darīt, un viena lieta, tikai tas etalons jūsu pašreizējo sistēmu! Nav svarīgi, ko jūs pastāstīt kolēģiem par to, cik daudz papildu darbu jūsu sistēma gatavojas darīt, ja jums ir numuri, lai atbalstītu šo savu garantiju nekas. Tātad,

  • cik daudz ierakstu jūs varat process pašlaik? Per diena? Per Hour?
  • Cik ilgi tas parasti aizņem apgriezties darbu?
  • Cik daudz vairāk jaudas, jums ir?

Pastāv arī papildu jautājumus:

  • Ja jūsu apstrādes serveri (vai viens no jūsu apstrādes serveriem) iet uz leju, kā tas ietekmēs jūsu spējām, vai tu kropls?
  • Kādas priekšrocības jūs cerat / gaidīt, lai saņemtu no energotīklu sistēmu?
  • Vai jūsu biroja iekārtas spēj darbināt darba piedāvājumus?
  • Vai jūsu (vai jūs varat darbavietas ir pārbūvētas) darbu šajā stilā darbojas?

Pēdējais lielais punkts ir veikt savu laiku, par jebkurām būtiskām pārmaiņām, kā šis. Atjauniniet savu apstrādes kodu, strādāt, izmantojot jauno metodiku, standartu vēlreiz. Iespējams izveidot savu pārstrādes serveri palaist virtuālo mašīnu, pēc tam, kad visas jūsu apstrādes serveri būtu tikai vēl viens darbinieks (tikai ļoti spēcīgs one relatīvi). Ļauj jaunu procesu, lai norēķinātos.

Izvietošanas

Mans ieteikums būtu, lai pop uz biroju vienu nedēļas nogali veikt visas iekārtas un uzstādīšana. Vai tas tikai pirms divām nedēļām, brīvdienu un atvaļinājumu, lai citi slikts vīram tikt galā ar sekām ... varbūt arī nē ...

Izvietošanas sistēmu, piemēram, tas ir lēni. Lai gan tas ir salīdzinoši vienkārši, lai izveidotu šo sistēmu, ietekmēs visu jūsu biroja infrastruktūras (arī digitālā viens). Pirmkārt, izskrējienu līdz pāris mašīnu laikā, uzraudzīt tīkla trafiku, kā darba ņēmējs saimniekiem veiktu uz ikdienas diennaktī. Jums var būt nepieciešams mainīt savu darba vietu konfigurācijas, atbildot par saviem atklājumiem.

Kad sistēma ir apmetusies ar tikai dažas mašīnas (ļauj teikt, 10% visu biroja tehniku, ti, 5) veic uzraudzīt tīkla trafiku un uzņēmēja mašīna performance. Tālāk kritēriju atkal, jums tagad būtu pārstrāde 33% vairāk darba vietu nekā pirmās kritērijus. Pārbaudiet tas tā ir, vai ka jūs vismaz šajā ballpark. Ja nē, izmeklēt, kas notiek pirms pāriet uz. Atkārtojiet šo ciklu, līdz jūs laimīgi ir visas biroja iekārtas darbojas bez nogalināšanas atsevišķu mašīnu veiktspēju vai slīpēšanas tīkla strupceļā.

Visu laiku turēt salīdzinošo novērtēšanu, pat pēc visas izvietošana tiek veiktas. Pārbaudīt, cik jaunu kodu atjauninājumus ietekmēt ātrumu jūsu sistēmā, pārbaudiet visus strādājošos ziņošanu un apstrādes darbus. Lēnām (ļoti lēnām) pieauguma savu darbu konfigurāciju, lai iegūtu vislabāko no jūsu darbiniekiem un tīklu.

Stop!

Ko darīt, ja jūs vēlaties pārtraukt jūsu darbiniekiem no braukšanas kādu laiku? Tie visi, kas tur darbojas, reģenerējoša, un mēģina to labāko, lai apstrādātu datus, piemēram, izsalcis kukaiņiem. Atbilde var likties skaidrs, bet tā vērts pievienojot tikai gadījumā, ja tās aizmirst. Vienkārši rediģētu apstrādes skriptu ar izvešanas (0) vai die () vai kādu citu pārskatu, lai nogalinātu savu apstrādes darbu. Svarīgs iemesls, kāpēc mēs vienmēr cenšamies atjaunināt jaunāko apstrādes skriptu pirms palaist!

Demonstrācijas sistēmas

Lai rakstīt šo komplektu īsus rakstus es izveidojis ļoti maza režģi, lai pierādītu, tehnoloģijām un metodēm. Es izlasīju daudz rakstus, pamācības un izmanto dažādus instrumentus, lai setup un pārraudzīt, kas notiek. Nekādā ziņā es esmu izgājis un piesātināts viss birojs ar satiksmi un arī es esmu bijusi piekļuve regulāru personāla locekļiem PC lai redzētu, kā uzņēmējas izpildi skar.

Mana demonstrācijas sistēmas bija ļoti pazemīgs patiešām. Es izmanto manu regulāro desktop izveidota kā darba kontroli serveri. Par šo man bija instalēta MySQL serveri uzstāda izveidota kā meistars replikāciju, PHP , Â un SVN ir saistītas ar apache (par piekļuvi, izmantojot darba ņēmēju VM).

Tad es izveidojis CentOS darbinieks mašīna VirtualBox uz 6 gadus veca Windows XP klēpjdators. Es uzstādīšana plānota uzdevumus, kā noteikts pēc kopēšanas VM uz mašīnu un ļaujiet tai iet.

Virtuālā mašīna tika izveidots ar PHP, gāšanu, un MySQL. Es paņemts filiāli ar nosaukumu "darba ņēmējs" no mana darba kontroli serveriem krātuvi un ir pārliecināts, ka tas varētu atjaunināt, izmantojot "svn update". Tālāk es iestatīšanas mySQL, kā vergu un pārbauda, ​​ka dati ir replicē no MySQL uz darba kontroles servera uz leju, lai darba ņēmējam VM. Pēc visu to es setup bash skriptu un cron darbu.

Mana apstrādes skriptu pamatā gāja pa šo līniju (ļoti vienkāršs stuff):

  • Lasiet nosaukuma laukā
  • Skaitot vairākiem līdzīgiem nosaukumiem tabulu no datu avota notika VM
  • Skaitot vairākus nosaukumus kā iepriekš, bet sadalīšana nosaukums ar atstarpēm (piemēram, vārds, vidus, uzvārds)
  • Atkārtota šo procesu 1000 reizes

Katrs darbs bija aptuveni 20 minūtes, lai palaistu. Vienu brīdi es atvēru vairāki eksemplāri darba ņēmēja VM logi klēpjdatoru un vēroja darbavietas jāpārbauda pie katra darba ņēmēja IP adreses. Šajā brīdī es arī apstiprināja, ka replikācijas automātiski restartēta.

Atstājot klēpjdatoru dīkstāves rezultātā darbinieks sāk procesu, darbu no darba kontroli serveri. Kad atsākšanas klēpjdators izmantošana bija aizkavēšanās aptuveni 30-60 sekundes, tas ir godīgi daudz laika un darbiniekiem būtu jābūt informētiem, ka viņu mašīna var apstāties uz brīdi, kad atgriežoties mašīna. Jaunāka iekārtas var nebūt pauzes šo ilgi. Gada pārstrādes apjoma, ko veic šīs iekārtas laikā tukšgaitas periodos labā būtu vairāk, ka pārsniegs darbinieki, kam jāgaida neilgu laiku (teiksim, 1 minūte) par atved mašīnas rīta (es bieži ilgāk gaidīt, ka šis Windows Defender atjaunināšana, kas notiks), ja tās ir informēta par šo (noderīgs laiks, lai greifers rīta kafiju!).

Kopumā Es jūtos pārliecināts, ka man ir pierādījušas tehnoloģijas, kuras varētu izmantot, lai izveidotu šādu sistēmu. Man ir pierādījusi, ka šāda sistēma darbs (ļoti) maza apjoma un ar vēl daži eksperimentē varētu pastiprināti izmantot resursus biroja tehnika. Ja man nav nokļūt līdz punktam, kā to izdarīt es būtu ļoti ieinteresēts uzzināt / redzēt, ja kāds cits dara.

Secinājumi / novērtējums

Nākamais acīmredzams solis būtu faktiski iegūtu reālās pasaules piemērs un sākt izmantot sistēmu, piemēram, šajā laikā biroja vidē un redzēt, kas notiek. Jautā biznesa apņemties šā bez taka degošs uzņēmumam pierādīt tehnoloģiju un efektivitāti, var būt nedaudz grūti. Grid / Distributed computing ir ļoti populārs, ir dažās aprindās, un ir dažas lielas programmas (BIONC, SETI @ home, Folding @ home, utt.) Es gan nezināju, tomēr, atrast mazāka apjoma un vienkāršu sistēmu, kā šis manā meklēšanu, kas varētu būt jāizrullē robežās biroja vidē.

I izveidojis būtībā bez sistēmas, izmantojot galvenokārt atvērtā koda programmatūras un instrumenti pieejami gandrīz katrā birojā. Tehnoloģijas būtībā bija pierādīta un parādīt, lai veiktu un darba, kā gaidīts. Cerams, ka man ir jāpierāda, ka ar nav daudz darbu un ar ļoti vienkāršu setup jums varat izvietot biroju tīkla skaitļošanas sistēma, kas ir spēcīgs, lēti, Â un pielāgojamiem visi tajā pašā laikā.

Kad sistēma ir izveidota un darbojas gandrīz nav beigas summu pielāgošanu un uzlabojumus, ko Jūs varat darīt. Piemēram, statistika / etalona var viegli pievienot, kurā vērts šādas sistēmas katru dienu. Jaunas iekārtas var pievienot ātri un viegli, un, kad viņi ierodas ar šībrīža aparatūras stiprinot savu pārstrādes jaudu.

Ceru, ka jums patika lasījumā šo rakstu sērija, un tā jums dod vielu pārdomām par braukšanas biroja režģa sistēmu. Risinājums šeit ne vienmēr strādā visās situācijās, bet ir jāspēj pielāgoties, lai jūs, lai saņemtu savu datu pārstrādei, kas veikta, izmantojot savu risinājumu.

Lūdzu, jūtieties brīvi, lai nosūtītu man komentārus, korekcijas vai uzlabojumus, un es darīšu manas vislabāk, lai saglabātu šo rakstu atjaunināts, lai atbilstu.

Zend Framework: pamati - pārskats

Ar , sestdiena 28 novembris, 2009 22:42

Mans darba devējs nesen samaksājis par grupu no mums izstrādātājiem, lai Zend Framework: pamati , protams, šeit es ņemšu apkopot savas domas un viedokļi par virzību uz citiem. Tiem, kas vēlas ietaupīt laiku, šeit ir mans kopsavilkums:

Par attīstītāji, kas nav bijis laika iepazīties ar Zend Framework šajā laikā (Zend Framework: Fundamentals) piedāvā labu vispārējo priekšstatu par sistēmu ievieš jums galvenās jomas un sniedzot pietiekami daudz informācijas, lai turpinātu. Tiem, kuri pavadījuši laiku meklē sistēmā un kam viens vai divi konsultācijas šajā kursā nepiedāvā daudz tālāk.

Fona

Esmu bijis PHP attīstītājs apmēram 5-6 gadiem, un ir sākušas strādāt ar Zend Framework uz komponentu, balstoties uz pēdējiem 6 mēnešiem. Esmu izstrādājusi un / vai bijis attīstītājs par pāris mazu Zend Framework MVC sites. Es būšu godīgs, man nav bijis liels iedarbības citām sistēmām no kodēšanas viedokļa, bet ir pavadījuši vairākas stundas pētot projekta tīmekļa vietnes un novērtēt them. ietvardokumentā un Kopienas apkārtējo Zend Framework ir diezgan aizraujoša, un šķiet, ka pastāv milzīgas iespējas, ja tās turpinās.

Par Kursa

Kurss ir piegādāts pa 9 divu stundu WebEx sesijas (ar 10 minūšu pārtraukumu pa vidu). Laiks tiek pavadīts, veicot virkni slaidu, ko sniedz Zend ar diskusiju jebkurā laikā. Jūs varat izmantot mikrofonu, lai sarunātos ar instruktoru, bet ja godīgi es neredzēju izmantot kāds kaut ko vairāk nekā tērzēšanas logā. Turklāt VMWare Ubuntu mašīna ir ar nosacījumu, ka ir piemēra kods un projektus, kas izveidoti izmēģinājuma versiju Zend Studio. Protams, vadītājs sarunājas ar apmeklētājiem vai nu ar integrētu VoIP risinājumu, vai arī varat zvanīt, izmantojot vienu no daudziem pasaules ripu skaita.

Kursa laikā materiāls sastāv no īsa pamatprogrammas pārskatu un MVC modelis pirms virsraksta paraugu viesu grāmatā pieteikumu. Diskusija parādīja bootstrapping, Zend_Application, DB tabulas, datu bāzu pieejamību, Veidlapas, filtrēšana, ACL, apstiprināšana, utt, utt Būtībā aptver visas tēmas jūs nepieciešama, lai iegūtu pamata vietne izveidota darbojas visu laiku sniedzot jums instrumentus, lai iet un saņemt vairāk uzlabotas ietvaros (lai gan tas bija summa "Skatīt tīmekļa vietni 'daudz laika).

Laiks ir piešķirts kods, pat daži piemēri, kā izstrādāt "viesu grāmatas" un vienkārši "wiki" pieteikumu. Personīgi es jutu, ka sniedzot kodu vai katru app, un tad jautā mums, lai attīstītu to, kas būtībā bija kopija līdzās nav īsti nodrošina labu mācību pieredzi. Būtu gribējies, lai izstrādātu pieteikumu līdzīga, taču ne identiski. uz piemēru pieteikumu ar priekšrocības, kam guide atsaukties uz. Alternatīvi būvniecības pieteikumus no nulles ar demonstrētājs būtu par, iespējams, radīja vairāk jautājumu par to, kāpēc un kādā veidā, tādējādi sniedzot labāku izpratni par sistēmu, galu galā jūs varat meklēt specifiku pēc kursa.

Pēdējā lekcija sastāvēja no darba uz wiki pieteikumu ar palīdzību / ieteikumus no instruktora. Pēc kursa atsauksmes tika pieņemts, tika uzsvērts, vairākas reizes, izmantojot protams, ka Zend notiek atsauksmes ir ļoti nopietni, jo tas acīmredzot mūsu versiju protams, bija pavisam jaunu. Daži no citiem izstrādātājiem, kompānijas spersim gaitā drīz tāpēc būs interesanti redzēt, ja tas ir noticis.

Protams, stils bija neformāla, atļauta atgriezenisko saiti un sadarbību starp dalībniekiem un instruktors. Protams, vadītājs bija draudzīga, sasniedzams (e-pasta adreses tika dalītas uz jautājumiem), un kamēr viņa prezentāciju no slaidiem bija mazliet nestabila likās pilnībā kompetenta ietvaros. Viņš bija acīmredzami kāds, kas izmanto sistēmu, regulāri, nevis kāds, kurš tiek mācīts mācīt, protams, man patika "reālo pasauli" pieredzes šajā ziņā.

Kopumā sajūta

Savā ziņā es atklāju gaitā atkritumu laika, citiem tā bija ļoti ērts. Cerams, ka es nopirkšu savu iemeslu izteikties skaidri, un varbūt sniegt dažas pārdomas vai noderīga atgriezeniskā saite (zinot, man tas ir maz ticams!).

Par sevi Šā kursa mērķis bija pārāk zema līmeņa. Ņemot izgājušas cauri QUICKSTART rokasgrāmatu, izlasiet Rob Allen Zend Framework in Action un strādāja ar regulējumu maz Es īsti iegūt kaut ko pārāk daudz. Es par patika protams, uzņemt no beigām QUICKSTART un attīstīt papildu prasmes.

Tas nozīmē, ka kursa nosaukumā nav skaidri noteikts, "Zend Framework: Fundamentals", un šādā aspektā kurss sasniedz to, ko tā vēlas darīt. Citus locekļi izstrādes komandas, kas nav izlietoti laika ieskatu sistēmā gatavo katras sesijas ar entuziasmu un uzdeva jautājumus, kas bija tiešām jauks, lai redzētu.

Visi nebija zaudēts, tas bija labi pavadīt laiku apstiprina galvenās ziņas par sistēmu un iegūt uzdot pāris jautājumus jomās, kur es nebiju 100%. Tas bija arī laiks, ka es saņēmu apsēsties katru dienu un domāt par kodēšanas, izmantojot sistēmas un turpmākiem projektiem, ko es nebūtu par varējis rīkoties citādi (vai varat iedomāties jūsu uzņēmums piekrīt, ka:)). Pēdējais, bet ne jūs arī iegūt jauku sertifikātu no Zend teikt, ka jūs apmeklēja kursus (lai gan pa e-pastu).

Zend Framework Sertifikācija

Tas bija viens jautājums, kas tur nāk prātā laikā, vai tas sagatavotu mani sertifikācijai? Ātri, vienkārši ir milzīgs Nr. Protams, instruktors bija diezgan skaidrs, ka ar papildu ieteikumu, ka sertifikācijas jums patiešām vajadzētu būt, izmantojot regulējuma ikdienā un jūtas ļoti komfortabli un pārliecināti par tās lietošanu un metodoloģiju.

Kopsavilkums

Ņemot vērā to visu, es esmu rakstiski iepriekš, es jums apkopot visu, kas divas vienkāršas aizzīmju punktiem:

  • Jauns, lai Zend Framework: Šis kurss dara tieši to, ko jūs gaidījāt, tas dod jums jauku ievadu sistēmu un labas zināšanas par pamatus, no kuriem var būvēt. Protams, šķiet, lai radītu interesi un sistēma starp izstrādātājiem entuziasmu.
  • Lietota Zend Framework: Tā bija jauki krastā dažas no ļoti pamati sajutu laiku, pūles un līdzekļus veikt kursu varētu no bijis labāk izlietotās citur. Tas būs jauki, see Zend izveidotu jaunu augstāku līmeni, protams, lai izstrādātājiem, lai nākamajā līmenī -. Vismaz standarta sertifikāciju un ārpus Par to es varētu pierakstīties uzreiz.












Panorama Theme Themocracy

15 Apmeklētāji tiešsaistē tagad
7 viesi, 8 boti, 0 biedri
Max apmeklētāji šodien: 17 pie 04:02 UTC
Šajā mēnesī: 19 pie 19-08-2011 06:09 UTC
Šogad: 130 plkst 28-03-2011 22:40 UTC
Visu laiku: 130 plkst 28-03-2011 10:40 UTC