ciągłe dostarczanie oprogramowania. automatyzacja kompilacji, testowania i wdrażania helion.pdf

(26000 KB) Pobierz
Spis treści
Przedmowa Martina Fowlera ......................................................................................................17
Wprowadzenie .............................................................................................................................19
Podziękowania .............................................................................................................................27
O autorach ....................................................................................................................................28
Część I. Podstawy ........................................................................................29
Rozdział 1. Problem dostarczania oprogramowania .................................................................31
Wstęp ..................................................................................................................................................... 31
Niektóre powszechnie występujące błędne wzorce wydawania oprogramowania .................... 32
Antywzorzec: ręczne wdrażanie oprogramowania ................................................................... 33
Antywzorzec: wdrożenie w środowisku zbliżonym do środowiska produkcyjnego
dopiero po zakończeniu programowania ............................................................................... 35
Antywzorzec: ręczne zarządzanie konfiguracją środowiska produkcyjnego .......................... 37
Czy możemy to poprawić? .......................................................................................................... 38
Jak mamy osiągnąć nasz cel? .............................................................................................................. 39
Każda zmiana powinna uruchamiać proces pozyskiwania informacji zwrotnej ................... 40
Informacja zwrotna musi być uzyskiwana możliwie szybko ................................................... 41
Zespół odpowiedzialny za wdrożenie musi wyciągnąć praktyczne wnioski
z otrzymanej informacji zwrotnej .......................................................................................... 43
Czy ten proces się skaluje? .......................................................................................................... 43
Jakie płyną z tego korzyści? ................................................................................................................ 44
Przyznanie zespołom większej władzy ...................................................................................... 44
Ograniczenie liczby błędów ........................................................................................................ 45
Obniżenie poziomu stresu .......................................................................................................... 47
Elastyczność wdrożenia .............................................................................................................. 47
Ćwiczenie czyni mistrza ............................................................................................................. 48
Kandydat do wydania .......................................................................................................................... 49
Każde zaewidencjonowanie prowadzi do potencjalnego wydania .......................................... 50
Kup książkę
Poleć książkę
8
S
PIS TREŚCI
Zasady dostarczania oprogramowania ............................................................................................. 50
Stwórz powtarzalny, niezawodny proces dostarczania oprogramowania .............................. 50
Automatyzuj, co tylko się da ...................................................................................................... 51
Przechowuj wszystko w systemie kontroli wersji ...................................................................... 51
Jeśli to boli, rób to częściej i szybciej zmierz się z bólem ........................................................... 52
Wbuduj jakość w proces wytwarzania ...................................................................................... 52
Gotowe oznacza wydane ............................................................................................................ 53
Wszyscy są odpowiedzialni za udostępnianie oprogramowania ............................................. 53
Ciągłe doskonalenie .................................................................................................................... 54
Podsumowanie ..................................................................................................................................... 54
Rozdział 2. Zarządzanie konfiguracją .........................................................................................57
Wstęp ..................................................................................................................................................... 57
Stosowanie systemów kontroli wersji ............................................................................................... 58
W systemie kontroli wersji przechowuj absolutnie wszystko ................................................... 59
Wprowadzaj zmiany regularnie do głównej gałęzi projektu ................................................... 61
Posługuj się czytelnymi opisami zakresu zmian ....................................................................... 62
Zarządzanie zależnościami ................................................................................................................. 63
Zarządzanie bibliotekami zewnętrznymi .................................................................................. 63
Zarządzanie modułami .............................................................................................................. 64
Zarządzanie konfiguracją oprogramowania .................................................................................... 64
Konfiguracja i elastyczność ........................................................................................................ 65
Typy konfiguracji ........................................................................................................................ 66
Zarządzanie konfiguracją aplikacji ........................................................................................... 67
Zarządzanie konfiguracją szeregu aplikacji .............................................................................. 70
Zasady zarządzania konfiguracją aplikacji .............................................................................. 71
Zarządzanie środowiskami ................................................................................................................. 72
Narzędzia do zarządzania środowiskami ................................................................................. 75
Zarządzanie procesem zmiany .................................................................................................. 75
Podsumowanie ..................................................................................................................................... 76
Rozdział 3. Ciągła integracja .......................................................................................................77
Wstęp ..................................................................................................................................................... 77
Wdrażanie ciągłej integracji ............................................................................................................... 78
Czego potrzebujesz na początek? ............................................................................................... 78
Podstawowy system ciągłej integracji ........................................................................................ 79
Warunki wstępne ciągłej integracji ................................................................................................... 81
Ewidencjonuj regularnie ............................................................................................................ 81
Stwórz obszerny i kompleksowy zestaw zautomatyzowanych testów ..................................... 81
Niech proces kompilacji i testowania będzie możliwie krótki .................................................. 82
Zarządzanie środowiskiem programistycznym ........................................................................ 83
Stosowanie systemów ciągłej integracji ............................................................................................ 84
Podstawowa funkcjonalność ...................................................................................................... 84
Wodotryski .................................................................................................................................. 85
Kup książkę
Poleć książkę
S
PIS TREŚCI
9
Kluczowe praktyki ............................................................................................................................... 87
Nie ewidencjonuj niczego w popsutej kompilacji ...................................................................... 87
Zawsze testuj lokalnie wszystkie zmiany przed ich zatwierdzeniem
albo zleć to serwerowi CI ......................................................................................................... 87
Zanim podejmiesz pracę, poczekaj na powodzenie testów
towarzyszących przekazywaniu zmian .................................................................................. 88
Nigdy nie idź do domu, dopóki kompilacja nie działa poprawnie .......................................... 89
Zawsze bądź przygotowany na powrót do poprzednich wersji ................................................ 90
Ustaw sobie limit czasu na poprawki przed cofnięciem zmian ............................................... 90
Nie wyłączaj testów, które zakończyły się niepowodzeniem .................................................... 91
Weź odpowiedzialność za wszystkie szkody powstałe w wyniku zmian ................................. 91
Programowanie sterowane testami ............................................................................................ 91
Zalecane praktyki ................................................................................................................................. 92
Praktyki programowania ekstremalnego (XP) ......................................................................... 92
Odrzucanie kompilacji ze względu na naruszenie architektury .............................................. 92
Odrzucanie kompilacji ze względu na powolność testów ......................................................... 93
Odrzucanie kompilacji ze względu na ostrzeżenia i niewłaściwe formatowania kodu ......... 94
Zespoły rozproszone ............................................................................................................................ 95
Wpływ na proces ......................................................................................................................... 95
Scentralizowana ciągła integracja ............................................................................................. 96
Problemy techniczne ................................................................................................................... 97
Podejścia alternatywne ............................................................................................................... 97
Rozproszone systemy kontroli wersji ............................................................................................... 99
Podsumowanie ................................................................................................................................... 101
Rozdział 4. Wdrożenie strategii testów .....................................................................................103
Wstęp ................................................................................................................................................... 103
Typy testów ......................................................................................................................................... 104
Testy biznesowe wspierające proces wytwarzania oprogramowania .................................... 105
Testy technologiczne wspierające programowanie ................................................................. 108
Testy biznesowe umożliwiające krytyczną analizę projektu .................................................. 108
Testy technologiczne umożliwiające krytyczną analizę projektu .......................................... 110
Obiekty zastępcze ...................................................................................................................... 110
Sytuacje i strategie z prawdziwego życia ......................................................................................... 111
Na początku projektu ............................................................................................................... 111
W środku projektu .................................................................................................................... 112
Kod zastany ............................................................................................................................... 113
Testy integracyjne ..................................................................................................................... 115
Proces ................................................................................................................................................... 117
Zarządzanie zaległymi błędami ............................................................................................... 118
Podsumowanie ................................................................................................................................... 119
Kup książkę
Poleć książkę
10
S
PIS TREŚCI
Część II. Potok wdrożeń ...........................................................................121
Rozdział 5. Anatomia potoku wdrożeń .....................................................................................123
Wstęp ................................................................................................................................................... 123
Czym jest potok wdrożeń? ................................................................................................................ 124
Podstawowy potok wdrożeń ..................................................................................................... 128
Praktyki związane z potokiem wdrożeń ......................................................................................... 130
Kompiluj binaria tylko raz ....................................................................................................... 130
W każdym środowisku wdrażaj w taki sam sposób ............................................................... 132
Testuj wdrożenia testami dymnymi ........................................................................................ 134
Wdrażaj na kopii środowiska produkcyjnego ......................................................................... 134
Każda zmiana powinna być natychmiast przekazywana do kolejnej fazy potoku .............. 135
Jeśli jakakolwiek część potoku nie działa, zatrzymaj potok ................................................... 136
Faza przekazywania zmian ............................................................................................................... 136
Najlepsze praktyki fazy przekazywania zmian ....................................................................... 138
Bramka automatycznych testów akceptacyjnych .......................................................................... 139
Najlepsze praktyki fazy zautomatyzowanych testów akceptacyjnych ................................... 141
Kolejne fazy testowania ..................................................................................................................... 142
Testy ręczne ............................................................................................................................... 143
Testy niefunkcjonalne ............................................................................................................... 144
Przygotowanie do wydania ............................................................................................................... 144
Automatyzacja wdrożenia i wydania ...................................................................................... 145
Wycofywanie się ze zmian ........................................................................................................ 147
Budowanie na sukcesie ............................................................................................................. 148
Implementacja potoku wdrożeń ...................................................................................................... 148
Tworzenie modelu strumienia wartości i szkieletu systemu .................................................. 148
Automatyzacja procesu kompilacji i wdrażania .................................................................... 149
Automatyzacja testów jednostkowych i analiza kodu ........................................................... 150
Automatyzacja testów akceptacyjnych .................................................................................... 151
Rozwijanie potoku .................................................................................................................... 151
Miary .................................................................................................................................................... 152
Podsumowanie ................................................................................................................................... 155
Rozdział 6. Skrypty kompilacji i wdrożenia ..............................................................................157
Wstęp ................................................................................................................................................... 157
Przegląd narzędzi kompilacji ........................................................................................................... 158
Make .......................................................................................................................................... 160
Ant ............................................................................................................................................. 161
NAnt i MSBuild ........................................................................................................................ 162
Maven ........................................................................................................................................ 162
Rake ........................................................................................................................................... 163
Buildr ......................................................................................................................................... 164
Psake .......................................................................................................................................... 164
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin