Różnica między DevOps a zarządzaniem konfiguracją oprogramowania

16

Jaka jest różnica między operacjami programistycznymi a zarządzaniem konfiguracją oprogramowania?

Dla mnie wydaje się być taki sam, o ile zarówno DevOps, jak i Software Configuration Management koncentrują się na:

  1. Ustanowienie infrastruktury programistycznej - odpowiada za kontrolę wersji , zarządzanie kompilacją, zarządzanie wdrażaniem, zarządzanie zależnościami, ciągłą integrację i dostarczanie itp.
  2. Korzystanie z najlepszych praktyk w zakresie organizacji środowiska programistycznego .
  3. Zapewnienie jakości procesów programistycznych - zbieranie wskaźników efektywności rozwoju, praca nad eliminacją wąskich gardeł procesu programistycznego (przeprowadzanie testów jednostkowych, ocena zasięgu testów jednostkowych, przeprowadzanie inspekcji itp.)
  4. Zarządzanie infrastrukturą - platformy docelowe i jego specyfika.
  5. Zarządzanie wersjami - upewnienie się, że wersja została dostarczona do klienta / klienta na czas.

Może coś mi umknęło? Ten link pokazuje, że przeważa użycie terminu „Zarządzanie konfiguracją oprogramowania”. Ale nadal, jakiej kombinacji słów wolałbyś opisać wymieniony zakres działań: Operacje programistyczne lub Zarządzanie konfiguracją oprogramowania ?

altern
źródło

Odpowiedzi:

19

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 :

wprowadź opis zdjęcia tutaj

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:

  1. SCM to podzbiór CM, a nie termin konkurencyjny,
  2. DevOps to dość nowy termin, nie ma sensu porównywać go z ustalonymi warunkami,
  3. DevOps wywodzi się z Operacji programistycznych (oczywiście), ale rzadko jest rozszerzany jako taki.
Yannis
źródło
Czy masz na myśli SCM, ponieważ zarządzanie kodem źródłowym lub zarządzanie konfiguracją oprogramowania jest podzbiorem CM?
alternatywnie
@zaphod_beeblebrox: to zdjęcie pochodzi z artykułu Wikipedii: en.wikipedia.org/wiki/DevOps :)
alternatywnie
@altern Akapit pod ładnym obrazem: „Z drugiej strony, Zarządzanie konfiguracją oprogramowania jest znacznie bardziej ugruntowanym terminem w zawodzie i wywodzi się z niepowiązanego z oprogramowaniem terminu Zarządzanie konfiguracją”. : P Zdjęcie pochodzi również z bloga, do którego linkowałem. Gdyby autor wziął go z Wikipedii, nie wiedziałbym.
yannis
@zaphod_beeblebrox: Prawdopodobnie powinienem wtedy zmienić tytuł mojego pytania
alternatywnie
@altern Co masz na myśli? Zarządzanie konfiguracją oprogramowania to nie tylko tytuł. Co do cholery jest „Zarządzanie kodem źródłowym”. Masz na myśli kontrolę wersji? Jeśli tak, kontrola wersji jest aspektem zarządzania konfiguracją oprogramowania, więc odpowiedź jest niezmienna. Ale porównywanie kontroli wersji z programistami jest co najmniej dziwne.
yannis
6

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.

Phyro
źródło
2
Szczerze mówiąc, kiedy wszystko jest sprowadzone, DevOps ma na celu uświadomienie twórcom oprogramowania pełnej odpowiedzialności za zarządzanie konfiguracją oprogramowania. Gdy to zrobisz, uzyskasz zupełnie inne podejście do SCM niż tradycyjnie - jedno bardziej skoncentrowane na ciągłej integracji i ciągłym dostarczaniu, a drugie z (zazwyczaj) mniejszą liczbą ludzi w mieszance. DevOps może być (i często jest) postrzegany jako Lean stosowany do SCM, podobnie jak Agile może być postrzegany jako Lean stosowany do tworzenia oprogramowania.
Calphool,
4

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.

pdr
źródło
1

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.

Związek między programowaniem a operacjami jest SCM

Kindson The Genius
źródło
-1

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?

Jacek
źródło
4
to bardziej przypomina rant niż odpowiedź na zadane pytanie
gnat
Deer Hunter, A Rant, tak, jasne, że jest, ale istotne? 100% Zaufaj mi w tej sprawie - dopóki przemysł nie dorośnie i nie powstrzyma sztuczek, marsze śmierci będą nie tylko kontynuowane, ale pogorszą się. To jest obietnica.
Jack
Ranty są w porządku, ale wymiana stosów nie jest dla nich miejscem.
matowy freake