Сьогодні ми продовжимо налаштування Buildbot’а. Сподіваюсь, читач вже знайомий з попереднім матеріалом на дану тему, тому тут будуть вказані типові запитання, вдосконалення, можливі проблеми без зайвих слів.
Monthly Archives: Червень 2009
Opera Unite
Сьогодні Опера обіцяла перевинайти Веб, і те, що вона зробила, дуже схоже на це. Opera Unite крута штука. Шарити файли між Операми – дуже крута ідея (усі інші сервіси теж класні (Media Player мій улюблений – моя музичка на роботі, до речі…)). Про те, що таке Юнайт і все супутнє, ви можете прочитати/спробувати самі (з офіційних джерел).
Та я хотів би просто і ясно висловити, що власне зробила Опера: вона створила безкоштовний тунель через operaunite.com.
Якщо хто не знає, що таке тунель, я поясню в простих словах: уявіть, ви змінюєте роботу (а для мене це якраз актуально :( ), приходите на нове місце, а там файервол і аська не працює — взагалі, паше тільки html, все інше заблоковано. Що з цим зазвичай роблять? Користуються обхідним шляхом, який називається тунелюванням (для чого існує спеціальний софт):
- десь в “кошерному” місці (де інет чистий — напр. вдома) встановлюється тунель-сервер;
- на роботі встановлюється клієнт
- аська (і все що треба) пускається через нього
Коротше кажучи, весь трафік аськи іде через 80 порт як текст, а тунель-сервер розшифровує його назад в аську і власне здійснює зв’язок з сервером icq.
Таким чином, у вас все працює “за стіною” :) . Очевидним недоліком тунелювання є той факт, що весь ваш трафік, власне, дублюється: адже ви пересилаєте дані на тунель-сервер, а він точно ті же дані пересилає вже за призначенням.
Те, що зробила Опера зі своїм Юнайтом – по суті те саме. Прийшовши на будь-яке місце (чит. за будь-який файервол) і запустивши Оперу (яка виступає тут в ролі тунель-клієнта), ви можете шарити свої файли зі світом.
Що залишається за лаштунками, так це operaunite.com (вірніше той факт, що він є тунель-сервером). Тобто весь ваш трафік дублюється через нього (адже тільки так це диво “децентралізації” можливе…).
А отже, для того, щоб децентралізувати інтернет (“позбутися посередників”, словами офіційних протоколів), Опера по суті хоче створити єдиний глобальний тунель.
І тепер два питання:
- чи подужає Опера глобальний трафік (це ж не гугл, врешті-решт)
- чи вірите ви, що вміст ваших приватних вінчестерів, продубльований Оперним тунелем, лишається після цього таким самим приватним, яким був до?
І мої відповіді на обидва питання: НІ.
(
п.с.: сама ідея просто назвичайно чудова, але повинний бути вільний спосіб створювати свої тунель-сервери, незалежні від Опера.
п.п.с.: уточнення – насправді Опера спочатку намагається встановити прямий конект, і лише потім, якщо “відчуває” файервол, обходить його тунелем.
)
Автоматизація процесу розробки: працюємо з Buildbot’ом
Як я й обіцяв в минулій статті, сьогодні ми дослідимо реальний приклад використання системи неперервної інтеграції під назвою BuildBot. Ні сам процес розробки, ні структура проекту не вважаються ідеальними, однак саме завдяки їм у мене зараз є можливість написати як можливо вижити в, здавалося б, такому хаотичному проекті.
Постановка задачі
Проект на Java(використовується система збирання Ant) в репозитарії Subversion знаходиться за адресою https://project.example.com/svn . Необхідно проводити аудит працездатності системи щоразу після внесення змін до нього. Результати збирання системи надсилаються автору змін у випадку успішного результату, або ж у список розсилки всього проекту, якщо процес пройшов невдало.
Вибір між CruiseControl, про який мені розповіли співробітники, та BuildBot, з яким я встиг познайомитись в якості розробника, був досить складний. Проект був вже тоді немаленький(на даний момент весь репозитарій складає 6Гб місця), після тестування його переносила на продуктивні сервери окрема людина. Enterprise, одним словом. І я, довірившись особистому знайомству, вибрав BuildBot. І не прогадав.
Автоматизація процесу розробки: системи неперервної інтеграції
Сьогодні, шановний читачу, ми продовжимо розмову про те, як можна автоматизувати процес розробки програмного забезпечення, зменшити витрати часу на допоміжні роботи в великому колективі і сконцентруватись на власне розробці.
У колективі, кожен член якого працює над окремою незалежною частиною, стадія інтеграції є заключною. Саме в ній виявляються проблеми сумісності всіх компонентів системи, через це кінцева дата випуску може бути відсунута на невизначений термін. Саме на зменшення часових та трудових витрат на процес інтеграції за рахунок раннього виявлення проблем та усунення помилок та протиріч спрямовані системи неперервної інтеграції.
Автоматизація процесу розробки: системи збирання проектів
Час, коли в цивілізованому світі дешевше було найняти сотню негрів замість зробити ткацький верстат і навчити одну людину з ним працювати, давно минув. Ще пару десятиліть тому ледь не кожен працівник в сфері інформаційних технологій вважався митцем, творцем чогось надзвичайного, того, що не може зробити жодна інша людина в світі. Однак, час і прогрес не стоїть на місці, і поділ праці тому доказ. Замість тисяч самописних бібліотек виростають десятки, проте зручні та легкі; замість купи підходів до розв’язку задач виділяють одиниці, однак найефективніші; замість того, щоб вигадувати велосипед, використовують існуючі рішення, вносячи свій вклад в їх розвиток на ниві відкритих технологій. Ще донедавна програмісти збирали всі свої програми вручну або ж за допомогою самописних сценаріїв. Цей час пройшов.
В світі, що рухається неймовірними обертами, не можна даремно витрачати час. Вся рутина повинна бути автоматизована, і крапка. Якщо ви з цим не згодні, перечитайте перший абзац. Людина мусить спрямовувати розум на подолання нових проблем, а не на одноманітну купу операцій. Порахуйте, скільки процесів, які ви щодня виконуєте, можна автоматизувати, і зрозумійте, скільки часу ви витрачаєте марно.
Способи організації проектів, їх документації, юніт-тестів, тестів продуктивності, вражають своєю кількістю. Зазвичай кожен другий виробник більш-менш серйозного IDE, пакету програм для розробки, пропонує свій спосіб збереження файлів всередині проекту, організації процесу збирання, написання чи то генерація документації. Проблема постає у виборі інструментів, які допоможуть підвищити ефективність роботи та знизити часові витрати на її виконання. Сьогодні ми говоримо про системи збирання проектів.