Введення
Я працюю в компанії, де ми запускаємо багато робочих місць, пакетну обробку мільйонів записів даних кожен день, і я думав останнім часом про всіх машинах, які сидять кожен день нічого не робити протягом декількох годин. Не було б добре, якщо ми могли б використовувати ці машини для зміцнення обчислювальної потужності наших систем? У цій серії статей я буду дивитися на потенційні вигоди від використання офісу сітки використанням віртуалізованих середовищах.
В частині 4 ми розглядали за допомогою інструментів, щоб гарантувати, що ми біжимо останню версію коду і джерела даних, так що отримані результати є завжди сучасними з останніми бізнес-інформації і логіку.
Перед розгортанням
До розгортання мережі системи, якщо є одна річ, ви робите, і одне тільки це тест поточної системи! Неважливо, що ви говорите колегам про те, скільки додаткової роботи вашої системи буде робити, якщо у вас є числа, щоб підтримати це ваш гарантії нічого. Таким чином,
- скільки записів ви можете обробляти в даний час? У день? В годину?
- Скільки часу зазвичай потрібно, щоб розвернутися на роботу?
- Наскільки більше можливостей у вас є?
Там також додаткові питання:
- Якщо ваш сервер обробки (або один із серверів обробки) падає як це вплине на ваші можливості, ви будете каліками?
- Які переваги ви сподіваєтеся / очікуєте отримати від підвісної системи?
- Ваші офісне обладнання може працювати робочі місця?
- Ваші (або ви можете бути перетворені робочих місць) в wrok в цьому стилі працює?
Останнє велике діло в тому, щоб провести час будь-яких серйозних змін, як це. Оновлення обробки коду для роботи з використанням нової методології, тест знову. Можливо налаштувати обробку сервер для запуску віртуальної машини, в кінці кінців сервер обробки вашого буде просто ще один робітник (тільки дуже потужний відносно). Дайте новий процес врегулювання.
Розгортання
Моя пропозиція була б з'явитися в офісі один з вихідних днів виконувати всі установки і налаштування. Робіть це перед святом два тижні і піти, щоб інші бідолаха, щоб мати справу з наслідками ... може бути, не ...
Розгортання системи, як це має бути повільним. Незважаючи на цей час відносно простий в установці цієї системи вплине на всю інфраструктуру офісу (і цифровий). По-перше, розкачати на кілька машин одночасно, моніторинг мережевого трафіку, як працівник виконує хостів на день, в день основі. Можливо, вам доведеться змінити конфігурацію вашої роботи у відповідь на ваші висновки.
Після того як система оселився з декількома машинами (скажімо 10% всіх офісних машин, тобто 5) вести моніторинг мережевого трафіку і машині performance. Далі тест ще раз, тепер ви повинні бути обробки 33% більше робочих місць, ніж ваш перший тестів. Перевірте це так, або, що ви по крайней мере, в цьому футбольному полі. Якщо ні, з'ясувати, що відбувається, перш ніж рухатися далі. Повторіть цей цикл, поки ви з радістю все офісної техніки працює без вбивства індивідуальної роботи машини або подрібнення мережі в глухий кут.
У всі часи тримати порівняння, навіть після розгортання зроблені. Перевірте, як нові оновлення коду впливає на швидкість вашої системи, перевірте, всі працівники повідомляють в обробці і робочих місць. Поступово (дуже повільно) збільшує вашу роботу конфігурації, щоб отримати найкраще з ваших працівників та мережі.
Стоп!
Що робити, якщо ви хочете зупинити робітники працюють на деякий час? Вони всі там працює, регенеруючу, і з усіх сил намагаються обробляти дані, як голодні комахи. Відповідь може здатися очевидним, але його варто додати тільки у випадку, якщо його ігнорувати. Просто редагувати свої обробки сценаріїв з виходом (0) або die () або інші заяви, щоб вбити вашого завдання обробки. Однією з важливих причин, чому ми завжди намагаємося оновити до останньої обробки сценарію до того, як бігти!
Демонстрація системи
Для того, щоб написати це безліч коротких статей, які я створив дуже невелику мережу для демонстрації технологій та методологій. Я читав багато статей, навчальних посібників і використовувати різні інструменти для налаштування і моніторингу, що відбувається. Ні в якому разі я пішов і насичений цілий офіс з трафіком і при цьому я не мав доступ до регулярних співробітники PC бачити, як господар виконання яких вплинули.
Моя демонстраційна система була дійсно дуже скромний. Я використав свій звичайний робочий стіл налаштований як сервер управління завданнями. На цьому я встановив MySQL сервер встановлена налаштований як майстер реплікації, PHP , а, SVN пов'язані через Apache (для доступу через робочий VM).
Потім я створив машину CentOS працівника на VirtualBox на 6-річний ноутбук Windows XP. Я налаштувати заплановані завдання, зазначені після копіювання віртуальної машини на машину і відпустити її.
Віртуальна машина була створена з PHP, підривної діяльності, і MySQL. Я перевірив філія під назвою «робочий» від моєї роботи репозиторія сервера управління і переконалися, що він може бути оновлений за допомогою "запускали". Потім я установка MySQL в якості раба і перевірити, що реплікація даних з MySQL на сервері керування роботою до робочого VM. Після всього цього мені встановити скрипт Баш і хрон.
Мій сценарій обробки в основному йшли по лінії цього (дуже прості речі):
- Читайте в поле імені
- Підраховували кількість подібних імен в таблицю з джерела даних проводиться на VM
- Підраховували кількість імен, як і вище, але розщеплення ім'я простору (наприклад, ім'я, середній, прізвище)
- Повторний процес в 1000 раз
Кожне завдання пішло близько 20 хвилин, щоб бігти. В один момент я відкрив кілька копій робочих VM на ноутбуці вікна і дивився на роботу перевіряти у кожного з адрес IP працівника. В цей момент я також підтвердив, що реплікація автоматично перезавантажений.
Залишивши ноутбук на холостому ходу в результаті працівник починає обробляти завдання з сервера управління завданнями. При поновленні використання ноутбука була затримка близько 30-60 секунд, це багато часу та персонал повинні бути обізнані, що їх машина може призупинити на деякий час, повертаючись до машини. Нові машини можуть не мати паузу так довго. Перевага обсяг обробки виконуються ці машини під час простою буде більше, ніж переважують співробітників чекаючи короткий термін (скажімо, 1 хвилину), прибувши на свої машини вранці (я часто чекати довше, ніж це для Windows Defender оновлення пройде), якщо вони були повідомлені про це (корисний час, щоб захопити ранкова кава!).
В цілому, я впевнений, що я продемонстрував технології, які можуть бути використані для створення такої системи. Я показав, що така система працює на (дуже) невеликих масштабах і ще кілька експериментів може бути розширений використовувати ресурси машини офісу. Якщо я не отримую до точки цьому я був би дуже цікаво знати / бачити, коли хтось інший.
Висновки / Оцінка
Наступним очевидним кроком було б насправді отримати реальний приклад і почати розгортання такої системи, як це в офісі і подивитися, що відбувається. Запитувана бізнесу до скоєння цього без сліду палаючого компанії, щоб довести ефективність технології і може бути трохи складніше. Сітка / Розподілені обчислення дуже популярна певних колах і має деякі великі додатки (BIONC, SETI @ Home, Folding @ Home і т.д.). Я, однак, не знайти і в менших масштабах і проста система, як це в моїх пошуках, які могли б бути розгорнута в офісі.
Я створив в основному вільні системи, використовуючи головним чином з відкритим вихідним кодом і інструменти, доступні практично в будь-якому офісі. Технології в основному показали і показують виступати і працювати, як очікувалося. Сподіваюся, у мене показує, що з не так багато роботи і дуже простий установки можна розгорнути обчислювальної мережі офісу система, потужний, дешевий, а і масштабованої все в той же час.
Після того, як система встановлена і працює майже немає кінця на суму настройки та покращення, які ви можете зробити. Наприклад, статистика / тестування можуть бути легко додані показує цінність такій системі кожен день. Нові машини можуть бути додані швидко і легко, як і коли вони приходять з модернізації існуючого обладнання зміцнення вашої обчислювальної потужності.
Я сподіваюся, вам сподобалося читати цю серію статей і дав вам їжу для роздумів про запуск системи офісу сітки. Рішення, представлене тут, не обов'язково будуть працювати у всіх ситуаціях, але вони повинні бути адаптовані, щоб дозволити вам отримати обробка даних здійснюється за допомогою власного рішення.
Будь ласка, не соромтеся, надсилайте мені будь-які зауваження, виправлення і поліпшення, і я зроблю все можливе, щоб зберегти цю статтю оновлення, щоб відповідати.