Posts tagged: Linux

Office Grid segítségével virtuális környezetben - 4. rész

A , péntek december 4, 2009 11:59

Bevezetés

Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartások adatok minden nap, és én már gondolok a közelmúltban arról, hogy az összes gép ülnek minden nap semmittevés órákon át. Nem lenne jó, ha tudnánk használni az olyan berendezést, mely növeli a feldolgozási teljesítmény a rendszerünk? Ebben a statútum fogom nézni a potenciális előnyei foglalkoztat egy irodai hálózat segítségével virtualizált környezetben.

In 3. rész hoztuk létre virtuális géphez és beállítani a Windows gépek lesz tétlen munkaidőben dolgozók.

Futás a legfrissebb kódot

Elkerülhetetlen létrehozása után a dolgozók az üzleti logikát változni fog, meg fogja találni a hibákat, gyorsabb hatékonyabb kódot fog tartalmazni, így elhagyja a munkások ültek körül adatfeldolgozást a régi kódot büdös . De vajon hogyan tudjuk, hogy mi mindig a legújabb és legnagyszerűbb változata a feldolgozó szkriptet?

Van néhány nagyon egyszerű egyszerű módon tudnánk ezt csinálni, a trükk azonban az, hogy csökkentse feldolgozási teljesítmény és a hálózati forgalom ennek elérésében. Kezdjük a legegyszerűbb megoldás, és javítása lassan egy pár iteráció.

Az első módszer az lenne, hogy egyszerűen csak csatlakoztatni kell a munkánkat vezérlő szerver (SAMBA-n, FTP-, vagy hasonló), és húzza le a legújabb verzióját a kódot. Nem túl hatékony, de elvégzi a munkát. Lehetővé teszi, hogy valamelyest javítani, mi a helyzet megteremtése rsync script segítségével, és ahelyett, hogy minden egyes alkalommal? Alternatívaként mi a helyzet üzembe legújabb feldolgozása scriptet felforgatás megnézni a kódot, majd kezdetben csak frissítjük kódot minden távon ( svn update )?

A végén sikerült a végén egy bash script (cron hívja meg minden 10 percben), amely úgy néz ki, ilyen egyszerű:

  #! / Bin / sh
 ha ps ax | grep-v grep | grep php > / dev / null
 majd
     echo "Job jelenleg feldolgozás, exit"
 más
     echo "feladat nem fut, indítsa el most"
     cd / path / to / munka / másolás
     svn update
     php yourJobProcessingScript.php
 fi 

Most már biztosak lehetünk abban, hogy minden egyes távon mi biztosan fut a legújabb kódot. Mi biztosítja ezt frissítjük alapkód minden egyes alkalommal, amikor elvégzi a távon, és csökkenti a hálózati forgalmat csak a fájl átvitele különbségek a hálózat.

Az én bemutató telepítés, tettem pontosan a fentiek szerint. Subversion volt telepítve a munkám feldolgozás szerver és egyszerűen kihúzta a legfrissebb kódot, a "munkavállaló" fióktelep a 'svn update ". Azt is hozzátette, egy verzió számát tag az én feldolgozó script, amely visszakerült az adatbázis részeként az eredmények vissza. Így láttam, hogy a kód volt, hogy minden egyes alkalommal frissített Bemásoltam a csomagtartóban a munkavállaló ága, azaz, hogy én biztosan fut a legújabb feldolgozó forgatókönyvet.

A legfrissebb adatok

Ha a munka feldolgozását teszi adatforrások használata, akkor egy bizonyos ponton, ezek fogják frissíteni is. Ha nem hívja fel a források, egy nagyon ritka alapján fogsz elárasztani a hálózati forgalomhoz, amint a dolgozók elindulnak így mindent a holtpontról. Mert én úgy döntöttem, hogy megoldást szeretnék áthelyezni az Adatforrások körül az én virtuális gépeken.

Tartsa te ló van! Mit tegyek, ha adatforrások ÓRIÁSI? Hát ez valóban egy esetben, hogy mennyi adat is van szó? Lehet, hogy költséghatékonyabb telepíteni egy további nagyobb merevlemez mindegyik géphez, mint vásárolni egy további feldolgozás szerver. Ez a kérdés a költségvetési és akár az üzleti dönteni. Ez lehet, hogy az adatforrások olyan nagy, hogy annak csak kivitelezhetetlen tartani, hogy a tárolt adatmennyiség a munkás gépek. Ebben az esetben mit tennél? Jól tudtunk nézni egy helyi hívás adat szerver, de ez okozhat problémákat a hálózat. Ebben az esetben egy rács rendszer, mint ez válhat irreális felvenni irodai környezetben. Az is lehet, hogy meg lehet keresni az alternatív működési stratégiák, például a hívó csak a dolgozók 20:00-06:00 Minden este és / vagy fojtás adatforrás kéréseket.

Továbbhaladva mondjuk mi adatforrások összeget 100GB adat. Hát igen ez egy kicsit adatok mozogni a hálózaton egy frissítést. Hogyan biztosítjuk, hogy mi van a legújabb másolatot az adatok ebben az esetben? Rsync egy lehetőség, de személy szerint azt hiszem, fut a legfrissebb adatok forrása a bérmunka és a szerver beállítva, mint egy mester replikáció (egy szép hosszú bin log) lehet az út:

replikáció Azáltal, minden a dolgozók ki, mint egy rabszolga, hogy a munkát vezérlő szerver frissítéseket az adatforrások szépen leszivárog a munkások nélkül, ugrásszerűen megnőtt a hálózati tevékenység (vagyis ha végre egy hatalmas adatfrissítés és az összes munkavállaló indítja be egyszerre). Ennek előnye az rsync, hogy te nem kap egy hosszú szünet előtt minden munkát, mint az adatbázis frissítése, a MySQL démon a munkavállaló folyamatosan frissíti az adatokat, miközben a feldolgozás folytatódik.

Ez hogyan beállítani a bemutató szerver. Beállítása replikáció követtem az útmutató a MySQL honlapján ( replikáció beállítása ) és 20 perc alatt ettem inital munkás lemásolják a feladatot vezérlő szerverek adatbázisba. Minden további munkás a replikációs beállításokat és a folyamat minden egyes alkalommal, amikor működött a VM másolták.

Összegzés

Ebben a részben a cikket kerestünk, milyen egyszerű és fájdalommentes ez tartani a feldolgozási kód naprakész using rsync vagy subverion (SVN), hogy ezt a munkát és csökkenti a hálózati forgalmat egyszerre time. Azt is megvitatták, hogyan tartani az adatforrás információi-to-date, lehetővé téve, hogy lecsapódása minden a munkavállalókat. Így biztosítva azt, hogy a területen lépést tartani az üzleti logika és információs irodánkban rács rendszer. Ott minden bizonnyal számtalan alternatívát e feladatok, de itt két egyszerű példát, hogy megmutassuk, milyen egyszerű a megoldás találni.

Legközelebb

Az utolsó részben a sorozat, találóan elnevezett 5. rész , megbeszéljük telepíteni ezt a rendszert. Majd össze az eddig tanultak és mit sikerült létrehozni.

Office Grid segítségével virtuális környezetben - 3. rész

A , péntek december 4, 2009 23:37

Bevezetés

Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartások adatok minden nap, és én már gondolok a közelmúltban arról, hogy az összes gép ülnek minden nap semmittevés órákon át. Nem lenne jó, ha tudnánk használni az olyan berendezést, mely növeli a feldolgozási teljesítmény a rendszerünk? Ebben a statútum fogom nézni a potenciális előnyei foglalkoztat egy irodai hálózat segítségével virtualizált környezetben.

A 2. részben megnéztük a munkahelyek egy szerver fog futni, és hogyan munkahelyeket úgy kell beállítani, annak érdekében, hogy a legnagyobb mennyiségű feldolgozás, biztosítva egyúttal, hogy minden feladat feldolgozása hiba nélkül.

Beállítása a munkavállaló - és petyhüdt szerver

A következő lépés a folyamat, hogy beállítsa a virtuális munkavállalók. Ehhez fogom használni telepítése CentOS VirtualBox segítségével. Meg fogom telepíteni MySQL és a PHP a szerveren, más néven sántítás (Li Nux, ySQL m, P HP) Kiszolgáló (Lehet, hogy tette ezt a nevet fel).

  • VirtualBox telepítése a Windows gépen (az alábbi link)
  • Töltse le és telepítse CentOS (jelenlegi verzió 5.3) belül létrehozott virtuális gép

Nincs értelme lesz nekem erre van talán 1000 's nagy tutorials odakinn (OK, itt van egy: létrehozása és Managing CentOS virtuális gép alatt VirtualBox ). Az Fontos megjegyezni azt hiszem, hogy én felhívtam a virtuális gép GridMachine.

Ami a választásom a virtualizáció és az operációs rendszer kliens megy nincs nagy kényszerítő ok, minden választás. A VirtualBox valamit, amit használni az otthoni gépen, és támogatja a három fő operációs rendszerrel. Úgy döntöttem, CentOS, mint a jó és stabil operációs tudom használni a saját webszervert. Én vagyok egy nagy híve a megfelelő eszközöket a munka (bár én alkalmazása "használja a leggyorsabb és legegyszerűbb neked" mentalitás itt), így ha az operációs rendszer X fut a kód gyorsabban és hatékonyabban használni, hogy helyette :)

Fontos, hogy ellenőrizze, hogy a VM használ DHCP, különben minden egyes új virtuális gépet kellene beállítani külön-külön, ami valami, amit nem használ DHCP want.By nem kell beállítani a hálózati beállításokat külön-külön dolgozó gépek, DHCP átad IPs ki az Ön számára. Ezért tudja másolni a virtuális gépen az Office nem kell aggódni a kiosztásról egyet (ez javítja a skálázhatóság és csökkenti a munkavállaló adminisztráció).

A folyamat akkor tűztek ki célul az lenne, hogy szerezzen be új fizikai gép, VirtualBox install, majd nagyjából bevetni a virtuális kép nem sok mást. Lehet, hogy bölcs, hogy beállít az összes munkavállaló egy másik alhálózaton, így legalább látni, hogy hány gép fut. Azt is el kell állítania a gép egy hosszú távú bérleti vagy lízing korlátlan DHCP.

Hogyan lehet futtatni Jobs a munkavállaló

Ez egy érdekes terület, és számos megalapozott módszereket feldolgozó munkákat a munkavállaló. Itt én csak megvitatják a két legnyilvánvalóbb:

  • Állandóan futó script: A script, legyen az egy shell script, vagy egy PHP script lefut, ha a munkavállaló és fut részeként végtelen ciklusba. Én ezt a módszert diszkontált egyik összeomlik a forgatókönyv és esetleg a munkavállaló megszűnik nélkül fut valamilyen beavatkozásra.
  • Cron alapú parancsfájl végrehajtása: minden X percben a cron démon indul a hívás, hogy a script, hogy mennek a dolgok. Néhány ellenőrzés nélkül vezethet, hogy sok-sok példányban a munkavállaló script fut.

Az én döntésem volt, hogy a cron, amely indul egy shell script minden 10 minutes. Saját shell script a következő feladatokat:

  1. Kap egy futó programok listáját, és ezt szűrnünk 'php'. Ha nem találja, majd folytassa.
  2. Hívja fel a munkát kódot, az én esetemben ez valami php alapú
  3. Munkás szkript befejezi a run
  4. Ready to go again a következő megfelelő hívás

Saját bash script így néz ki a következőket:

  #! / Bin / sh
 ha ps ax | grep-v grep | grep php> / dev / null
 majd
     echo "Job jelenleg feldolgozás, exit"
 más
     echo "feladat nem fut, indítsa el most"
     php yourJobProcessingScript.php
 fi 

Megjegyzés: a visszhang-k szinte teljesen értelmetlen, de segíthet a következő személyt, aki jön, hogy megpróbálja szerkeszteni őket.

Megállapítja, hogy a felállított a munkavállaló virtuális gép, gyors, egyszerű és könnyen másolható, hogy minden új darab hardvert érkezik. Az "okosság" a távvezeték-rendszer valójában nem a megjelenített operációs rendszer, annak minden köze a kód munkahelyet teremtett a folyamat, a munka konfigurációt, és ügyelve arra, hogy a feladat fut, ha megfelelő (vagyis, ha a fogadó tétlen ).

Beállítása Windows inicializálása Munkáspárt

Az első feladat, hogy kidolgozza a parancs futtatásához szükséges virtuális gépet a Windows parancssorban. Ha már telepítette a VirtualBox az alapértelmezett helyre, és már dolgozó GridMachine nevezte el a parancs szükséges töltse fel munkavállaló:

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

Azonban futtatni a scriptet egy "fej nélküli" állapotban meg kell használni:

  "C: \ Program Files \ V \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = off 

Ez el fogja indítani a virtuális gépet anélkül, hogy a GUI-t és hagyjuk, hogy mentse az állami kecsesen. A második érv kikapcsol RDP, így nem ütközik a Windows RDP, vagy kapsz egy üzenetet figyel a 3389-es port. A virtuális gép neve nagybetű érzékeny!

Ezután szükségünk lesz, hogy hozzanak létre ablakok elindítására a munkavállaló, ha a VM gép nyugalmi állapotban van. Ehhez (Windows XP), akkor be kell menni a Start -> Minden program -> Kellékek -> Rendszereszközök -> Ütemezett feladatok az alábbiak:

Ütemezett feladatok

Ezután kattintson a "Ütemezett feladat hozzáadása" majd keresse meg hozzá egy egyéni program. Keresse meg a VBoxManage script, majd kattintson az OK gombra. Ütemezése a feladat bármilyen kiegészítő (fogjuk megváltoztatni ezt egy perc), és folytassuk. Miután kihagyva a következő képernyőn a Windows megkérdezi, hogy kivel szeretné futtatni ezt a feladatot, azt javaslom vagy a "Rendszergazda" vagy létrehoz egy új jogosultságokkal rendelkező felhasználóként. Ne feledje, nem akarunk beavatkozni a standard személyzeti fiók a gép bármely ponton. Kattintsunk a Tovább gombra, és ellenőrizze További keresési lehetőségek erre a feladatra.

A végén a futam szövegdobozba hozzátesszük, hogy "startvm GridMachine" string és arról, hogy futás csak bejelentkezett marad unticked. Látogasson el a következő feladat ütemezése és az ütemterv módosítása legördülő azt a lehetőséget, "üresjáratban", válassza ki azt az időt szeretne lenni a gép tétlen, mielőtt a következő lapon.

Végül untick a lehetőséget, amely kimondja, leállítja a feladatot, ha már fut az X ideig, de ne jelölje be a lehetőséget, hogy állítsa le a feladatot, ha a gép már nem tétlen.

menetrend

Ennyi az egész, akkor a windows telepítő fogadó!

Összegzés

Ebben a részben az általunk létrehozott egy virtuális gépet, hogy működik a munkavállaló, valamint az a mód, ahogyan mi nevezzük, és végre mi feladatunk feldolgozó szkriptet (magamnak egy PHP script). Innen nézzük meg, hogyan kell beállítani a másolatot a Windows elindul a virtuális gép a fej nélküli módban, amikor a számítógép felszabadul, és mentse az állapotba, amikor a felhasználó újra a gép használatát. Remélhetőleg ezen a ponton látsz, milyen egyszerű ez, hogy hozzanak létre egy ilyen rendszert, és a viszketés, hogy néhány kísérletet megy magad!

Legközelebb

A 4. rész fogjuk vizsgálni az eszközök használatával, annak érdekében, hogy te a legfrissebb verziót a kód és az adatok forrásait, így kapott eredmény mindig up-to-date a legújabb üzleti információk és a logika.

Office Grid segítségével virtuális környezetben - 1. rész

A , péntek december 4, 2009 11:23

Bevezetés

Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartások adatok minden nap, és én már gondolok a közelmúltban arról, hogy az összes gép ülnek minden nap semmittevés órákon át. Nem lenne jó, ha tudnánk használni az olyan berendezést, mely növeli a feldolgozási teljesítmény a rendszerünk? Ebben a statútum fogom nézni a potenciális előnyei foglalkoztat egy irodai hálózat segítségével virtualizált környezetben.

Mint egy PHP fejlesztő fogom használni eszközöket használ, hogy én minden nap nevezetesen, Linux, MySQL , PHP, VirtualBox és a Subversion (SVN). Azonban remélem, ez az útmutató alkalmazkodni a más nyelvek és technológiák ugyanolyan jól.

A megoldás biztosítja azt is nagyon lazán típusa alapján a feldolgozás azt kéne elérni, azonban ez nem lehet igaz az egész cikket fogok változni fog, az egyszerűség kedvéért, vagy hogy több érdekes használat módja.

Ezek a virtualizált környezetek fog futni a Windows gépeken, hiszen ez az, amit a legtöbb irodák futnak. A feldolgozás az irodai gépek végzik, nem sérthetik a személyzet használja ezeket a gépeket, amennyiben nem igényelnek karbantartást a gépen, és könnyen telepíthető az új gépeket, amint elérhetővé válnak. Továbbá, az új virtuális gépeket nem igényel semmilyen további konfiguráció, mert ez nagyban csökkenti a skálázhatóságot és könnyű, ahol a grid-rendszer bővíthető.

Miért telepítése az Office Computing Grid?

Először is meg lehet gondolkodni, miért nem használja a cloud computing erőforrás, mint az Amazon EC2 platformon ? Nos, a több oka lehet, például:

  • Ön nem bízza bizonyos adatok a cloud computing környezetben
  • Nem lehet tenni bizonyos adatokat egy cloud computing környezetben jogi okokból (pl. adatok elhagyja az országot), esetleg jogi okokból, pl NHS rekordokat.
  • Meg akarja tartani a feldolgozó egységek közelében, és teljes ellenőrzése alatt a hardvert is
  • Nem kell a projekt alapok futtatni felhő példányok
  • A hivatal nem rendelkezik az internettel kapcsolatban, és ezért annak nem lehet használni a felhő erőforrás
  • Nem tetszik az eső, felhők utalnak az eső, ezért tartsa távol

Biztos vagyok benne, a listát folytathatnám, de azt hiszem ennyi elég is egyelőre.

Előnyök az Office Computing Grid

Nos, lehetővé teszi, hogy némi matematika (és a fizika igazi stílus segítségével, hogy néhány lendületes feltételezések szerint). Képzeld el, hogy nagy húsos feldolgozó szerveren futó 100 munkahely naponta. Ebben az irodában van 50 gép, amely használaton kívül van 16 órát egy nap, minden egyes ilyen gépek 10% olyan erős, mint a húsos feldolgozás sever. (Minden eredmény itt vannak kerekítve, hogy alábecsülik a teljesítmény növekedés).

Szóval, 1 gép * 10%-os teljesítmény * 2/3 = 0,067 alkalommal azaz 1 asztali feldolgozás üresjárati időben képes feldolgozni 6 teljes napi feladatok számát.

Ha most ezt fel átméretezni tart 15 tétlen asztali feldolgozni annyi napi feladatok, mint a fő szerver feldolgozása teszi.

Tehát az irodai mintha 50 gép tudtuk növelni a feldolgozási teljesítmény 1 szerveren akár 4 teljes feldolgozására szerver, vagy mi lehet feldolgozása a napi feladatok számát 400 helyett 100.

Megjegyzés, a beruházás nem új hardver a cég nemrég növelte kötegelt feldolgozási kapacitása 4-szer! Potenciálisan fogsz növelje az energiafogyasztást, hanem a legtöbb irodai környezetben voltam, hogy a gépek általában marad éjszakára, úgyhogy látni lehetett ezt a zöld kezdeményezést.

Más előnyök is jelenti, hogy az új beruházás (vagy frissített) feldolgozás szervereket lehet halasztani, ha az irodai gépek elegendő, és ahogy a hatalom javítják az irodai berendezések az irodai hálózat lesz erősebb automatikusan.

Technologies

Mire van szükség? (Vagy pontosabban mit tudom használni):

  • Idle irodai gép (az én esetemben egy tartalék régi windows XP laptop)
  • VirtualBox (vagy más virtualizációs kliens szoftver)
  • A virtuális gép PHP, MySQL running futtató OS kivágták, hívom én ezeket a Limp szerverek :)
  • Jobs futtatásához
  • Állás szerver (lehet egy másik virtuális gép valahol)

Tipikus Jobs

Azok a munkakörök, hogy ezt a rendszert úgy tervezték, hogy a következő:

  • A rendszer kap egy listát az adatok, amelyek alapján meg kell egyeznie, és visszatérjen eredményei
  • Hozzáillő ellenőrizzük / keres több (viszonylag statikus) adatforrások
  • Adatforrásokból származó eredmények kérhet további érvényesítése, összevonása, ellenőrzése további adatforrások válaszul eredmények
  • Az adatok vissza a megfelelő rekordot, teljesen hitelesített és feldolgozott
  • Minden rekord egy feladat független a többi

Tehát alapvetően mi fut éppen a munkahelyek, amelyek megkövetelik a keveréke adatbázis lekérdezések és egyes számok érdekelték, egy meglehetősen tipikus forgatókönyv egy üzleti környezetben.

Grid megoldásai nem csak előnyös a feldolgozó munkák az ilyen típusú. Alapvetően minden olyan folyamat, amely lehet osztani önálló egységként lehet futtatni párhuzamosan. Lásd ezt a wikipedia példákat és további információ: Grid Computing , de néhány híres példa Seti @ Home és BIONC . Vannak keretek futó számítógépes hálózatokat, és ezek is érdemes vizsgálja.

Mit fogunk elérni?

Végére ezek a cikkek, remélem azt mutatják, hogy egy irodai hálózat kiépítése nem kell rendkívül drága, vagy időigényes. Fogok beszélni:

  • Beállítása a munkát ellenőrző rendszer, munkahelyi konfiguráció
  • Létrehozása a megfelelő feldolgozó virtuális gép
  • Hogyan állítsuk be a rendszert egy Windows gép
  • Biztosítva, hogy Ön használja a legfrissebb kódot és adatok
  • Telepítés és benchmarking
  • Előretekintés

Én leszek épület (ok én építettem, majd megírta ezt) egy példa alkalmazást tesztelni a fogalmak helyi gépen a Windows XP és az én "GridMachine" virtuális gép. Az én feladatom lesz a vezérlő szerver gép, amely a fő fut Fedora 11 .

Ezt nem akarom bizonyítani egy teljesen működőképes robosztus rendszer, annak többet jelentett egy demonstrációs és megvitassa azt mutatja, hogy ezeket a dolgokat el lehet érni egy ésszerűen rövid idő alatt és alacsony költséggel. Kérjük, bátran küldje el nekem minden megjegyzést, korrekciót, vagy a fejlesztések és én mindent megteszek, hogy tartsa ezt a cikket frissíteni kell felelniük.

Legközelebb

A 2. részben fogom kezdeni nézi a munkát ellenőrző rendszer, és megnézzük, hogyan munkahelyeket úgy kell beállítani, annak érdekében, hogy a legnagyobb mennyiségű feldolgozás, biztosítva egyúttal, hogy minden feladat feldolgozása hiba nélkül.

Office Grid segítségével virtuális környezetben - 2. rész

A , péntek december 4, 2009 11:23

Bevezetés

Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartások adatok minden nap, és én már gondolok a közelmúltban arról, hogy az összes gép ülnek minden nap semmittevés órákon át. Nem lenne jó, ha tudnánk használni az olyan berendezést, mely növeli a feldolgozási teljesítmény a rendszerünk? Ebben a statútum fogom nézni a potenciális előnyei foglalkoztat egy irodai hálózat segítségével virtualizált környezetben.

Az 1. rész áttekintést adtam a rendszer és technológiák fogom használni, valamint tárgyalt néhány a lehetséges okok, hogy miért szeretne létrehozni egy irodai hálózatba.

Állás vezérlés

Ha meg akarsz futni munkahely akkor lesz szükségünk valamilyen módon kezelni őket. A te dolgod ellenőrzési rendszer (a munka szerveren) kell igazán jól átgondolt, még mielőtt megpróbál futtatni egy irodai hálózatba. Tehát először is, mi a feladata állást rendszer:

  • Osztogatásával munkahely kérésére dolgozók
  • Mondja dolgozók milyen típusú munkákat futtatásához
  • Pálya munkahelyek
  • Ügyeljen arra, hogy a feladatok csak akkor fut, ha
  • Adja meg a feladattal kapcsolatos adatok dolgozók, vagy legalább mondd meg nekik, hogy hol kap ez

A rendszer bővíthető kell lennie, egy megoldás, ami most egy esetben meghosszabbítható futtatására többféle munkahelyet teremteni, mint az üzleti látja érdemes egy grid megoldást. Például, a munkahelyek kerülhetnek a prioritásokat, több típusú munkát is léteznek (azaz több kód bázisok), végül akkor is futhat különböző gépek, amelyeknek a munkavállaló optimalizálva minden típusú feladat (bár ez nem távolodnak az "általános munkás "ötlet). Mindig próbálj gondolkodni a jövőben, amikor rendszereket fejleszt ki, a rövid távú elképzelések vezethet hosszabb távon és nagyobb frusztrációt a fejlesztési időt.

Job Server

Elmegyünk valahová kell kontrollálni a munkahelyek, ez legyen az egyetlen rendszer, amely a rács fix Resource Locator, lehet, hogy egy IP-cím, host név, URL (a belső DNS), stb Ennek oka A munkavállalóknak tudniuk kell, hol keresse a munkahelyek, a munkavállalók meg kell találni a munka ellenőrzési rendszer (nem a munka ellenőrzési rendszer megtalálja a munkavállaló).

A munka szerver maga nem igazán bonyolult feladat (egy alap rendszer egyébként), hogy kell tárolni egy listát a munkahelyek, munkahelyek kezét, kap eredményeket, majd tárolja őket későbbi visszakeresés. Hogy ezek a részek (mint például a "kezét munkahely") meghatározása is nagyon alap. Később tudjuk kiterjeszteni a rendszer tartalmaz egy adminisztrációs felületet felvenni, szerkeszteni, törölni, felfüggeszteni munkahely de ez túl ezt a gyakorlatot.

Nem ok nélkül, akkor a munkád, hogy szerver nem egy virtuális gépen belül futó szerver a fő feldolgozás, feltéve, hogy nem folyik túl sok erőforrást belőle. A munka azonban nem kell szerver magas rendelkezésre állás, ha lemegy a péntek este fogsz veszíteni egy egész hétvégét a feldolgozás, esetleg olcsóbb neked egy pár hétig értékű feldolgozás (összehasonlítva a főbb feldolgozó kiszolgáló egyedül) . Ha akarod, fontolja meg a munkát a szerver terhelése kiegyensúlyozott környezetben a magas rendelkezésre állás.

Alapbeállítások

Az alap beállítás a mi feladatunk szerver áll, amit hívom az én egyik Limp szerverek (azaz Li Nux, ySql m, P LE). A kód fut Thea munkavállalók ténylegesen dolgoznak ki milyen munkát tud futni kölcsönhatásban áll a munkahelyek rendszer adatbázisok. Később sikerült létrehozni egy webes szolgáltatás és ténylegesen kezét munkahely helyett, amelyek a munkások csinálnak maguknak a kemény munka, de most fogunk továbbra is használja a KISS elv (Keep it Simple, Stupid!).

Szóval, lehetővé teszi létre három mySQL táblákat kezelni munkahely. Ezek lesznek a `munkahely`, `jobRecords`, `és` jobResults.

munkahelyek táblázat Itt vagyok használ SQL Buddy egy jó kis alternatívát phpMyAdmin csak azért, mert az egyszerűbb telepíteni a CentOS (mások lásd: 10 Nagy alternatívát phpMyAdmin )

Ez a tábla áll, 5 egyszerű mezők,

  • id: egyedi azonosítására a munkát
  • név: Lehet, hogy egy ügyfél hivatkozás, vagy akárhány más azonosítók
  • Állapot: Tudnod kell, ahol a munka van, például
    • 0: nem indult
    • 1: felkapott
    • 2: Kész
  • started_by: Ki elkezdtem a munkát? Ez nem teljesen szükséges, de szép volna. Én javaslom nyomon munkavállalók saját IP-címet a hálózat számára
  • started_at: Mikor indul a munkavállaló a munkát? A nyomkövető munkahelyek nem fejeződik be X ideig tudjuk szükségünk, hogy vegye fel a munkát, és kezdje újra egy másik feldolgozó munkás. A munkavállalók tudta megállítani feldolgozás / offline tetszőleges számú oka, áramkimaradás, összeomlás, hálózati veszteség, stb

Könnyen hogyan lehetne kiterjeszteni táblázatban néhány kiegészítő mezőt, hogy a statisztikai követés, a befejezési idő oszlopot, hogy mennyi ideig tartott a munka, egy számlálót, hogy hány munkavállaló felvette a munkát (nyilván ez inkább szükség 1), munka prioritás, a lista megy tovább és tovább. A bonyolultabb feladat forgatókönyvek lehetséges lenne meghatározni, hogy mennyi memóriát a munkavállaló számára hozzáférést kell biztosítani (és ezért csak megfelelő dolgozók), vagy akár a munkavállaló milyen típusú lenne szükség.

Lehetővé teszi, hogy adjunk néhány példát munkahelyek:

például munkahelyek

A következő táblázat ismét nagyon egyszerű megérteni, ezek munkánk rekordok. Ezek kapcsolódnak a fő munkában asztal mellett oszlop `` jobs_id. Az alkotó az ebben a táblázatban nagyon sok múlik az adatokat, hogy meg kell adnia a munkavállalóknak, lehetővé teszi, hogy egy nagyon egyszerű példát, ahol már négy oszlopot tartalmaz:

  • id: Azonosító a rekord
  • név: személy neve
  • Cím: Személy címét
  • jobs_id: a feladat azonosítóját ez a rekord kapcsolódik

A harmadik és egyben utolsó asztalon áll egy asztal eredmények, sokkal ugyanazt teszik ki Adataink asztalra, azzal a kiegészítéssel, néhány oszlopot lehet része a rekordok táblázat:

  • job_record_id: Link az eredményt a feladatot
  • Eredmény: Az eredmény adatok

... És ez minden, amire szükség van ellenőrző munkát! (Bár ez egy nagyon alap szinten) Az én esetemben vagyok arra, hogy egy másik asztalhoz, ahol az adatokat feldolgozni volt található, de ez ugyanúgy volt egy fájl, paraméterek szimulációs programot futtatni, akkor nevezd meg.

Kiválasztása egy munkát

Mint azt korábban jeleztük, a munkavállalók a dolgunkat menedzsment nekünk most, így minden meg kell tennie, hogy valóban talál munkát igénylő feldolgozása és az információk beszerzése. Hogyan csináljuk ezt? Hát vedd munkánkat kiválasztási kritériumok és keresnek állást, az SQL-én az alábbi:

  1. Tegyen meg minden munkahelyet, amelyek nem jelölt teljes, de a mi munkás és állítsa vissza őket (cseréld __ ME__ azonosítójával, legegyszerűbb lenne IP-cím):
      UPDATE `SET` `munkahely` status = 0 WHERE `status` = 1 ÉS started_by `` = __ ME__; 
  2. A mi feladatunk, kiválasztási kritériumok, jelöljön ki egy feladatot, és mondd el a rendszer, hogy ez a munkavállaló foglalkozik vele:
      UPDATE `SET` `munkahely` status = 1, started_by `` = __ ME__, started_at `` = NOW () WHERE `` status = 0, vagy
     (`Status` = 1 és a `` started_at> DATE_SUB (NOW (), intervallum X óra)) ORDER BY `id` ASC; 

    Azzal megragadta a munkahelyek még nem tértek vissza eredményeket X ideig tudjuk biztosítani, hogy minden feladat futtatása esetén a munkavállaló összeomlik, vagy megy AWOL.

  3. Következő megragad a munkahelyek részleteket majd magukat a rekordokat:
      SELECT * FROM `munkahely` WHERE `` = __ started_by ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __ JOBID__; 

Befejezésekor a munka, amit be is eredmény rekordok és jelöljük ki a teljes munkát. Ne feledje, a munkahely Suspend / Resume bármikor lehetővé teszi néhány robosztusság a script. Lehet, hogy felfüggeszti a feladat felénél frissítésével a munkát ellenőrző rendszer, így ellenőrzi a rekordok száma munkát, és a találatok számát mentette vissza a munka ellenőrzési rendszer lenne bölcs lépés.

Ezen túlmenően, miközben bemutatja, hogyan lehet ezt a munkahelyet lehet kiválasztani, és sikerült egy SQL-lekérdezés keret akkor tényleg kell referáló munkád szabályozás, hogy ha úgy dönt, hogy átvált egy webes szolgáltatás, a fájl alapú rendszer, XML , vagy bármely más Számos rendszer nem fogja befolyásolni a kód fölé.

Állás Configuration

A következő szempont annak megállapítása, a feladat nagysága és konfiguráció. Ha játszol a munkahelyek konfiguráció tudunk teremteni egy kiváló egyensúlyt a sebesség, a replikáció folyamatát, és a megbízhatóság. Vegyünk egy pár OFA forgatókönyvek:

  1. Állás hogy 1 nap minden futtatni: Ez azt jelenti, hogy a dolgozók 15 napon belül kell dolgozni minden munkát (emlékezzünk 10%-a hatalom számára az idő 2/3-a). Ez nyilvánvalóan nem bölcs konfiguráció, a feladat nagysága nem túl nagy! Lenne, hogy legalább kétszer az idő, hogy kap munkát kell feldolgozni a kezdeti munkás megy AWOL (idő, hogy vegye fel, hogy nem tért vissza következtében plusz újrafeldolgozó idő). In an ideal you'd have at least one full job easily cleared by the end of each long idle period, that way you keep the jobs ticking over and at worst case a job would take two days to process should the first go missing.
  2. Foglalkoztatáshoz 1 perc futtatni: Ez azt jelenti, hogy a dolgozók körülbelül 15 percet futni minden munkát. Bár kezdetben úgy tűnik, ez ideális, kapsz további munka során feldolgozásra ebédidő, kávészünet, találkozók, stb ez a forgatókönyv teszi törzs egyéb területeire is a rendszer, és bemutatja a saját problémáit. Például, először a setup / feldolgozási idő arány fog menni jobbra lefelé, ezért elveszti a rendszer hatékonyságát. A hálózat lesz állandó folyamatos munka az információkat a különböző munkások idegesítő munkatársak, akik dong a napi munkában. Te is megy, hogy nagyobb terheket ró a munkát feldolgozó kiszolgáló mivel olyan kiadagol sok-sok apró munka rendszeresen. Végül, ebben a helyzetben, ha a szerver leáll munkát akarsz létrehozni egy hatalmas hátsó napló befejezetlen munka míg a nagyobb munkahely eljárás folytatása szerencsére tisztában azzal, hogy a munkát kiszolgáló nehézségekkel küzd.

A valóságban nem lesz egy ideális konfiguráció a hálózat beállítása, sok függ a rendelkezésre álló forrásokat fajta munka, munka átfutási idő követelményeknek, a hálózati képességek, és így tovább. Azonban néhány iránymutatást a következő lenne:

  • Méret munkahelyet úgy, hogy minden munkavállaló képes átjutni legalább 3-4 munkahelyet egy olyan időszakban, 15 óra (valószínűleg a leghosszabb készenléti idő)
  • Játssz a feladat méretének úgy, hogy a beállítási idő lesz viszonylag jelentéktelen, mint a feldolgozási idő (figyelembe véve a fenti pont).
  • Ha a munka nem fejeződött be a duplája az idő (esetleg kevesebb) azt várod, hogy a befejezéséhez feltételezni, hogy az elmúlt AWOL és elkezd feldolgozás másik munkás. Ez azt jelenti, hogy lehet várni akár háromszor a szokásos ideje van állás nélkül, hogy teljes (esetleg hosszabb ideig, ha a következő feladat sikertelen). Érdemes időt csökkenteni, de vigyázzon, hogy ne csökkenjen túl nagy, mivel lehet kezdeni kétszeres feldolgozási feladatokat rendszeresen.
  • Jobs függetlennek kell lennie a külső követelmények a lehető legnagyobb mértékben. A munka szervert, például, csak a kapcsolatot elején és végén minden munkát.
  • Soha nem telíti a hálózatot, ez két negatív hatásai, a nappali személyzet fogja találni a hálózat használatáról és frusztráló lehet a problémákat tapasztalt kapcsolat időtúllépés a probléma, hogy csak rosszabb lesz, mint átméretezi a rács.
  • Biztosítani munkahely fut a munkavállalókat. Ha munkahelyet vált, vagy túlságosan memóriaigényes lemezterület intenzív munkahelyek indul megszakítása és az egyetlen dolog, észre fogod venni, egy csepp a munkahelyek számának feldolgozása nincs valódi oka.

Az eredmények közlésekor a Job

Benyújtásakor a munka eredményeit, fontos ellenőrizni, hogy az eredményeket nem nyújtották be másik munkás, különösen, ha a jelenlegi munkavállaló a szunnyadó egy ideig.

Amikor eredményt nyújtják be arról, hogy a találatok száma megegyezik a rekordok száma belüli munkát.

Mint azt korábban jeleztük, és nem lehet eléggé hangsúlyozni, épít be hibatűrő munkát visszakeresés és az eredmények benyújtását. A munkavállalók (és valószínűleg fog) pihenő módban megy a legkellemetlenebb az idők, és ezt kell gondoskodjanak. Emellett ismét referáló el az eredményt benyújtási segít kielégíteni a jövőbeni változtatásokat a munka ellenőrzési rendszer sokkal könnyebb kezelni.

Összegzés

Ebben section kerestünk, hogy milyen munkát vezérlő szerver kell tennie és hogyan, hogy egy nagyon alap rendszert hozzanak létre. Megbeszéltük, hogyan kell lekérdezni a feladatot a rendszer, és hogyan lehet a legjobban beállítani munkahelyeket, hogy a legtöbbet mi az Office rács rendszer. A befejezéshez, egy vagy két bekezdést az eredmények közlésekor vissza a munkát vezérlő szerver került bemutatásra.

  • A munka vezérlő szerver kezeli a munkahelyek és biztosítja, hogy a munka elvégzése egység
  • A referáló munkád select / eredmények benyújtását meg tudjuk változtatni a technológiát a vezérlő szerver nélkül sok probléma
  • Állítsd be a munkahelyeket, hogy futnak a gyors és hatékony, anélkül, hogy túl nagy nyomás nehezedik a hálózati infrastruktúra, és a feldolgozási feladatok megkettőzése nélkül rendszeresen.
  • Ellenőrizze, hogy építsen a hibatűrés és hiba checking be a rutin, a munkavállalók felfüggesztheti és újra, és a legkellemetlenebb az idők. Ne felejtse el ellenőrizni, hogy az eredmények már benyújtott egy másik munkás.

Legközelebb

A 3. rész hozunk létre a virtuális géphez és létrehozta a windowsos gépek lesz tétlen munkaidőben dolgozók.

Office Grid segítségével virtuális környezetben - 5. rész

A , péntek december 4, 2009 11:03

Bevezetés

Dolgozom a vállalatnál, ahol sok fut kötegelt feladatok feldolgozására millió nyilvántartások adatok minden nap, és én már gondolok a közelmúltban arról, hogy az összes gép ülnek minden nap semmittevés órákon át. Wouldn't it be good if we could use those machines to bolster the processing power of our systems? Ebben a statútum fogom nézni a potenciális előnyei foglalkoztat egy irodai hálózat segítségével virtualizált környezetben.

A 4. rész néztük eszközök segítségével annak érdekében, hogy mi a legfrissebb verziót a kód és az adatok forrásai, így kapott eredmény mindig up-to-date a legújabb üzleti információk és a logika.

Pre-Deployment

Telepítése előtt a rács rendszert, ha van még egy dolog, amit teszel, és egy dolog egyedül ez viszonyítási alap a jelenlegi rendszer! Nem számít, mit mondani kollégákkal arról, mennyi plusz munkát a rendszer fog csinálni, ha nincs számok ezt alátámasztanák a garanciák semmit. Szóval,

  • hány rekordot tud feldolgozni jelenleg? Naponta? Óránként?
  • Mennyi ideig tart általában veszi, hogy megforduljon a munkát?
  • Mennyivel több kapacitás van?

Van még további kérdések:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • Milyen előnyöket mit remélem / várni, hogy egy grid-rendszer?
  • Are your office machines capable of running the jobs?
  • Van saját (vagy tudsz munkahely alakítható), hogy ebben a stílusban wrok a futás?

Az utolsó nagy lényeg az, hogy az idejét minden jelentősebb változás, mint ez. Frissítse feldolgozási kód dolgozni az új módszertan, benchmark újra. Esetleg létre a feldolgozó szerver fut egy virtuális gép, elvégre a feldolgozási szerver csak egy másik munkás (csak egy nagyon erős egy viszonylag). Hagyjuk az új folyamat, hogy rendezze.

Deployment

A véleményem az lenne, hogy felbukkan az irodába egy hétvégén végre minden a telepítés és beállítás. Ehhez előtt kéthetes nyaralás, és hagyja, hogy más szegény fickót, hogy foglalkozik a következményekkel ... talán nem ...

Deployment egy ilyen rendszer van, hogy lassú. Annak ellenére, hogy viszonylag egyszerű, hogy hozzanak létre ez a rendszer hatással lesz a teljes irodai infrastruktúrát (és a digitális 1). Először is, kigurul egy pár gép egy időben, a hálózat forgalmát figyelik, hogy a munkavállaló házigazdák végre egy napról-napra. Lehet, hogy változtassa meg a munkát konfiguráció válaszul az eredményeket.

Miután a rendszer sikeresen telepedett néhány gép (mondjuk 10%-a irodai gépek, azaz 5) folyamatosan hálózati forgalom figyelése és a fogadó gép performance. Következő benchmark újra, akkor most meg kell feldolgozás 33%-kal több munkahelyet, mint az első kritériumot. Ellenőrizze, ez így van, hogy te vagy legalábbis ebben a stadion. Ha nem, vizsgálja ki, mi történik, mielőtt tovább. Ismételje meg ezt a ciklust, amíg mindannyian boldogan irodagépek futó nélkül gyilkos egyedi gép teljesítményét, illetve a hálózat köszörülés a holtpontról.

Mindenkor tartsa teljesítményértékelés, az összes telepítések után is készülnek. Ellenőrizze, hogy az új kód frissítések befolyásolja a rendszer sebességét, ellenőrizze az összes munkavállaló jelentette be a munkahelyek és a feldolgozás. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

Mi van, ha abba akarja hagyni a munkavállalók futó valamikor? Ezek mind ott fut, regeneráló, és megpróbálja a legjobb, hogy az adatok feldolgozását, mint éhes rovarok. A válasz nyilvánvaló, de úgy tűnik, hogy érdemes hozzátéve, hogy csak abban az esetben figyelmen kívül hagyják. Egyszerűen szerkesztheti a feldolgozó script egy exit (0) or die () vagy más nyilatkozatot, hogy megölje a feldolgozási munkát. Egyik fontos oka annak, igyekszünk frissíteni a legújabb feldolgozás script előtt távon!

Bemutató rendszer

Annak érdekében, hogy megírom ezt több rövid cikket készítettem egy kis rács bemutatni a technológiák és módszerek. Olvastam sok cikkek, oktatóanyagok, és használják a különböző eszközöket beállítani és figyelemmel kísérjék, hogy mi történik. Semmiképpen nem mentem ki, és telítetté egy egész iroda a forgalom és nem tettem volna hozzá egy állandó személyzetének tagjait, hogy milyen PC teljesítményét fogadó érintette.

Az én demonstrációs rendszer valóban nagyon alázatos. Én használtam a desktop jön létre, mint munkát vezérlő szerver. Ezen én már telepítve MySQL szerver telepítve jön létre, mint mester replikáció, PHP , Â keresztül kapcsolódnak egymáshoz és az SVN apache (hozzáférés révén munkás VM).

Aztán létrehoztunk egy CentOS munkás gép VirtualBox egy 6 éves Windows XP laptop. Állítom ütemezett feladatok meghatározott másolás után a VM a gépre, és engedd el.

A virtuális gép jött létre a PHP, felforgatás, és a MySQL. Megnéztem fióktelep nevű "munkavállaló" az állásomból control szerverek adattár és gondoskodott arról, hogy lehet frissíteni a 'svn update ". Következő állítom mySQL, mint egy rabszolga, és meggyőződtek arról, hogy lemásolják az adatokat MySQL a munkát vezérlő szerver le a munkavállaló VM. Mindezek után állítom be a bash script és cron.

My processing script basically went along the lines of this (very simple stuff):

  • Read in the name field
  • Megszámoltuk a hasonló nevek egy táblázatban az adatforrás tartott a VM
  • Megszámoltuk a nevek azonban a fenti felosztása a név, szóközzel (pl. keresztnév, középső, vezetéknév)
  • Ismételt ez a folyamat 1000-szer

Each job took approximately 20 minutes to run. Egy ponton kinyitottam több példányban VM munkás a Windows laptop, és figyelte a munkahelyek le kell ellenőrizni az egyes IP-címek a munkavállaló. Ezen a ponton azt is megerősítette, hogy a replikáció automatikusan újraindul.

Indulás a laptop készenléti eredményezte a munkavállaló elkezd dolgozni feladatokat a munkát vezérlő szerver. Amikor a laptop használata folytatása volt a késés körülbelül 30-60 másodpercig, ez elég sok időt és személyzetet kellene tudatosítani, hogy a gép szünet egy rövid ideig, amikor visszatérve a gép. Az újabb gépeken nem lehet szünet a hosszú. Az előny összegének feldolgozást végzik ezek a gépek üresjárati idők során több mint ellensúlyozza munkatársak kelljen várni egy rövid ideig (mondjuk 1 perc) az érkező gépeiken A reggeli (Én gyakran várni, hogy ez a Windows Defender frissítse a sor), amennyiben ők állították ennek tudatában (hasznos idő, hogy megragad egy reggeli kávé!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. Megmutattam, hogy egy ilyen rendszer működik egy (nagyon) kis méretű és némi kísérletezés is többet kell szorozni kihasználni a források egy irodai gépei. Ha én nem értem, hogy a pont ezt én is nagyon érdekelt, hogy tudja / látni, ha valaki mást csinál.

Következtetések / Értékelés

A következő lépés nyilvánvalóan az lenne, hogy tényleg kap egy valós világból vett példákkal, és elkezdi telepíteni a rendszert, mint a munkahelyi környezetben, és meglátjuk, mi történik. Kérdezi, hogy a vállalkozás kötelezze el magát e nélkül nyomvonal lángoló társaság bizonyítani a technológia és a hatékonyság lehet egy kicsit nehéz. Rács / elosztott számítási nagyon népszerű, bizonyos körökben, és néhány nagyobb alkalmazás (BIONC, SETI @ Home, Folding @ Home, stb.) Én azonban nem talál egy kisebb méretű és egyszerű rendszert, mint ez az én keresések lehet gördült ki egy olyan irodai környezetben.

I created a basically free system using mostly open source software and tools available in almost any office. A technológiákat alapvetően igazolták és megmutassa végre, és a várt módon működnek. Remélem, hogy nem mutatják, hogy a sok munka és egy nagyon egyszerű beállítás telepíthet egy irodai grid computing rendszer, amely hatékony, olcsó, és skálázható minden ugyanabban az időben.

Miután a rendszer elindult szinte nincs vége az összeget a testreszabhatóság és a fejlesztések megteheti. Például a statisztikák / benchmarking könnyen ki bemutató érdemes egy ilyen rendszer minden nap. Új gépet lehet hozzá könnyen és gyorsan, ahogy és amikor megérkeznek a frissítések a már meglévő hardver rávilágítson a feldolgozási teljesítményt.

I hope you've enjoyed reading this series of articles and its given you food for thought on running an office grid system. Az itt bemutatott megoldás nem feltétlenül működnek minden helyzetben, de alkalmazkodni kell, hogy lehetővé teszi, hogy az adatok feldolgozása segítségével történik egy saját megoldást.

Kérjük, bátran küldje el nekem minden megjegyzést, korrekciót, vagy a fejlesztések és én mindent megteszek, hogy tartsa ezt a cikket frissíteni kell felelniük.

Zend Framework: Fundamentals - Felülvizsgálat

A , szombat 28 november 2009 22:42

My employer recently paid for a group of us developers to take the Zend Framework: Fundamentals course, here I'll summarise my thoughts and opinions on the course for others. For those looking to save time, here's my summary:

For developers who haven't had time to look at the Zend Framework this course (Zend Framework: Fundamentals) offers a good overall picture of the framework introducing you to the key areas and giving enough information in order to continue. For those who have spent time looking at the framework and have followed one or two tutorials this course does not offer much beyond.

Háttér

I've been a PHP developer for around 5-6 years, and have started working with the Zend Framework on a component basis over the last 6 months. I've developed and/or been a developer on a couple of small Zend Framework MVC sites. I'll be honest, I haven't had a huge amount of exposure to other frameworks from a coding point of view but have spent several hours researching the project websites and evaluating them. The framework and the community surrounding Zend Framework it is quite exciting and there seem to be huge possibilities in where its going.

About the Course

The course is delivered over 9 two hour webex sessions (with a 10-minute break in the middle). The time is spent going through a set of slides provided by Zend with discussion at any time. You can use a microphone to talk to the instructor, but to be honest I didn't see anyone use anything more than the chat window. In addition a VMWare Ubuntu machine is provided that has example code and projects set up an a trial version of Zend Studio. The course leader talks to attendees either over an integrated VoIP solution, or you can dial in using one of the many worldwide dial in numbers.

During the course the material consists of a brief overview of the Framework and the MVC pattern before heading into a sample guestbook application. The discussion demonstrated bootstrapping, Zend_Application, Db Tables, Database access, Forms, Filtering, ACL, Validating, etc, etc. Basically covering all the topics you'd require to get a basic site up an running all the time giving you the tools to go and get more advanced in the framework (although this did amount to 'See the website' much of the time).

Time is given to code up some examples, and to develop the 'guestbook' and simple 'wiki' application. Personally I felt that providing the code or each app and then asking us to develop what was essentially a copy alongside didn't really provide a good learning experience. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

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

Overall Feeling

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

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

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

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

Zend Framework Certification

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

Összegzés

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

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

[notice] child pid XXXX exit signal Segmentation fault (11)

A , vasárnap 11 október 2009 06:09

If you've recently upgraded PHP or Apache you maybe coming up against the issue of your webserver returning blank pages, and throwing error messages into your logs with no idea why, here's one possible way to fix it…

I've had this problem a couple of times recently after upgrading Apache or PHP on a virtual machine. The first time I noticed the error I simply reverted to a backup of my VM but the second time I realised I'd have to look into the issue.

The first time I noticed the issue some of my web pages were being served as blank files while the others worked absolutely fine. After some investigation I noted that apache was writing out to /var/log/http/error_log with the following message repeatidly:

[notice] child pid XXXX exit signal Segmentation fault (11)

There's not allot to go by on-line, and most of the pages about it trail off to nothing. That said, I narrowed down the issue to PHP crashing when trying to unneeded dynamic libraries.

Looking at my php.ini (/etc/php.ini) I commented out all of the dynamic libraries loaded planning on commenting them back in as required. The two I had to take out where pdo.so and mysql .so .

Miután eltávolították ezeket az én internetes oldalak kézbesítését finom, mint mielőtt a PHP / Apache frissítés.













Panoráma Theme Themocracy

4 online látogató jelenleg
3 vendég, 1 botoktól, 0 tag
Max. látogatók ma: 19 at 01:56 am UTC
Ebben a hónapban: 26 at 2012/04/04 10:27 UTC
Ebben az évben: 69 at 09:56 am UTC 27-02-2012
Minden idő: 130 28-03-2011 at 10:40 UTC