Spis tresci
Wprowadzenie
1. Dlaczego Terraform?
Powstanie ruchu DevOps
Infrastruktura jako kod
Skrypty tymczasowe
Narzędzia zarządzania konfiguracją
Narzędzia szablonów serwera
Narzędzia instrumentacji
Narzędzia provisioningu
Korzyści płynące z infrastruktury jako kodu
Jak działa Terraform?
Porównanie Terraform z innymi narzędziami IaC
Zarządzanie konfiguracją kontra provisioning
Infrastruktura niemodyfikowalna kontra modyfikowalna
Język proceduralny kontra deklaratywny
Język ogólnego przeznaczenia kontra język specjalizowany
Serwer główny kontra jego brak
Agent kontra jego brak
Rozwiązanie płatne kontra bezpłatne
Duża społeczność kontra mała
Rozwiązanie dojrzałe kontra najnowsze
Używanie razem wielu narzędzi
Podsumowanie
2. Rozpoczęcie pracy z Terraform
Utworzenie konta AWS
Instalacja Terraform
Wdrożenie pojedynczego serwera
Wdrożenie pojedynczego serwera WWW
Bezpieczeństwo sieci
Wdrażanie konfigurowalnego serwera WWW
Wdrażanie klastra serwerów WWW
Wdrożenie mechanizmu równoważenia obciążenia
Porządkowanie
Podsumowanie
3. Zarządzanie informacjami o stanie Terraform
Czym są informacje o stanie Terraform?
Współdzielony magazyn danych dla plików informacji o stanie
Ograniczenia backendu Terraform
Izolowanie plików informacji o stanie
Izolacja za pomocą przestrzeni roboczych
Izolacja za pomocą układu plików
Źródło danych terraform_remote_state
Podsumowanie
4. Zastosowanie modułów do tworzenia infrastruktury Terraform wielokrotnego użycia
Podstawy modułów
Dane wejściowe modułu
Wartości lokalne modułu
Dane wyjściowe modułu
Problemy z modułami
Ścieżki dostępu do pliku
Osadzony blok kodu
Wersjonowanie modułu
Podsumowanie
5. Sztuczki i podpowiedzi dotyczące Terraform – pętle, konstrukcje if, wdrażanie i problemy
Pętle
Pętla za pomocą parametru count
Pętla za pomocą wyrażenia for_each
Pętla za pomocą wyrażenia for
Pętla za pomocą dyrektywy for ciągu tekstowego
Wyrażenie warunkowe
Wyrażenie warunkowe z użyciem parametru count
Definiowanie warunku za pomocą for_each i wyrażeń
Wyrażenia warunkowe wraz z dyrektywą if ciągu tekstowego
Wdrożenie bez przestoju
Problemy związane z Terraform
Ograniczenia parametru count i wyrażenia for_each
Ograniczenia wdrożenia bez przestoju
Awarie poprawnych planów
Trudności podczas refaktoryzacji
Podsumowanie
6. Zarządzanie danymi poufnymi za pomocą Terraform
Podstawy zarządzania danymi poufnymi
Narzędzia przeznaczone do zarządzania danymi poufnymi
Rodzaje przechowywanych danych poufnych
Przechowywanie danych poufnych
Interfejs używany w celu dostępu do danych poufnych
Porównanie narzędzi przeznaczonych do zarządzania danymi poufnymi
Narzędzia przeznaczone do zarządzania danymi poufnymi w Terraform
Dostawcy
Zasoby i źródła danych
Pliki informacji o stanie i pliki planu
Podsumowanie
7. Praca z wieloma dostawcami
Praca z pojedynczym dostawcą
Czym jest dostawca?
Jak odbywa się instalacja dostawcy?
W jaki sposób używać dostawców?
Praca z wieloma kopiami tego samego dostawcy
Praca z wieloma regionami AWS
Praca z wieloma kontami AWS
Tworzenie modułów, które mogą działać z wieloma dostawcami
Praca z wieloma różnymi dostawcami
Krótkie wprowadzenie do Dockera
Krótkie wprowadzenie do Kubernetes
Wdrażanie kontenerów Dockera w AWS za pomocą Elastic Kubernetes Service
Podsumowanie
8. Produkcyjny kod Terraform
Dlaczego przygotowanie infrastruktury o jakości produkcyjnej trwa tak długo?
Lista rzeczy do zrobienia podczas tworzenia infrastruktury o jakości produkcyjnej
Moduły infrastruktury o jakości produkcyjnej
Małe moduły
Moduły łączone z innymi
Moduły możliwe do testowania
Moduły wersjonowane
Moduły wykraczające poza Terraform
Podsumowanie
9. Testowanie kodu Terraform
Testy ręczne
Podstawy ręcznego przeprowadzania testów
Uporządkowanie środowiska po zakończeniu testów
Testy zautomatyzowane
Testy jednostkowe
Testy integracji
Testy typu E2E
Inne podejścia w zakresie testów
Podsumowanie
10. Używanie Terraform w zespołach
Adaptacja infrastruktury jako kodu przez zespół
Przekonanie szefa do pomysłu
Stopniowe wprowadzanie zmian
Zapewnienie zespołowi czasu na naukę
Sposób pracy podczas wdrażania kodu aplikacji
Użycie systemu kontroli wersji
Lokalne uruchomienie kodu
Wprowadzenie zmian w kodzie
Przekazanie zmian do zatwierdzenia
Uruchomienie testów zautomatyzowanych
Połączenie kodu istniejącego z nowym i wydanie produktu
Wdrożenie
Sposób pracy podczas wdrażania kodu infrastruktury
Użycie systemu kontroli wersji
Lokalne uruchomienie kodu
Wprowadzenie zmian w kodzie
Przekazanie zmian do zatwierdzenia
Uruchomienie testów zautomatyzowanych
Połączenie kodu istniejącego z nowym i wydanie produktu
Wdrożenie
Zebranie wszystkiego w całość
Podsumowanie
A. Polecane zasoby
Opinie
Na razie nie ma opinii o produkcie.