Мислења обележани: svn

Канцеларија мрежа компјутери со користење на виртуелни средини - Дел 4

Со , петок 4 декември 2009 година 11:59

Вовед

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

Во Дел 3 ние направивме нашата виртуелна машина за обработка и конфигурирате Windows машини за да стане мрзлив работно време.

Водење на најновите кодот

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

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

Со првиот метод ќе биде едноставно да се поврзете со нашата работа за контрола на серверот (преку самба, FTP, или слично) и повлечете надолу на најновата верзија на кодот. Не е многу ефикасна, но тоа ќе ја заврши работата. Ај да се подобри на тој малку, како за создавање на rsync скриптата и со користење дека секој пат наместо неа? Алтернативно, она што за ставање на нашите најновите обработка на скрипта во субверзија одјавувањето на кодот на почетокот, а потоа само ажурирање на нашите код на секој работи ( svn ажурирање )?

На крајот, би можел да заврши со сценариото баш (наречен од cron секои 10 минути) кој изгледа толку едноставно како ова:

  #! / Bin / sh
 ако ps ax | grep-v grep | grep PHP > / dev / null
 потоа
     echo "работа е во процес на обработка, излез"
 друго
     echo "Јов не се извршува, да започнеме сега"
     CD / патека / до / работа / копирање
     svn ажурирање
     PHP yourJobProcessingScript.php
 -fi 

Сега можеме да бидеме сигурни дека со секој работи ние сме дефинитивно работи за најновата код. Ние сме обезбедување ова со ажурирање на нашите кодот база во секое време се вршат за да се кандидира и намалување на мрежниот сообраќај од само пренос на датотека разлики низ нашата мрежа.

Во мојот демонстрација подесување, го направив точно како погоре. Субверзија беше инсталиран на мојот работа за обработка на сервер и јас едноставно се повлече најновите кодот од "работник" гранка користење на "svn ажурирање. Јас исто така, додаде бројот на верзијата таг за да ја обработка на скрипта која беше вратен во базата на податоци како дел од резултатите се вратат. На овој начин можев да видам дека мојот код беше се ажурираат секој пат кога копира моето стебло во работник гранка, односно дека сум бил дефинитивно работи за најновата обработка на скрипта.

Помош на најновите податоци

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

Држете си коњи таму! Што ако мојот извори на податоци се огромни? Па ова навистина е случај за тоа колку податоци се зборуваме? Тоа може да бидат повеќе исплатливи да се инсталира дополнителна поголем хард диск во секоја машина, отколку да купите дополнителна обработка серверот. Ова е прашање на буџетот и е до бизнис да се одлучи. Можеби дека вашите податоци извори се толку големи што тоа е само неизводливо да го задржи дека износот на податоци во Вашиот работник машини. Во тој случај што ќе направиш? Па би можеле да се погледне во нарекувајќи локалните податоци на серверот, но ова може да предизвика проблеми со мрежата. Во овој случај мрежа систем, како што тоа може да стане нереално да се вклучат во вашиот канцеларија на животната средина. Таа, исто така може да биде што ќе може да се погледне во алтернативни работи стратегии, за пример само повикувајќи вашиот работници 20:00-06:00 секоја ноќ и / или Дроселиране извор на податоци барања.

Преселба на да речеме нашите извори на податоци изнесува 100GB на податоците. Па да тоа е сосема малку на податоци да се движи околу мрежата на ажурирање. Како ние ќе се осигура дека имаме најновата копија на податоците во овој случај? Rsync е само една можност, но лично мислам дека со извршување на вашиот најновите извор на податоци од вашата работа обработка на серверот и поставување на ова се како господар во репликација (со убав долго бин се логирате) може да биде начин да одам:

репликација Со поставување на секој од вашите работници се како роб на работа за контрола на серверот на ажурирања на вашиот извори на податоци ќе браздичка надолу убаво на вашиот работници без огромен пораст на мрежна активност (што е, освен ако не се изврши огромен ажурирање на податоците и сите твои работници удар во одеднаш). Ова има предности во однос на rsync со тоа што нема да добие долга пауза пред секоја работа; како база на податоци надградби, MySQL серверот на вашиот работник постојано ќе ги ажурира своите податоци додека обработка продолжува.

Ова е како јас поставам мојата демонстрација серверот. Да се постави репликација го следев упатството за сајт MySQL ( Поставување на репликација ) и во рок од 20 минути имав мојот inital работник реплицира на работа контрола сервери базата. За секоја дополнителна работник на репликација поставувања и процесот работел секој пат кога В.М. бил копиран.

Резиме

Во овој дел на статијата имаме погледна колку е лесно и безболно тоа е да се запишеш за обработка на кодот до датум до using rsync или subverion (SVN) да ја заврши работата и да се намали мрежниот сообраќај во исто time. Ние, исто така, разговараа како да ги задржи вашите податоци извор на информации до-to-date од тоа што овозможува да циркулира до секој од вашите работници. Така можеме да област се осигура дека ние се држи чекор со бизнис логиката и информации во нашата канцеларија мрежа систем. Има очигледно ќе биде безброј алтернативи за извршување на овие задачи, но тука беа два едноставни примери за да покаже колку е лесно решение е да се дојде до.

Следниот пат

Во завршниот дел од оваа серија, потполност наречен Дел 5 , ние ќе разговараме имплементирање на овој систем за. Ќе ги сумирам она што се дознава и она што јас успеав да се создаде.

Канцеларија мрежа компјутери со користење на виртуелни средини - Дел 1

Со , петок 4 декември 2009 година 11:23

Вовед

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

Како PHP програмер јас ќе одам да се користи алатки кои јас го користам секој ден, имено, Linux, MySQL , PHP, VirtualBox и субверзија (SVN). Сепак се надевам дека овој водич ќе се прилагодат на други јазици и технологии само како добро.

Решението јас се обезбеди ќе биде многу лабаво врз основа на видот на преработка ние би треба да се постигне меѓутоа тоа не може да биде вистина преку целата статија како што јас ќе се променат работите за едноставност, или да се произведе повеќе интересни употреба сценарија.

Овие виртуализирани средини ќе се кандидира на Виндоуз машини, бидејќи тоа е она што поголемиот дел на канцеларии работи. Обработка дека канцелариски машини не треба да се меша со вработените користење на овие машини, треба да бараат никакво одржување на машина, и да биде лесно да се распоредуваат на нови машини како што тие ќе станат достапни. Исто така, нови виртуелни машини не треба да бара никакви дополнителни конфигурација како оваа голема мера го намалува приспособливост и леснотија со која мрежа систем може да биде продолжена.

Зошто распоредување на Канцеларијата компјутерска мрежа?

Прво може да се размислува, зошто да не само користење на cloud computing ресурси како што се EC2 платформа Амазон ? Па причини може да биде неколку, на пример:

  • Вие нема да им го доверат одредени податоци на cloud computing животната средина
  • Вие не може да се стави одредени податоци во облак компјутерска околина за правни причини (пр. податоци напуштање на земјата), потенцијално за правни причини, на пример, NHS записи.
  • Сакате да го задржите вашиот обработка на единици се затвори и да има целосна контрола над хардверот премногу
  • Вие не треба на проектот средства да се кандидира облак случаи
  • Вашата канцеларија нема врска со интернет и затоа нејзините не е можно да се користи облак ресурси
  • Не ви се допаѓа дождот, облаците укажуваат на дожд, затоа ќе се задржи и подалеку

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

Предности на канцеларија компјутерска мрежа

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

Значи, 1 машина * 10% моќ * 2/3 време = 0.067, односно 1 десктоп обработка во време на мирување може да обработи 6 целосна работни места по ден.

Ако сега скала на овој горе што е потребно 15 неактивен компјутери на процесот, како многу работни места по ден како главен за обработка на серверот не.

Па во нашата преправам канцеларија од 50 машини би можеле да се зголеми нашата моќ на процесирање од 1 сервер до 4 целосна обработка на сервери, или би можеле да се обработка на 400 работни места по ден наместо 100.

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

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

Технологии

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

  • Неактивен канцелариски машини (во мојот случај резервна старите прозорци XP лаптоп)
  • VirtualBox (или друг виртуелизација клиент софтвер)
  • А виртуелната машина со PHP, MySQL running водење на пресечена оперативен систем, јас го повикувам овие Мои Limp сервери :)
  • Работни места за да се кандидира
  • Работа сервер (може да биде друг виртуелната машина некаде)

Типични места на

Видовите на работни места, кои овој систем е дизајниран да работи е како што следува:

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

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

Мрежа решенија, не се само поволна за обработка на работни места од овој тип. Во суштина, секој процес кој може да се подели на независни единици може да се работи во паралела. Погледнете го овој Википедија за примери и повеќе информации: мрежа компјутери , но неколку познати примери се SETI @ Home и BIONC . Постојат рамки за водење компјутери мрежи, и овие се добро вреди да се гледа во.

Што ќе се постигне?

До крајот на овие статии Се надевам дека за да покаже дека имплементирање канцеларија мрежа не мора да биде енормно скапи или одзема време. Одам да разговараат за:

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

Јас ќе бидам зграда (Добро, изградена, а потоа го напиша ова) пример апликација за тестирање на концептите на локална машина со користење на Windows XP и моето "GridMachine" виртуелна машина. Мојата работа за контрола на серверот ќе биде мојата главна машина која работи Fedora 11 .

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

Следниот пат

Во дел 2 ќе почне со разгледување на работата на системот за контрола, и гледам во тоа како работни места треба да биде конфигуриран со цел да се постигне најголемата количина на обработка додека се обезбеди дека секоја работа се обработуваат без да успее.













Панорама Тема страна Themocracy

5 посетители онлајн сега
4 гости, 1-ботови, 0 членови
Макс посетители денес: 56 во 08:41 часот UTC
Овој месец: 56 на 25-04-2012 08:41 часот UTC
Оваа година: 69 на 27-02-2012 09:56 часот UTC
Сите времиња: 130 на 28-03-2011 10:40 UTC