Динамічно додавати сторінки в контейнер Zend_Navigation під час виконання

За Стівен Ллойд Уоткін , четвер 7 січня 2010 10:50 вечора

У продовження на мій останній пост про Zend_Navigation, направляти запити для sitemap.xml звичаєм контролер / дію , цей пост про dymnamically додавання сторінки в контейнер Zend_Navigation під час виконання / виконання сценаріїв.

Його всі добре зазначенням сторінок в INI або XML- файл, але в якийсь момент вам доведеться змінювати статті на своєму сайті, що ви хочете як частину меню, карта сайту, або повинні бути включені в ваш пройденого шляху. Тому те, що нам потрібно зробити, це додати сторінок в наш Zend_Navigation контейнер під час виконання. Приклади для цього було б у додавання новин, блогів або сторінок коментарів, і т.д.

Продовжити читання "динамічно додавати сторінки в контейнер Zend_Navigation під час виконання" »

Направляти запити для sitemap.xml звичаєм контролер / дію

За Стівен Ллойд Уоткін , в середу 6 січня 2010 12:13 ранку

Для прямих запитів до / sitemap.xml для користувача контролера і дії в Zend Framework застосування просто додати у ваш application.ini або альтернативних конфігураційного файлу (наприклад, я використовую navigation.ini):

 resources.router.routes.sitemap.route = "sitemap.xml"
 Індекс resources.router.routes.sitemap.defaults.controller =
 Карта сайту resources.router.routes.sitemap.defaults.action =

Приклад коду для виведення видно, створивши дій у відповідний контролер (наприклад, моя карта лежить в індекс контролер, карта дії):

 < PHP
 Клас IndexController
     розширює Zend_Controller_Action
 {
     / **
      * Надає Sitemap на основі Zend_Navigation установки
      * /
     громадського sitemapAction функції ()
     {
    	 Ехо $ цьому-> Відкрити-> Навігація () -> Карта сайту ();
    	 $ Цьому-> Вид-> макета () -> disableLayout ();
    	 $ Цьому-> _helper-> ViewRenderer-> setNoRender (TRUE);
     }
 }

Sitemaps може швидко і легко створений за допомогою Zend_Navigation , великий коротке керівництво (і взагалі дуже корисно для Zend підручники Framework) є Zend Зліпки - Динамічне створення меню сайту і сухарях .

Zend Framework для кожного модуля заснована налаштування

За Стівен Ллойд Уоткін , п'ятниця 1 січня 2010 10:40 вечора

Я створив У відповідь на цю посаду, яка вимагає менше, див Модуль на базі макету - Zend Framework .

При використанні Zend Framework з модулями, її Очевидно, що якщо ви працюєте в різних (суб-) сайтів з одного додатку не обов'язково хочуть ж сценарії макет для кожної частини. Я вирішив піти з наступною структурою сайту:

  / Застосування
     / Контроллери
         ...
     / Моделі
     / Модулів
         / За замовчуванням
             / Контроллери
             / Розташування
                 / Сценарії
             / Переглядів
                 / Сценарії
         / AnotherModule
             ...
     / Сценарії

Проблема полягала у створенні макета сценаріїв на кожного модуля основі. Відповідь прийшла через використання помічник дії. Налаштування розкладки на кожного модуля основі складається з трьох етапів:

  1. Application.ini (або аналогічні установки конфігурації):
     admin.resources.layout.layoutPath = APPLICATION_PATH "/ модулі / Admin / макети / сценарії" default.resources.layout.layoutPath = APPLICATION_PATH "/ модулі / за замовчуванням / макети / сценарії" member.resources.layout.layoutPath = APPLICATION_PATH "/ модулів / членів / макети / сценарії "affiliate.resources.layout.layoutPath = APPLICATION_PATH" / модулі / філія / макети / сценарії " 
  2. Створіть свій помічник дії:
      <? PHP
     / **
      * Встановлення макета шлях на кожного модуля основі
      *
      * @ Автор Ллойд Уоткін <lloyd@evilprofessor.co.uk>
      * @ З 2010-01-01
      * /
     Клас Pro_Controller_Action_Helper_SetLayoutPath
         розширює Zend_Controller_Action_Helper_Abstract
     {
         / **
          * Встановлення макета шлях, заснований на модулі
          * /
         громадського preDispatch функції ()
         {
        	 $ = $ Модуль цього-> GetRequest () -> getModuleName ();
    
    	     якщо ($ = $ завантаження цього-> getActionController ()
    	                        -> GetInvokeArg ("завантаження")) {
    
    	         $ = $ Конфігурації завантаження-> getOptions ();
    
    	         якщо (isset ($ CONFIG ['макет'] [$ модуль] ['ресурсів'] ['layoutPath'])) {
    	             $ LayoutPath =
    	                  $ CONFIG [$ модуль] ['макет'] ['ресурсів'] ['layoutPath'];
    	             $ Цьому-> getActionController ()
    	                  -> GetHelper ("макет")
    	                  -> SetLayoutPath ($ layoutPath);
    	         }
        	 }
         }
     } 
  3. І, нарешті boostrap помічник дії:
      ...
         / **
          * Створює макет сценаріїв на кожного модуля основі
          * /
         охоронюваних _initLayoutHelper функції ()
    	 {
    	     $ Цьому-> завантаження ('FrontController');
    	     $ Макета = Zend_Controller_Action_HelperBroker:: addHelper (
    	         нові Pro_Controller_Action_Helper_SetLayoutPath ());
    	 }
     ... 

Доктрина: DATETIME замовчуванням NOW ()

За Стівен Ллойд Уоткін , в середу 30 грудня 2009 6:30 вечора

Я боровся зі створення схеми бази даних для нових Zend Framework проекту. Я використанням намагаються використовувати доктрину ORM для моєї моделі бази даних. Мені потрібно, щоб створити схему так, щоб він дозволив мені встановити дату і час за умовчанням для `` DateTime стовпця, наприклад, при додаванні нового повідомлення я отримую поточного часу. Після довгих пошуків і експериментів я знайшов рішення, тому я ділю його.

У вашій схемі YAML файл просто зробити наступне:

 Повідомлення:
   actAs:
     Timestampable:
       Створено:
         Назва: created_at
         Тип: мітка
         Формат: YMD H: я: S
       Оновлено:
         Назва: last_updated
         Тип: мітка
         Формат: YMD H: я: S
   стовпцями:
     ID:
       тип: ціле число
       первинний: істинний
       автоінкремент: істинний
     Назва: рядок (255)
     Електронна пошта: рядок (300)
     повідомлення: рядок (2000)

Якщо, з іншого боку, ви не хочете `` updated_at колонці ви можете використовувати наступні:

 Повідомлення:
   actAs:
     Timestampable:
       Створено:
         Назва: created_at
         Тип: мітка
         Формат: YMD H: я: S
       Оновлено:
         інвалідів: істинний
   стовпцями:
     ID:
       тип: ціле число
       первинний: істинний
       автоінкремент: істинний
     Назва: рядок (255)
     Електронна пошта: рядок (300)
     повідомлення: рядок (2000)

PHP Design Patterns - спостерігач "

За Стівен Ллойд Уоткін , у вівторок 29 грудня 2009 10:02 вечора

Я читав Head First Design Patterns недавно і вирішили написати кілька моделей як приклади PHP для мого власного блага. Перше, що я вирішив код на це спостерігач " . Формальне визначення шаблону спостерігача є:

Спостерігач картини (підмножина асинхронних публікація / підписка картини ) є програмним забезпеченням шаблон дизайну , в якому об'єкт , називається предмет, підтримує список своїх утриманців, званих спостерігачів, і повідомляє їх автоматично будь-яких змін стану, як правило, по телефону один з їх методів . Він в основному використовується для реалізації розподілених систем обробки подій.

Оскільки системи стають більш слабко пов'язані переконавшись, що, коли подія відбувається всі системи, які вимагають знання ці оновлення в повідомленні. Наприклад, у блозі, після збереження посади ми, можливо, буде потрібно оновлення пошукової системи (наприклад Lucene), оновлена ​​карта сайту, теги, електронної пошти підписка користувачів і т.д. спостерігача шаблон дозволяє розробникам додавати додаткові слухачів без редагування їх спостережуваного об'єкта . Вводячи спостерігачів (тобто оновлення пошукової спостерігача, Sitemap Generator, і т.д.) в темі (тобто системи після редагування блог) ми можемо дозволити їй виконувати всі необхідні оновлення без будь-яких змін.

Продовжити читання 'PHP Design Patterns - спостерігач Pattern' »

Управління Grid Computing використанням віртуальних середовищ - Частина 4

За Стівен Ллойд Уоткін , в п'ятницю 4 грудня 2009 11:59 вечора

Введення

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

У частині 3 ми створили віртуальну машину обробки і налаштувати Windows машини, щоб стати часу простою працівників.

Запуск останньої версії коду

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

Є кілька дуже простих способів легко ми могли б зробити це, трюк, однак, полягає в скороченні обчислювальної потужності і мережевий трафік у досягненні цієї мети. Давайте почнемо з найпростішого рішення і поліпшити її повільно пара ітерацій.

Перший метод буде просто зв'язатися з нашим сервером управління завданнями (через Samba, FTP, або подібний) і потягніть вниз останньої версії коду. Не дуже ефективний, але він буде робити цю роботу. Дозволяє покращити, що декілька, як про створення Rsync скрипт та використання, що кожного разу замість цього? Крім те, що на введення наших останніх обробки сценарію в підривній перевірити код спочатку, та був просто оновлення нашого коду при кожному запуску ( SVN оновлення )?

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

  #! / BIN / Ш.
 PS якщо сокиру | Grep-V Grep | Grep PHP > / Dev / нуль
 то
     Ехо "Робота в даний час обробки, з виходом"
 ще
     Ехо "Робота не працює, почніть прямо зараз"
     CD / шлях / до / робочої / копії
     SVN оновлення
     PHP yourJobProcessingScript.php
 Fi 

Тепер ми можемо бути впевнені, що з кожного запуску ми безумовно встановлена ​​остання коду. Ми забезпечення цього шляхом оновлення нашої бази коду кожного разу, коли ми виконуємо запуску і зниження мережевого трафіку тільки передача файлів відмінності між нашою мережі.

У моїй демонстрації установки, я зробив саме так, як вище. Subversion була встановлена ​​на моєму сервері обробки робота, і я просто витяг останній код з філії "робочий", використовуючи "SVN Update". Я також додав теги номер версії на мій обробки скрипта, який був повернутий в базі даних як частина повертати результати. Таким чином, я бачив, що мій код оновлюється кожного разу, коли я скопіював моє тулуб у т. працівник філії, що я безумовно встановлена ​​остання обробка сценарію.

Використовуючи останні дані

Якщо ваша робота обробки робить використання даних джерел, то в якийсь момент ці будуть оновлені. Якщо ви називаєте джерел даних на основі дуже рідко ви збираєтеся повені мережі з трафіком, як тільки ваші працівники почнуть виконуватися чого все у глухий кут. Для мого рішення я вирішив, що я б хотів перевести мої джерела даних навколо з моєї віртуальних машин.

Тримайте ви коні там! Що робити, якщо мої джерела даних величезні? Ну це дійсно приклад того, як багато даних йде мова? Це може бути більш економічно ефективним, щоб встановити додатковий жорсткий диск більшого у кожній машині, ніж на покупку додаткового сервера обробки. Це питання про бюджет, і до бізнесу, щоб вирішити. Це може бути, що ваші джерела даних настільки великий, що його просто неможливим тримати, що обсяг даних в вашої машини працівника. У такому разі, що б ви зробили? Ну, ми могли дивитися на виклику локальний сервер даних, але це може викликати проблеми з мережею. У цьому випадку сітка системи, так як це може стати нереальним включити у вашому офісі. Він також може бути те, що ви можете подивитися в альтернативних стратегій працює, наприклад, тільки зателефонувавши працівників між 8 вечора і 6 ранку кожну ніч, і / або регулювання джерела запитує дані.

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

реплікації При установці кожного з ваших працівників у якості рабів для роботи поновлення серверного елемента керування до джерел даних сочиться вниз красиво, щоб ваші працівники без величезного збільшення мережевої активності (тобто, якщо ви виконуєте величезну оновлення даних, і всі ваші робочі удар у відразу). Це має переваги в порівнянні з Rsync в тому, що ви не отримаєте довга пауза перед кожну роботу; як оновлення бази даних, MySQL демона на вашому робочому буде постійно оновлювати свої дані, а обробка триває.

Це, як мені налаштувати сервер демонстрації. Щоб налаштувати реплікацію я пішов керівництво по MySQL сайту ( Налаштування реплікації ) і протягом 20 хвилин у мене була Початкове працівника тиражування управління роботою серверів даних. За кожен додатковий робочий налаштування реплікації і процес працював кожен раз, коли В. М. був скопійований.

Резюме

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

Наступний раз

У заключній частині цієї серії, влучно назвав Частина 5 , ми будемо обговорювати розгортання цієї системи. Я буду підсумовувати те, що було вивчено і що мені вдалося створити.

Управління Grid Computing використанням віртуальних середовищ - Частина 3

За Стівен Ллойд Уоткін , в п'ятницю 4 грудня 2009 11:37 вечора

Введення

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

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

Налаштування робочого - чи LIMP сервера

Наступним кроком у процесі є створення віртуальної працівників. Для цього я збираюся використовувати установки CentOS використанням VirtualBox. Я збираюся встановити MySQL і PHP на сервері, також відомий як LIMP (Li NUX, м ySQL, P HP) Сервера (я, можливо, зробили це ім'я вгору).

  • Встановити VirtualBox на ваші вікна машини (за посиланням)
  • Завантаження та встановлення CentOS (поточна версія 5,3) в рамках створеної віртуальної машини

Там немає сенсу мені буде це там, напевно, 1000 'з великою підручники там (ну добре, ось один: Створення та Managing CentOS віртуальній машині під VirtualBox ). Важливо зазначити, я думаю, що я назвав моє віртуальну GridMachine машини.

Що стосується мого вибору віртуалізації клієнтів і операційної системи, туди не така вже велика вагомих причин для кожного варіанта. VirtualBox є те, що я використовую на моєму домашньому комп'ютері і при підтримці трьох основних операційних систем. Я вибрав CentOS як його хороший стабільний OS і я використовую його на свій веб-сервер. Я дуже вірю в правильні інструменти для роботи (хоча я подаю заяву "Використовувати швидкий і легкий для вас" менталітет тут), тому, якщо операційна система X працює ваш код швидше і більш ефективно використовувати його:)

Важливо переконатися, що ваш VM використовується DHCP, у противному випадку для кожної нової віртуальної машини повинні бути налаштовані окремо, то, що ми не want.By використанням DHCP ми не повинні налаштувати мережеві настройки індивідуально для робочого машин, DHCP буде боку з IP-адрес для вас. Тому ви можете скопіювати вашу віртуальну машину біля офісу, не турбуючись про встановлення кожного вгору (це покращує масштабованість і знижує працівник адміністрації).

Процес, який ви повинні прагнути до досягнення б отримати нові фізичні машини, установки VirtualBox, і то в значній мірі розгорнути віртуальні зображення без багато чого іншого. Це може бути мудрим, щоб налаштувати всі ваші працівники в іншій підмережі, щоб можна було принаймні дізнатися, скільки машин працює. Вам також необхідно налаштувати машини на довгострокову оренду або необмежену оренди DHCP.

Як для виконання завдань на працівника

Це цікавий напрямок і Є кілька науково обгрунтованих методів для обробки завдань на працівника. Тут я просто обговорити два найбільш очевидних:

  • Постійно працює сценарію: сценарій, будь то скрипт, або скрипт виконується один раз на працівника і працює як частина нескінченного циклу. Я цей метод дисконтованих як один крах сценарію і, можливо, ваші працівники перестануть працювати без якогось втручання.
  • Cron заснований виконання сценарію: кожні х хвилин демон cron стартує дзвінок на ваш сценарій налагодити справу. Без будь-якої перевірки це може призвести до багатьох багато копії робочий скрипт працює.

Моє рішення було піти з хрон який стартує скрипт кожні 10 minutes. мій скрипт виконує наступні задачі:

  1. Отримати список процесів і GREP це для "PHP". Якщо не знайдено, то продовжити.
  2. Call роботу коду, в моєму випадку це буде щось PHP заснованих
  3. Працівник скрипт завершує свій біг
  4. Готові йти знову на наступний відповідний виклик

Мій Баш скрипт виглядає приблизно таким:

  #! / BIN / Ш.
 PS якщо сокиру | Grep-V GREP |> GREP PHP / Dev / нуль
 то
     Ехо "Робота в даний час обробки, з виходом"
 ще
     Ехо "Робота не працює, почніть прямо зараз"
     PHP yourJobProcessingScript.php
 Fi 

Примітка: відлуння майже повністю безглуздо, але може допомогти наступна людина, яка приходить разом, щоб спробувати змінити їх.

На цьому налаштування працівника віртуальній машини, швидко, просто і легко копіювати в кожній новій частині обладнання, яке отримав. 'Розум' сітки система дійсно не в візуалізується ОС, її все робити з код, створений в процесі роботи, роботи конфігурації, і в тому, щоб завдання виконується в разі необхідності (наприклад, коли господар знаходиться в режимі очікування ).

Налаштування Windows для ініціалізації робочих

Першим завданням є розробка команди, необхідні для запуску віртуальної машини з командного рядка Windows. Якщо у Вас встановлена ​​VirtualBox в папку за замовчуванням, і ви назвали ваш працівник GridMachine то команда вимагає, щоб завантажити ваш працівник:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Однак, щоб запустити сценарій в "обезголовлений" держава нам потрібно використовувати:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - VRDP = OFF 

Це призведе до запуску віртуальної машини без графічного інтерфейсу і дозволяє йому зберегти стан витончено. Другий аргумент вимикається RDP тому він не конфліктує з Windows RDP, або дати вам повідомлення про прослуховує порт 3389. Ім'я віртуальної машини з урахуванням регістру!

Далі, ми повинні встановити Windows до стартує наш робочий В. М. раз машина була простою. Для цього (на Windows XP) вам необхідно перейти Пуск -> Всі програми -> Стандартні -> Службові -> Призначені завдання ", як показано нижче:

запланованих завдань

Потім натисніть на "Додати завдання ', а потім перейдіть до додавати власні програми. Перейдіть на сценарій VBoxManage і натисніть кнопку ОК. Розклад ваше завдання для будь-якого з варіантів (ми змінимо це в хвилину) і продовжити. Після пропуску наступного вікна вікно попросить вас, хто ви хочете, щоб виконати це завдання, я пропоную або "Адміністратор" або створення нових привілейованих користувачів. Пам'ятайте, що ми не хочемо втручатися в стандартній облікового співробітників на машині в будь-який момент. Натисніть кнопку Далі і встановіть прапорець Показувати додаткові опції для цього завдання.

До кінця виконання TextBox додати 'startvm GridMachine' рядок нашого і забезпечення того, щоб працювати тільки тоді, коли увійшли до системи залишається дану опцію. Відвідайте Розклад завдання наступного і змінити графік опуститися до опцію 'в режимі очікування, виберіть кількість часу, ви хотіли машина, не діяти, перед тим як перейти до наступної закладки.

Нарешті зніміть опцію в якому говориться, зупинити завдання, якщо вона працює вже X кількість часу, але галочку, щоб відмовитися від завдання, якщо машина не простоює.

графік

От і все, то для установки приймаючої вікна!

Резюме

У цій частині ми створили віртуальну машину в якості працівника, а також спосіб, в якому ми називаємо і виконати наші сценарії обробки завдань (для себе сценарій PHP). Тут ми розглянемо, як налаштувати наші копії Windows для запуску віртуальної машини в режимі обезголовлений, коли комп'ютер не діє, і зберегти свій стан, коли користувач відновлює використання машини. Сподіваюся, в цей момент ви бачите, як це просто для створення такої системи і сверблять, щоб отримати деякі експерименти збираєтеся самі!

Наступний раз

У частині 4 ми будемо дивитися на використанні інструментів для забезпечення того, щоб ви працюєте в останній версії коду і даних джерел, з тим, що отримані результати завжди в ногу з актуальний з останніми бізнес-інформації і логіці.

Управління Grid Computing використанням віртуальних середовищ - Частина 1

За Стівен Ллойд Уоткін , в п'ятницю 4 грудня 2009 11:23 вечора

Введення

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

Як PHP розробник я збираюся використовувати інструменти, які я використовую кожен день, а саме, Linux, MySQL , PHP, VirtualBox та Subversion (SVN). Однак я сподіваюся, що це керівництво буде адаптуватися до інших мов і технологій так само добре.

Рішення, яке я забезпечують буде дуже слабо в залежності від типу обробки, ми повинні були б досягти однак це не може бути правдою через всю статтю, як я зміню речі для простоти, або для отримання більш цікавих сценаріїв використання.

Ці віртуалізованних середовищах буде працювати на Windows-машин, так як це те, що більшість відділень перспективі. Обробки, що служба машини не повинні заважати співробітникам використовувати ці машини, повинні не вимагають технічного обслуговування в машину, і бути легко встановлюється на нових машинах, як вони стануть доступними. Крім того, нові віртуальні машини не вимагають додаткової настройки, оскільки це значно знижує масштабованість і простота, при якому сітка система може бути розширена.

Чому Розгортання Grid Управління обчислювальним?

По-перше ви можете подумати, чому б не використовувати обчислювальні ресурси хмари, таких як платформи EC2 Амазонки ? Ну причин може бути декілька, наприклад:

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

Я впевнений, що список можна продовжити, але я думаю, що це достатньо.

Переваги Grid Computing Office

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

Так, 1 машина * 10% потужності * 2 / 3 часу = 0,067 тобто 1 робочий стіл обробки в простий процес може 6 повний робочий день.

Якщо ви зараз масштаби цього до нього займає 15 простою настільних комп'ютерів для обробки як багато робочих місць на день в якості основного сервера обробки робить.

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

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

Інші переваги також означає, що інвестиції в новий (або оновлений) обробки серверів може бути відкладено, якщо ваші машини офісу є достатніми, і що вам поліпшити потужність вашої машини офісу вашого офісу сітки стає більш потужним автоматично.

Технології

Що вам потрібно? (Або, вірніше, що ж я використовую):

  • Idle офісної техніки (в моєму випадку ноутбук запасних старої Windows XP)
  • VirtualBox (або іншого програмного забезпечення віртуалізації клієнтів)
  • Віртуальна машина з PHP, MySQL running працює скоротити OS, я дзвоню ці мої LIMP серверів:)
  • Вакансії для запуску
  • Робота сервера (може бути інший віртуальній машині десь)

Типові Вакансії

Типи робочих місць, що ця система призначена для роботи полягає в наступному:

  • Система отримує список даних, на яких ми повинні порівнювати і повертати результати
  • Включає перевірку відповідності / пошук декількох (досить статичний) джерел даних
  • Результати із джерел інформації можуть зажадати подальшої перевірки, зливаючись, перевірка додаткових джерел даних у відповідь на результати
  • Дані повертається з відповідними записами, повністю перевірені і оброблені
  • Кожен запис в роботу не залежить від інших

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

Grid рішення не тільки вигідно для обробки завдань цього типу. У принципі, будь-який процес, який може бути розділена на незалежні одиниці можуть працювати паралельно. Дивіться цю Вікіпедії приклади і більш докладну інформацію: Grid Computing , але пара відомих прикладів SETI @ Home і BIONC . Є рамки для виконання обчислювальних мереж, і це також заслуговує вивчення.

Що ми досягли?

До кінця цих статей я сподіваюся показати, що розгортання Office сітки не потрібно бути дуже дорогим або часу. Я збираюся обговорити наступні питання:

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

Я буду будівлі (ОК я збудував, то написав це) приклад програми для тестування концепцій на локальному комп'ютері з Windows XP і віртуальна машина моя "GridMachine. Моя робота серверний елемент управління буде моя головна машина, яка працює Fedora 11 .

Це жодним чином не продемонструвати повністю робочий надійні системи, її означало більше демонстрації та обговорення показують, що ці речі можуть бути досягнуті в розумно короткі терміни і при невеликих витратах. Будь ласка, не соромтеся, надсилайте мені будь-які коментарі, виправлення або поліпшення, і я зроблю все можливе, щоб ця стаття оновлена ​​до матчу.

Наступний раз

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

Управління Grid Computing використанням віртуальних середовищ - Частина 2

За Стівен Ллойд Уоткін , в п'ятницю 4 грудня 2009 11:23 вечора

Введення

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

У частині 1 я дав огляд системи і технології, я буду використовувати, а також обговорювалися деякі з потенційних причин, чому ви хотіли б створити офіс сітки.

Управління завданнями

Якщо ви збираєтеся бути запущений робочих місць, то ви будете мати потребу в якийсь спосіб керувати ними. Ваше завдання системи управління (на вашу роботу сервера) повинен бути дуже добре продумані, перш ніж навіть намагатися запустити офіс сітки. Так по-перше, які завдання для системи управління завданнями:

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

Система також повинна бути розширюваної, рішення, яке працює зараз в одному випадку може бути збільшена до запуску кількох видів робіт, як бізнес бачить стоїть у сітці рішення. Наприклад, робочі місця можуть отримати пріоритети, більше ніж один тип завдання можуть існувати (тобто кілька баз код), в кінцевому підсумку ви навіть можете запустити кілька різних машин працівника, які оптимізовані для кожного типу завдання (хоча це ніяк відійти від "загального працівника "ідея). Завжди намагаюся думати про майбутнє при розробці системи, короткий перспективі може призвести до довгострокових розчарування і збільшення часу розвитку.

Робота сервера

Ми збираємося потрібно десь контролювати нашу роботу з, це має бути єдиною системою у сітку, яка має фіксовані локатор ресурсу, в тому, що адреса IP, ім'я хоста, адреса (з використанням внутрішнього DNS) і т.д. Це відбувається тому, працівники повинні знати, де шукати роботу, працівникам необхідно знайти роботу системи управління (не система управління завданнями знайти працівників).

Роботу самого сервера в дійсності не мають складну задачу (до основного або інакше система), він повинен зберігати список завдань, роздавати робочі місця, отримувати результати, а потім зберігати їх для подальшого використання. Як ці частини (наприклад, "руку Джобса) визначено може бути дуже простий. Пізніше ми можемо розширити системи включають адміністративний інтерфейс для додавання, редагування, видалення, призупинити роботу, але це виходить за цю роботу.

Існує ніяких підстав, то, що ваша робота сервера не може бути віртуальна машина працює у вашій основний сервер обробки за умови, що не зливає воду занадто багато ресурсів з нього. Роботу сервера проте потребує високої доступності, якщо вона йде вниз у п'ятницю ввечері ви будете втрачати все вихідні обробки, потенційно коштувати вам пару тижнів вартує часу обробки (в порівнянні з вашою основною сервер обробки поодинці) . Ви можете розглянути питання про створення роботу сервера з балансуванням навантаження середовища для забезпечення високої доступності.

Основна настройка

Основні установки для нашої роботи сервера буде складатися з того, що я дзвоню одному з моїх серверів LIMP (тобто Li NUX, м ySql, Р к.с.). Код, що виконується на Thea працівників дійсно працюватиме, які роботи він може працювати, взаємодіючи з роботою баз даних системи управління. Пізніше ми могли б створити веб-сервіс і фактично роздає робочі місця замість того, працівники робити важку роботу самі, але зараз ми будемо продовжувати використовувати принцип KISS (Keep It Simple, Stupid!).

Таким чином, дозволяє створити три MySQL таблиць для вирішення робочих місць. Це будуть робочі місця ``, `jobRecords`, і `jobResults`.

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

Ця таблиця складається з 5 простих полів,

  • ID: Унікально визначити роботу
  • Назва: Чи може бути клієнтом посилання, або будь-яку кількість інших ідентифікаторів
  • Статус: Ви повинні знати, де робота на, наприклад,
    • 0: Не виконано
    • 1: Взяв
    • 2: Завершено
  • started_by: Хто почав робити цю роботу? Це не зовсім потрібно, але приємно мати. Я пропоную відстеження робочих по їх IP-адреси в мережі
  • started_at: Коли працівник почати роботу? За відстеження робочих місць, які ще не завершені протягом X кількість разів, коли ми знаємо, що необхідно підібрати роботу ще раз і почати обробку інший працівник. Робітники могли зупинити обробку / переходу в автономний режим для будь-якого числа причин, збій харчування, збій, втрата мережі і т.д.

Легко, як ця таблиця може бути розширена за рахунок кількох додаткових полів, щоб для відстеження статистики, колонки закінчити вчасно, щоб побачити, як довго роботу взяли, лічильник щоб дізнатися, скільки робочих взяв роботу (очевидно, це необхідно, як правило, 1), пріоритет завдання, список можна продовжувати і продовжувати. У більш складних сценаріїв роботи можна було б вказати, скільки пам'яті працівник буде необхідний доступ до (і, отже, використовувати тільки відповідні робочі), або навіть якийсь тип працівника не потрібно.

Давайте додамо кілька робочих місць, наприклад:

Наприклад робочих місць

У наступній таблиці знову досить простий для розуміння, це наші записи роботу. Вони пов'язані з основною таблиці робочих місць колонки `jobs_id`. Зробити з цієї таблиці дуже багато що залежить від даних, які необхідно надати, щоб ваші працівники, дозволяє зробити дуже простий приклад, коли у нас є чотири стовпці:

  • ID: ідентифікатор запису
  • Назва: ім'я особи
  • адреса: адреса особи
  • jobs_id: ідентифікатор завдання, що цей запис пов'язана з

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

  • job_record_id: Посилання результат роботи таблиці
  • Результат: результат даних

... І це все, що потрібно для управління завданнями! (Хоча на самому базовому рівні) У моєму випадку я вказав на інший стіл, де мої дані, щоб процес був розташований, але це може так само легко було файлу, параметри для запуску моделювання коду, то ім'я його.

Вибір роботи

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

  1. Візьміть будь-яку роботу, які не позначені як повне, але від нашого працівника і скинути (замінити __ME__ з ідентифікатором, простий б IP-адреса):
      UPDATE `роботу` SET `статус` = 0, де `статус` = 1 і `started_by` = __ME__; 
  2. Використовуючи наші критерії вибору роботи, вибрати роботу і сказати системі управління, що цей працівник має справу з ним:
      UPDATE `роботу` SET `статус` = 1, "started_by` = __ME__, `started_at` = NOW () WHERE `статус` = 0 або
     (`Статус` = 1 і `started_at`> DATE_SUB (NOW (), інтервалі х ЧАС)) 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 використанням віртуальних середовищ - Частина 5

За Стівен Ллойд Уоткін , в п'ятницю 4 грудня 2009 11:03 вечора

Введення

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

У частині 4 ми дивилися на використанні інструментів для забезпечення того, щоб ми встановлена ​​остання версія коду і даних джерел, з тим, що отримані результати завжди в ногу з актуальний з останніми бізнес-інформації і логіці.

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

Перед розгортанням підвісній системі, якщо є одна річ, ви робите, і одне тільки це тест поточну систему! Неважливо, що ви розповісти колегам про те, як багато додаткової роботи вашої системи буде робити, якщо у вас є номери, щоб підтримати це ваші гарантії нічого. Таким чином,

  • скільки записів ви можете процесу в даний час? У день? У годину?
  • Скільки часу зазвичай займає повернути роботу?
  • Як багато більше можливостей у вас є?

Там також додаткові питання:

  • Якщо ваш сервер обробки (або один з ваших серверів обробки) йде вниз як це вплине на ваші можливості, ви будете каліка?
  • Які переваги ви сподіваєтеся / очікуєте отримати від підвісній системі?
  • Ваші машини офіс може працювати робочі місця?
  • Ваші (або ви можете бути перетворені робітників місць) для роботи в цьому стилі працює?

Остання велика крапка цікаво провести час на будь-яких серйозних змін, як це. Оновлення обробки коду до роботи з використанням новою методологією, тест знову. Можливо налаштувати сервер обробки для запуску віртуальної машини, після всіх ваших обробки сервером буде просто ще один робочий (тільки дуже потужний відносно). Дозволити нового процесу з врегулювання.

Розгортання

Моя пропозиція було б поп в офісі один уїк-енд виконувати всі об'єкти і установки. Робіть це як раз перед двотижневу відпустку і відпустку, щоб інші бідолаха мати справу з наслідками ... може і ні ...

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

Після того як система оселився з декількох машин (скажемо 10% всіх офісних машин, т. 5) тримати моніторинг мережевого трафіку і машині performance. Наступний тест ще раз, тепер ви повинні обробляти 33% більше робочих місць, ніж ваш перший показників. Перевірте це так, або що ви по крайней мере в цьому приблизні. Якщо ні, дослідити, що відбувається, перш ніж рухатися далі. Повторіть цей цикл, поки ви з радістю все офісної техніки працює без вбивства окремих продуктивність машини або шліфувальних мережі в глухий кут.

У всі часи тримати бенчмаркінгу, навіть після всіх розгортань зроблені. Перевірте, як нові оновлення коду впливає на швидкість вашої системи, перевірте всі працівники звітності та обробки завдань. Повільно (дуже повільно) приріст вашої конфігурації завдання, щоб отримати кращі з ваших працівників та мережі.

Стоп!

Що робити, якщо ви хочете зупинити робочих із працюючих на деякий час? Вони всі там працює, регенерує, і з усіх сил намагаються обробляти дані, як голодні комахи. Відповідь може здаватися очевидним, але його варто додавати тільки у разі його уваги. Просто змініть сценарій обробки з виходом (0) або померти () або деякі інші заяви, щоб вбити вашого завдання обробки. Важлива причина, чому ми завжди намагаємося, щоб оновитися до останньої обробки сценарію до того, біжи!

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

Для того, щоб написати це безліч коротких статей, які я створив дуже маленький сітки для демонстрації технологій і методик. Я прочитав багато статей, навчальні посібники і використовувати різні інструменти для налаштування і моніторингу, що відбувається. Ні в якому разі я вийшов і насиченим весь офіс з рухом і, ні в мене не було доступу до регулярних ПК співробітників, щоб побачити, як господар виконання яких вплинули.

Мій демонстрації системи була дуже скромною дійсно. Я використала свій регулярний робочий стіл налаштований як сервер управління завдань. На цьому я був встановлений MySQL сервер встановлений налаштований як майстер у реплікації, PHP , А і SVN пов'язані через Apache (для доступу через робочий VM).

Потім я створив CentOS машину працівника на VirtualBox на 6-річний ноутбук Windows XP. Я встановлення запланованих завдань, як зазначено після копіювання VM на машину і відпустити.

Віртуальна машина була створена з PHP, підривної діяльності, та MySQL. Я перевірив гілку "робочий" від моєї роботи управління серверами і сховищем переконайтеся, що воно може бути оновлено з допомогою "SVN Update". Потім я установки MySQL в якості раба і перевірити, що дані реплікації з MySQL на сервері управління завданнями до працівника VM. Після всього цього я можу налаштувати скрипт Bash і хрон.

Мій сценарій обробки в основному пішли по лінії цього (дуже прості речі):

  • Читайте в полі імені
  • Підраховували кількість подібних імен в таблицю з джерела даних відбувся В.М.
  • Підраховували кількість імен, як і вище, але розщеплення назвою за простору (наприклад, ім'я, середнього, прізвище)
  • Повторні цей процес у 1000 разів

Кожне завдання зайняло приблизно 20 хвилин, щоб запустити. В один момент я відкрив кілька копій працівника ВМ на ноутбук Windows і дивився робочих місць перевіряється за кожним із працівників адреси IP. На цьому етапі я також підтвердив, що реплікації автоматично перезапущений.

Залишивши ноутбук на холостий хід в результаті працівник починає процес роботи з сервером управління завданнями. При поновленні використання ноутбука була затримка близько 30-60 секунд, це неабияка кількість часу і персоналу необхідно буде знати, що їхня машина може зупинитися на деякий час, повертаючись до машини. Нові машини не можуть мати паузу так довго. Благо обсяг обробки виконуються ці машини на холостому ходу періодів буде більше, що переважує співробітників чекаючи короткий період (скажімо 1 хвилина), прибувши на своїх машинах вранці (я часто чекати довше, що це для Windows Defender оновлення відбувається), якщо вони були поставлені до відома про це (корисний час, щоб захопити ранкова кава!).

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

Висновки / Оцінка

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

Я створив в основному вільної системи за допомогою основному з відкритим вихідним кодом і засоби, наявні практично в будь-якому офісі. Технології в основному були продемонстровані і показати, для виконання роботи і, як очікувалося. Сподіваюся, у мене є показати, що з не так багато роботи і дуже простий установки можна розгорнути обчислювальні офісі підвісній системі, що є потужним, дешеві, А і масштабованої все в той же час.

Як тільки система і працює майже немає кінця на суму налаштування та покращення, які ви можете зробити. Наприклад статистики / бенчмаркінгу можуть бути легко додані показані варто такій системі кожен день. Нові машини можуть бути додані швидко і легко, як і коли вони приходять з модернізації існуючого обладнання зміцнення вашої обчислювальної потужності.

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

Будь ласка, не соромтеся, надсилайте мені будь-які коментарі, виправлення або поліпшення, і я зроблю все можливе, щоб ця стаття оновлена ​​до матчу.













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

4 відвідувачів зараз
3 гостей, 1-ботів, 0 користувачів
Макс відвідувачів сьогодні: 1914, 07:34 UTC
У цьому місяці: 26 в 07-05-2011 12:35 ранку UTC
У цьому році: 130 в 28-03-2011 10:40 вечора UTC
За весь час: 130 в 28-03-2011 10:40 вечора UTC