Opisywana koncepcja polega na zarządzaniu konfiguracją. To brzmi, jak się wydaje, sposób na identyfikację, nagrywanie, wersję / śledzenie i raportowanie środowiska. Często jest to zadanie ściśle związane z kontrolą wersji i zarządzaniem kompilacją, ale jest wystarczająco wyraźne, co często wymaga osobnej strategii, nawet jeśli wykorzystuje niektóre z tych samych koncepcji i te same mechanizmy przetwarzania i przechowywania.
Zarządzanie konfiguracją oprócz pomocy w utrzymywaniu kontroli nad środowiskiem pracy pomaga również ustanowić rejestr różnych środowisk roboczych, w których używane jest oprogramowanie (rozwój, jak wspomniano, plus testowanie / kontrola jakości, wdrożenie do rutynowych klientów, wdrożenie do klientów wymagających szczególnej uwagi lub specjalnej konfiguracji lub buduj właściwości itd.).
Jak powiedziałem, często jest to zadanie, które pokrywa się z kontrolą wersji źródłowej, a często dane zarządzania konfiguracją znajdują się obok źródła w dokumentacji i repozytorium źródłowym. Nie musi tak być, ale często jest to dla wygody.
Automatyzacja niektórych aspektów zarządzania konfiguracją znacznie się poprawiła w ostatnich latach. Niektóre odpowiedzi i komentarze sugerowały skrypty jako sposób na promowanie zarządzania konfiguracją, a skrypty są dobrą odpowiedzią na uzyskanie powtarzalnych wyników, ale często ręcznie tworzone skrypty są niespójne i niekompletne. Jednym z takich sposobów ulepszenia jest automatyczne udostępnianie. Systemy takie jak marionetka lub szef kuchnipomagać w określaniu komponentów i systemów oprogramowania dla konkretnego użytkownika lub maszyny lub dla konkretnego profilu zadania oraz dostarczać „przepisów”, które pozwalają na bezproblemowe podejście do konfigurowania kompletnej maszyny lub środowiska. Zasadniczo przyjmuje koncepcję repozytorium dystrybucji oprogramowania i rozszerza ją i uogólnia, zapewniając nie tylko pakiety oprogramowania potrzebne dla systemu, ale także profile konfiguracji specyficzne dla każdego pakietu, dzięki czemu jest on gotowy do użycia w sposób odpowiedni dla twojego sytuacja.
Vagrant podąża to w nieco innym kierunku i zapewnia sposób szybkiego rozwijania definicji maszyn wirtualnych, dzięki czemu maszyna wirtualna może mieć automatycznie przydzielane oprogramowanie i sprzęt wirtualny oraz może okazać się wygodnym sposobem na odtworzenie określonej reprezentacji sprzętu środowisko używane przez użytkownika oprogramowania.
Konfiguracja każdego systemu (i jego odmian) zajmuje trochę czasu, ale ma pewną wyraźną wartość, jeśli przeładowanie i ponowna konfiguracja są częstym zadaniem.