Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 4
Увядзенне
Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.
У частцы 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 , мы будзем абмяркоўваць разгортванне гэтай сістэмы. Я буду рэзюмаваць, што было вывучана і тое, што мне ўдалося стварыць.

















































