Ciągła integracja i ciągłe dostarczanie (tworzenie aplikacji Real-World w chmurze za pomocą platformy Azure)

Autor: Rick Anderson, Tom Dykstra

Pobierz poprawkę projektu lub pobierz książkę elektroniczną

Książka elektroniczna Building Real World Cloud Apps with Azure (Tworzenie rzeczywistych aplikacji w chmurze za pomocą usługi Azure ) opiera się na prezentacji opracowanej przez Scotta Guthrie'ego. Wyjaśniono w nim 13 wzorców i praktyk, które mogą pomóc w pomyślnym tworzeniu aplikacji internetowych dla chmury. Aby uzyskać informacje o książce elektronicznej, zobacz pierwszy rozdział.

Pierwsze dwa zalecane wzorce procesów programowania to Automate Everything and Source Control, a trzeci wzorzec procesu łączy je. Ciągła integracja oznacza, że za każdym razem, gdy deweloper zaewidencjonuje kod w repozytorium źródłowym, kompilacja zostanie automatycznie wyzwolona. Ciągłe dostarczanie (CD) wykonuje ten krok dalej: po pomyślnym zakończeniu kompilacji i zautomatyzowanych testów jednostkowych automatycznie wdrożysz aplikację w środowisku, w którym można wykonać bardziej szczegółowe testy.

Chmura umożliwia zminimalizowanie kosztów utrzymania środowiska testowego, ponieważ płacisz tylko za zasoby środowiska, o ile ich używasz. Proces ciągłego wdrażania umożliwia skonfigurowanie środowiska testowego w razie potrzeby i usunięcie środowiska po zakończeniu testowania.

Przepływ pracy ciągłej integracji i ciągłego dostarczania

Ogólnie zalecamy ciągłe dostarczanie do środowisk deweloperskich i przejściowych. Większość zespołów, nawet w firmie Microsoft, wymaga ręcznego przeglądu i procesu zatwierdzania wdrożenia produkcyjnego. W przypadku wdrożenia produkcyjnego warto upewnić się, że dzieje się tak, gdy kluczowi użytkownicy zespołu deweloperów są dostępni do pomocy technicznej lub w okresach niskiego ruchu. Ale nie ma nic, aby zapobiec całkowitej automatyzacji środowisk programistycznych i testowych, aby wszyscy deweloper musiał to zrobić, to zaewidencjonować zmianę, a środowisko jest skonfigurowane do testowania akceptacji.

Na poniższym diagramie z książki elektronicznej Microsoft Patterns and Practices na temat ciągłego dostarczania przedstawiono typowy przepływ pracy. Kliknij obraz, aby zobaczyć jego pełny rozmiar w oryginalnym kontekście.

Przepływ pracy ciągłego dostarczania

Jak chmura umożliwia opłacalną ciągłą integrację i ciągłe wdrażanie

Automatyzacja tych procesów na platformie Azure jest łatwa. Ponieważ uruchamiasz wszystko w chmurze, nie musisz kupować serwerów ani zarządzać nimi dla kompilacji ani środowisk testowych. I nie musisz czekać, aż serwer będzie dostępny do wykonania testów. Dzięki każdej kompilacji, którą wykonasz, możesz uruchomić środowisko testowe na platformie Azure przy użyciu skryptu automatyzacji, uruchomić testy akceptacyjnych lub bardziej szczegółowe testy, a następnie po zakończeniu po prostu go usunąć. A jeśli korzystasz tylko z tego serwera przez 2 godziny lub 8 godzin lub dzień, kwota pieniędzy, za które trzeba zapłacić, jest minimalna, ponieważ płacisz tylko za czas, przez który maszyna jest rzeczywiście uruchomiona. Na przykład środowisko wymagane dla aplikacji Fix it w zasadzie kosztuje około 1 procent na godzinę, jeśli przejdziesz jedną warstwę w górę z poziomu bezpłatnego. W ciągu miesiąca, jeśli uruchamiasz środowisko tylko godzinę w czasie, środowisko testowe prawdopodobnie będzie kosztować mniej niż latte, które kupujesz w Starbucks.

Usługa Azure DevOps Services

Azure DevOps Services oferuje szereg funkcji ułatwiania tworzenia aplikacji od planowania do wdrożenia.

  • Obsługuje zarówno usługę Git (rozproszoną), jak i kontrolę źródła serwera TFVC (scentralizowaną).
  • Oferuje ona elastyczną usługę kompilacji, co oznacza, że dynamicznie tworzy serwery kompilacji, gdy są potrzebne i wyłącza je po zakończeniu. Możesz automatycznie rozpocząć kompilację, gdy ktoś zaewidencjonuje zmiany kodu źródłowego i nie musisz przydzielać i płacić za własne serwery kompilacji, które są bezczynne przez większość czasu. Usługa kompilacji jest bezpłatna, o ile nie przekraczasz określonej liczby kompilacji. Jeśli spodziewasz się dużej liczby kompilacji, możesz zapłacić trochę więcej za zarezerwowane serwery kompilacji.
  • Obsługuje ciągłe dostarczanie na platformę Azure.
  • Obsługuje automatyczne testowanie obciążenia. Testowanie obciążenia ma kluczowe znaczenie dla aplikacji w chmurze, ale często jest zaniedbane, dopóki nie będzie za późno. Testowanie obciążenia symuluje duże wykorzystanie aplikacji przez tysiące użytkowników, co umożliwia znalezienie wąskich gardeł i zwiększenie przepływności — przed wydaniem aplikacji do środowiska produkcyjnego.
  • Obsługuje współpracę w pokoju zespołowym, która ułatwia komunikację i współpracę w czasie rzeczywistym dla małych zespołów agile.
  • Obsługuje zwinne zarządzanie projektami.

Aby uzyskać więcej informacji na temat funkcji ciągłej integracji i dostarczania Azure DevOps Services, zobacz dokumentację usługi Azure DevOps.

Jeśli szukasz kluczowego rozwiązania do zarządzania projektami, współpracy zespołowej i kontroli źródła, zapoznaj się z Azure DevOps Services. Zarejestruj się w Azure DevOps Services.

Podsumowanie

Pierwsze trzy wzorce programowania w chmurze dotyczą sposobu implementowania powtarzalnego, niezawodnego, przewidywalnego procesu programowania z niskim czasem cyklu. W następnym rozdziale zaczniemy patrzeć na wzorce architektury i kodowania.

Zasoby

Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji internetowej w Azure App Service.

Zobacz również następujące zasoby: