Категория: Статии

Grid Computing Виртуалните среди - Част 1

От , петък 4 декември 2009 23:23

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

Като PHP разработчик Отивам да се използват инструменти, че аз използвам всеки ден, а именно , Linux, MySQL, PHP, VirtualBox и подривна дейност ( SVN). Все пак аз се надявам това ръководство ще се адаптира към други езици и технологии, също толкова добре.

Решението ще бъде много свободно на базата на вида на обработката, за това ще трябват, за да се постигне обаче, това не може да бъде вярно, чрез цялата статия, аз ще променят нещата за простота, или да произвеждат по-интересни сценарии за употреба.

Тези виртуализирани среди ще се движат по Windows машини, тъй като това е това, което по-голямата част на офиси продължава. Обработката, че офис машини не бива да се намесва с персонала, като се използват тези машини, следва да се изисква никаква поддръжка на машината, и лесно да се разгърнат нови машини, тъй като те станат достъпни. Също така, нови виртуални машини не трябва да изисква допълнителна конфигурация, тъй като това значително намалява мащабируемостта и лекотата, с която системата на преносната мрежа може да бъде удължен.

Защо да се мобилизират Grid Computing на Office?

На първо място може да се мисли, защо не просто използвайте ресурс за изчислителни облаци, като платформата на Amazon EC2? Ами причините биха могли да бъдат няколко, например:

  • Вие не можете да възложи определени данни за околната среда за клауд компютинг
  • Вие не може да постави определени данни в околната среда за клауд компютинг за юридически причини (например данните за напускане на страната), потенциално по юридически причини, например NHS записи.
  • Вие искате да запазите вашите процесори отблизо и да имат пълен контрол над хардуера
  • Не е нужно средствата по проекта да тече облак случаи
  • Вашият офис не разполага с връзка към интернет и следователно не е възможно да се използва ресурс облак
  • Вие не обичат дъжд, облаци показват, дъжд, затова ви държи далеч

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

Предимства на Office Computing Grid

Е, нека се направят някои математика (и в истинския физика стил ви позволява да направи някои метене предположения). Представете си, че имате големи обемни сървър за обработка на 100 работни места на ден. В офиса си, имате 50 машини, които не са активни 16 часа в денонощието, всеки един от тези машини е 10%, както е мощен като обемни обработка на север. (Всички резултати тук се закръгляват, за да се подценява увеличаване на ефективността).

Така че, 1 машина * 10% мощност * 2 / 3 = 0.067 т.е. 1 десктоп обработка в режим на време биха могли да обработват 6 пълни работни места на ден.

Ако сега мащаб до около 15 бездейства настолни компютри за обработка на колкото се може повече работни места на ден, като главния сървър за обработка.

Така че в преструвам нашия офис от 50 машини, бихме могли да увеличим нашата процесорна мощ от 1 сървър до 4 пълни сървъри обработка, или бихме могли да се обработва 400 работни места на ден, вместо 100.

Забележете, не се инвестира в нов хардуер вашата компания току-що увеличи капацитета си за пакетна обработка 4 пъти ! Потенциално ти започваш да се увеличи консумацията на енергия, но от най-офис среди, аз съм бил на машините като цяло са оставени на една нощ или иначе, така че бихте могли да видите това като зелена инициатива.

Други предимства също означава, че инвестициите в нови (или актуализират) обработка на сървъри може да бъде отложено, ако вашият офис машини са достатъчни и че като подобряване на мощността на вашия офис машини офис мрежа става все по-мощен автоматично.

Технологии

Какво ви трябва? (Или по-правилно какво съм използвал):

  • Режим на офис техника (в моя случай резервни стар Windows XP лаптоп)
  • VirtualBox (или друг клиентски софтуер за виртуализация)
  • А виртуалната машина с PHP, MySQL running работи изсече OS, Обаждам се тези ми Limp сървъри:)
  • Работни места, да тече
  • Работа сървър (може да бъде друга виртуална машина някъде)

Типичните работни места

Видовете на работни места, че тази система е проектирана да работи е както следва:

  • System получава списък на данните, на които ние трябва да отговарят и да се върнете на резултатите
  • Matching включва проверка / търсене на няколко (доста статични) източници на данни
  • Резултатите от източниците на данни може да изисква по-нататъшно утвърждаване, сливане, проверка на допълнителни източници на данни в отговор на резултатите
  • Данните се връща със съвпадащи записи, се оправдаха напълно и преработени
  • Всеки запис в рамките на работа е независима от останалите

Така че основно ние не търсим изпълняващ работни места, които се нуждаят от смес на база данни заявки и някои броя схрусква доста типичен сценарий в бизнес среда.

Grid решения не са изгодни само за обработка на работни места от този тип. По принцип, всеки процес, който могат да бъдат разделени в самостоятелни единици могат да се стартират паралелно. Вижте тази Уикипедия за примери и повече информация: Grid Computing , но няколко от известните примери са SETI @ Home и BIONC . Има на рамки за управление на компютърни мрежи, и те са добре да се търси в.

Какво ще постигнем?

До края на тези членове се надявам да покажа, че разполагането на офис мрежа не трябва да бъде изключително скъп или отнема време. Отивам да обсъдим:

  • Създаване на система за контрол на работата, работа конфигурация
  • Създаване на подходяща за преработка на виртуална машина
  • Как да настроите системата на машина на Windows
  • Осигуряване използвате последните код и данни
  • Внедряване и бенчмаркинг
  • В перспектива

Аз ще бъда сграда (добре де, тогава аз построих пише това) пример за приложение, за да тестват концепциите на локалната машина с помощта на Windows XP и ми "GridMachine" виртуална машина. Моя сървър за контрол на работата ще бъде моята основна машина, която работи Fedora 11.

Това е по никакъв начин не означава да демонстрира напълно стабилна система, означава повече на демонстрация и обсъждане показва, че тези неща могат да бъдат постигнати в разумно кратък период от време и при минимални разходи. Моля, чувствайте се свободни да ми изпратите всички коментари, корекции или подобрения и аз ще направя всичко по силите си, за да запази тази статия, актуализират, за да съвпадат.

Следващия път

В част 2 ще започне от търсене в системата за контрол на работа, и търсят в това, колко работни места трябва да бъдат конфигурирани, за да се постигне най-голям размер на обработка, като същевременно се гарантира, че всяко едно работно място се обработва, без да се провалят.

Grid Computing Виртуалните среди - Част 2

От , петък 4 декември 2009 23:23

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В част 1 , дадох на преглед на системата и технологии, ще се използва, както и обсъдени някои от потенциалните причини, поради които бихте искали да се създаде мрежа в офиса.

Контрол на работата

Ако ти започваш да се работи работни места след това ти започваш да се нуждаят от някакъв начин да ги управляват. Вашата система за контрол на работата на вашия сървър за работа трябва да бъдат наистина добре обмислени, преди дори да се опитват да тече офис мрежа. Така че на първо място, какви са задачите, за система за контрол на работата:

  • Раздайте работни места при поискване от работещите в
  • Кажете на работниците, какъв вид на работните места да тече
  • Track работни места
  • Уверете се, че работните места са се изпълнява само веднъж
  • Осигуряване на работа данни за работниците, или най-малкото да им кажа къде да го получите

Системата също така трябва да бъде разширяем, решение, което работи за сега в един случай може да бъде удължен, за да стартирате няколко вида на работни места, тъй като бизнес вижда стойност в мрежа разтвор. Например, създаването на работни места могат да получат на приоритети, може да съществува повече от един вид работа (т.е. няколко бази код), в крайна сметка дори може да стартирате няколко различни машини работник, които са оптимизирани за всеки вид работа (въпреки, че се движи далеч от "генерично работник "идеята). Винаги се опитваме да мислим за бъдещето, когато разработват системи, кратко визия план може да доведе до дългосрочен план чувство на неудовлетвореност и увеличаване на времето за развитие.

Работа Сървър

Ние ще трябва някъде да контролират нашата работа от това трябва да бъде единствената система във вашата мрежа, който има постоянен Resource Locator, е, че милион IP адрес, името на хоста, URL (с помощта на вътрешен DNS) и т.н. Това е така, защото работниците трябва да знаете къде да търсите за работни места, работниците трябва да се намери работа на системата за контрол (не е система за контрол на работа намеря работниците).

Работата самия сървър не наистина сложна задача (в основната система, така или иначе), тя трябва да съхранява списък на работни места, раздават работни места, получаване на резултати, и впоследствие да ги съхранява за по-късно извличане. Как се определят тези части (като "страна, работни места") може да бъде най-основните. Късно нататък можем да се разшири системата да включва интерфейс за администрация, да добавяте, редактирате, изтривате, да спре работни места, но това е извън това упражнение.

Няма причина, каквато и след това, че работата на вашия сървър не може да бъде виртуална машина в рамките на основната обработка на сървъра, при условие че не се източва твърде много ресурси от него. Сървъра работа обаче се нуждае от висока достъпност, ако тя отива надолу в петък вечер, ти започваш да се загуби цял уикенд на обработка, потенциално ви струва няколко седмици, стойността на времето за обработка (в сравнение с основната си преработка сървър сам) . Може да искате да разгледа пускането си на работа сървър на натоварване балансирана среда за висока достъпност.

Basic Setup

Основните настройки за нашата работа сървър ще се състои от какво Обаждам се на един от моите Limp сървъри (която е Li Nux, M ySql, P HP) . Код, работещ върху работниците на Теа, действително ще работи, какви работни места може да работи, като взаимодейства с бази данни за работа на системата за контрол. Късно бихме могли да създаде уеб услуги и всъщност раздават работни места, отколкото работниците твърдия себе си работа, но за сега ние ще продължим с помощта на KISS принцип (Дръжте го прости, глупави!) .

Така че, нека създаде три MySQL таблици, за да се справят с работни места. Те ще бъдат "работни места", "jobRecords", и "jobResults".

работни места таблица Тук аз съм с помощта на SQL Бъди много малко алтернатива PhpMyAdmin само защото е по-лесно да инсталирате на CentOS (за другите виждат: 10 Great алтернативи да PhpMyAdmin )

Тази таблица се състои от 5 прости области,

  • ID: Уникално идентифициране на работа
  • име: Може да е позоваване на клиента, или произволен брой други идентификатори
  • Статус: Вие трябва да знаете, където работата е, напр .
    • 0: Не е стартирала
    • 1: качват
    • 2: Завършен
  • started_by: Кой започна да вършат работа ? Това не е напълно са необходими, но е хубаво да има. Бих предложил проследяване на работници от IP адрес във вашата мрежа
  • started_at: Когато работникът започне работа? Чрез проследяване на работни места, които не са завършили в размер на X на време, ние знаем, че трябва да вземем на работа отново и да започне да обработва от друг работник. Работниците можеше да спре обработка / офлайн за произволен брой причини прекъсване на електрозахранването, катастрофа, загуба на мрежа и др.

Лесно е, как тази таблица може да бъде удължен с няколко допълнителни полета, за да се даде възможност за събиране на статистически данни за проследяване, колона завърши на време, за да видите колко дълго работа взе брояч, за да видите колко работници взе на работа (очевидно това трябва да са склонни да 1), приоритет на работни места, списъкът може да отиде и още. В по-сложни сценарии за работа би било възможно да се определи, колко памет работник ще се нуждаят от достъп до (и следователно само да се използват подходящи работници), или дори какъв вид на работник ще се изисква.

Да се ​​добавят няколко работни места например:

Например работни места

В следващата таблица отново е доста лесно да се разбере, това са записи на нашата работа. Те са свързани с основната маса работни места от колона "jobs_id". Направи на тази таблица зависи много от данните, които трябва да предоставят на работниците си, нека направи един много прост пример, където имаме четири колони:

  • ID: ID на записа
  • име: Лице на име
  • адрес: адрес на личността
  • jobs_id: работа ID, че този запис е свързан с

Третата и финална маса се състои от таблицата с резултатите, тя е почти същото като таблицата с нашите записи, както и с добавянето на някои колони може да бъде част от таблицата записи:

  • job_record_id: Link резултат на работата маса
  • Резултатът: Резултатът данни

... И това е всичко, което е необходимо за контрол на работата! (Макар и на много базово ниво) В моя случай аз съм насочен към друга таблица, където се намира моите данни за обработка, но това може също толкова лесно се файл, параметри, за да стартирате симулация код, ти име.

Избор на работа

Както бе посочено по-рано, работниците ще направим всичко управление на работа за нас, за сега, така че всички ние наистина трябва да направите, е да намерите работа, която се нуждае за обработка и да получите информация. Как ще правим това? Ами вземете нашите критерии за подбор на работа и търсят работа в SQL направих следното:

  1. Вземете всички работни места, които не са маркирани като завършен, но от нашите работник и да ги възстановите (заместител __ME__ с идентификатор, най-лесният ще бъде IP адрес):
      UPDATE "работни места" SET "статут" = 0, където "статут" = 1 и "started_by" = __ME__; 
  2. Използването на нашите критерии за избор на работа, изберете работа и кажете на системата за контрол, че този работник се занимава с него:
      UPDATE "работни места", "статут" = 1, "started_by" = __ME__: started_at "= NOW () КЪДЕ" статут "= 0 или
     ("Статут" = 1 и "started_at"> DATE_SUB (NOW (), интервал X час)) ORDER BY `ID ASC; 

    Като вземете работни места, които не са се върнали резултати в размер X на време, ние гарантираме, че всички работни места се изпълняват в случай на работник, който след срив или ще несигурен.

  3. След това взимаме детайли работни места, последвани от самите записи:
      SELECT * ОТ "работни места", когато "started_by" = __ME__ LIMIT 1;
     SELECT * ОТ "job_records" КЪДЕ "ID" = __JOBID__; 

След приключване на работа ние вмъквате резултат нашите записи и маркирате работа като пълно. Не забравяйте, като заетостта може да доведе до преустановяване / възобновяване по всяко време да се даде възможност за някои стабилността в скрипта ви. То може да бъде, че задачата спира половина начин, чрез осъвременяване на системата за контрол на работата, така че проверка на броя на записите в работа и броя на резултатите, записани на система за контрол на работата ще бъде мъдър ход.

В допълнение, а това показва, колко работни места могат да бъдат избрани и управлявани от една SQL заявка рамка, ти трябва наистина да бъде абстрахиране контрол на работата, така че ако сте решили да преминат към използване на уеб услуги, базирана система файл, XML , или всяка друга брой на инсталациите няма да повлияе на кода по-горе.

Работа Конфигурация

Следващият аспект е да се помисли работа размери и конфигурация. Играейки с конфигурация на работа, ние можем да постигнат отличен баланс между скорост, процеса на репликация, и надеждност. Вземете OFA няколко сценарии:

  1. Работа 1 ден всеки да тече: Това означава, че вашите работници се нуждаят от 15 дни за обработка на всяко едно работно място (не забравяйте 10% от мощността за 2/3rds на време ). Това очевидно не е мъдър конфигурация, вашата работа размер е твърде голям! Това ще отнеме най-малко двойно време, за да получите преработен работа първоначалната работник трябва да отиде несигурен време да вземете, че не е върнал резултат плюс време за преработка на отработено гориво. В един идеален искате да има поне един пълен работа, лесно се изчиства от края на всеки един продължителен период на престой, по този начин да запази работни места, тиктака и в най-лошия случай работа ще отнеме два дни на процес, трябва първо да отида липсва.
  2. Работа вземат 1 минута, за да се изпълнява: Това означава, че работниците си да отнеме около 15 минути, за да стартирате всяка работа. Въпреки това първоначално може да изглежда идеално, да получат допълнителна обработка работа по време на обяд път, кафе-паузи, срещи и др.., Този сценарий поставя натиск върху други области на вашата система и въвежда собствените си проблеми. Например, на първо място настройка / коефициент на времето за обработка ще отиде чак, поради загуба на ефективността на системата. Вашата мрежа ще бъде постоянно стрийминг работа информация за различните работници разочароващ персонал, които са донг им ден на ден работа. Вие също така ще се сложи повече щам на вашия сървър за обработка на работа, тъй като трябва да ястие много и много малки парчета на работа на регулярна основа. На последно място, в тази ситуация, ако работата ви сървър върви надолу, започваш да се създаде огромен влезете обратно на недовършена работа като има предвид, по-големи работни места може да продължи обработка на блажено неведение, че работата сървър изпитва трудности.

В действителност няма да има никой идеалната конфигурация за настройка на вашата мрежа, много зависи от наличните ресурси, видове работа, изисквания за работа, време за изпълнение, мрежови възможности, и така нататък. Въпреки това някои насоки ще бъдат:

  • Размер на работни места, така че всеки работник може да получи чрез поне 3-4 работни места в период от 15 часа (най-дългата вероятно празен период от време)
  • Играйте с размер на работа, така че време за настройка става сравнително незначителни в сравнение с времето за обработка (като се има предвид горната точка).
  • Ако работата не завърши в двоен размер на време (може би по-малко), които очакват да завършат приемем, че си отиде несигурен и започнете да го обработка с друг работник. Това означава, че може да се наложи да изчакате до три пъти нормалната продължителност на работа за нея, за да завърши (вероятно по-дълъг, ако последващата работа се провали). Може да искате да се намали това време, но бъдете внимателни да не го намали прекалено много, тъй като може да започне дублиране на задачи за обработка на регулярна основа.
  • Работни места трябва да са независими от външни изисквания, колкото е възможно повече. Работата сървър, например, трябва да се свърже в началото и края на всяка работа.
  • Да не се насити вашата мрежа, това ще има две отрицателни реакции през деня, вашият персонал ще откриете, че използването на мрежата разочароващ и проблеми може да бъде опит с връзки, времето проблем, че само ще се влоши, тъй като мащабирате вашата мрежа.
  • Осигуряване на работни места може да работи на вашия работници. Ако работни места стават твърде памет интензивно или дисково пространство интензивни работни места ще започне да се прекъсват, и единственото нещо,, което ще забележите е спад в броя на работните места, които се обработват без реална причина, защо.

Подаване Резултати на работа

При представянето на резултатите от работа, е важно да се провери, че резултатите не са били подадени от друг работник, особено ако работникът е бил в латентно състояние за известно време.

Когато резултатите са представили се гарантира, че броят на резултатите съвпада с броя на записите в рамките на работа.

Както е посочено по-рано, и не може да бъде над подчерта, изграждане на толерантност към грешки в работата извличане и представяне на резултатите. На работниците (и най-вероятно ще) в режим за спиране на най-неудобната пъти и това трябва да се обслужват. Също така отново абстрахиране далеч резултатите си представяне ще се погрижат за бъдещи промени вашата система за контрол на работата много по-лесно да се справят с.

Обобщение

В това section ние сме разглеждали какво трябва да направи сървър за контрол на работа и как да се получи един много основен система, създадена. Ние обсъдихме как да извлечете работа от системата за контрол и най-добрия начин за конфигуриране на работни места, за да получите най-ни за вашата система офис мрежа. За да приключите, параграф или два за подаване на резултатите обратно към сървъра за контрол на работа.

  • А сървър за контрол на работата управлява работни места и гарантира, че всички работни единици са завършени
  • Чрез абстрахиране работата си изберете / резултати подаване можем да променим технологията на сървъра за управление без много проблеми
  • Конфигуриране на вашите работни места, за да се гарантира, че те се стартират бързо и ефективно, без да излагат на твърде голям натиск върху мрежовата си инфраструктура, и без дублиране на задачи за обработка на регулярна основа.
  • Уверете се, че изграждането на отказоустойчивост и checking грешка във вашите рутинни, работниците могат да спира и възобновява и най-неудобната пъти. Не забравяйте да проверите, ако резултатите вече са подадени от друг работник.

Следващия път

В част 3 ние ще създадем виртуална машина за обработка и нашите прозорци машини, за да стане празен работно време.

Grid Computing Виртуалните среди - част 5

От , петък 4 декември 2009 23:03

Въвеждане

Аз работя в компания, където ще свършим много работни места за пакетна обработка на милиони записи на данни всеки ден и съм мислене наскоро за всички машини, които седят около всеки и всеки ден да прави нищо в продължение на няколко часа. Не би ли било добре, ако можем да използваме тези машини, за да уплътнят процесорна мощ на нашите системи? В тази поредица от статии, аз отивам да разгледаме потенциалните ползи от наемането на офис мрежа с помощта на виртуализирани среди.

В Част 4 погледна използване на инструменти, за да се гарантира, че ние сме най-новата версия на кода и източници на данни, така че получените резултати са винаги в крак с времето с най- новите бизнес информация и логика.

Разгръщането на Pre-

Преди внедряването на системата на преносната мрежа, ако има едно нещо, което правиш и само едно нещо това е еталон на текущата си система! Без значение какво ви казват колегите колко допълнителна работа, вашата система ще направи, освен ако имате номера в подкрепа на това си гаранции не са нищо. Така че,

  • колко записи могат да се обработва в момента? На ден? В час?
  • Колко време обикновено се предприемат, за да се обърнеш на работа?
  • Колко по-голям капацитет да имате?

Има и допълнителни въпроси:

  • Ако вашият обработка на сървъра (или един от вашите обработка сървъри), как ще се отрази това на Вашите възможности, ще Ви бъде осакатен?
  • Какви предимства се надявате / очаквате да получите от мрежата?
  • Вашите офис машини може да работи на работни места?
  • Вашите (или може да бъдат превърнати ви работни места), за да работят в този стил на работа?

Последната голяма точка е да ви отнеме малко време, за всяка значителна промяна като тази. Актуализирайте код за обработка, за да работи отново с помощта на нова методика, БенчМарк. Възможно е да настроите вашия сървър за преработка, за да стартирате виртуална машина, след всички ваши обработка на сървъра ще бъде само работник (само един много мощен едно относително). Оставете на нов процес за уреждане.

Разгръщане

Моето предложение би било да се появи в офиса един уикенд, за да извършвате всички инсталации и настройка. Правете това само преди две седмици почивка и се оставя толкова други бедни човек да се справят с последиците, които може би не ... ...

За разгръщане на система като тази трябва да бъде бавно. Макар да е относително лесно да се създаде тази система ще се отрази на цялата си инфраструктура офис (и цифрови). На първо място, търкалят няколко машини в даден момент, следи трафика в мрежата, как работник домакините се изпълнява от ден за ден основа. Може да се наложи да променят конфигурацията на работа в отговор на разкритията си.

Веднъж след като системата е уреден с няколко машини (да кажем 10% от всички офис машини, т.е. 5) мониторинг на мрежовия трафик и машина домакин performance. Следваща бенчмарк отново, сега трябва да бъде обработката на 33% повече работни места, отколкото първата си показатели. Проверете това е така, или че сте най-малко в тази Ballpark. Ако не, да разследва какво се случва, преди да преминат. Повторете този цикъл, докато щастливо имат всички офис машини, без да се убива индивидуална машина или смилане на вашата мрежа в застой.

По всяко време поддържат бенчмаркинг, дори след като всички внедрявания са направени. Проверете как новите актуализации код влияят върху скоростта на вашата система, проверете всички работници са предмет на отчитане и обработка на работни места. Бавно, много бавно нарастване на вашата конфигурация на работа, за да получите най-доброто от вашите работници и мрежа.

Спри!

Какво ще стане, ако искате да спрете вашите работници от тичане по някое време? Те са всички там работи, регенериране, и се опитват всячески да обработва данни, като гладни насекоми. Отговорът може да изглежда очевидно, но своята стойност, добавяйки само в случай, му се пренебрегва. Просто редактирате вашите скрипт с излизане (0) или да умрат () или друг отчет, за да убие обработка на работа. Важна причина защо ние винаги се опитваме да се актуализират до последната обработка скрипт, преди да тече!

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

За да се напише този набор от кратки статии съм създал много малка мрежата, за да се демонстрира на технологии и методологии. Четох много статии, ръководства, и използват различни инструменти за настройка и да наблюдава какво се случва. По никакъв начин не съм излязъл и наситени целия офис с трафика, нито съм имал достъп до редовни PC членове на персонала, за да видите как е бил засегнат домакин изпълнение.

Моят демонстрационна система е наистина много скромен. Аз използва редовните ми компютър, създаден като сървър за контрол на работата. На това имах инсталирана , MySQL сървър инсталиран определен набор като майстор в репликацията , PHP , а и SVN свързани чрез Apache (за достъп през работник VM) .

След това създадохме работник, CentOS машина на VirtualBox на 6-годишен лаптоп Windows XP. Настроите планирани задачи, както е определен след копиране на VM върху машината и да я пусне.

Виртуалната машина е създаден с PHP, подривна дейност, и MySQL. Аз проверих клон на име "работник" от моя контрол на работата сървъри хранилище, и че могат да бъдат актуализирани, с помощта на "SVN актуализация". След това настройка на MySQL като роб и да се провери, че данните се размножава от MySQL на сървъра за контрол на работата на работника VM. След всичко това аз настройка на Bash скрипт и Cron работа.

Моят обработка скрипт основно отиде по реда на тази (много прости неща):

  • Прочетете в полето за име
  • Отчита броят на подобни имена в таблица от източника на данни, проведено на на VM
  • Отчита броя на имената, тъй като горе, но разделяне на името с интервал (напр. собствено име, средата, фамилия)
  • Повтаря този процес 1000 пъти

Всяка работа отне около 20 минути, за да се изпълнява. В един момент аз отворих няколко копия на работника VM на лаптопа на Windows и гледани работни места да бъдат проверени от всеки работник IP адресите. В този момент аз също потвърдиха, че репликацията автоматично рестартиране.

Оставянето на лаптоп, за да работи на празен ход доведе до работник, започва да се обработва работни места от сървъра за контрол на работата. При възобновяване на ползване на лаптопа има забавяне от около 30-60 секунди, това е справедлива стойност на време и персонал ще трябва да бъдат наясно, че тяхната машина може да направи пауза за кратко време, когато се връщат към машината. Нови машини не може да има пауза от този дълъг. Ползата от размера на преработката, извършени от тези машини по време на работа на тихи обороти повече, че надвишават членове на персонала се налага да чакате за кратък период (например 1 минута) при пристигането си в техните машини на сутринта (I често чакат по-дълго, че това за Windows Defender , за да се вземат на място), при условие че те са наясно с това (полезно време, за да вземете сутрешно кафе!).

Като цяло се чувствам уверен, че са демонстрирали технологии, които биха могли да бъдат използвани за създаването на такава система. Са показали, че такава система не работи на много малък мащаб и с някои по-експериментират, могат да се мащабират използват ресурсите на машините офис. Ако не стигнем до точката на този начин ще бъдат много заинтересовани да знаете / да видите, когато някой друг.

Заключения / Оценка

Следващият очевиден стъпка ще бъде да се получи истински пример за света и започне да разположи система като тази в офис среда, и да видим какво ще се случи. Задаване на бизнеса да се ангажира с това, без пътека пламнал компания, за да докаже, технологията и ефективността може да бъде малко по-трудно. Grid / разпределени изчислителни е много популярен, някои кръгове и има някои големи приложения (BIONC, SETI @ Home, Folding @ Home, и т.н.). Аз не, обаче, да намерите по-малък мащаб и проста система като тази в моите търсения, които биха могли да се разточва в офис среда.

Аз създаде принципно безплатна система, която използва най-вече софтуер с отворен код и инструменти, които са на разположение в почти всеки офис. Технологиите са основно демонстрирани и да се покаже, да изпълнява и да работят както се очаква. Надявам се, че показват, че с не много работа и с една много проста настройка можете да разположите офис система за грид-технологията, която е мощен, евтини, а и мащабируема всички в същото време.

След като системата е създаден и работи там е почти няма край в размер на персонализация и подобрения, които можете да направите. Например статистика / бенчмаркинг може лесно да се добавят показва ценността на такава система всеки ден. Нови машини могат да се добавят бързо и лесно, както и когато те пристигат с актуализиране на съществуващия хардуер, стимулиране на процесорна мощ.

Надявам се, че сте обичах да чета тази поредица от статии и му дава храна за размисъл върху система за офис мрежа. Решението, представени тук, не е задължително да работи във всички ситуации, но трябва да се приспособява, за да се даде възможност да се свърши за обработка на данни, използвайки собствените си решение.

Моля, чувствайте се свободни да ми изпратите всички коментари, корекции или подобрения и аз ще направя всичко по силите си, за да запази тази статия, актуализират, за да съвпадат.

Zend Framework: Основи - Общ преглед

От , събота 28 ноември 2009 22:42

Наскоро Работодателят ми плаща за група от нас разработчиците да вземе Рамковата Zend: Основи на Разбира се, тук аз ще обобщя моите мисли и мнения на курс за другите. За тези, които търсят да се спести време, тук е моят резюме:

За разработчиците, които не са имали време да погледнем в Рамковата Zend този курс (Zend Framework: Основи) предлага добра цялостна картина на рамка за въвеждане на ключовите области и дава достатъчно информация, за да продължите . За тези, които са прекарали време в търсене в рамка и са последвани от една или две ръководства този курс не предложи много отвъд .

Фон

Аз съм PHP разработчик за около 5-6 години, и са започнали работа с Рамковата Zend компонент през последните 6 месеца. Съм разработила и / или разработчик на няколко малки Zend Framework MVC sites. Ще бъда честен, аз не са имали огромно количество излагане на други рамки от гледна точка на кодиране, но са прекарали няколко часа, изследване на проекта сайтове и оценка them. рамка и общността около Zend Framework, тя е доста вълнуващо и изглежда, че има огромни възможности, където ще.

За състезанието

Курсът е изпълнила над 9 две сесии часа WebEx (с 10-минутна почивка по средата). Време се отделя чрез набор от слайдове, предоставени от Zend с дискусия по всяко време. Можете да използвате микрофона, за да говорят с инструктора, но трябва да бъда честен, аз не виждам някой използва нещо повече от чат прозореца. В допълнение на VMWare Ubuntu машина е при условие, че има например код и проекти, създадени пробна версия на Zend Studio. Разговорите Разбира се лидер на присъстващите или над едно интегрирано решение за VoIP, или можете да се обадите в използването на един от многото световни набиране в числа.

По време на курса материал се състои от един кратък преглед на Рамката и MVC модел, преди да замине в заявление по образец в книгата за гости. Дискусията демонстрира, зареждане на операционна, Zend_Application, Db таблици, достъп до база данни, формуляри, филтриране, ACL, Validating, и т.н., и т.н. По принцип, покриващи всички теми, които бихте се изисква, за да получите основния обект на един работи през цялото време, като ви дава инструменти за отидете и да получите по-напреднали в рамка (въпреки че това е в размер на "Виж сайта" голяма част от времето).

Времето се дава за код някои примери, както и да се развиват "книгата" и просто "уики" заявление. Лично аз почувствах, че осигуряването на код или всяко приложение и след това ни помоли да се развива, това, което по същество е копие заедно всъщност не е добър опит за учене. Бих предпочел да се разработи прилагането подобни, но не са идентични. например приложение с полза на водач, да се позове на. Алтернатива изграждане на приложения от нулата с демонстрант евентуално ще доведе до повече въпроси за това защо и как, като по този начин дава по-добро разбиране на рамката, след всичко, което можете да търсите спецификата след курса.

Последната лекция се състои от работи по уики приложение, с помощта / указания от инструктор. След приключването на курса обратна връзка е взето, бе подчертано на няколко пъти през Разбира се, че Zend се обратна връзка много сериозно, всъщност очевидно версия на курса е съвсем ново. Някои от други разработчици в компанията ще се Разбира се, скоро така че ще бъде интересно да се види, ако това се е случило.

Разбира стил е неформална, разрешени за обратна връзка и сътрудничество между присъстващите и инструктор. Разбира се лидер е приятелски, отзивчив (имейл адреси бяха споделени за въпроси), и докато си представяне от слайдовете, е малко нестабилна изглеждаше напълно компетентен в рамките. Той беше ясно някой, който използва рамката на регулярна основа, а не някой, който се научи да чета курс, Хареса ми опит в "реалния свят" в това отношение.

Общото чувство

В някои отношения открих, разбира се, е загуба на време, при други то е много удобен. Се надявам, че ще си взема причини цяла ясно, и може би някаква храна за размисъл или полезна обратна информация (ми да знаят, това е малко вероятно!).

За себе си този курс е насочен към твърде ниско ниво. След като преминали през Quickstart употреба, прочетете Rob Allen Zend Framework в действие и работи с рамката малко не получите наистина нищо твърде много. Бих хареса разбира се, да вземете от края на Quickstart и развитие на допълнителни умения.

Това каза заглавие, разбира ясно състояние "Zend Framework: Основи" и в този аспект, разбира се постига, какво да направите . Други членове на екипа за развитие, които не са прекарали време в търсене в рамките завърши всяка сесия с ентусиазъм и задавани въпроси, което е наистина хубаво да се види.

Не всичко е загубено, че е добре да прекарват времето си, потвърждава основните детайли на рамката и стигнем до задам няколко въпроси в области, където не бях 100%. Това е време, че имам да седна всеки ден и да мисля за кодиране, с помощта на рамка и бъдещи проекти, нещо, което аз не би бил в състояние да направи по друг начин (може ли да си представите Вашата фирма съгласие за това:)). Последно, но не на последно място можете да получите хубава сертификат от Zend да кажете, че сте присъстваха курс (макар и по електронната поща).

Zend Framework сертификация

Това е един въпрос, който идва на ум по време на курса, ще ме подготви за сертифициране? Бърз, лесен е категорично "не ". Инструктор на курса бе съвсем ясно, че с допълнителни съвети, че за сертифициране трябва наистина да се използва рамката на ден за ден основа и се чувствам много комфортно и уверени в използването му и методологии.

Обобщение

Като се има предвид всичко, което съм написал по-горе, ще обобщим всичко в две лесни точки куршум:

  • Нови Zend Framework: Този курс прави точно това, което очаквате, той ви дава приятно въведение към рамката и добро заземяване на основи, от които може да се изгради . Курсът изглежда да генерира интерес и ентусиазъм за рамка сред разработчиците.
  • Използва се Zend Рамковата: Макар че е хубаво до брега някои от самото основите усетих на време, усилия и средства, за да вземе курс, може да е по-добре похарчени другаде . Тя ще бъде хубаво да ДАЕЕ Zend създаде нови по-високи ниво на курса, за да се вземат на разработчиците на следващото ниво - най-малко на стандарта за сертифициране и след това За това бих се регистрирате веднага.

Html Генериране Таблица клас (HtmlTable.php)

От , вторник, 5-ти май 2009 21:11

, Необходими за генериране на HTML таблица от PHP данни за проект, който работи на. За съжаление след малко на Googling аз не наистина може да намери нищо, че е подходящ, затова реших да създам мой собствен.

Осъзнавам, че това не може да бъде най-добрата маса генериране клас някога и вероятно има няколко бъга все още в него, но аз предпочитам да споделя и ако някой иска по-добър вариант, аз ще разгледаме в него:) Аз първоначално исках да създам таблица, изградена от отделни обекти, например обект на клетка, ред обект (изградени от клетки обекти), но разбрах, режийни за това ще е ОГРОМЕН! Затова отидох обратно към масив настройка.

Класът ще изчисли максималния брой на колони, използвани в хедър, футър, или орган и да напишете, че броя на колоните. Горни и долни колонтитули и надпис не са задължителни. Атрибути са изработени от масив, където най-важното е име на атрибут и стойност е стойност на атрибут. Атрибути се прилагат на маса тагове (на масата места - клас инициализиране), редове от таблицата (масив [ред] [атрибут]), както и таблица (масив [ред] [колона] [атрибут]) това се отнася за горни и долни колонтитули и клетки таблицата по тялото.

Пример

Винаги съм най-добрият начин да погледнете нещо е да се използва за пример, така че тук отиваме:

 $ Таблица = нови HtmlTable (масив ("Клас" => "сортиране",
                 "Стил" => 'ширина: 550px ;'));
 $ Заглавна [0] [0] ['съдържание'] = "ID";
 $ Заглавна [0] [1] ['съдържание'] = 'Заглавие';
 $ Заглавна [0] [2] ['съдържание'] = "Дата";
 $ Заглавна [0] [3] ['съдържание'] = 'сайта';

 $ Маса-> addHeader (заглавие);
 $ Аз = 0;
 foreach ($ newsList AS $ новина) {
 $ ItemLink = "{$ новина [" заглавие']}";
 $ TableBody [$] = масив (0 => масив ("съдържание" => $ новина ['ID'],
 "Атрибути" => масив ("стил" => 'шрифт тегло: получер ;')),
 1 => масив ("съдържание" => $ itemLink)
 2 => масив ("съдържание" => $ новина ['date_posted']),
 3 => масив ('съдържание' => $ новина ['сайт']));
 $ I + +;
 }
 $ Маса-> addBody ($ tableBody);
 ехо $ маса-> drawTable ();
ID Заглавие Дата Място
9 Новини 1 2009-04-04 10:40:00 името на сайта
10 Новина 2 2009-04-04 12:44:11 името на сайта

И на HTML изглежда така:

 = "sortable" style = "width: 550px;" > < thead > < tr <Маса клас = "сортиране" стил = "ширина: 550px;"> <thead> <TR    > <-Та    > ID </ та> 
  <Та    > Заглавие </ та>
		 <Та    > Дата </ та>
		 <Та    > На сайта </ та >
 </ TR>
 </ Thead>
 <Tbody>
	 <TR    >
		 =  "font-weight: bold;" >9</ td > <TD стил = "шрифт-тегло: Bold;"> 9 </ TD> 
		 <TD    > Новини 1 </ TD> <TD    > 04/04/2009 10:40:00 </ TD> <TD    > < tr > Име на сайт </ TD> </ TR> <TR    = "font-weight: bold;" >10</ td > < td > <TD стил = "шрифт-тегло: Bold;"> 10 </ TD> <TD    > Новини 2 </ TD> 
  <TD    > 04/04/2009 12:40:00 </ TD>
		 <TD    > Име на сайт </ TD>
 </ TR> 
  </ Tbody>
 </> 

Код

HtmlTable.php
Ако имате някакви коментари, можете да ги направите по-долу, би било чудесно да чуя някои. Ако го използвате и да ме уведомите и аз ще го удължи за в бъдеще:)

Вход към DB с помощта на Zend Framework

От , вторник, 14-ти април 2009 21:06

Успях да получите на сайта и работи с Рамковата Zend , всичко е добре да влезете Firebug / FirePHP така че следващата стъпка е да влезете с DB . Аз също исках да влезете някаква допълнителна информация, с помощта на рамка, като ръководство за агент, дата и час, се получи и след променливи. Така че, за да разшири ръководство, тук малко е това, което направих:

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

$ ColumnMapping = масив ("приоритет" => "приоритет",
"Послание" => 'съобщението',
"DATETIME '=>' клеймото",
"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: I: S "));
$ Дървар-> setEventItem ("user_agent, $ _SERVER ['HTTP_USER_AGENT']);
$ Дървар-> setEventItem ("get_vars", print_r ($ _GET, вярно));
$ Дървар-> setEventItem ("post_vars", print_r ($ _POST, вярно));
$ Дървар-> setEventItem ("площадка", на сайта);

$ Дървар-> ("Информационно съобщение");

Когато на ключовете на масив в $ columnMapping са ми колона имена. "Приоритет" и "послание" се разбират от Zend_Log_Writers , но са добавени допълнителни полета, за да ми даде някаква допълнителна информация.

Очевидно това предполага, че имате влезете работа с помощта на един от други писатели първо:)

Великобритания Имена Directory и Facebook Application

С , петък 10 април 2009 г. 09:33 ч.

Един от най-забавните неща, които съм участващи в докато работят за Tracesmart е директория имената. По принцип ние взехме нашата огромна база данни информация и извади голяма купчина статистики свързани с различни имена.

Процесът е една голяма SEO усилия, за да привлече повече трафик към сайта, но също така предоставя някои интересни информация и статистически данни за име.

Ето един пример за името ми Лойд Watkin , или Предполагам, че по- правилно Стивън Watkin . Вземете една минута, за да търсите името на сайта Tracesmart, може да е интересно ;)

Ние също имаме имена статистическите данни за имената директория страница, който ви казва, какви имена е било претърсено и как наскоро. Нейната доста интересно да се види имената на известни хора летят до статистиката, когато те се появяват в новините. Един скорошен пример за това е, че на Лиъм Нийсън, който е жена, починала от ски инцидент наскоро, въпреки че очевидно хората не са съвсем точно на правописа (поради огромния брой попадения за това име) - Лиъм Nilson.

Facebook Application

След имената директория е била създадена за създаването на молба за Facebook , което ние duely наречена "My Name " . Прилагането на Facebook е разширение на имената директория и предвижда някои допълнителни статистически данни . За да добавите имената директория в профила си във Facebook, моля посетете:

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

За хора с увреждания полета не са представени ...

До , четвъртък 4-ти септември 2008 г. 11:01 ч.

Като бърза бележка, като част от продължаващата Агенция за недвижими имоти софтуерен проект съм се оттеглил назад към редактиране на датата влизане в системата . Сега, вместо да позволява на потребителите да влизат във всички старата малко текст съм включване на берач на Javascript дата / час (за краткосрочен план), който позволява на потребителя да "вземе" и датата и часа от изскачащ прозорец.

Сега, за стария си Systema берач би поп, когато потребител е кликнал върху полето за въвеждане . Това обаче ще позволи на потребителя да игнорира текстовото поле и все още да отида и да въведете всички стари нещо в областта. Това не е идеален. Така че моето решение е да " забраните "поле форма и една педя до него с OnClick събитие се обадите на датата / време берач. Това означава, че потребителят е почти принудени да използвате хубава дата / берач време, така че датите ще отиде в правилния формат (въпреки че, които все още трябва да бъдат валидирани!).

Така че аз започнах да премине добре форматирани ми дата и час (и) чрез формата и бране, които се опитват да ги вземете с PHP е $ _GET и $ _POST променливи. Полета unfortunately'disabled "не се предават чрез формата на обръщане Това е много досадно. Решението е да се даде възможност на входа елемент с помощта на JavaScript, когато формата е с помощта на onsubmit събитие.

Това означава, че данните от формуляра е преминал през, както се изисква, и е добре оформен, готови за валидиране ... Â

Търсене Array Keys и връщане мачове

От , сряда 13 август 2008 г. 16:26

Аз съм имал нужда да търсите чрез масив и връщане на елементи, които имат ключове, които съответстват на ключова дума за търсене. Така си мислех Бих акции.

"W HY ще имам нужда?" Вероятно ще бъде на първия въпрос, че ще зададеш, добре, ако исках да търсите чрез масив за всички елементи, които са свързани с размерите на даден елемент, тогава бих могъл да извадя съответните ключове от използване на тази малка функция:

 <? 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;  } } ?> 

Така например, ако исках да търсите масив на т. данни за измерение данни тогава можех да направя следното (и печат екран вероятно):

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

Кой ще се върне нещо подобно:

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

Потребителски php.ini с Plesk

От , сряда 13 август 2008 г. 15:53

Ние имаме специален сървър ukFast Â, на която ще свършим определен брой домейни , които съществуват на виртуални сървъри, работещи под Plesk . Така или иначе, на повечето от моите домейни искам да се скрия предупреждения и за сигурността запазват грешки на лог файловете, обаче на някои от моите домейни (като например тези, които аз съм се развива върху), искам да покажа на всеки малко гаден предупреждение и грешка, че се появява.

Ако аз редактиране на PHP . INI "> php.ini това засяга всеки домейн на сървъра, а не е добра идея, особено когато някои от обектите са изцяло версии Така, за да се получи около това, което трябва да поставите файл, наречен vhosts.conf в CONF директория, например /var/www/vhosts/<my_domain>/conf/vhost.conf vhost.conf .

След като сте добавили вашия допълнителен код, отново за пример съм включил,

 php_value error_reporting E_ALL php_value display_errors On 

последвана от изпълнението на следната команда (това преконфигурира всички от домейните си просто по-бързо lazier отколкото да пишете в името на домейна ,

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

Ако се чувствате малко пъргав, тогава вие винаги може да напишете пълната версия, която е,

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

След тази команда, ако търсите да httpd.include на файла, ще видите, че вашият httpd.include ще включва линия за vhost.conf си, нещо като това:

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












"Панорама" Тема чрез Themocracy

10 посетители онлайн
8 гости, 2 ботове, 0 потребители
Макс посетители днес: 12 в 12:06 ч. UTC
Този месец: 17 23:27 UTC 9.1.2011 г.
Тази година: 130 в 28-03-2011 22:40 UTC
През цялото време: 130 в 28-03-2011 22:40 UTC