Terminy opisują bardzo podobne pojęcia i obowiązki, i ogólnie są one nieco synonimami. Termin „DevOps” jest stosunkowo nowy, spopularyzowany przez konferencję Devopsdays Ghent 2009 i kolejne wydarzenia Devopsdays . Najlepiej to opisuje ten schemat :
Z drugiej strony, Zarządzanie konfiguracją oprogramowania jest o wiele bardziej ustalonym terminem w zawodzie i wywodzi się z niepowiązanego z oprogramowaniem terminu Zarządzanie konfiguracją . Zarządzanie konfiguracją oprogramowania jest często przywoływane w kontekście inżynierii oprogramowania, prostą definicję podaje Roger Pressman w „Inżynierii oprogramowania: podejście praktyka” :
to zestaw działań mających na celu kontrolowanie zmian poprzez identyfikację produktów pracy, które mogą ulec zmianie, ustanawianie relacji między nimi, definiowanie mechanizmów zarządzania różnymi wersjami tych produktów pracy, kontrolowanie nałożonych zmian oraz audyt i raportowanie o dokonanych zmianach.
Chociaż wszystkie terminy, do których się odwołujesz, są niejasne, DevOps wydaje się być po prostu mniej formalnym sposobem opisania mniej więcej tego samego zestawu zasad jak Zarządzanie konfiguracją lub Zarządzanie konfiguracją oprogramowania, jeśli spojrzysz na to z perspektywy programisty, szczególnie nadając priorytet ściśle ściśle powiązanym zespołom :
DevOps jest odpowiedzią na rosnącą świadomość, że istnieje rozdźwięk między tym, co tradycyjnie uważa się za działalność rozwojową, a tym, co tradycyjnie uważa się za działalność operacyjną. To rozłączenie często objawia się konfliktem i nieefektywnością.
W tym samym artykule odnotowano podobieństwa z SCM:
Dodanie do Wall of Confusion jest zbyt powszechnym niedopasowaniem w narzędziach programistycznych i programistycznych. Rzuć okiem na popularne narzędzia, których programiści oczekują i których używają na co dzień. Następnie spójrz na popularne narzędzia, których administratorzy systemów żądają i używają na co dzień. Z kilkoma znaczącymi wyjątkami, takimi jak narzędzia do śledzenia błędów i być może SCM , wątpliwe jest, aby zobaczyć duże zainteresowanie wzajemnym używaniem narzędzi lub znaczącą integracją między nimi. Nawet jeśli niektóre narzędzia nakładają się na siebie, często implementacje będą różne w każdej grupie.
Jeśli chodzi o użycie terminów, twoje porównanie naprawdę nie ma sensu:
- SCM to podzbiór CM, a nie termin konkurencyjny,
- DevOps to dość nowy termin, nie ma sensu porównywać go z ustalonymi warunkami,
- DevOps wywodzi się z Operacji programistycznych (oczywiście), ale rzadko jest rozszerzany jako taki.
Osobiście będąc menedżerem ds. Konfiguracji oprogramowania od wielu lat (od 10 lat) słyszę niedopasowane warunki w różnych rzeczywistych sytuacjach. Nierzadko zdarza się, że personel nietechniczny ma względny charakter stanowisk. Oba mają określone role, potrzeby i wymagania, które są podobne, ale moim zdaniem można je wyraźnie podzielić.
Uważam, że najlepszym sposobem opisania podziału tych ról jest skupienie się na ich relatywności do interakcji. Oznacza to, że zarządzanie konfiguracją oprogramowania koncentruje się na wewnętrznych systemach i środowiskach, a także na integracji, wdrażaniu, wydawaniu i zarządzaniu kodem źródłowym. Where as Developer Operations (DevOps) koncentruje się bardziej na aspekcie operacyjnym architektury aplikacji z zewnątrz, jednocześnie zachowując jasne zrozumienie kodu, jaki był przeznaczony do użycia i praktyki jego środowiska. Jeśli wydajność komputera wykazuje oznaki degradacji, komunikacja między wieloma aplikacjami jest wadliwa, komunikacja między firmami (BtB) i / lub ograniczenia architektury w stosunku do środowiska produkcyjnego, wówczas należy zapoznać się z Operacjami programistów w celu ich diagnozy i rozwiązanie.
Zazwyczaj z mojego doświadczenia wynika, że Menedżer konfiguracji oprogramowania może również robić te rzeczy, ale to odciąga ich główny nacisk na śledzenie, zarządzanie i wdrażanie konfiguracji środowiska i wersji oprogramowania. Zarządzanie oprogramowaniem, które umożliwia rozdzielenie obowiązków, śledzenie błędów i defektów, śledzenie projektów oraz cykl życia i przepływ oprogramowania. Zadania te nie są głównym celem Operacji programistów, a zatem są mniej konieczne, ale nadal można je wykonać.
Widziałem wiele przypadków pomieszania każdego z nich, a w każdym z nich występuje pewien ograniczony crossover. Jednak najważniejsze jest, aby pomyśleć o różnicach między obowiązkami każdego z niezależnych stanowisk w stosunku do ich głównego celu. Przede wszystkim, gdy mamy do czynienia z wewnętrznie używanymi systemami i sprzętem do zarządzania konfiguracją środowisk i wydaniem produktu, należy szukać Menedżera konfiguracji oprogramowania. Z drugiej strony, mając do czynienia z wydajnością systemu, monitorowaniem, badaniami i diagnostyką systemów używanych przez twoich klientów, powinieneś zwrócić się do Operacji Deweloperskich lub DevOps.
Otóż nie jest to oznaczenie rant, ani ostateczna odpowiedź, ale osobista identyfikacja różnic między poszczególnymi pozycjami. Chciałbym wiedzieć, czy jestem daleko od bazy, czy też dzięki tej odpowiedzi wszystko jest wyjaśnione.
źródło
Trudno byłoby znaleźć solidną definicję DevOps. To raczej pomysł niż praca do wykonania. Jest to zbyt nowy pomysł, aby wszyscy mogli się zgodzić, co to dokładnie znaczy. Niemniej jednak, oto moje zdanie.
DevOps to tak naprawdę nowy termin na zarządzanie konfiguracją, ale został wybrany, aby pokazać, że rola nie jest rolą jednoosobową, jest to współpraca między zespołem programistycznym a zespołem operacyjnym.
Historycznie zarządzanie konfiguracją było wykonywane wyłącznie przez zespół programistów, a następnie przekazywane do operacji, które patrzyłyby na to wszystko z głębokim podejrzeniem. Co jest dość uczciwe, szczerze mówiąc. Są za to odpowiedzialni. Są pierwszymi, którzy dzwonią o 4 rano, gdy coś pójdzie nie tak. Naprawdę powinni być zaangażowani w jego rozwój.
źródło
Oto proste wyjaśnienie pytania: DevOps to termin używany do opisania koordynacji lub relacji między Programowaniem (opracowywanie kodów programu w środowisku programistycznym) a Operacjami (zapewniającymi maksymalny czas działania środowiska produkcyjnego).
Zarządzanie konfiguracją oprogramowania jest sposobem na osiągnięcie tej koordynacji. SCM obejmował narzędzia i techniki zarządzania automatyzacją procesu przejścia od rozwoju do produkcji (operacji)
Podsumowując, SCM łączy Dev i Ops.
źródło
Widzę, że DEVOP jest na końcu wykonania operacyjnego - skrypty automatyzacji wdrażania, kompilacje środowiska, tego typu rzeczy. Z drugiej strony SCM dotyczy integralności produktów oraz skutecznego zarządzania i śledzenia zmian w produktach. Zawsze postrzegałem ALM jako część SCM - w końcu, w jaki sposób możesz zarządzać zmianami w produkcie, jeśli nie masz pojęcia o sterownikach zmiany lub kto je wprowadził? Ramy wdrażania mogą upaść po obu stronach - i która strona będzie niezmiennie zależeć od potrzeb regulacyjnych organizacji, w której pracujesz - w końcu - czy chcesz, aby programista mógł zrobić szybki hack, co oznacza, że Twoja maszyna do dializy działa tylko 99,99% czasu, czy potrzebujesz takiej sytuacji, aby umożliwić Ci zhakowanie kodu witryny, ponieważ programiści mają zakodowane adresy IP?
źródło