Co to jest dostarczanie ciągłe?

Ukończone

W tym miejscu będziesz śledzić zespół Tailspin, który omawia, w jaki sposób potok ciągłego dostarczania (CD) może im pomóc w nadchodzącym wydaniu.

Zespół Tailspin zaczyna czuć się lepiej w procesie kompilacji. Mają zautomatyzowany proces uruchomiony w usłudze Azure Pipelines, co oznacza, że środowisko kompilacji jest stabilne. Amita wie natychmiast, kiedy musi przetestować artefakt. Znajduje mniej błędów, ponieważ Andy i Mara zaczęli dodawać testy jednostkowe i testy jakości kodu. Życie wygląda dobrze. Skontaktujmy się z zespołem.

Poranne spotkanie

Zespół czeka na Irwina, menedżera produktu, który chce z nimi porozmawiać. Z niecierpliwością czekamy, aby powiedzieć mu o ich postępach. Ale kiedy Irwin wchodzi, nie wygląda na szczęśliwego. Zaczyna od razu rozmawiać.

Irwin: Miałem dziś rano spotkanie z zespołem zarządzającym. Chcą wiedzieć, dlaczego trwa tak długo, aby opublikować nasze gry i strony internetowe. Nasi najbliżsi konkurenci otrzymują nowe funkcje i nowe gry tam znacznie szybciej niż robimy. Musimy przyspieszyć sprawy. Nie ostrzegam tylko ciebie. Ostrzegam wszystkie zespoły. Co możemy zrobić, aby pomóc Zespołowi w szybszym wdrażaniu?

Andy: Jest to trochę nagłe, ale jesteśmy trochę przed tobą. Automatyzowaliśmy sposób tworzenia naszych witryn internetowych. Być może nadszedł czas, aby rozszerzyć naszą automatyzację na nasz proces wydawania.

Irwin: Jak to zrobić?

Mara: Utworzyliśmy zautomatyzowany potok kompilacji przy użyciu usługi Azure Pipelines. Tworzy artefakt, który Amita może przetestować. Możemy również utworzyć potok ciągłego dostarczania (CD).

Irwin: Co to jest pipeline ciągłego wdrażania?

Mara zaczyna wyjaśniać, ale jest przerywana, gdy telefon komórkowy Irwina wydaje dźwięk. Irwin czyta sms i mruczy pod nosem.

Irwin: przykro mi, ale jest to pilne. Muszę iść. Czy możecie wszyscy zająć się tą sprawą dotyczącą płyt CD i wkrótce do mnie wrócić?

Andy rozgląda się nad swoim zespołem.

Andy: Kawę?

Andy i reszta zespołu udają się do kawiarni, aby utworzyć plan.

Co to jest ciągłe dostarczanie?

Przy kawie zespół spotyka się, aby ustalić, jak zorganizować przepływ pracy ciągłego dostarczania.

Andy: Mara, czy możesz nam powiedzieć, co wiesz o ciągłym dostarczaniu?

Mara: Dla mnie, ciągłe wdrażanie i metodyka DevOps są nierozłączne. Pamiętaj, że zdefiniowaliśmy metodyę DevOps jako związek osób, procesów i produktów, aby umożliwić ciągłe dostarczanie wartości naszym użytkownikom końcowym.

Samo cd jest zestawem procesów, narzędzi i technik, które umożliwiają szybkie, niezawodne i ciągłe dostarczanie oprogramowania. Więc CD nie dotyczy tylko konfigurowania potoku, chociaż ta część jest ważna. Ciągłe wdrażanie dotyczy konfigurowania środowiska roboczego, w którym:

  • Mamy niezawodny i powtarzalny proces wydawania i wdrażania oprogramowania.
  • Automatyzujemy jak najwięcej.
  • Nie odkładamy robienia czegoś, co jest trudne lub bolesne; zamiast tego robimy to częściej, aby nauczyć się robić to rutynowo.
  • Utrzymujemy wszystko w kontroli źródła.
  • Wszyscy zgadzamy się, że wykonane oznacza wydany.
  • Budujemy jakość w procesie. Jakość nigdy nie jest przemyślana później.
  • Wszyscy jesteśmy odpowiedzialni za proces wypuszczenia. Nie pracujemy już w silosach.
  • Zawsze staramy się ulepszać.

Wprowadziliśmy już wiele z tych pomysłów i wszyscy zgadzamy się, że poprawili sposób pracy. CD jest rozszerzeniem tego, co już rozpoczęliśmy.

Dlaczego potrzebuję ciągłego dostarczania?

Ciągłe wdrażanie ułatwia zespołom ds. oprogramowania dostarczanie niezawodnych aktualizacji oprogramowania klientom w szybkim tempie. CD pomaga również zapewnić, że zarówno klienci, jak i interesariusze mają szybko dostęp do najnowszych funkcji i poprawek.

Słuchajmy dalej zespołu, jak to omawiają.

Andy: Dzięki Mara. Potrzebujemy cd, ponieważ, jak wszyscy wiemy, świat się zmienił. Nowe funkcje są wydawane szybciej. Aktualizacje i poprawki błędów muszą być dostępne od razu. Nie jest to tylko nasze zarządzanie, które chce przyspieszyć nasze wydania. Zarządzanie po prostu reaguje na wymagania naszych klientów. Jeśli klienci nie mogą uzyskać tego, czego chcą od nas, pójdą gdzieś indziej.

Tim: Zgadzam się! Nie mogę się doczekać rozpoczęcia pracy.

Andy: Dzięki, wszyscy. Zamierzam zaproponować, aby Mara i ja przygotowali prosty przykład działania (POC). Myślę, że wszystko będzie o wiele łatwiejsze do zrozumienia, jeśli można zobaczyć potok ciągłego wdrażania w działaniu.

Amita: Powodzenia wam.

Zespół opuszcza Andy'ego i Marę, aby wypracować szczegóły.

Jakie są różnice między ciągłym dostarczaniem a publikowaniem za pomocą prawego przycisku myszy?

Wiele narzędzi programistycznych udostępnia sposoby publikowania aplikacji bezpośrednio w środowisku docelowym, takim jak Microsoft Internet Information Services (IIS) lub Azure. Możesz na przykład opublikować aplikację ASP.NET Core na platformie Azure przy użyciu programu Visual Studio. Ten proces jest czasami nazywany publikowaniem prawym przyciskiem myszy.

Publikowanie prawym przyciskiem myszy to doskonały sposób na szybkie utworzenie prototypu. Na przykład możesz opublikować aplikację na platformie Azure, klikając prawym przyciskiem myszy, aby udostępnić nowy pomysł swojemu zespołowi. Jednak ta technika ma ograniczenia.

Ciągłe dostarczanie zapewnia spójny sposób testowania, wdrażania i monitorowania aplikacji przy każdym wprowadzeniu zmian w kodzie. Podczas korzystania z opcji "Publikuj po kliknięciu prawym przyciskiem" nie ma gwarancji, że kod został prawidłowo przetestowany ani że będzie działał zgodnie z oczekiwaniami podczas rzeczywistego użytkowania.

W tym krótkim filmie Abel Wang, ambasador chmury w firmie Microsoft, wyjaśnia więcej.

Jak ciągłe dostarczanie jest porównywane z ciągłym wdrażaniem?

W społeczności DevOps możesz usłyszeć terminy ciągłego dostarczania i ciągłego wdrażania. Czy te terminy oznaczają to samo? W tym krótkim filmie Abel wyjaśnia różnicę.

Jakich narzędzi ciągłego dostarczania można używać?

Po zakończeniu spotkania Andy i Mara planują kolejne kroki. Używają usługi Azure Pipelines do tworzenia oprogramowania. Chcą rozważyć, jakie narzędzia, w tym usługę Azure Pipelines, są dostępne, aby ułatwić im proces wydawania.

Mara: Gdzie chcesz rozpocząć?

Andy: Najpierw musimy uzgodnić nasze narzędzie do zarządzania wydaniami. Upewnijmy się, że wybrane narzędzie:

  • Obsługuje nasz system kontroli wersji.
  • Można wdrożyć w wielu środowiskach, aby umożliwić testowanie i weryfikowanie naszej pracy.
  • Ułatwia definiowanie zadań wdrażania.
  • Jest łatwy do rozszerzenia.

Mara: usługa Azure DevOps integruje się z wieloma innymi rozwiązaniami CI (ciągłej integracji) i CD (ciągłego wdrażania). Wiele rozwiązań jest tam i nie inwestujemy w żadne z nich. Gdybyśmy tam byli, sensownie byłoby go użyć. Popularne systemy ciągłej integracji i ciągłego wdrażania to Jenkins, Circle CI, GitLab, Travis CI i Azure Pipelines.

Te narzędzia mają podobieństwa, ale każdy z nich ma również szczególne mocne strony. Niektóre z tych narzędzi to open source, niektóre są bezpłatne, a niektóre trzeba zapłacić za. Zapewniają one również wbudowane integracje z innymi narzędziami programowymi.

Na przykład usługa Jenkins to open source. Ma wiele wtyczek, a wiele firm go używa. Możesz uruchomić Circle CI w chmurze lub lokalnie. Myślę, że musielibyśmy go dostosować. GitLab to pojedyncza aplikacja dla całego cyklu życia tworzenia oprogramowania. To może być większe niż chcemy teraz. Możemy nadal korzystać z usługi Azure Pipelines.

Oto krótki film wideo, w którym Abel opowiada o korzystaniu z najlepszych rozwiązań metodyki DevOps do wdrażania kodu na platformie Azure.

Mara: Moim głosowaniem jest pozostanie w usłudze Azure Pipelines.

Andy: zgadzam się. Usługa Azure Pipelines pracowała dla nas do tej pory świetnie i nie musimy uczyć się innej nowej technologii.

Mara: Świetnie. Zacznijmy od szczegółów przepływu.

Andy i Mara przenoszą się do sali konferencyjnej, aby zaplanować ścieżkę CI/CD.