Z tyłu mojej odpowiedzi na pytanie: W jaki sposób DevOps może pomóc w ulepszeniu procedur Escrow Software? Tensibai miał pytanie:
Co wymagałoby Capistrano na lalce lub szefie kuchni?
Moja odpowiedź polegała na opublikowaniu linku do artykułu Noah Gibbs „Czy potrzebujemy zarówno Capistrano, jak i szefa kuchni?” . Osobiście nadal popieram pogląd Noego, że najbardziej właściwe jest:
- użyj specjalistycznego narzędzia do wdrażania, takiego jak Capistrano, do wdrożeń.
- użyj specjalistycznego narzędzia do zarządzania konfiguracją, takiego jak Chef, do zarządzania konfiguracją.
Podstawowe podejście każdego typu narzędzia do wykonania zadania jest bardzo różne:
Narzędzia do zarządzania konfiguracją - służą do tworzenia i utrzymywania pożądanego stanu systemu, są z natury idempotentne. Przykłady narzędzi do zarządzania konfiguracją to Chef , Puppet , Ansible , PowerShell DSC , Salt Stack .
Narzędzia wdrażania - polegają na dostarczaniu wersji oprogramowania do środowiska hostingowego, zapewniają funkcjonalność umożliwiającą utrzymanie wielu wersji oprogramowania na wielu komputerach i zarządzanie, która wersja jest „aktualna”, z natury są bezwzględnie konieczne. Przykłady narzędzi do wdrażania to Capistrano , Octopus Deploy , Deployer i Command.io .
Wierzę, że Narzędzia do zarządzania konfiguracją mogą wykonywać zadania związane z wdrażaniem, aw przypadku infrastruktury niezmiennej są one najbardziej odpowiednim narzędziem do tego zadania, ponieważ wersje oprogramowania docelowego nie muszą być utrzymywane.
Pytanie: Czy narzędzia do zarządzania konfiguracją, takie jak Chef, Ansible i Puppet, są tak dojrzałe, że są w stanie spełnić zarówno idempotentne, jak i imperatywne modele?