Паведамленні з тэгамі: SVN

Упраўленне 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 я пачну, гледзячы на сістэмы кіравання працай, і вывучыць, як працоўныя месцы павінны быць настроены для дасягнення найбольшай колькасці апрацоўкі ў той час як забеспячэнне кожнага задання апрацоўваюцца ў абавязковым парадку.













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

5 наведвальнікаў онлайн
3 гасцей, 2 ботаў, 0 карыстальнікаў
Макс наведвальнікаў сёння: 19 у 1:56 раніцы UTC
У гэтым месяцы: 26 у 2012/04/04 10:27 вечара UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC