Docker на службі команди .NET розробників

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



— У чому актуальність контейнерної віртуалізації додатків, як вона спрощує розгортання додатків і управління ними?

Корпоративні ІТ-команди дуже часто стикаються з труднощами в розгортанні додатків. Цілком «нормальна», на жаль, ситуація, коли між розробниками додатків і ІТ-адміністраторами відсутній діалог, коли тільки одна людина в компанії знає, які кнопки треба натиснути, щоб додаток розгорнулося, а адміністратор сам нічого зробити не може — тому що існує один-єдиний чоловік, у якого є сакральні знання про те, як потрібно розгортати проект. Трапляється й таке, що потрібно запустити, наприклад, чотири різні версії (іноді майже однакові, але все ж таки різні) на різних конфігураціях, на різних машинах, а потім це все підтримувати.

У мене досить великий досвід подібних проектів, і я виділяю наступні основні проблеми з розгортанням додатків. Перша: дуже довга інструкція по розгортанню, дуже складний процес розгортання, ніхто не розуміє, що в якому порядку потрібно розгортати. Друга: один додаток необхідно тиражувати для роботи з різними клієнтами. Третя: кілька серверних додатків повинні працювати на одному і тому ж сервері, і їх оточення несумісне між собою, наприклад, ви вирішили використовувати у себе Linq2Excel, але він вимагає установки Access Database Engine, 32 — і 64-бітні версії якого не можуть бути встановлені одночасно.

— Як ці проблеми допомагає вирішувати технологія Docker?

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


Малюнок 1

Спочатку Docker був набором утиліт і сервісів, які працювали поверх інструментарію ядра Linux, налаштовуючи ізоляцію процесів і надаючи управління образами файлової системи. Потім навколо Docker виросла досить велика інфраструктура (Малюнок 2). Наприклад,Docker Hub – це місце, де можна централізовано зберігати контейнери, окремий депозитарій для ваших власних контейнерів, оскільки вони є інтелектуальною власністю компанії. ІнструментDocker Swarm дозволяє управляти контейнерами Docker. А остання новина про Docker — те, що він буде тепердоступний і для створення контейнерів на базі Windows Server.


Малюнок 2

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

— Наскільки популярна технологія Docker?

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

— Чим технологія Docker цікава .NET розробників?

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

— Коли технологія стала доступна на платформі Windows Server? Яка була роль Microsoft?

Корпорація Microsoft єодним з головних партнерів Docker і безпосередньо займається розробкою Docker для Windows Server,буде доступний вже у 2016 р., попередня версія доступна вже зараз. Відповідно, якщо об'єднувати сервери на базі Windows Server і системи на базі Linux в один кластер черезDocker Swarm, різнорідні контейнери будуть «бачити» один одного в цьому кластері і зможуть взаємодіяти, у них будуть сумісні API, тобто можна буде вибрати один і той же інструментарій для управління і тим, і іншим. Таким чином, ви може отримати сервер, на якому, по суті справи, працювати кластер з двох машин, і можна буде запускати Windows-контейнери, так і Linux-контейнери.



3 червня в Санкт-Петербурзі відбудеться конференція .NET розробників DotNext, і Микита Цуканов виступить на ній з доповіддю «Docker на службі команди .NET розробників»
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.