Категорія: Веб-програмування

Маршрут запитів на 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
 {
     / **
      * Надає карта сайту на основі Zend_Navigation установки
      * /
     громадських sitemapAction функції ()
     {
    	 Відлуння $ це-> Вид-> навігація () -> карта сайту ();
    	 $ Це-> Вид-> розкладка () -> disableLayout ();
    	 $ Це-> _helper-> ViewRenderer-> setNoRender (істина);
     }
 }

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 "/ модулі / адміністратор / макети / скрипти" 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 для моєї моделі бази даних. Мені потрібно створити схему так, щоб він дозволив мені встановити дату і час за умовчанням для дати і часу `` колонці, наприклад, при додаванні нового повідомлення я отримую поточний час. Після довгих пошуків і експериментів я знайшов рішення, тому я ділю його.

У вашій схемі 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 - Observer Pattern

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

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

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

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

Продовжити читання 'PHP Шаблони дизайну - Observer Pattern' »

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

За , в п'ятницю 4 грудня 2009 11:59 вечора

Введення

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

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

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

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

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

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

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

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

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

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

На підставі останніх даних

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

Тримайте ви коні там! Що робити, якщо джерела даних ВЕЛИЧЕЗНИЙ? Ну це дійсно випадок, який обсяг даних може йти мова? Це може бути більш економічно ефективним, щоб встановити додатковий ємний жорсткий диск в кожну машину, ніж придбати додатковий сервер обробки. Це питання про бюджет і становить до бізнесу, щоб вирішити. Це, може бути, що ваш джерела даних настільки великий, що його просто неможливим зберегти цей обсяг даних в ваших машин працівника. У такому випадку, що б ви зробили? Ну, ми могли дивитися на виклик локального сервера даних, але це може викликати проблеми з мережею. У цьому випадку сітка системи, такі як це може стати нереальним включити в офісному середовищі. Він також може бути те, що ви можете подивитися в альтернативних стратегій роботи, наприклад, тільки зателефонувавши в робочі між 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 ммк, м ySQL, Р л.с.) Сервера (я, можливо, зробили це ім'я вгору).

  • Встановити VirtualBox на вашій машині вікна (слідуйте посиланню)
  • Завантажити та встановити CentOS (поточна версія 5.3) в межах створюваних віртуальних машин

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

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

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

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

Як запустити Вакансії на працівника

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

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

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

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

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

  #! / Бен / ш
 пс, якщо сокира | 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 = вимкнено 

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

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

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

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

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

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

графік

Ось саме тоді для установки хост вікна!

Резюме

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

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

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

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

За , в п'ятницю 4 грудня 2009 11:23 вечора

Введення

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

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

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

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

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

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

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

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

Переваги Grid Computing Управління

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

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

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

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

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

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

Технології

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

За , п'ятниця 4 грудня 2009 11:23 вечора

Введення

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

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

Керування завданнями

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

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

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

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

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

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

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

Основні налаштування

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

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

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

  • how many records can you process currently? Per Day? Per Hour?
  • Скільки часу зазвичай займає розвернутися роботу?
  • Наскільки більше можливостей у вас є?

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

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

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

Розгортання

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

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

Після того як система оселився з декількох машин (скажімо 10% всіх офісних машин, тобто 5) вести моніторинг мережевого трафіку і хост-машині performance. Наступний тест знову, тепер ви повинні обробки 33% більше робочих місць, ніж ваш перший тестів. Check this is so, or that you're at least in this ballpark. Якщо ні, то дослідити, що відбувається перед переходом. Повторіть цей цикл, поки ви щасливо мати всіх офісних машин, що працюють без вбивства індивідуальної роботи машини або шліфувальних мережі в глухий кут.

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

Стоп!

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

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

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

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

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

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

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

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

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

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. При поновленні використання ноутбука була затримка близько 30-60 секунд, це неабияка кількість часу і співробітники повинні бути обізнані, що їх машина може паузу протягом короткого часу, коли повертався до машини. Нові машини не можуть мати паузу так довго. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. Я показав, що така система працює на (дуже) малих масштабах і з ще кілька експериментів може бути розширений використовувати ресурси машин офісу. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

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

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

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

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

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

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

Zend Framework: основи - Огляд

За , в суботу 28 листопада 2009 10:42 вечора

Мій роботодавець недавно заплатили за групою з нас розробникам використовувати Zend Framework: основи Звичайно, тут я буду резюмувати мої думки і думки щодо курсу для інших. For those looking to save time, here's my summary:

For developers who haven't had time to look at the Zend Framework this course (Zend Framework: Fundamentals) offers a good overall picture of the framework introducing you to the key areas and giving enough information in order to continue. For those who have spent time looking at the framework and have followed one or two tutorials this course does not offer much beyond.

Фон

I've been a PHP developer for around 5-6 years, and have started working with the Zend Framework on a component basis over the last 6 months. I've developed and/or been a developer on a couple of small Zend Framework MVC sites. I'll be honest, I haven't had a huge amount of exposure to other frameworks from a coding point of view but have spent several hours researching the project websites and evaluating them. The framework and the community surrounding Zend Framework it is quite exciting and there seem to be huge possibilities in where its going.

About the Course

The course is delivered over 9 two hour webex sessions (with a 10-minute break in the middle). The time is spent going through a set of slides provided by Zend with discussion at any time. You can use a microphone to talk to the instructor, but to be honest I didn't see anyone use anything more than the chat window. In addition a VMWare Ubuntu machine is provided that has example code and projects set up an a trial version of Zend Studio. The course leader talks to attendees either over an integrated VoIP solution, or you can dial in using one of the many worldwide dial in numbers.

During the course the material consists of a brief overview of the Framework and the MVC pattern before heading into a sample guestbook application. The discussion demonstrated bootstrapping, Zend_Application, Db Tables, Database access, Forms, Filtering, ACL, Validating, etc, etc. Basically covering all the topics you'd require to get a basic site up an running all the time giving you the tools to go and get more advanced in the framework (although this did amount to 'See the website' much of the time).

Time is given to code up some examples, and to develop the 'guestbook' and simple 'wiki' application. Personally I felt that providing the code or each app and then asking us to develop what was essentially a copy alongside didn't really provide a good learning experience. I would have preferred to develop an application similar, but not identical. to the example application with the benefit of having a guide to refer to. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

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

Загальне відчуття

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

Для мене цей курс був спрямований на занадто низькому рівні. Пройшовши через Керівництво по швидкому старту, читати Роба Аллена Zend Framework в дії, а також працював з рамками небагато що, що я дійсно не отримати що-небудь занадто багато. Я б, звичайно сподобалося, щоб забрати з кінця швидкий старт і розвиток додаткових навичок.

Тим не менш, назва курсу робить чітко "Zend Framework: основи" і в цьому сенсі звичайно досягає того, що він має намір робити. Інші члени команди розробників, які не витратили час на пошуки в рамках кожної сесії закінчив з ентузіазмом і запитань, який був дійсно приємно бачити.

Не все було втрачено, це було добре провести час підтверджує основні деталі рамки і отримати задати пару питань у областях, де я не був на 100%. It was also time that I got to sit down each day and think about coding using the framework and future projects, something I wouldn't of been able to do otherwise (can you imagine your company agreeing to that? :) ). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

Резюме

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Used the Zend Framework: While it was nice to shore up some of the very basics I felt the time, effort, and funds to take the course could of been better spent elsewhere. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.












Панорама тему, Themocracy

9 відвідувачів онлайн
7 гостей, 2 ботів, 0 користувачів
Максимум сьогодні: 16 в 4:19 ранку UTC
В цьому місяці: 16 в 04-08-2011 12:59 ранку UTC
У цьому році: 130 в 28-03-2011 10:40 вечора UTC
За весь час: 130 в 28-03-2011 10:40 вечора UTC