Модель незмінного сервера з Docker / Ansible vs. Ansible, Puppet та Foreman в AWS?


9

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

1) Одна сторона (моя - я не без упередженості) вважає незмінну модель сервера дуже цікавою для хмарних систем. З цією метою ми прототипували переміщення всіх компонентів нашої інфраструктури в Docker. Наші спеціальні програми створюються за допомогою Дженкінса безпосередньо в зображення Докера, які розгортаються в локальному реєстрі Докер. Тоді ми створили великий набір ролей Ansible та ігрову книжку, яка здатна вийти на порожній сервер, встановити Docker і потім сказати Docker встановити всі контейнери за потребою. Через пару хвилин весь додаток та вся його підтримуюча інфраструктура підключаються та працюють - ведення журналів, моніторинг, створення бази даних / популяція тощо. Готовий автомат - це автономне середовище QA або dev з точною копією застосування. Ми плануємо масштабувати це, щоб створити нові Playbooks для створення нових серверів AWS з базового надійного AMI (можливо, дуже голого зображення), робити прокатні виробничі програми для управління конфігурацією та випусками і, як правило, більше ніколи не редагувати сервери - просто зробіть їх заново. Мене не хвилює отримання того, що я описав, працюючи на практиці - лише якщо це розумна модель.

2) Інший табір хоче використовувати Puppet для управління конфігурацією, Ansible для розгортання наших користувацьких додатків, які є тарілками, згенерованими під час нашого процесу збирання, Foreman для обробки запуску та управління процесом в цілому і Katello для виконання деякої кількості бази управління зображеннями Випуски включатимуть необхідну зміну конфігурації ляльок та відповідне розгортання оновлених компонентів з деякою кількістю координації Foreman. Сервери будуть побудовані досить швидко, якби нам потрібні нові, але метою є не робити їх одноразовими як частину стандартного процесу. Це ближче до моделі сервера Phoenix, хоча з тривалим терміном експлуатації.

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

Або незмінна модель сервера виходить з ладу на практиці? Ми маємо великий досвід роботи як з AWS, так і з хмарними середовищами, тому це насправді не проблема - більше питання про те, як отримати досить складний додаток, надійно розгорнутесь вперед. Це викликає особливий інтерес, оскільки ми випускаємо досить часто.

У нас Ansible робить більшість необхідних речей, за винятком того, що насправді створює EC2-сервери для нас, і це не важко. У мене виникають проблеми з розумінням того, чому ви насправді НЕ потребуєте лялечки / бригадира / кателло у цій моделі. Докер набагато чистіший і простіший за спеціальні сценарії розгортання в будь-якому інструменті, про який я можу сказати. Відповідне здається набагато простішим у використанні, ніж Ляльковий, коли ви перестаєте турбуватися про необхідність налаштування їх на місці та просто побудувати їх заново з новою конфігурацією. Я шанувальник принципу KISS - особливо в галузі автоматизації, де розгульний закон Мерфі. Чим менше техніки, тим краще ІМО.

Будь-які думки / коментарі чи пропозиції щодо підходу були б вдячні!


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

Маріонетковий і відповідальний? Вам буде погано провести час.
dmourati

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

Відповіді:


1

У нашій компанії ми успішно впровадили Лялечку на застарілій інфраструктурі замовника. Ми також використовуємо контейнери Docker для запуску спеціальної послуги (яка насправді є старою програмою, обробленою та скрученою, щоб вміститись у контейнери).
Я не був задоволений контейнерами, коли вперше дивився працювати з ними (так ... додаток на 30 Кб стає важким зображенням на 200 МБ), але коли мені довелося відтворити все середовище після невеликої катастрофи, я передумав. Я думаю, що Docker був винайдений саме для цього: швидкі та часто розгортання без побоювань щодо налаштування сервера. Якщо правильно сконструювати контейнери, ви можете легко переходити між постачальниками хмарних технологій, ноутбуками розробників та центрами обробки даних. Тому що все, що вам потрібно, - це коробка Linux з ваніллю з демоном Docker.

  • У сценарії 1) у вас все є в одному місці (я маю на увазі одне, оскільки з Docker у вас буде код і конфігурація в одному сховищі), легко керувати, читати та розгортати.
  • У сценарії 2) вам потрібно зберігати частини конфігурації для 3-х різних (!) Інструментів в одному репо-коді та коду програми в іншому, що ускладнює все.

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


0

Ось мої 2 євроценти.

Запропоновані вами два варіанти є дійсними варіантами досягнення (певного роду) незмінності.
Я думаю, вам слід вибрати той, з ким вам більше комфортний.
Однак з того, що ви пишете, здається, що досі немає єдиної думки.
Можливо, тоді потрібен третій варіант? ;)

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

Удачі!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.