З моєї відповіді на запитання: Як DevOps може допомогти покращити процедури програмного забезпечення? У Тенсібая виникло питання:
Що б вимагало Капістрано на вершці лялечки чи шеф-кухаря?
Моєю відповіддю було розмістити посилання на статтю Ноя Гіббса "Чи потрібні нам і Капістрано, і шеф-кухар?" . Особисто я все ще підписуюся на думку Ноя, що це найбільш доречно:
- використовувати для розгортання спеціалізований інструмент розгортання, такий як Capistrano.
- використовувати для управління конфігурацією спеціалізований інструмент управління конфігурацією, такий як Chef.
Фундаментальний підхід, який використовує кожен тип інструменту для виконання своєї задачі, дуже різний:
Інструменти управління конфігурацією - це створення та підтримка потрібного стану системи, вони за своєю суттю є безсильними. Прикладами інструментів управління конфігурацією є Chef , Puppet , Ansible , PowerShell DSC , Salt Stack .
Інструменти розгортання - стосуються доставки версій програмного забезпечення в середовище хостингу, вони надають функціональність для підтримки декількох версій програмного забезпечення на декількох машинах та управління, яка версія є "поточною", вони по суті є обов'язковими за своєю суттю. Прикладами інструментів розгортання є Capistrano , Octopus Deploy , Deployer та Command.io .
Я вважаю, що Інструменти управління конфігурацією можуть виконувати завдання інструментів розгортання, а у випадку незмінної інфраструктури вони є найбільш підходящим інструментом для роботи, оскільки версії програмного забезпечення для цілі не потрібно підтримувати.
Запитання: Чи дозріли інструменти управління конфігурацією, такі як Chef, Ansible та Puppet, до того, що вони здатні виконувати як безвідмовні, так і імперативні моделі?