Категорија: Чланци

Канцеларија Грид користећи виртуелна окружења - 1. део

Би , петак, 4. децембар 2009 11:23 ам

Увод

Ја радим у компанији у којој водимо много серија послове обраде милионе албума података сваког дана и ја сам недавно размишљање о свим машинама које седе око сваки дан не ради ништа по неколико сати. Зар не би било добро ако бисмо могли да користе те машине да ојача моћ обраде нашег система? У овом скуп чланака ћу погледати на потенцијалне користи од запошљавања канцеларије мрежу користећи виртуелизованим окружењима.

Као ПХП програмер ћу користити алате које користим сваки дан, наиме, Линукс, МиСКЛ , ПХП, ВиртуалБок и субверзија (СВН). Ипак надам се да овај водич ће се прилагодити другим језицима и технологијама исто тако добро.

Решење дајем ће бити веома лабаво на основу врсте обраде бисмо, међутим потребно је да се постигне ово не може бити тачно кроз цео чланак као ја ћу променити ствари за једноставност, или да се произведе више занимљивих сценарија употребе.

Ови виртуелизованим окружењима ће радити на Виндовс машинама јер је то оно што већина канцеларија стазе. Обраде да канцеларијске машине не треба да се мешају са особљем коришћењем тих машина, требало би да не захтевају одржавање на машини, и да се лако разместиве да нове машине чим буду доступни. Такође, нови виртуелни машина не треба да захтева никакве додатне конфигурације јер то значајно смањује скалабилност и лакоћа на који могу грид систем бити продужен.

Зашто Примените ГРИД Канцеларија рачунарство?

Прво можете да размишљате, зашто не само користите ресурс цлоуд цомпутинг, као што су ЕЦ2 платформу Амазон ? Па разлози могу бити неколико, на пример:

  • Нећете поверити одређене податке окружења цлоуд цомпутинга
  • Не можете да стави одређене податке у средину цлоуд рачунарства за правних разлога (нпр. подаци изласка из земље), потенцијално и за правних разлога, на пример, НХС-евиденција.
  • Ви желите да задржите вашу процесорске јединице блиске и имају превише пуну контролу над хардверским
  • Немате средстава да покрене пројекат инстанцама облак
  • Канцеларији нема везу са Интернетом и стога то није могуће користити ресурс облак
  • Не као киша, облаци сугеришу киша, тако да задржите добро далеко

Сигуран сам да списак може наставити, али мислим да је то довољно за сада.

Предности Грид Канцеларије рачунарство

Па, хајде да неке математике (и у правом стилу физике омогућава направити неке свеобухватне претпоставке). Замислите да имају велике јак обраду серверу који користи 100 радних места дневно. У вашој канцеларији имате 50 машина које су стању мировања 16 сати дневно, сваки од ових машина износи 10% тако моћан као јак обрада Север. (Сви резултати су заокружени на ту потценити повећања перформанси).

Дакле, 1 машина * 10% сила * 2 / 3 време = 0.067, односно 1 површ обраду мировања могли да обрадимо 6 пуно посла дневно.

Ако сада плану ово горе је потребно 15 мировања десктоп да обради што већи број радних места дневно као ваш главни обраду сервера ради.

Дакле, у нашој канцеларији се претварају од 50 машина можемо да повећамо нашу моћ обраде од 1 до 4 сервера пуног сервера обраду, или смо могли да се обради 400 радних места на дан уместо 100.

Обавештења, без улагања у нови хардвер ваша компанија има управо повећала своје серије капацитет прераде 4 пута! Потенцијално ћете да повећате коришћење енергије, али у већини канцеларијских окружења сам био на машине су углавном препуштени преко ноћи у сваком случају, тако да можете видети то као зелена иницијатива.

Друге предности такође значити да је улагање у нову (или ажурирају) обраду сервери могу бити одложен ако ваш канцеларијски машине су довољни и да као да побољшате снагу вашег канцеларијске машине вашу мрежу канцеларији постаје моћнији аутоматски.

Технологије

Шта вам је потребно? (Или тачније шта ја користим):

  • Идле Канцеларијске машине (у мом случају резервну стари Виндовс КСП-лаптоп)
  • ВиртуалБок (или неки други клијент софтвер за виртуелизацију)
  • Виртуелна машина са ПХП, МиСКЛ руннингА ради смање оперативни систем, зовем ове моје Лимп серверима:)
  • Послови за рад
  • Посао сервера (може бити још једна виртуелна машина негде)

Типични послови

Врсте послова које овај систем је дизајниран да ради је следећи:

  • Систем прима листу података на основу којих треба да одговарају и врате резултате
  • Одговарајући подразумева проверу / потрази неколико (прилично статичан) извора података
  • Резултати из извора података може захтевати додатно валидацију, спајање, провера додатних извора података, као одговор на резултате
  • Подаци се вратио са сличним евиденције, потпуно проверене и обрађених
  • Сваки запис у посао независно од осталих

Тако да у суштини ми смо у потрази у трчању пословима који захтевају мешавину базе података лоокуп и неки број мукотрпног, прилично типичан сценарио у пословном окружењу.

Мреже решења нису само корисне за прераду послове овог типа. У суштини, било који процес који се може поделити у независне јединице могу покренути паралелно. Погледајте ову Википедиа за примере и додатне информације: Грид , али је неколико познатих примера СЕТИ @ хоме и БИОНЦ . Постоје оквири за управљање рачунарске мреже, а то су добро вреди гледа у.

Оно што ћемо постићи?

До краја ових чланака се надам да ћу показати да распоређивање канцеларија мреже не морају бити изузетно скупо или времена. Идем да разговара:

  • Подешавање посао система контроле, посао конфигурације
  • Креирање одговарајуће обраде виртуелне машине
  • Како подесити систем на Виндовс машини
  • Обезбеђивање користите најновије кода и података
  • Распоређивање и бенчмаркинг
  • Гледајући унапред

Ја ћу бити зграда (ок сам изградио, а онда је написао ово) Пример апликације за тестирање концепата на локалној машини користећи Виндовс КСП и мој 'ГридМацхине "виртуелни машина. Моје контроле посао сервер ће бити мој главни машину која ради Федора 11 .

То је ни на који начин треба да покаже потпуно радно робустан систем, своју значило више демонстрације и дискусије показују да се ове ствари да се постигне у разумно кратком временском року и уз мале трошкове. Молимо Вас да ми шаљете коментаре, исправке, побољшања или а ја ћу све од себе да овог члана ажурира на утакмицу.

Следећи пут

У 2. део Ја ћу почети гледајући систем послу контроле, и погледајте на који начин би требало да посао буде конфигурисан како би се постигао највећи износ од обраде, док обезбеди да сваки посао је обрађен без неуспех.

Канцеларија Грид користећи виртуелна окружења - Део 2

Би , петак, 4. децембар 2009 11:23 ам

Увод

Ја радим у компанији у којој водимо много серија послове обраде милионе албума података сваког дана и ја сам недавно размишљање о свим машинама које седе око сваки дан не ради ништа по неколико сати. Зар не би било добро ако бисмо могли да користе те машине да ојача моћ обраде нашег система? У овом скуп чланака ћу погледати на потенцијалне користи од запошљавања канцеларије мрежу користећи виртуелизованим окружењима.

У 1. део сам дао преглед система и технологија ћу бити користећи и продискутовао неке од могућих разлога због којих бисте желели да створе мрежу канцеларије.

Посао контроле

Ако ћеш да ради посао онда ћете морати на неки начин њима управља. Вашом контролом посао система (на свом послу серверу) треба да буде стварно добро мислио пре него што чак и покушај да покрене мрежу канцеларија. Дакле прво, шта су задаци за систем посао контроле:

  • Руку послове на захтев радника
  • Реците шта радници врсте послова да ради
  • Праћење послова
  • Постарајте се да радна места су само једном покренути
  • Обезбеди податке посао радницима, или бар им кажем где да га добијете

Систем такође треба да буде проширива, решење које ради за сада у једном случају може да се продужи да ради неколико типова послова, као пословне види вредност у мрежу решење. На пример, радна места могу стећи приоритета, више од једног посла типа може постојати (тј. више код базе), на крају можете чак могу да раде неколико различитих машина радника које су оптимизоване за сваку врсту посла (мада је не да се удаљава од "генеричке радник 'идеја). Увек се трудите да размишљамо о будућности када се развија систем, краткорочне визије може да доведе до дугорочне фрустрације и повећао развој времена.

Посао сервер

Идемо негде да треба да контролише наш посао од, ово би требало да буде једини систем у мрежи која има фиксни Ресоурце Лоцатор, бити да ИП адресу, име домаћина, УРЛ-а (коришћењем интерних ДНС-а), итд То је зато што радници треба да знају где да траже посао, радници морају да нађу посао систем контроле (не за посао систем контроле нађу раднике).

Посао Сервер себи не заиста компликован задатак (у основни систем свакако), потребно је да сачувате листу послова, руку послове, прима резултате, а касније да их сачувате за касније прегледавање. Како ови делови (као што су "руку послове ') су дефинисани може бити врло основни. Касније можемо проширити систем да укључи интерфејс администрације да додате, мењате, бришете, обуставити посао али ово је ван ове вежбе.

Нема разлога онда то сервер посао не може бити виртуелна машина ради у оквиру вашег главног обраду серверу под условом да не мозгова превише ресурса из њега. Посао Сервер, међутим не треба високу доступност, ако се иде на доле петак увече да ћеш изгубити цео викенд обраде, потенцијално вас то кошта неколико недеља вредности време обраде (у односу на ваш главни серверу обрада само) . Можда ћете желети да размотрите постављање посао сервера на терет уравнотежен окружење за високу доступност.

Основна подешавања

Основна подешавања за наш посао сервера ће се састојати од онога што зовем један од мојих Лимп сервера (то је Ли Нук, М иСкл, п кс). Код ради на Тхеа радници ће заправо раде шта послове може да води у интеракцији са са посла базама података система контроле. Касније смо могли створити веб сервис и заправо руку послове уместо да радници раде тежак посао сами, али за сада ћемо наставити да користимо КИСС принцип (Држите га једноставно, глупо!).

Дакле, хајде да створи три миСКЛ табеле да се баве пословима. Ово ће бити `посао`, `јобРецордс`, и `јобРесултс`.

послове табела Овде сам преко СКЛ пријатеља велики мало алтернатива пхпМиАдмин само зато што њено лакше да инсталирате на ЦентОС (за други виде: 10 Велики алтернатива пхпМиАдмин )

Ова табела се састоји од 5 једноставних поља,

  • ИД: идентификује посао
  • Име: Може бити клијент референца, или било који број других идентификатора
  • Статус: Ви треба да знате где је посао у, на пример,
    • 0: Није почело
    • 1: покупили
    • 2: Завршена
  • стартед_би: Ко је започео ради посао? Ово није у потпуности потребне, али је лепо имати. Ја бих предложити праћење радника од стране њихових ИП адреса на мрежи
  • стартед_ат: Када је радник почети посао? Праћењем послове који нису завршени у року Кс времена знамо да треба да покупи посао поново и почните да прераде од стране другог радника. Радници могао зауставити обраду / офлајн за било који број разлога, нестанка струје, пада система, мрежа губитак, итд

Лако је како би се ово сто се проширити са неколико додатних поља да би за статистику праћења, финиш време колона да бисте видели колико је посао, контра да виде колико радника покупио посао (оцигледно ово треба да теже да 1), посао приоритета, списак може ићи даље и даље. У више сложен посао сценарија би било могуће навести колико меморије радник је потребан приступ (и због тога користе само одговарајуце раднике), или чак који тип радника бити потребно.

Омогућава додавање неколико послова на пример:

Пример послове

Наредна табела поново је веома једноставан за разумевање, ово су наш посао евиденцију. Оне су у вези са главне табеле послове које колони `јобс_ид`. Марку до ове табеле много зависи од података који треба да снабдевање вашим радницима, омогућава да веома једноставан пример где имамо четири колоне:

  • ИД: ИД записа
  • Име: име особе
  • адреса: Особа адреса
  • јобс_ид: посао ИД који овај албум је повезан са

Трећи и последњи сто састоји се од стола резултата, колико има исту чине као наш сто евиденције, а уз додатак неких колона може да буде део табеле евиденције:

  • јоб_рецорд_ид: Линк резултат посао сто
  • Резултат: резултат подаци

... И то је све што је потребно за посао контролу! (Мада у врло основном нивоу) У мом случају ја сам указао на још један сто где се налазио мој података за обраду, али то може исто тако лако да се датотеке, параметре за покретање кода симулација, шта год пожелите.

Избор посао

Као што је наведено раније, да ли ће радници учинити наш менаџмент посао за нас, за сада, тако да све морамо да заиста урадите је да пронађете посао који захтева обраду и добију информације. Како бисмо то урадили? Па покупити наше критеријуме посао одабира и траже посао, у СКЛ сам урадио следеће:

  1. Узмите било који посао које нису означене као комплетна, али од нашег радника и ресет њих (замени __МЕ__ са идентификатор, најлакше би било ИП адреса):
      УПДАТЕ `пословима` СЕТ `статусу` = 0 где је `статусу` = 1 и `стартед_би` = __МЕ__; 
  2. Користећи наш посао критеријума за избор, изаберите посао и реците систем контроле да је овај радник који се тиме баве:
      УПДАТЕ `пословима` СЕТ `статусу` = 1, `стартед_би` = __МЕ__, `стартед_ат` = НОВ () ВХЕРЕ `статус` = 0 или
     (`Статус` = 1 и `стартед_ат`> ДАТЕ_СУБ (Нов (), интервал Кс сат)) ОРДЕР БИ `ид` АСЦ; 

    Би граббинг послова који се нису вратили резултате у Кс време ми се бринемо да се сви послови раде у случају пада радника или ће АВОЛ.

  3. Следећа зграби послове детаља следи сами евиденције:
      СЕЛЕЦТ * ФРОМ `посао` ВХЕРЕ `стартед_би` = __МЕ__ ЛИМИТ 1;
     СЕЛЕЦТ * ФРОМ `јоб_рецордс` ВХЕРЕ `ид` = __ЈОБИД__; 

По завршетку посла смо убацили наше евиденције резултата и означити посао заврши. Запамтите као што се посао обуставити / наставе у било које време дозволи за неке робусности у вашем писму. Може бити да је задатак суспендује на пола пута кроз ажурирање посао контролни систем, тако да провере броја записа у посао и број резултата сачуван назад на посао систем контроле ће бити мудар потез.

Поред тога, док ово показује како се посао бира и управља са СКЛ упит оквир заиста би требало да буде апстраховања посао контроле, тако да ако одлучите да пређете на коришћење веб сервиса, фајл систем заснован, КСМЛ , или било који други број система неће утицати код изнад њега.

Конфигурација посао

Следећи аспект размотрити је посао величине и конфигурације. Играјући се са посла конфигурације можемо да удари одличан баланс између брзине, процес репликације, и поузданост. Узмите неколико сценарија ОФА:

  1. Послови узети 1 дан сваког да ради: То значи да је ваш радници морају 15 дана да обрадимо сваки посао (сетимо 10% енергије за 2/3рдс времена). Ово очигледно није мудар конфигурацију, величину посао је сувише велика! Било би потребно најмање двоструко времена да се посао обрађених треба иницијални радника иде АВОЛ (време да се покупи да није вратио резултат, плус прераде време). У идеалном бисте имати бар једну пуну посла лако брише на крају сваког дугог мировања периода, на тај начин да задржите посао откуцава над ау најгорем слуцају посао би два дана да процес треба да прво иде недостаје.
  2. Послови узети 1 минут да ради: То значи да је ваш радници траје око 15 минута да ради сваки посао. Иако је ово у почетку могу изгледати идеални, добијате додатни рад током прераде време ручка, кафе паузе, састанци, итд овакав сценарио ставља притисак на друге области вашег система и уводи своје проблеме. На пример, прво своју инсталацију / време обраде однос ће ићи десно доле, дакле губи ефикасност система. Ваша мрежа ће бити стално стриминг посао информације различитих радника фрустрирајуће особље које Донг на њихов свакодневни рад. Такође ћеш још више притисак на вашем серверу посао обраде као што је да се јело из много, много малих делова рада на редовној основи. На крају, у овој ситуацији уколико ваш сервер посао иде доле ћете створити огроман поново пријавите недовршеног посла, док већи посао могли даље од обраде блазено несвестан да је посао сервер је потешкоћа.

У стварности неће бити једна идеална конфигурација за мрежу подешавање, много тога зависи од расположивих средстава, врсте посла, захтевима посла потребног времена, мрежне могућности, и тако даље. Међутим неке смернице ће бити:

  • Величина послове тако да сваки радник може да добије кроз најмање 3-4 послове у року од 15 сати (најдуже вероватно мировања временском периоду)
  • Играј се са посла величине, тако да подешавање време постаје прилично безначајно у односу на време обраде (имајући у виду горе тачке).
  • Ако посао не заврши у двокреветним време (можда мање) како очекујете од њега потпуно је претпоставити да је отишао АВОЛ и почетак прераде га са другим радник. То значи да ћете можда морати да сачека до три пута нормалне дужине посао за то да заврши (вероватно дуже ако касније посао не успе). Можда ћете желети да смањи овај пут, али будите опрезни да не смање превише јер може да почнете умножавање обраду задатке на редовној основи.
  • Послови треба да буде независно од услова у највећој могућој мери. Посао серверу, на пример, треба само бити контактиран на почетку и крају сваког посла.
  • Не заситити вашој мрежи, то ће имати два негативне ефекте, ваше дневне особље ће наћи преко мреже фрустрирајуће и проблеми се могу јавити са прикључцима тајминг се проблем који ће само погоршати као што скали ваше мреже.
  • Обезбедити посао може да ради на свом радника. Ако послови постали превише интензиван меморије или простора на диску интензиван посао ће почети Прекидам и једина ствар коју ћете приметити је пад у броју радних места обрађених без правог разлога зашто.

Подношење Резултати посао

Приликом подношења резултате посао важно је да проверите да резултати нису поднет од стране другог радника, поготово ако садашњи радник је мировао неко време.

Када су резултати достављају обезбеди да број резултата утакмица број записа у посао.

Као што је наведено раније, и не може се више истакао, изградња толеранције грешке у посао проналажења и резултате подношење. Радници могу (и највероватније ће) ићи у суспенд мода највише незгодно времена и то треба да буде цатеред за. Такође, још једном апстраховања твоје резултате поднесак ће помоћи задовољава будуће промене на систему контроле посао много лакше да се баве.

Резиме

У овом сецтионА смо посматрали шта посао контроле сервера треба да уради и како да се врло основни систем подешен. Разговарали смо о томе како да бисте преузели посао из система контроле и како најбоље да подесите посао да се већина наших вашег система канцеларије мрежу. До краја, пасус или два о достављању резултата назад серверу посао контроле је представљена.

  • Посао контролу сервера управља пословима и осигурава да се заврше сви радне јединице
  • Би апстраховања ваш посао изабрали / резултата подношење можемо да променимо технологију контроле сервера без много проблема
  • Конфигуришите своје послове како би се осигурало да су воде брзо и ефикасно без стављања превише притисак на инфраструктуру мреже, а без умножавање обраду задатке на редовној основи.
  • Проверите да ли изградити грешке толеранције и грешке цхецкингА у своје рутине, радници могу суспендовати и наставити и већина незгодно пута. Не заборавите да проверите да ли резултати су већ поднети од стране другог радника.

Следећи пут

У 3. део ћемо створити наш виртуелни машина за прераду и поставили наши прозори машине да постане мировања времена радника.

Канцеларија Грид користећи виртуелна окружења - Део 5

Би , петак, 4. децембар 2009 11:03 ам

Увод

Ја радим у компанији у којој водимо много серија послове обраде милионе албума података сваког дана и ја сам недавно размишљање о свим машинама које седе око сваки дан не ради ништа по неколико сати. Зар не би било добро ако бисмо могли да користе те машине да ојача моћ обраде нашег система? У овом скуп чланака ћу погледати на потенцијалне користи од запошљавања канцеларије мрежу користећи виртуелизованим окружењима.

У Део 4 које смо тестирали користећи алате како би се осигурало да користите најновију верзију кода и изворима података, тако да добијени резултати су увек уп-то-дате са најновије пословне информације и логике.

Пре размештања

Пре избацивања ваше мреже система ако постоји једна ствар коју урадите и сами једна ствар је мерило тренутног система! Без обзира шта вам кажем колеге о томе колико додатни рад вашег система ће урадити осим ако немате бројеве да поново ово ваш гарантује ништа. Дакле,

  • колико евиденције можете тренутно процес? Дневно? По сату?
  • Колико је обично потребно да се окрене посао?
  • Колико више капацитета имате?

Ту је и додатна питања:

  • Ако ваш сервер за обраду (или неко од ваших обраде сервера) иде доле како ће то утицати на ваш могућности, ће вам бити обогаљен?
  • Које предности се надате / очекују да се са мреже система?
  • Да ли су ваши канцеларијске машине може да ради послове?
  • Да ли су ваши (или можете да посао могу конвертовати) да раде у овај стил трчања?

Последњи велики Поента је да се време на свака већа промена као што је овај. Ажурирајте свој код обраде да ради поновног коришћења новој методологији, репер. Можда подесите свој сервер за обраду воде виртуелну машину, на крају крајева ваше обраде сервер ће само бити још један радник (само веома моћна једна релативно). Дозволите нови процес за решавање.

Развој

Мој предлог би био поп у канцеларију једног викенда обављају све инсталације и подешавања. Да ли ово само пред празник две недеље и оставити тако да други сиромашни момак да се бави последицама ... можда и не ...

Распоред за систем као што је овај треба да буде споро. Упркос томе што релативно једноставан за подешавање овај систем ће утицати на цео инфраструктуру канцеларији (и дигитални). Прво, избаце на неколико машина истовремено, прати мрежни саобраћај, како радник домаћини играју на дан у дан основи. Можда ћете морати да промените конфигурацију посао у одговор на ваше резултате.

Када систем измирио са неколико машина (рецимо 10% свих канцеларијске машине, односно 5) води мреже за мониторинг саобраћаја и домаћин машина перформанце.А Следећа репер поново, сада би требало да прераде 33% више радних места него ваш први репери. Проверите је то тако, или да сте бар у овом Баллпарк. Ако не, истражује шта се дешава пре преласка на. Поновите овај циклус док не срећом све канцеларијске машине раде без убијања појединачне перформансе машине или млевење своју мрежу до застоја.

У сваком тренутку држе бенчмаркинг, чак и након што се ураде све примене. Проверите колико нови код ажурирање утицати брзину вашег система, проверите сви радници су у извештавању и обраду радних места. Полако (врло споро) прираст конфигурацију посао да добије најбоље од радника и мрежу.

Стоп!

Шта ако желите да зауставите радника из ради на неко време? Они су сви тамо раде, регенерацију, покушавајући све да обраду података као што су гладни инсеката. Одговор мозда изгледа оцигледно, али своју вредност додајући само у случају своје превидети. Једноставно мењати ваше скрипта обрада излаз (0) ор дие () или неку другу изјаву да убије свој посао обраде. Важан разлог зашто смо увек покушавате да ажурирате на најновије прераде сценарио пре него што трчи!

Демонстрација система

Да би се написати овај скуп кратких чланака ми створио веома мали мрежу да покаже технологија и методологија. Прочитао сам много чланака, туторијала, и користи разне алате за подешавање и пратити шта се дешава. Никако сам изашао и засићене целу канцеларију са саобраћајем и нити сам имао приступ редовном особље рачунара да виде како домаћин наступ је био под утицајем.

Мој систем демонстрација је био веома скроман, заиста. Користио сам своје редовне површ поставили као сервер посао контроле. На овој сам инсталирао МиСКЛ серверу инсталиран поставили као мајстор у репликацију, ПХП , а и СВН повезане преко Апацхе (за приступ преко радника ВМ).

Тада сам створио ЦентОС радник машине на ВиртуалБок-у 6 година стари Виндовс КСП-лаптопа. Ја подешавање Сцхедулед Таскс како је наведено после копирања ВМ на машину и пустите да иде.

Виртуелна машина је основан са ПХП, субверзија, и МиСКЛ. Проверио сам се огранак под називом "радник" из мог посла сервера контролу спремишта и побринули се може ажурирати преко "свн упдате". Следећа да подесим МиСКЛ као роб и проверио да подаци реплицирају са МиСКЛ на серверу посао контроле до радника ВМ. После свега овога ја подешавање сценарио басх и црон посао.

Моја скрипта за прераду у основи је отишао на линији ове (врло једноставна ствари):

  • Прочитати у име поља
  • Рачунају број сличних имена у табели од извора података одржаној ВМ
  • Рачунају број имена као и горе, али цепање имена размаком (нпр. име, презиме средини,)
  • Поновљена овај процес 1.000 пута

Сваки посао је око 20 минута да ради. У једном тренутку сам отворила неколико примерака радника ВМ на Виндовс лаптоп и гледао радних места проверили свака од адресе радника ИП адреса. У том тренутку сам је потврдио да репликацију аутоматски рестартује.

Остављање лаптоп мировања резултирало радника почиње да процес послове са сервера посао контроле. Када наставак лаптопа коришћење било кашњења од око 30-60 секунди, ово је фер количину времена и особља би требало да буду свесни да њихове машине пауза за кратко време, када се враћају у машину. Новије машине не могу да имају паузу од овог дугог. Корист у износу од обраде које су изводиле те машине за време мировања периодима би више да надмашују особље морају да чекају кратак период (рецимо 1 минут) на доласку на њиховим машинама јутра (ја често дуже чека да је ово за Виндовс Дефендер ажурирање да се одржи) под условом да су били упознати са овим (корисно време да зграби кафу ујутро).

Све у свему осећам сигуран да сам показао технологије која би могла да се користи за стварање таквог система. Показао сам да такав систем не ради на (врло) малим размерама и са мало више да експериментише може бити смањена до искористити ресурсе машина канцеларије. Ако не дођете до тачке да се ово уради био бих веома заинтересован да знам / видим када неко други ради.

Закључци / Евалуација

Следећи очигледно корак би био да у ствари добијате шансу прави пример светских и почети да размести систем као што је ова у канцеларијском окружењу и видети шта се дешава. Тражећи посао да се посвете овом без траг муњевито компаније да докаже технологије и ефикасност може бити мало тешко. Грид / Дистрибуирано рачунарство је веома популаран је неким круговима и има неке велике апликације (БИОНЦ, СЕТИ @ хоме, Фолдинг @ Хоме, итд). Нисам, међутим, наћи у мањем обиму и једноставан систем као што је овај у мом претраге које се могу одвити у канцеларијском окружењу.

Креирао сам у суштини бесплатан систем користећи углавном опен соурце софтвера и алата доступна у скоро свакој канцеларији. Технологије су у основи показали и показују да обавља и посао као што се очекује. Надамо се да сам показати да са не много посла и са веома једноставан за подешавање можете да примените Оффице грид цомпутинг који је моћан, јефтино, а и скалабилан све у исто време.

Када систем горе и трчање скоро да не постоји крај у износу од прилагођавања и побољшања можете направити. На пример статистику / бенцхмаркинг може лако да се додају показује вредност таквог система сваки дан. Нове машине могу се додати брзо и лако као и када стигну са упграде на постојећи хардвер јачању вашег процесорску снагу.

Надам се да сте уживали читајући овај низ чланака и њене вам давали храну за размишљање на вођење канцеларије мреже система. Решење је овде представљен не значи да ће радити у свим ситуацијама, али би требало да буде прилагодљив вам омогућити да добијете обраду података врши помоћу сопственог решења.

Молимо Вас да ми шаљете коментаре, исправке, побољшања или а ја ћу све од себе да овог члана ажурира на утакмицу.

Зенд Фрамеворк: Основе - Преглед

Би , субота 28. новембар 2009 10:42 ам

Мој послодавац је недавно платио за групу од нас програмера да Зенд Фрамеворк: Основе Наравно, овде ћу сумирати моје мисли и мишљења о курс за друге. За оне који желе да уштеде време, ево мој резиме:

За програмере који нису имали времена да погледате Зенд Фрамеворк овај курс (Зенд Фрамеворк: Основе) нуди добру укупну слику оквира увођења вам да кључне области и даје довољно информација како би наставили. За оне који су провели време гледајући у оквир и су пратили један или два туторијала овај курс не нуди много шире.

Позадина

Био сам ПХП- програмер за око 5-6 година, и почели рад са Зенд Фрамеворк на компоненту основи током последњих 6 месеци. Ја сам развио и / или је програмер на неколико малих Зенд Фрамеворк МВЦ ситес.А Бићу искрен, нисам имао огроман изложености другим оквирима од кодирања тачке гледишта, али су провели неколико сати истраживање пројекат сајтова и вредновање тхем.А оквир и заједница око Зенд Фрамеворк је сасвим узбудљиво и изгледа да постоје велике могућности у којима његов иде.

О Курс

Курс је испоручио преко 9 два сата ВебЕк сесија (са 10 минута паузе у средини). Време је провео пролази кроз скуп слајдова које Зенд уз дискусију у било ком тренутку. Можете користити микрофон да разговара са инструктора, али да будем искрен нисам видео никога користи нешто више од прозору за ћаскање. 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.

Резиме

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.

Html Table Generating Class (HtmlTable.php)

By , Tuesday 5th May 2009 9:11 pm

I required to generate a HTML table from PHP data for a project that I was working on. Unfortunately after a bit of Googling I couldn't really find anything that was suitable so I decided to create my own.

I realise that this may not be the best table generating class ever and there's probably a few bugs still in it, but I'd prefer to share and if anyone wants a better version I'll look into it :) I originally wanted to create a table built up of seperate objects eg cell object, row object (built up of cell objects), but I realised the overhead on this would be HUGE! So I've gone back to an array setup.

The class will calculate the maximum number of columns used in the header, footer, or body and write out that number of columns. Headers, Footers, and the Caption are optional. Attributes are made up of an array where the key is the attribute name and the value is the attribute value. Attributes are applied to table tag (on table creation – class initialisation), table rows (array[row][attribute]), and table cells (array[row][column][attribute]) this applies for headers, footers, and the table body.

Пример

I always find the best way to look at something is to use an example so here we go:

$table = new HtmlTable( array('class' =>'sortable',
                'style' => 'width: 550px;'));
$header[0][0]['content'] = 'ID';
$header[0][1]['content'] = 'Title';
$header[0][2]['content'] = 'Date';
$header[0][3]['content'] = 'Site';

$table->addHeader($header);
$i = 0;
foreach ($newsList AS $newsItem) {
$itemLink = "{$newsItem['title']}";
$tableBody[$i] = array(0 => array('content' => $newsItem['id'],
'attributes' => array('style' => 'font-weight: bold;')),
1 => array('content' => $itemLink),
2 => array('content' => $newsItem['date_posted']),
3 => array('content' => $newsItem['site']) );
$i++;
 }
$table->addBody($tableBody);
echo $table->drawTable();
ИД Наслов Датум Сајт
9 News 1 2009-04-04 10:40:00 site name
10 News 2 2009-04-04 12:44:11 site name

And the HTML looks like this:

 < table  class =  "sortable" style =  "width: 550px;" >
< thead >
	< tr    >
		< th   >ID</ th > 
 < th   >Title</ th >
		< th   >Date</ th >
		< th   >Site</ th >
</ tr >
</ thead >
< tbody >
	< tr    >
		< td  style =  "font-weight: bold;" >9</ td > 
		 <Тд   >News 1</ td > < td   >2009-04-04 10:40:00</ td > < td   >site name</ td > </ tr > < tr   > < td style = "font-weight: bold;" >10</ td > < td   >News 2</ td > 
 < td   >2009-04-04 12:40:00</ td >
		< td   >site name</ td >
</ tr > 
 </ tbody >
</ table > 

Код

HtmlTable.php
If you have any comments please make them below, it would be great to hear some. If you end up using it also let me know and I'll extend it in the future :)

Log to DB using Zend Framework

By , Tuesday 14th April 2009 9:06 pm

I've managed to get a site up and running with the Zend Framework , everything is logging nicely to FireBug/FirePHP so next step was to log to the DB. I also wanted to log some additional information using the framework such as user agent, date and time, get and post variables. So to extend the manual a little here's what I did:

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

$columnMapping = array( 'priority' => 'priority',
'message' => 'message',
'datetime' => 'timestamp',
'user_agent'=> 'user_agent',
'get_vars' => 'get_vars',
'post_vars' => 'post_vars',
'site' => 'site'
);

$writerDb = new Zend_Log_Writer_Db($db, 'error_logging', $columnMapping);
$logger = new Zend_Log($writerDb);

$logger->setEventItem('datetime',date('Ymd H:i:s'));
$logger->setEventItem('user_agent',$_SERVER['HTTP_USER_AGENT']);
$logger->setEventItem('get_vars',print_r($_GET,true));
$logger->setEventItem('post_vars',print_r($_POST,true));
$logger->setEventItem('site',SITE);

$logger->info('Informational message');

Where the array keys in $columnMapping are my column names. 'Priority' and 'message' are understood by Zend_Log_Writers but the additional fields were added to give me some additional information.

Obviously this assumes that you have logging working using one of the other writers first :)

UK Names Directory and Facebook Application

By , Friday 10th April 2009 9:33 am

One of the fun things I've been involved in whilst working for Tracesmart is the names directory . Basically we took our huge information database and pulled out a big pile of stats about various names.

The process is all one big SEO effort in order to draw more traffic to the site, but it also provides some interesting information and name statistics.

Here's an example for my name Lloyd Watkin , or I suppose more correctly Steven Watkin . Take a minute to look up your name on the Tracesmart site, might be interesting ;)

We've also got names statistics data on the names directory page which tells you what names have been searched and how recently. Its quite interesting to see famous people's names fly up the stats when they appear in the news. A recent example is that of Liam Neeson who's wife died from a skiing accident recently, although obviously people aren't quite right on the spelling (hence the huge numbers of hits on this name) — Liam Nilson .

Facebook Application

Once the names directory was created we set about creating a facebook application which we duely named ' My Name '. The facebook application is an extension of the names directory and provides some additional statistics. In order to add the names directory to your facebook account please visit:

http://apps.facebook.com/my-name/

Disabled Form Fields are not submitted…

By , Thursday 4th September 2008 11:01 am

As a quick note, as part of the ongoing estate agency software project I've gone back to editing date entry within the system. Now instead of allowing users to enter any old bit of text I've switched over to a Javascript date/time picker (for the short term) that allows user to 'pick' and date and time from a pop up window.

Now, for my old system the picker would pop up when the user clicked on the input field . This however would allow the user to ignore the text field and still go and type any old thing into the field. This wasn't ideal. So my solution was to ' disable ' the form field and put a span next to it with an onclick event calling the date/time picker. This meant that the user was almost forced into using the nice date/time picker so dates would go in with the correct format (although that still has to be validated!).

So I started passing my nicely formatted date-time(s) through the form and picking trying to pick them up with PHP 's $_GET or $_POST variables. Unfortunately'disabled' fields are not passed through form submissions This was very annoying. The solution was to enable the input element using javascript when the form was submitted using the onsubmit event.

This meant that the form data was passed through as required and was nicely formatted ready for validation…Â

Search Array Keys and Return Matches

By , Wednesday 13th August 2008 4:26 pm

I've had the need to search through an array and return the elements that have keys that match a search term. So I thought I'd share.

'W hy would I need this?' would probably be the first question you'd ask, well if I wanted to search through an array for all the elements that related to the dimensions of an item then I could pull out the appropriate keys by using this little function:

 <? function searchArrayKey($array,$search) {  $search = strtolower($search);  if (is_array($array))  {   foreach ($array as $key => $data)   {    if (strpos(strtolower($key),$search) === 0) { $returnArray[$key] = $data; }   }   return $returnArray;  } else  { // User hasn't subimitted an array...   return false;  } } ?> 

So for example if I wanted to search an array of item data for the dimension data then I could do the following (and print to screen presumably):

 $dimensions = searchArrayKeys($itemArray,'dimension'); 

Which would return something like:

 print_r($dimensions); Array ( [dimension_height] => 20 [dimension_width] => 30 [dimension_depth] => 40 ) 

Custom php.ini with Plesk

By , Wednesday 13th August 2008 3:53 pm

We have a dedicated server with ukFast  on which we run a number of domains that exist on virtual servers running under Plesk . Anyway, on most of my domains I want to hide away warnings and for security keep errors to the log files, however on some of my domains (such as those I'm developing on) I want to show every little nasty warning and error that appears.

If I edit my PHP .INI”>php.ini this affects each and every domain on the server, not a good idea especially when several of the sites are fully live versions  So in order to get around this you need to put a file called vhosts.conf in your conf directory, for example, /var/www/vhosts/<my_domain>/conf/vhost.conf .

Once you've added your additional code, again for example I included,

 php_value error_reporting E_ALL php_value display_errors On 

followed by running the following command (this reconfigures all of your domains its just quicker lazier than typing in the domain name ,

 # /usr/local/psa/admin/bin/websrvmng -a 

If you're feeling a bit nimble then you can always type out the full version which is,

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

After this command if you look to httpd.include file, will see that your httpd.include will have an include line for your vhost.conf, something like this:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 












Панорама Тхеме би Тхемоцраци

13 visitors online now
4 guests, 9 bots, 0 members
Макс посетилаца данас: 15 у 12:12 пм УТЦ
Овог месеца: 17 у 01-09-2011 11:27 пм УТЦ
Ове године: 130 у 28-03-2011 10:40 пм УТЦ
Алл Тиме: 130 у 28-03-2011 10:40 пм УТЦ