Паведамленні з тэгамі: база дадзеных

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 4

Па , у пятніцу 4 снежні 2009 года 11:59 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 3 мы стварылі віртуальную машыну апрацоўкі і налады вокны машыны, каб стаць часу прастою работнікаў.

Запуск апошняй версіі кода

Непазбежна пасля стварэння працоўных бізнес-логіка не зменіцца, памылкі будуць знойдзены хутчэй, больш эфектыўны код будзе вырабляцца ў выніку чаго вашыя работнікі сядзелі апрацоўкі дадзеных, выкарыстоўваючы старыя смярдзючыя код . Як жа мы гарантуем, што мы заўсёды выкарыстоўвалі найноўшая і самая лепшая версія нашага сцэнары апрацоўкі?

Ёсць некалькі вельмі простых спосабаў лёгка мы маглі б гэта зрабіць, як трэба, аднак, заключаецца ў скарачэнні магутнасцяў і сеткавага трафіку ў дасягненні гэтай мэты. Пачнем з самых простых рашэнняў і палепшыць яе павольна, на працягу пары ітэрацый.

Першы метад быў бы проста падключыцца да нашай працы серверных элементаў кіравання (праз Samba, FTP, або аналагічныя) і апусціце апошнюю версію кода. Не вельмі эфектыўны, але ён будзе рабіць гэтую працу. Дазваляе палепшыць, што некалькі, як аб стварэнні Rsync сцэнар і выкарыстанні, што кожны раз, а? Акрамя таго, што аб уводзе нашых апошніх апрацоўка сцэнарыя ў падрыўной праверыць код спачатку, а потым проста абнаўляем наш код пры кожным запуску ( запускалі )?

У рэшце рэшт, мы маглі б у канчатковым выніку з дапамогай сцэнарыя баш (выклікаецца крон кожныя 10 хвілін), які выглядае так проста, як гэта:

  #! / Бэн / ш
 PS калі сякера | Grep-V GREP | GREP PHP > / Dev / нуль
 затым
     рэха "Праца ў цяперашні час апрацоўкі, выхад"
 яшчэ
     echo "Праца не працуе, пачніце прама цяпер"
     кд / шлях / да / працоўны / копія
     запускалі
     PHP yourJobProcessingScript.php
 Fi 

Цяпер мы можам быць упэўнены, што з кожным запускам мы вызначана ўстаноўлена апошняя версія кода. Мы забеспячэння гэтага, абнаўленне нашай базы кода кожны раз, калі мы выконваем перспектыве і зніжэння сеткавага трафіку толькі перадачы файла адрозненняў паміж нашай сеткі.

У маёй дэманстрацыйнай ўстаноўкі, я зрабіў менавіта так, як вышэй. Subversion быў усталяваны на маім серверы апрацоўкі працу, і я проста націснуў на апошні код ад "работніка філіяла з дапамогай" запускалі ". Я таксама дадаў тэг версіі ў маёй апрацоўцы сцэнара, які быў вернуты ў базу дадзеных як часткі на вынік. Такім чынам, я мог бачыць, што мой код абнаўляецца кожны раз, калі я скапіяваў мой ствол у той аддзяленне работніка, што я пэўна ўстаноўлена апошняя апрацоўка сцэнара.

Выкарыстоўваючы апошнія дадзеныя

Калі ваша праца апрацоўка дазваляе выкарыстоўваць крыніцы дадзеных, то ў нейкі момант яны будуць абноўлены. Калі вы называеце крыніц дадзеных на аснове вельмі рэдка вы збіраецеся затапіць сеткі з трафікам, як толькі вашыя работнікі пачнуць выконвацца чаго ўсё ў тупік. Для майго рашэнні, я вырашыў, што я хацеў бы перанесці крыніц дадзеных прыкладна з маю віртуальных машын.

Трымайце вы коні там! Што рабіць, калі крыніцы дадзеных велізарна? Ну гэта на самай справе ідзе аб тым, колькі дадзеных можа ісці гаворка? Гэта можа быць больш эканамічна эфектыўным, каб усталяваць дадатковы цвёрды дыск большага ў кожнай машыне, чым купля дадатковага сервера апрацоўкі. Гэта пытанне бюджэту і да бізнес-рашэнні. Гэта, можа быць, крыніцы дадзеных настолькі вялікі, што яго проста немагчымым захаваць гэты аб'ём дадзеных у вашых машынах работніка. У такім выпадку, што б вы зрабілі? Ну, мы маглі глядзець на выклік лакальны сервер дадзеныя, але гэта можа выклікаць праблемы з сеткай. У гэтым выпадку сетка сістэмы, так як гэта можа стаць нерэальным ўключыць у офісе. Ён таксама можа быць тое, што вы можаце паглядзець у альтэрнатыўных стратэгій працы, напрыклад, толькі патэлефанаваўшы ў працоўныя паміж 8 вечара і 6 раніцы кожную ноч і / або рэгуляванне крыніцы дадзеных запытаў.

Пераходзячы дазваляе сказаць, што нашы крыніцы дадзеных складае 100 ГБ дадзеных. Ну ды гэта зусім трохі дадзеных, каб перамяшчацца па сетцы на абнаўленне. Як бы мы гарантуем, што ў нас ёсць апошняя копія дадзеных у гэтым выпадку? Rsync магчымасць, але асабіста я думаю, што, запусціўшы апошні крыніца дадзеных на серверы апрацоўкі заданняў і наладзе, як майстар рэплікацыі (з прыемным доўгім часопіса бін), можа быць шлях:

Рэплікацыя Пры ўсталёўцы кожнага з вашых рабочых у якасці рабоў для працы абнаўлення серверных элементаў кіравання да крыніц дадзеных будзе працякаць ўніз прыгожа вашых работнікаў без велізарнага павелічэння сеткавай актыўнасці (гэта значыць, калі вы выконваеце велізарную абнаўленне дадзеных, і ўсе вашы працоўныя ўдар у адразу). Гэта мае перавагі ў параўнанні з Rsync ў тым, што вы не атрымаеце доўгую паўзу перад кожнай рабоце; як абнаўлення базы дадзеных, MySQL дэмана на ваш работнік будзе пастаянна абнаўляць свае дадзеныя, а апрацоўка працягваецца.

Гэта, як мне наладзіць сервер дэманстрацыі. Каб наладзіць рэплікацыю я ішоў кіраўніцтва на сайце MySQL ( налада рэплікацыі ) і на працягу 20 хвілін у мяне быў працоўны Пачатковая тыражаванне кіравання працай сервераў дадзеных. Для кожнага дадатковага работніка налады рэплікацыі і працэс працуе кожны раз, калі VM была скапіяваная.

Рэзюмэ

У гэтай частцы артыкула мы разгледзелі, як лёгка і бязбольна гэта захаваць ваш код апрацоўкі да цяперашняга часу using Rsync або subverion (SVN), каб зрабіць працу і зменшыць сеткавай трафік, у той жа time. Мы таксама абмеркавалі, якім чынам захаваць вашыя дадзеныя ў крыніцы інфармацыі да сучасных, дазваляючы ёй сцячы, каб кожны з вашых работнікаў. Такім чынам, плошча забеспячэнне, што мы ў нагу з бізнес-логікай і інфармацыі ў нашай сістэме, сеткі офіса. Там, відавочна, будзе незлічоныя альтэрнатывы выкананню гэтых задач, але вось два простых прыкладу, каб паказаць, наколькі лёгка гэта рашэнне знайсці.

Наступны раз

У заключнай частцы гэтай серыі, трапна назваў Частка 5 , мы будзем абмяркоўваць разгортванне гэтай сістэмы. Я буду рэзюмаваць, што было вывучана і тое, што мне ўдалося стварыць.

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 1

Па , у пятніцу 4 снежні 2009 года 11:23 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У PHP распрацоўшчык я збіраюся выкарыстоўваць інструменты, якія я выкарыстоўваю кожны дзень, а менавіта, Linux, MySQL , PHP, VirtualBox і Subversion (SVN). Аднак я спадзяюся, што гэта кіраўніцтва будзе адаптавацца да іншых мовах і тэхналогіях гэтак жа добра.

Рашэнне, якое я інфармацыя будзе вельмі слаба ў залежнасці ад тыпу апрацоўкі мы павінны дасягнуць, аднак гэта не можа быць праўдай па ўсёй артыкуле, я нешта змяніць, для прастаты, або для атрымання больш цікавых варыянтаў выкарыстання.

Гэтыя виртуализованных асяроддзях, будзе працаваць на кампутарах з Windows, гэта тое, што большасць офісаў бегчы. Апрацоўкі, офіснай тэхнікі, не павінны перашкаджаць супрацоўнікам выкарыстоўваць гэтыя машыны, павінны не патрабуюць абслугоўвання ў машыну, і быць лёгка адаптуецца да новых машынам, паколькі яны становяцца даступнымі. Акрамя таго, новыя віртуальныя машыны не патрабуе якіх-небудзь дадатковых налад, так як гэта значна зніжае маштабаванасць і лёгкасць, з якой падвесная сістэма можа быць пашырана.

Чаму Разгортванне ГРІД бюро вылічальнай?

Па-першае, вы можаце падумаць, чаму б не выкарыстоўваць рэсурсы хмарных вылічэнняў, такіх як платформы EC2 ад Amazon ? Ну, прычын можа быць некалькі, напрыклад:

  • Вы не будзеце давяраць некаторых дадзеных у асяроддзі хмарных вылічэнняў
  • Вы не можаце змясціць пэўныя дадзеныя ў асяроддзі хмарных вылічэнняў па юрыдычных прычынах (напрыклад, дадзеныя з краіны), што можа па юрыдычных прычынах, напрыклад, NHS запісаў.
  • Вы хочаце, каб ваша апаратура апрацоўкі зачыніць і мець поўны кантроль над апаратным занадта
  • У вас няма сродкаў праекта для запуску воблака выпадках
  • Ваш офіс не мае падлучэння да Інтэрнэту, і таму яго нельга выкарыстоўваць воблака рэсурсаў
  • Вы не любіце дождж, аблокі прапанаваць дождж, таму вы трымаеце далей

Я ўпэўнены, што гэты спіс можна працягваць, але я думаю, што гэта дастаткова.

Перавагі Grid Computing офіса

Ну, давайце рабіць некаторыя матэматыкі (і ў праўдзівым стылі фізікі дазваляе зрабіць некалькі шырокіх здагадках). Уявіце, у вас ёсць вялікі мясісты сервер апрацоўкі працуе 100 рабочых месцаў у дзень. У офісе ў вас ёсць 50 машын, якія прастойваюць па 16 гадзін у дзень, кожная з гэтых машын складае 10%, як магутны, як ваш моцны разарваць апрацоўкі. (Усе вынікі тут акругляюцца да недаацэньваць павелічэння прадукцыйнасці).

Так, 1 машына * 10% магутнасці * 2/3 часу = 0,067 г.зн. 1 працоўны стол апрацоўка ў рэжыме часу можа апрацоўваць 6 поўных працоўных месцаў у дзень.

Калі вы цяпер маштабуецца да гэтага ён займае 15 прастойваюць працоўныя станцыі для апрацоўкі, як шмат працоўных месцаў у дзень у якасці асноўнага сервера апрацоўкі робіць.

Такім чынам, у нашым офісе робяць выгляд 50 машын мы можам павялічыць нашы магутнасці працэсара ад 1 сервера да 4 поўных сервераў апрацоўкі, ці мы маглі б апрацоўкі 400 працоўных месцаў у дзень замест 100.

Заўважце, не для інвестыцый у новае абсталяванне Ваша кампанія толькі павялічыў свой ​​пакет перапрацоўчых магутнасцяў у 4 разы! Патэнцыйна вы збіраецеся павялічыць спажыванне энергіі, але ў большасці офісаў Я быў на машынах, як правіла, застаецца на ноч у любым выпадку, каб вы маглі бачыць гэта як зялёны ініцыятыву.

Іншыя перавагі таксама азначае, што інвестыцыі ў новы (або абноўлены) сервераў апрацоўкі можа быць адкладзенае, калі ваша машына офіса дастаткова, і як палепшыць харчаванне вашай машыны офіс офіс сеткі становіцца ўсё больш магутным аўтаматычна.

Тэхналогіі

Што вам трэба? (Ці, дакладней тое, што я выкарыстаў):

  • Idle офіснае абсталяванне (у маім выпадку запасны старыя вокны XP ноўтбук)
  • VirtualBox (або іншага праграмнага забеспячэння для віртуалізацыі кліентаў)
  • Віртуальная машына з PHP, MySQL running працуе зрэзаная АС, я называю гэта маёй LIMP сервераў :)
  • Вакансіі для запуску
  • Праца сервера (можа быць іншай віртуальнай машыне дзесьці)

Тыповыя Вакансіі

Відаў работ, што гэтая сістэма прызначана для працы выглядае наступным чынам:

  • Сістэма атрымлівае спіс дадзеных, на якіх мы павінны адпавядаць і вяртаць вынікі
  • Адпаведныя ўключае праверку / пошуку некалькі (даволі статычны) крыніц дадзеных
  • Вынікі з крыніц дадзеных могуць спатрэбіцца дадатковыя праверкі, зліваючыся, праверка дадатковых крыніц дадзеных у адказ на вынікі
  • Дадзеныя вяртаюцца з адпаведнымі запісамі, цалкам правераныя і апрацаваны
  • Кожны запіс у працы не залежыць ад астатніх

Таму ў асноўным мы глядзім на выконваюцца заданняў, якія патрабуюць сумесь пошук у базе дадзеных і некаторага ліку храбусценне, даволі тыповы сцэнар у бізнес-асяроддзі.

Сетка рашэння не толькі выгадна для апрацоўкі рабочых месцаў такога тыпу. У прынцыпе, любы працэс, які можа быць падзелены на незалежныя блокі могуць выконвацца паралельна. Глядзіце гэты Вікіпедыі прыклады і больш падрабязную інфармацыю: Grid Computing , але пару вядомых прыкладаў Seti @ Home і BIONC . Ёсць рамкі для выканання вылічальных сетак, і гэта таксама заслугоўвае вывучэння.

Што ж мы дасягнулі?

Да канца гэтых артыкулах я спадзяюся паказаць, што разгортванне сеткі офіса не павінны быць вельмі дарагімі, або часу. Я збіраюся абмеркаваць наступныя пытанні:

  • Налада сістэмы кіравання заданнямі, праца канфігурацыі
  • Стварэнне адпаведнай апрацоўкі віртуальнай машыны
  • Як наладзіць сістэму на машыне акна
  • Забеспячэнне вы выкарыстоўваеце апошнюю версію кода і дадзеных
  • Разгортвання і тэсціравання
  • Зазіраючы наперад

Я буду дома (добра, я пабудаваў, то напісаў) прыклад прыкладанні для праверкі канцэпцыі, на лакальным кампутары ў Windows XP і мой "GridMachine" віртуальнай машыны. Мая праца серверны элемент кіравання будзе маёй асноўнай машынай, якая працуе Fedora 11 .

Гэта ніякім чынам не азначала, каб прадэманстраваць цалкам працоўны надзейныя сістэмы, яе значыла больш, дэманстрацыі і абмеркавання паказваюць, што гэтыя рэчы могуць быць дасягнуты ў досыць сціснутыя тэрміны і з мінімальнымі выдаткамі. Калі ласка, не саромейцеся, дасылайце мне любыя заўвагі, выпраўленні і паляпшэнні, і я зраблю ўсё магчымае, каб захаваць гэты артыкул абнаўлення, каб адпавядаць.

Наступны раз

У частцы 2 я пачну, гледзячы на сістэмы кіравання працай, і вывучыць, як працоўныя месцы павінны быць настроены для дасягнення найбольшай колькасці апрацоўкі ў той час як забеспячэнне кожнага задання апрацоўваюцца ў абавязковым парадку.

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 2

Па , у пятніцу 4 снежні 2009 года 11:23 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 1 я даў агляд сістэмы і тэхналогіі, я буду выкарыстоўваць, а таксама абмеркавалі некаторыя з магчымых прычын, чаму вы хочаце стварыць офіс сеткі.

Кіраванне заданнямі

Калі вы збіраецеся быць запушчана праца, то вы будзеце мець патрэбу ў нейкай меры кіраваць імі. Ваша задача сістэмы кіравання (на працу сервера) павінен быць вельмі добра прадумана яшчэ да спробы запуску офіса сеткі. Такім чынам, па-першае, якія задачы для сістэмы кіравання заданнямі:

  • Раздайце працу па просьбе працоўных
  • Скажыце рабочым, які тып запуску заданняў
  • Трэк працоўных месцаў
  • Пераканайцеся, што заданні выконваюцца толькі адзін раз
  • Забяспечыць працу дадзеных работнікаў, або па крайняй меры, сказаць ім, дзе яго атрымаць

Акрамя таго, сістэма павінна быць пашыраецца, рашэнне, якое працуе цяпер у адным выпадку можа быць падоўжаны да запуску некалькіх відаў работ, як бізнес бачыць сябе ў сетцы рашэнне. Напрыклад, праца можа атрымаць прыярытэты, больш чым аднаго тыпу задання можа існаваць (гэта значыць некалькі баз кода), у рэшце рэшт вы нават можаце запускаць некалькі розных машын работніка, якія аптымізаваныя для кожнага віду работы (хоць гэта ніяк адысці ад "агульнага работніка "Ідэя). Заўсёды стараюся думаць пра будучыню, пры распрацоўцы сістэмы, кароткае бачанне тэрміна можа прывесці да доўгатэрміновай фрустрацыі і павелічэнне часу распрацоўкі.

Праца сервера

Мы збіраемся дзесьці трэба кантраляваць нашу працу з, гэта павінна быць адзіная сістэма ў вашай сеткі, якая мае фіксаваны лакатар рэсурсу, няхай гэта будзе IP-адрас, імя хаста, адрас (з выкарыстаннем ўнутранага DNS) і г.д. Гэта адбываецца таму, што працоўныя павінны ведаць, дзе шукаць працу, работнікам неабходна знайсці сістэму кіравання заданнямі (не сістэма кіравання заданнямі знайсці работнікаў).

Праца самога сервера на самой справе не з'яўляецца складанай задачай (у базавай сістэме так ці інакш), ён павінен захоўваць спіс заданняў, раздаюць працу, атрымаць вынікі, а затым захоўваць іх для наступнага выкарыстання. Як гэтыя часткі (напрыклад, "раздаваць працоўныя месцы) вызначаюцца можа быць вельмі просты. У далейшым мы можам пашырыць сістэмы ўключаюць адміністрацыйны інтэрфейс для дадання, рэдагавання, выдалення, прыпыніць працу, але гэта выходзіць за рамкі гэтай працы.

Існуе ніякіх падстаў, тое, што ваша праца сервера не можа быць віртуальная машына працуе ў вашай асноўнай сервер апрацоўкі ўмове, што ён не злівае ваду занадта шмат рэсурсаў з яго. Праца сервера аднак гэта патрабуецца высокая даступнасць, калі яна ідзе ўніз ў пятніцу ўвечары вы будзеце губляць усе выходныя апрацоўкі, патэнцыйна варта Вам пару тыдняў варта часу апрацоўкі (у параўнанні з вашай асноўнай сервер апрацоўкі ў адзіночку) . Вы можаце разгледзець пытанне аб стварэнні працу сервера з балансавання нагрузкі навакольнага асяроддзя для забеспячэння высокай даступнасці.

Асноўныя налады

Асноўныя налады для нашай працы сервера будзе складацца з таго, што я тэлефаную аднаму з маіх LIMP сервераў (гэта значыць Li ММК, м ySql, P л.з.). Код працуе на працоўных Теи сапраўды будзе працаваць, якія працы ён можа працаваць, узаемадзейнічаючы з працай баз дадзеных сістэмы кіравання. У далейшым мы маглі б стварыць вэб-сэрвіс і фактычна раздаваць працоўныя месцы замест таго, рабочыя робяць цяжкую працу самі, але цяпер мы будзем працягваць выкарыстоўваць прынцып KISS, (Keep It Simple, Stupid!).

Такім чынам, дазваляе стварыць 3 MySQL табліц для вырашэння працоўных месцаў. Гэта будуць працоўныя месцы ``, `jobRecords` і `jobResults`.

працоўныя месцы табліцы Тут я выкарыстоўваю SQL Buddy вялікі невялікі альтэрнатыва PhpMyAdmin толькі таму, што яе лягчэй ўсталяваць на CentOS (для іншых гл.: 10 лепшых альтэрнатыў для PhpMyAdmin )

Гэтая табліца складаецца з 5 простых палях,

  • ID: Унікальна ідэнтыфікаваць працу
  • Назва: Можа быць нумар кліента, або любую колькасць іншых ідэнтыфікатараў
  • Статус: Вы павінны ведаць, дзе праца на, напрыклад,
    • 0: Не пачаўся
    • 1: Падабраў
    • 2: Завершаны
  • started_by: Хто пачаў рабіць гэтую працу? Гэта не зусім абавязкова, але гэта добра, калі ёсць. Я прапаную адсочвання рабочых па іх IP-адрас у сеткі
  • started_at: Калі працаўнік пачаць працу? Адсочваючы вакансіі, якія не завершаны на працягу пэўную колькасць раз, калі мы ведаем, што трэба падабраць працу яшчэ раз і пачаць апрацоўку іншым работнікам. Рабочыя маглі спыніць апрацоўку / пераходу ў аўтаномны рэжым для любога ліку прычын збою харчавання, аварыя, страта сеткі і г.д.

Лёгка, як гэтая табліца можа быць пашырана за кошт некалькіх дадатковых палёў, каб забяспечыць статыстыку сачэння, калонка аздабленне час, каб убачыць, колькі працы ўзяў, лічыльнік, каб убачыць, колькі працоўных ўзяў працу (відавочна, гэта павінна, як правіла, 1), прыярытэт заданні, спіс можна працягваць і працягваць. У больш складаных сцэнараў працы можна было б вызначыць, колькі памяці работнік будзе мець доступ да (і, такім чынам, выкарыстоўваць адпаведныя рабочыя), або нават, які тып работніка не спатрэбіцца.

Давайце дадамо некалькі працоўных месцаў прыклад:

Прыклад працы

У наступнай табліцы зноў вельмі просты для разумення, гэта нашы запісы працы. Яны звязаны з асноўнай табліцай працоўных месцаў калонка `jobs_id`. Зрабіць з гэтай табліцы шмат у чым залежыць ад дадзеных, якія неабходна падаць для вашых работнікаў, дазваляе зрабіць вельмі просты прыклад, калі ў нас ёсць чатыры калонкі:

  • ID: ідэнтыфікатар запісу
  • Назва: імя чалавека
  • адрас: адрас Асобы
  • jobs_id: ідэнтыфікатар заданні, што гэты запіс звязана з

Трэцяя і апошняя табліца складаецца з табліцы вынікаў, ён мае такі ж складаюць да нашай табліцы запісаў, а таксама з даданнем некаторых слупкоў можа быць часткай табліцы запісаў:

  • job_record_id: Спасылка вынік працы табліцы
  • Вынік: У выніку дадзеных

... І гэта ўсё, што вам трэба для кіравання працай! (Хоць на самай базавым узроўні) У маім выпадку я звярнуў увагу на іншы стол, дзе мае дадзеныя, каб працэс быў размешчаны, але гэта можа так жа лёгка было файла, параметры для запуску праграмнага кода, што заўгодна.

Выбар працы

Як адзначалася раней, працоўныя будуць рабіць сваю працу кіраванне для нас цяпер, так што ўсё, што мы сапраўды павінны зрабіць, гэта знайсці працу, якая павінна апрацоўкі і атрымання інфармацыі. Як бы мы гэта зрабіць? Ну забраць нашы крытэрыі выбару працы і шукаць працу ў SQL я зрабіў наступнае:

  1. Вазьміце любую працу, не пазначаныя як завершаныя, але ад нашых работнікаў і скінуць іх (заменіце __ ME__ з ідэнтыфікатарам, просты будзе IP-адрас):
     UPDATE `працы` SET `статус` = 0 WHERE `статус` = 1 AND `started_by` = __ ME__; 
  2. Выкарыстоўваючы нашы крытэрыі выбару працы, абраць працу і сказаць сістэме кіравання, што гэты работнік мае справу з ім:
      UPDATE `працы` SET `статус` = 1, `started_by` = __ ME__ `started_at` = NOW () WHERE `статус` = 0 або
     (`Статус` = 1 AND `started_at`> DATE_SUB (NOW (), INTERVAL X ЧАС)) ORDER BY `ID` ASC; 

    Па захоп рабочых месцаў, якія не вярнуліся вынікі ў X колькасць часу мы гарантуем, што ўсе работы выконваюцца ў выпадку збою або працаўнік ідзе ў самаволку.

  3. Далей вазьміце працу дэталі ідуць самі запісу:
      SELECT * FROM `працы` WHERE `started_by` = __ ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `ID` = __ JOBID__; 

Пасля заканчэння працы мы ўстаўляем нашы запісу вынікаў і адзначыць працу завершана. Памятаеце, як праца можа прыпыніць / аднавіць у любы момант забяспечыць пэўную ўстойлівасць ў ваш сцэнар. Цалкам верагодна, што задача прыпыняецца на палове шляху ўдасканалення сістэмы кіравання заданнямі, так што праверка запісаў на працу і колькасць вынікаў захаваны ў сістэме кіравання працай было б мудрым крокам.

Акрамя таго, у той час як гэта дэманструе, як працоўныя месцы могуць быць выбраны і кіруюцца з SQL-запыту кадр, які вы павінны сапраўды абстрагуючыся працу кіравання, так што калі вы вырашыце перайсці на выкарыстанне вэб-сэрвісаў, файл сістэмы, заснаванай на XML , або любой іншай лік сістэм, гэта не паўплывае на код вышэй.

Праца канфігурацыі

Наступным аспектам з'яўляецца памер працы і канфігурацыі. Гуляючы з працы канфігурацыі мы можам стукнуць выдатны баланс паміж хуткасцю, працэс рэплікацыі і надзейнасці. Вазьміце пару сцэнарыяў аператара А:

  1. Вакансіі ўзяць 1 дзень кожны для запуску: Гэта азначае, што працаўнікам неабходна 15 дзён для апрацоўкі кожнага задання (памятаеце, 10% магутнасці для 2/3rds часе). Гэта відавочна не мудрымі канфігурацыі, Ваша праца памер занадта вялікі! Гэта зойме мінімум у два разы час, каб уладкавацца на працу павінны апрацоўвацца пачатковай работніка ісці ў самаволку (час, каб забраць, што ён не вярнуўся ў выніку перапрацоўкі, плюс час). У ідэале вы павінны па меншай меры адзін поўны працу лёгка чысціцца ў канцы кожнага доўгага перыяду бяздзейнасці, такім чынам вы захаваеце працу над цікаюць, а ў горшым выпадку, калі праца зойме два дні, каб працэс павінен спачатку прайсці без вестак.
  2. Вакансіі заняць ад 1 хвіліны да запуску: Гэта азначае, што вашыя работнікі зойме каля 15 хвілін для выканання кожнага задання. Хоць гэта можа спачатку здацца ідэальнай, вы атрымліваеце дадатковую апрацоўку працы падчас абеду, кава-брэйкі, сустрэчы і г.д. гэты сцэнар ставіць нагрузку на іншыя вобласці сістэмы і ўводзіць свае ўласныя праблемы. Напрыклад, у першую чаргу вашы налады / час апрацоўкі суадносіны будзе ісці прама, таму страты эфектыўнасці сістэмы. Ваша сетка будзе пастаянна струменевага працы інфармацыі розных працоўных хвалюе супрацоўнікаў, якія дон іх паўсядзённым працы. Вы таксама збіраецца надаваць больш нагрузка на сервера апрацоўкі заданняў, як ён павінен страва з шмат-шмат маленькіх кавалачкаў працу на рэгулярнай аснове. Нарэшце, у гэтай сітуацыі, калі ваша праца сервер выходзіць з ладу, вы збіраецеся стварыць велізарнае бервяно назад незавершанага працы ў той час як больш працоўных месцаў маглі б, працягвалі апрацоўку ў шчасным недасведчанасці аб тым, што праца сервера, якія выпрабоўваюць цяжкасці.

На самой справе там будзе няма каму ідэальнай канфігурацыі для налады сеткі, шмат што залежыць ад наяўных рэсурсаў, відаў працы, службовых патрабаванняў затрат часу, магчымасць працы ў сеткі, і гэтак далей. Тым не менш некаторыя рэкамендацыі будуць:

  • Памер працу так, каб кожны работнік можа прайсці як мінімум 3-4 працоўных месцаў на працягу 15 гадзін (верагодна, самы доўгі перыяд прастою часу)
  • Гуляць з працай памер так, каб налада часу становіцца нязначным у параўнанні з апрацоўкай часу (з улікам вышэй кропкі).
  • Калі праца не была завершана ў два разы больш часу (можа быць менш), Вы чакаеце, каб завяршыць яго мяркуецца, што яго сышлі ў самаволку і пачаць яе апрацоўку з іншым работнікам. Гэта азначае, што вы, магчыма, прыйдзецца чакаць да трох разоў нармальная працягласць працы яго завяршэння (магчыма, і даўжэй, калі наступная праца не атрымоўваецца). Вы можаце скараціць гэты час, але будзьце асцярожныя, каб не паменшыць яго занадта шмат, як вы можаце пачаць дубляванне задач апрацоўкі на рэгулярнай аснове.
  • Вакансіі павінны быць незалежныя ад знешніх патрабаванняў, наколькі гэта магчыма. Праца сервера, напрыклад, павінны быць кантакты ў пачатку і ў канцы кожнай працы.
  • Ці не насыціць вашай сеткі, гэта будзе мець два адмоўных эфекту, ваш дзённай персанал знайсці з дапамогай сеткі расчараванне і праблемы могуць узнікнуць з падключэннем час чакання, што праблема будзе толькі горш, як вы маштабавання сеткі.
  • Забяспечыць працоўныя месцы могуць працаваць на вашых работнікаў. Калі праца стала занадта вялікі аб'ём памяці або дыскавай прасторы інтэнсіўная праца пачнецца перапыненне і адзінае, што вы заўважыце гэта кропля ў лік працоўных месцаў, апрацоўваюцца ніякай рэальнай прычыны, чаму.

Прадстаўленне вынікаў працы

Пры падачы вынікаў працы важна, каб пераканацца, што вынікі не былі прадстаўлены на іншага работніка, асабліва калі бягучы працоўны быў замарожаны на некаторы час.

Калі вынікі прадстаўлены пераканацца, што шэраг вынікаў, супадае з колькасцю запісаў у працу.

Як адзначалася раней, і не можа быць пераацаніць, пабудаваць адмоваўстойлівасці ў пошук працы і вынікі прадстаўлення. Работнікі могуць (і, хутчэй за ўсё, будзе) пераходзяць у рэжым чакання ў самы непадыходны раз, і гэта павінна быць абслужаны. Таксама яшчэ раз абстрагуючыся ад вашых вынікаў прадстаўленне дапаможа задаволіць будучыя змены ў працу сістэмы кіравання значна прасцей мець справу.

Рэзюмэ

У гэтым section мы глядзелі на тое, што сервер кіравання заданнямі трэба зрабіць і як атрымаць вельмі просты сістэмай налады. Мы абмяркоўвалі, як атрымаць працу ў сістэме кіравання, і як лепш наладзіць працоўныя месцы, каб атрымаць большасць нашых вашай сістэмы сеткі офіса. Каб скончыць, адзін-два абзаца аб прадстаўленні вынікаў на сервер кіравання заданнямі была прадстаўлена.

  • Сервер кіравання працай кіруе заданнямі і гарантуе, што ўсе працы будуць завершаны адзінак
  • Абстрагуючыся працу выбраць / вынікі прадстаўлення, мы можам змяніць тэхналогію кіравання серверам без асаблівых праблемы
  • Налада працоўных месцаў, каб яны працуюць хутка і эфектыўна, не падвяргаючы занадта шмат ціску на сеткавую інфраструктуру, і без дублявання задач апрацоўкі на рэгулярнай аснове.
  • Пераканайцеся, што вы будуеце адмоваўстойлівасці і памылкі checking ў вашай працэдуры, працаўнікі могуць прыпыніць і аднавіць, і ў самы непадыходны раз. Не забудзьцеся праверыць, калі вынікі ўжо былі прадстаўлены іншым работнікам.

Наступны раз

У частцы 3 мы ствараем віртуальную машыну, апрацоўкі і стварылі нашы вокны машыны, каб стаць часу прастою работнікаў.

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 5

Па , у пятніцу 4 снежні 2009 года 11:03 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 4 мы разглядалі з дапамогай інструментаў, каб гарантаваць, што мы бяжым апошнюю версію кода і крыніцы дадзеных, так што атрыманыя вынікі з'яўляюцца заўсёды сучаснымі з апошнімі бізнес-інфармацыі і логіку.

Перад разгортваннем

Да разгортвання сеткі сістэмы, калі ёсць адна рэч, вы робіце, і адно толькі гэта тэст бягучай сістэмы! Усё роўна, што вы кажаце калегам пра тое, колькі дадатковай працы вашай сістэмы будзе рабіць, калі ў вас ёсць ліку, каб падтрымаць гэта ваш гарантыі нічога. Такім чынам,

  • колькі запісаў вы можаце апрацоўваць ў цяперашні час? У дзень? У гадзіну?
  • Колькі часу звычайна патрабуецца, каб разгарнуцца на працу?
  • Наколькі больш магчымасцяў у вас ёсць?

Там таксама дадатковыя пытанні:

  • Калі ваш сервер апрацоўкі (або адзін з сервераў апрацоўкі) падае як гэта паўплывае на вашы магчымасці, вы будзеце калекамі?
  • Якія перавагі вы спадзеяцеся / чакаеце атрымаць ад падвеснай сістэмы?
  • Вашы офіснае абсталяванне можа працаваць працоўныя месцы?
  • Вашы (ці вы можаце быць пераўтвораны працоўных месцаў) у wrok ў гэтым стылі працуе?

Апошняе буйное справа ў тым, каб правесці час якіх-небудзь сур'ёзных змяненняў, як гэта. Абнаўленне апрацоўкі кода для працы з выкарыстаннем новай метадалогіі, тэст зноў. Магчыма наладзіць апрацоўку сервер для запуску віртуальнай машыны, у рэшце рэшт сервер апрацоўкі вашага будзе проста яшчэ адзін рабочы (толькі вельмі магутны адносна). Дайце новы працэс ўрэгулявання.

Разгортванне

Мая прапанова было б з'явіцца ў офісе адзін з выхадных дзён выконваць усе ўстаноўкі і наладкі. Рабіце гэта перад святам два тыдні і сысці, каб іншыя небарака, каб мець справу з наступствамі ... можа быць, не ...

Разгортванне сістэмы, як гэта павінна быць павольным. Нягледзячы на ​​гэта час адносна просты ва ўсталёўцы гэтай сістэмы паўплывае на ўсю інфраструктуру офіса (і лічбавай). Па-першае, раскачаць на некалькі машын адначасова, маніторынг сеткавага трафіку, як работнік выконвае хастоў у дзень, у дзень аснове. Магчыма, вам прыйдзецца змяніць канфігурацыю вашай працы ў адказ на вашыя высновы.

Пасля таго як сістэма пасяліўся з некалькімі машынамі (скажам 10% усіх офісных машын, гэта значыць 5) весці маніторынг сеткавага трафіку і машыне performance. Далей тэст яшчэ раз, цяпер вы павінны быць апрацоўкі 33% больш працоўных месцаў, чым ваш першы тэстаў. Праверце гэта так, або, што вы па крайняй меры, у гэтым футбольным полі. Калі няма, высветліць, што адбываецца, перш чым рухацца далей. Паўтарыце гэты цыкл, пакуль вы з радасцю ўсё офіснай тэхнікі працуе без забойства індывідуальнай працы машыны або драбнення сеткі ў тупік.

Ва ўсе часы трымаць параўнання, нават пасля разгортвання зробленыя. Праверце, як новыя абнаўлення кода ўплывае на хуткасць вашай сістэмы, праверце, усе работнікі паведамляюць у апрацоўцы і працоўных месцаў. Паступова (вельмі павольна) павялічвае вашу працу канфігурацыі, каб атрымаць лепшае з вашых работнікаў і сеткі.

Стоп!

Што рабіць, калі вы хочаце спыніць працоўныя працуюць на некаторы час? Яны ўсе там працуе, якое рэгенеруе, і з усіх сіл спрабуюць апрацоўваць дадзеныя, як галодныя казуркі. Адказ можа здацца відавочным, але яго варта дадаць толькі ў выпадку, калі яго ігнараваць. Проста рэдагаваць свае апрацоўкі сцэнараў з выхадам (0) або die () ці іншыя заявы, каб забіць вашага заданні апрацоўкі. Адной з важных прычын, чаму мы заўсёды імкнемся абнавіць да апошняй апрацоўкі сцэнара да таго, як бегчы!

Дэманстрацыя сістэмы

Для таго, каб напісаць гэта мноства кароткіх артыкулаў, якія я стварыў вельмі невялікую сетку для дэманстрацыі тэхналогій і метадалогій. Я чытаў шмат артыкулаў, навучальных дапаможнікаў і выкарыстоўваць розныя прылады для налады і маніторынгу, што адбываецца. Ні ў якім выпадку я сышоў і насычаны цэлы офіс з трафікам і пры гэтым я не меў доступ да рэгулярных супрацоўнікі PC бачыць, як гаспадар выкананне якіх паўплывалі.

Мая дэманстрацыйная сістэма была сапраўды вельмі сціплы. Я выкарыстаў свой звычайны працоўны стол настроены як сервер кіравання заданнямі. На гэтым я ўсталяваў MySQL сервер усталяваная настроены як майстар рэплікацыі, PHP , а, SVN звязаныя праз Apache (для доступу праз працоўны VM).

Затым я стварыў машыну CentOS работніка на VirtualBox на 6-гадовы ноўтбук Windows XP. Я наладзіць запланаваныя задачы, названыя пасля капіявання віртуальнай машыны на машыну і адпусціць яе.

Віртуальная машына была створана з PHP, падрыўной дзейнасці, і MySQL. Я праверыў філіял пад назвай «працоўны» ад маёй працы рэпазітара сервера кіравання і пераканаліся, што ён можа быць абноўлены з дапамогай "запускалі". Затым я ўстаноўка MySQL ў якасці раба і праверыць, што рэплікацыя дадзеных з MySQL на серверы кіравання працай да працоўнага VM. Пасля ўсяго гэтага мне ўсталяваць скрыпт баш і хранічны.

Мой сцэнар апрацоўкі ў асноўным ішлі па лініі гэтага (вельмі простыя рэчы):

  • Чытайце ў поле імя
  • Падлічвалі колькасць падобных імёнаў у табліцу з крыніцы дадзеных праводзіцца на VM
  • Падлічвалі колькасць імёнаў, як і вышэй, але расшчапленне імя прасторы (напрыклад, імя, сярэдні, прозвішча)
  • Паўторны працэс у 1000 разоў

Кожнае заданне сышло каля 20 хвілін, каб бегчы. У адзін момант я адкрыў некалькі копій працоўных VM на наўтбуку акна і глядзеў на працу правяраць у кожнага з адрасоў IP работніка. У гэты момант я таксама пацвердзіў, што рэплікацыя аўтаматычна перазагружаны.

Пакінуўшы ноўтбук на халастым ходу ў выніку працаўнік пачынае апрацоўваць заданні з сервера кіравання заданнямі. Пры аднаўленні выкарыстання ноўтбука была затрымка каля 30-60 секунд, гэта шмат часу і персанал павінны быць дасведчаныя, што іх машына можа прыпыніць на некаторы час, вяртаючыся да машыны. Новыя машыны могуць не мець паўзу так доўга. Перавага аб'ём апрацоўкі выконваюцца гэтыя машыны падчас прастою будзе больш, чым перавешваюць супрацоўнікаў чакаючы кароткі тэрмін (скажам, 1 хвіліну), прыбыўшы на свае машыны раніцай (я часта чакаць даўжэй, чым гэта для Windows Defender абнаўленне пройдзе), калі яны былі пастаўлены ў вядомасць аб гэтым (карыснае час, каб захапіць ранішні кава!).

У цэлым, я ўпэўнены, што я прадэманстраваў тэхналогіі, якія могуць быць выкарыстаны для стварэння такой сістэмы. Я паказаў, што такая сістэма працуе на (вельмі) невялікіх маштабах і яшчэ некалькі эксперыментаў можа быць пашыраны выкарыстоўваць рэсурсы машыны офіса. Калі я не атрымліваю да кропкі гэтым я быў бы вельмі цікава ведаць / бачыць, калі нехта іншы.

Высновы / Ацэнка

Наступным відавочным крокам было б на самой справе атрымаць рэальны прыклад і пачаць разгортванне такой сістэмы, як гэта ў офісе і паглядзець, што адбываецца. Запытаная бізнесу да здзяйснення гэтага без следу палаючага кампаніі, каб даказаць эфектыўнасць тэхналогіі і можа быць крыху больш складана. Сетка / Размеркаваныя вылічэнні вельмі папулярная пэўных колах і мае некаторыя вялікія прыкладанні (BIONC, SETI @ Home, Folding @ Home і г.д.). Я, аднак, не знайсці і ў меншых маштабах і простая сістэма, як гэта ў маіх пошуках, якія маглі б быць разгорнута ў офісе.

Я стварыў у асноўным свабодныя сістэмы, выкарыстоўваючы галоўным чынам з адкрытым зыходным кодам і інструменты, даступныя практычна ў любым офісе. Тэхналогіі ў асноўным паказалі і паказваюць выступаць і працаваць, як чакалася. Спадзяюся, у мяне паказвае, што з не так шмат працы і вельмі просты ўстаноўкі можна разгарнуць вылічальнай сеткі офіса сістэма, магутны, танны, а і маштабуецца усё ў той жа час.

Пасля таго, як сістэма ўстаноўлена і працуе амаль няма канца на суму налады і паляпшэнні, якія вы можаце зрабіць. Напрыклад, статыстыка / тэставання могуць быць лёгка дададзеныя паказвае каштоўнасць такой сістэме кожны дзень. Новыя машыны могуць быць дададзеныя хутка і лёгка, як і калі яны прыходзяць з мадэрнізацыі існуючага абсталявання ўмацавання вашай вылічальнай магутнасці.

Я спадзяюся, вам спадабалася чытаць гэтую серыю артыкулаў і даў вам ежу для разважанняў аб запуску сістэмы офіса сеткі. Рашэнне, прадстаўленае тут, не абавязкова будуць працаваць ва ўсіх сітуацыях, але яны павінны быць адаптаваныя, каб дазволіць вам атрымаць апрацоўка дадзеных ажыццяўляецца з дапамогай уласнага рашэння.

Калі ласка, не саромейцеся, дасылайце мне любыя заўвагі, выпраўленні і паляпшэнні, і я зраблю ўсё магчымае, каб захаваць гэты артыкул абнаўлення, каб адпавядаць.

Zend Framework: асновы - Агляд

Па , у суботу 28 лістапада 2009 10:42 вечара

Мой працадаўца ў апошні час заплаціў за групай распрацоўнікаў з нас узяць на сябе Zend Framework: асновы , вядома, тут я буду сумаваць мае думкі і меркаванні аб ходзе іншых. Для тых, хто хоча зэканоміць час, вось маё рэзюмэ:

Для распрацоўнікаў, якія не паспелі паглядзець на Zend Framework гэты курс (Zend Framework: асновы) забяспечвае добрую агульную карціну рамках ўвядзення вас у ключавых галінах і дае дастаткова інфармацыі для таго, каб працягнуць. Для тых, хто выдаткаваў час на пошукі ў рамках і рушылі ўслед за адзін або два кіраўніцтва гэтага, вядома, не прапанаваць значна далей.

Фон

Я быў PHP распрацоўшчык каля 5-6 гадоў, і пачалі працаваць з Zend Framework, на аснове кампанентаў на працягу апошніх 6 месяцаў. Я распрацаваў і / або быў распрацоўшчыкам некалькі невялікіх Zend Framework MVC sites. я, шчыра кажучы, у мяне не было велізарная колькасць кантактаў з іншымі рамкі, кадаваньне пункту гледжання, але на працягу некалькіх гадзіны, даследуючы праекта вэб-сайтаў і ацэнкі them. рамкі і навакольныя супольнасці Zend Framework цалкам цікавай і, здаецца, ёсць велізарныя магчымасці ў тым, дзе яго збіраюцца.

Аб курсе

Курс пастаўляецца больш за 9 двухгадзінны сесіі WebEx (з 10-хвілінны перапынак у сярэдзіне). Часу марнуецца перажывае набор слайдаў, якія прадстаўляюцца Zend з абмеркаваннем у любы час. Вы можаце выкарыстоўваць мікрафон для размовы з інструктарам, але, шчыра кажучы, я не бачу нікога выкарыстоўваць нешта большае, чым акно чата. Акрамя таго, машына VMWare Ubuntu пры ўмове, што ёсць прыклад кода і праектаў створана пробная версія Zend Studio. Вядома лідэр перамовы удзельнікаў альбо па рашэнні інтэграваны VoIP, або вы можаце патэлефанаваць у выкарыстанні адной з многіх ва ўсім свеце набору ў лічбах.

У ходзе матэрыял складаецца з кароткага агляду Framework і MVC шаблон, перш чым адправіцца ў прыклад прыкладання гасцявой кнізе. Дыскусія паказала загрузку, Zend_Application, табліцы базы дадзеных, доступу да базы дадзеных, формы, фільтраванне, ACL, сартаваць і г.д., і г.д. У асноўным, якія ахопліваюць усе тэмы, якія вы б патрабаваць, каб атрымаць асноўны сайт да працуе ўвесь час дае вам прылады для пайсці і атрымаць больш прасунутыя ў рамках (хоць гэта зрабіў суму "глядзіце на сайце" вялікую частку часу).

Час дадзена для кадавання некаторыя прыклады, а таксама распрацаваць "гасцёўня кніга" і прымяненне простых "вікі". Асабіста я адчуваў, што прадастаўленне або код кожнага прыкладання, а затым просяць нас развіваць тое, што, па сутнасці копіяй побач на самай справе не забяспечваюць добры вопыт. Я б аддаў перавагу, каб распрацоўваць прыкладанні падобныя, але не ідэнтычныя. да прыкладу прыкладання перавага мець кіраўніцтва для абазначэння. Акрамя стварэння прыкладанняў з нуля демонстратора б, магчыма прывялі да больш пытанняў аб тым, чаму і як, што дае больш поўнае ўяўленне аб рамках, у рэшце рэшт вы можаце паглядзець на спецыфіку пасля заканчэння курса.

Апошняя лекцыя складаецца з працуюць на вікі прыкладанні з дапамогай / кіраўніцтвам інструктара. Пасля курсу зваротнай сувязі было прынята, было падкрэслена некалькі разоў на працягу курсу, Zend мае зваротная сувязь вельмі сур'ёзна, на самай справе па-відаць наша версія курсу была зусім новай. Некаторыя іншыя распрацоўнікі ў кампаніі будуць прымаць курс хутка так і будзе цікава паглядзець, калі гэта адбылося.

Вядома стыль быў нефармальны, дазволеных да зваротнай сувязі і ўзаемадзеяння паміж удзельнікамі і інструктарам. Вядома лідэрам быў дружны, даступным (адрасы электроннай пошты былі падзеленыя на пытанні), і, хоць яго прэзентацыя слайдаў была трохі няўпэўнена здавалася, цалкам кампетэнтны ў рамках. Ён відавочна быў хтосьці, хто выкарыстаў рамкі на рэгулярнай аснове, а не той, хто вучыць вучыць, вядома, мне спадабаўся досвед «рэальнага свету» у гэтым стаўленні.

Агульная адчуванне

У пэўным сэнсе я знайшоў ход пустое марнаванне часу, у іншых гэта было вельмі зручна. Спадзяюся, я атрымаю мае довады па выразна, і, магчыма, забяспечыць некаторую ежу для разважанняў і карысную інфармацыю (ведаючы мяне гэта наўрад ці!).

Для мяне гэты курс быў накіраваны на занадта нізкім узроўні. Прайшоўшы Кіраўніцтва па хуткім старту, чытаць Адзежа Алена Zend Framework ў дзеянні, а таксама працаваў з рамкамі нямногае, што я на самой справе не атрымаць нічога занадта шмат. Я б, вядома спадабалася, каб забраць з канца хуткі старт і развіццё дадатковых навыкаў.

Тым не менш, назва курса робіць выразна дзяржавы "Zend Framework: асновы", і ў гэтым аспекце курс дасягае таго, што ён мае намер зрабіць. Іншыя чальцы каманды распрацоўшчыкаў, якія не правялі час на пошукі ў рамках кожнай сесіі скончыў з энтузіязмам задавалі пытанні і які сапраўды прыемна бачыць.

Не ўсё было страчана, было прыемна правесці час пацвярджае асноўныя дэталі структуры і атрымаць задаць пару пытанняў у абласцях, дзе я не быў на 100%. Гэта было таксама час, што я павінен сядзець кожны дзень, і думаць аб кадаванні з выкарыстаннем рамак і будучых праектаў, то я б не змог паступіць інакш (вы можаце ўявіць Вашу кампанію пагадзіцца на гэта? :)). Не ў апошнюю чаргу вы таксама атрымаеце добры сертыфікат Zend сказаць, што вы прынялі ўдзел у курсе (хоць і па электроннай пошце).

Zend Framework сертыфікацыі

Гэта быў адзін пытанне, на які прыходзілі на розум падчас курсу, ён бы падрыхтаваць мяне да сертыфікацыі? Хутка, лёгка гэта гучнае няма. Выкладчыка было зусім зразумела, на што пры дадатковых саветаў, якія па сертыфікацыі вы сапраўды павінны выкарыстоўваць рамкі на штодзённай аснове, і адчуваю сябе вельмі камфортна і ўпэўнена ў яго выкарыстанні і метадалогій.

Рэзюмэ

Улічваючы ўсё, што я напісаў вышэй, я буду сумаваць усё, што ў два простых пункта кулі:

  • Новае ў Zend Framework: Гэта вядома робіць менавіта тое, што вы чакаеце, гэта дае вам добрае ўвядзенне ў структуру і добрую падрыхтоўку па асновах, з якіх можна пабудаваць. Вядома, здаецца, выклікаць цікавасць і запал у рамках сярод распрацоўнікаў.
  • Выкарыстоўваецца Zend Framework: У той час гэта было прыемна, каб умацаваць некаторыя з самых асновах я адчуваў часу, высілкаў і сродкаў, каб курс можна было па лепш выдаткаваць у іншым месцы. Гэта будзе прыемна СЭЭУ Zend стварыць новы, больш высокі ўзровень курсу прыняць распрацоўнікаў на наступны ўзровень -. Па крайняй меры да ўзроўню сертыфікацыі і за яе межамі, што я буду падпісваць неадкладна.

Уваход у БД з дапамогай Zend Framework

Па , у аўторак 14 красавіка 2009 года 09:06 вечара

Мне ўдалося атрымаць сайт і працуе з Zend Framework , усё рэгістрацыі прыгожа FireBug / FirePHP таму наступным крокам было ўвайсці ў базу дадзеных. Я таксама хацеў увайсці некаторую дадатковую інфармацыю, з дапамогай платформы, такія як агент карыстальніка, дата і час, атрымаць і размясціць зменныя. Таму, каб падоўжыць кіраўніцтва трохі вось што я зрабіў:

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

$ ColumnMapping = Array ('прыярытэт' => 'прыярытэт',
"Паведамленне" => "паведамленне",
'Дату' => 'час',
"User_agent '=>' user_agent,
"Get_vars '=>' get_vars,
"Post_vars '=>' post_vars,
"Сайт" => "сайт"
);

$ WriterDb = новы Zend_Log_Writer_Db ($ DB "error_logging ', $ ColumnMapping);
$ = Новы рэгістратар Zend_Log ($ writerDb);

$ Рэгістратар-> setEventItem ("даты, даты ('Ymd H: я: я'));
$ Рэгістратар-> setEventItem ('user_agent', $ _SERVER ['HTTP_USER_AGENT']);
$ Рэгістратар-> setEventItem ('get_vars, print_r ($ _GET, праўда));
$ Рэгістратар-> setEventItem ('post_vars, print_r ($ _POST, праўда));
$ Рэгістратар-> setEventItem ("сайт", сайт);

$ Рэгістратар-> інфармацыя («Інфармацыйныя паведамленні»);

Дзе ключы масіва ў $ ColumnMapping мае імёны слупкоў. "Прыярытэт" і "паведамленне" разумеюцца Zend_Log_Writers але дадатковыя поля былі дададзеныя, каб даць мне некаторую дадатковую інфармацыю.

Відавочна, гэта мяркуе, што вы рэгістрацыі рабочых, выкарыстоўваючы адзін з іншых пісьменнікаў 1. :)













Панарама Тэма Themocracy

7 наведвальнікаў онлайн
6 гасцей, 1 ботаў, 0 карыстальнікаў
Макс наведвальнікаў сёння: 15 у 12:54 раніцы UTC
У гэтым месяцы: 16 ст 2012/05/01 01:02 вечара UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC