Terraform Krotkie wprowadzenie Tworzenie infrastruktury za pomoca kodu Wydanie II.pdf

(2846 KB) Pobierz
Tytuł oryginału: Terraform: Up & Running: Writing Infrastructure as Code, 2nd Edition
Tłumaczenie: Robert Górczyński
ISBN: 978-83-283-6649-7
© 2020 Helion SA
Authorized Polish translation of the English edition of Terraform: Up & Running, 2nd Edition ISBN
9781492043225 © 2019 Yevgeniy Brikman
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all
rights to publish and sell the same.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/terra2.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/terra2
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Kup książkę
Poleć książkę
Oceń książkę
Księgarnia internetowa
Lubię to! » Nasza społeczność
Spis treści
Wprowadzenie ............................................................................................................ 9
1. Dlaczego Terraform? ................................................................................................. 21
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
Serwer główny kontra jego brak
Agent kontra jego brak
Duża społeczność kontra mała
Rozwiązanie dojrzałe kontra najnowsze
Używanie razem wielu narzędzi
Podsumowanie
21
23
24
25
27
31
33
35
37
39
39
40
41
44
45
46
50
50
53
2. Rozpoczęcie pracy z Terraform ................................................................................... 55
Utworzenie konta AWS
Instalacja Terraform
Wdrożenie pojedynczego serwera
Wdrożenie pojedynczego serwera WWW
Wdrażanie konfigurowalnego serwera WWW
Wdrażanie klastra serwerów WWW
56
59
60
67
74
79
5
Kup książkę
Poleć książkę
Wdrożenie mechanizmu równoważenia obciążenia
Porządkowanie
Podsumowanie
82
90
91
3. Zarządzanie informacjami o stanie Terraform ............................................................ 93
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
93
95
102
104
106
110
115
124
4. Zastosowanie modułów do tworzenia infrastruktury Terraform
wielokrotnego użycia .............................................................................................. 125
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
128
130
134
136
138
138
139
141
146
5. Sztuczki i podpowiedzi dotyczące Terraform
— pętle, konstrukcje if, wdrażanie i problemy ........................................................ 149
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
150
150
156
161
164
165
166
175
176
177
188
188
190
6
Spis treści
Poleć książkę
Kup książkę
Awarie poprawnych planów
Trudności podczas refaktoryzacji
Osiągnięcie ostatecznej spójności może wymagać nieco czasu
Podsumowanie
191
192
195
196
6. Produkcyjny kod Terraform ......................................................................................197
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 możliwe do wydania
Moduły wykraczające poza Terraform
Podsumowanie
199
201
203
203
208
216
219
223
229
7. Testowanie kodu Terraform .....................................................................................231
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
232
233
237
238
239
265
279
284
286
8. Używanie Terraform w zespołach .............................................................................289
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
289
290
292
294
295
296
296
297
298
299
299
300
Spis treści
Kup książkę
7
Poleć książkę
Zgłoś jeśli naruszono regulamin