E-book details

Terraform. Tworzenie infrastruktury za pomocą kodu. Wydanie III

Terraform. Tworzenie infrastruktury za pomocą kodu. Wydanie III

Yevgeniy Brikman

Ebook

Jeszcze do niedawna praca administratora systemu polegała na ręcznym przygotowywaniu infrastruktury do działania. Mozolne konfigurowanie serwerów, baz danych i elementów sieci niosło za sobą ryzyko przestojów środowiska produkcyjnego i wprowadzenia błędnych ustawień, a wdrożenia przebiegały powoli i łączyły się z nieuchronnym poszukiwaniem błędów. Dziś do tego rodzaju prac służy Terraform, narzędzie open source przeznaczone do tworzenia i wdrażania kodu infrastruktury, a także zarządzania nim; rozwiązanie stosowane w takich platformach jak Amazon Web Services, Google Cloud, Azure i wiele innych.

To trzecie, wzbogacone i uzupełnione wydanie praktycznego samouczka, dzięki któremu błyskawicznie rozpoczniesz pracę z Terraform. Zapoznasz się z językiem programowania Terraform i zasadami tworzenia kodu. Szybko zaczniesz wdrażać infrastrukturę i zarządzać nią za pomocą zaledwie kilku poleceń. Istotną częścią książki jest pokazanie metodologii DevOps w działaniu, a także wyjaśnienie zasad kodowania infrastruktury. Dziesiątki jasnych przykładów kodu, które można samodzielnie wypróbować w akcji, ułatwią zrozumienie podstaw. Nie musisz być weteranem DevOps ani doświadczonym administratorem systemów - z tym podręcznikiem nawet początkujący programiści sprawnie przygotują pełny stos, który zapewni obsługę ogromnego ruchu sieciowego w rzeczywistych środowiskach produkcyjnych.

Dzięki książce:

  • zrozumiesz, kiedy używać Terraform, a kiedy innych narzędzi
  • wdrożysz klastry serwerów, mechanizmy równoważenia obciążenia i bazy danych
  • nauczysz się tworzyć infrastrukturę Terraform
  • przetestujesz moduły Terraform wieloma metodami
  • skonfigurujesz potoki CI/CD i zaczniesz się posługiwać zaawansowaną składnią Terraform
  • nauczysz się pracować w środowiskach chmurowych

Infrastruktura jako kod: od sukcesu dzieli Cię kilka poleceń!

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

  • Title: Terraform. Tworzenie infrastruktury za pomocą kodu. Wydanie III
  • Author: Yevgeniy Brikman
  • Original title: Terraform: Up and Running: Writing Infrastructure as Code, 3rd Edition
  • Translation: Robert Górczyński
  • ISBN: 978-83-8322-347-6, 9788383223476
  • Date of issue: 2023-05-09
  • Format: Ebook
  • Item ID: terra3
  • Publisher: Helion