Przyjęta odpowiedź na moje pytanie dotyczące „W jaki sposób ciągła integracja odnosi się do ciągłej dostawy / wdrażania? ” Wyjaśnia również niewielką różnicę między ciągłą dostawą a ciągłym wdrażaniem . Wydaje się, że jest to związane z odpowiedzią na pytanie typu „Jak chcesz wdrożyć do produkcji, podczas gdy są to (ekskluzywne) opcje do wyboru:
- Automatyczny).
- Podręcznik.
Nie mogę sobie wyobrazić, że po drugiej stronie ściany DevOps będzie słaby „operator”, który będzie musiał zrobić coś, co odpowiada temu, co oznacza ten „podręcznik”… Moje pytania:
- Czy moje odniesienie (w moim pytaniu) do „rozpowszechniania” kontra „instalowania” jest bliskie możliwej implementacji takiego „ręcznego”? Oto odpowiedni cytat mojego powiązanego pytania:
- dystrybuować do jakiegoś środowiska docelowego, używając czegoś takiego jak FTP (jeśli standardowe kopie nie mogą wypełnić luki), ale nie aktywuj go jeszcze w celu. To powinno być podobne / bliskie ciągłej dostawy , czy nie?
- zainstalować (lub aktywować ) w jakimś środowisku docelowym, w połączeniu z takimi rzeczami, jak powiązania, operacje stop / start itp. To powinno być podobne / bliskie ciągłego wdrażania , czy nie?
- Jakie są inne możliwe jego wdrożenia?
continuous-delivery
continuous-deployment
Pierre.Vriens
źródło
źródło
Odpowiedzi:
Osobiście uważam,
distribution
że oprogramowanie jest celem jako pośredni etap wdrożenia - instalacja / aktywacja tego oprogramowania jest niezbędna do ukończenia tego wdrożenia.Dla mnie
delivery
(jak wcontinuos delivery
) zatrzymuje się, gdy oprogramowanie do wdrożenia jest tworzone i udostępniane do wdrożenia (tj. Do dystrybucji, instalacji i aktywacji)Tak więc, aby odpowiedzieć na twoje pierwsze pytanie, nie, nie uważałbym dystrybucji i instalacji za odzwierciedlenie ręcznego kroku odróżniającego ciągłe dostarczanie od ciągłego wdrażania.
Tak, w niektórych (miejmy nadzieję rzadkich) przypadkach ten krok ręczny jest tylko ostateczną decyzją człowieka dotyczącą wdrożenia do produkcji, odzwierciedlającą kulturową nieufność w automatyzacji procesów oraz komfort psychiczny polegający na podwójnym sprawdzeniu i podpisaniu przez człowieka decyzji o wdrożeniu (zakładając w ten sposób odpowiedzialność za to), nawet jeśli decyzja ta jest podejmowana wyłącznie w oparciu o algorytm, który można zautomatyzować (np. zliczanie wyników testów pozytywnych / negatywnych).
Ale ogólnie odzwierciedla to po prostu fakt, że decyzja o wdrożeniu w produkcji nie jest po prostu wynikiem zautomatyzowanego algorytmu. Oto kilka przykładów takich przypadków:
Więc nie patrzyłbym na krok ręczny po prostu jako problem z implementacją.
źródło
Jedna dodatkowa uwaga, jeśli publikujesz coś, czego oczekujesz od innych projektów, wdrożenie ma również znaczenie „publikowanie do użycia przez innych”
Rozważ przepływ pracy, w którym wdrażasz bibliotekę we wspólnym repozytorium artefaktów. Ta część procesu może polegać na wdrażaniu innego komponentu, który wymaga tego artefaktu w czasie kompilacji, lub może być po prostu aktualizacją wspólnej biblioteki. Ale niezależnie od tego artefaktu jego cykl życia niekoniecznie kończy się udostępnieniem go do konsumpcji przez innych, ale rozmieszczenie tego artefaktu w repozytorium artefaktów może być ostatnim etapem pracy programistów po tym, jak zdecydowali się wyciąć nowa wersja i zanim inni będą mogli bezpiecznie korzystać z nowej wersji.
źródło