Automatyzacja metodyki DevOps za pomocą potoków CI/CD GitLaba Goniądz

Obecnie zasady i wzorce DevOps pozwalają na ograniczenie ryzyka związanego z budowaniem, zabezpieczaniem i wdrażaniem kodu. Programiści i wdrożeniowcy wiedzą, że zapewnienie funkcjonalnej poprawności, efektywności i bezpieczeństwa kodu jest czasochłonne i skomplikowane. Dużym ułatwieniem w tym …

od 79 Najbliżej: 49 km

Liczba ofert: 1

Oferta sklepu

Opis

Obecnie zasady i wzorce DevOps pozwalają na ograniczenie ryzyka związanego z budowaniem, zabezpieczaniem i wdrażaniem kodu. Programiści i wdrożeniowcy wiedzą, że zapewnienie funkcjonalnej poprawności, efektywności i bezpieczeństwa kodu jest czasochłonne i skomplikowane. Dużym ułatwieniem w tym zakresie mogą być potoki CI/CD GitLaba. Dzięki tej książce poznasz od podstaw Gita i GitLaba. Dowiesz się, jak skonfigurować runnery GitLaba, a także jak tworzyć i konfigurować potoki dla różnych etapów cyklu rozwoju oprogramowania. Poznasz zasady interpretacji wyników potoków w GitLabie. Nauczysz się też wdrażania kodu w różnych środowiskach i korzystania z wielu zaawansowanych funkcji, takich jak łączenie GitLaba z Terraformem, klastrami Kubernetes czy uruchamianie i poprawa wydajności potoków. Skorzystasz ponadto z licznych przykładów i studiów przypadków, dzięki którym za pomocą potoków CI/CD zautomatyzujesz wszystkie etapy DevOps do budowy i wdrażania kodu o wysokiej jakości. Najciekawsze zagadnienia: podstawy Gita, GitLaba i DevOps tworzenie, przeglądanie i uruchamianie potoków CI/CD GitLaba weryfikacja, zabezpieczanie i wdrażanie kodu za pomocą potoków CI/CD GitLaba runnery, DAG-i i logika warunkowa GitLaba najlepsze praktyki i metody rozwiązywania problemów w potokach CI/CD GitLaba przykłady cykli życia procesów rozwoju oprogramowania DevOps. Wdrażaj zmiany szybko i bezpiecznie! Spis treści: O autorach O recenzentach Przedmowa CZĘŚĆ 1. Rozpoczęcie pracy z DevOps, Gitem i GitLabem Rozdział 1. Zrozumienie okresu przed DevOps Wprowadzenie do aplikacji internetowej Hats for Cats Ręczne tworzenie i weryfikacja kodu Ręczne budowanie kodu Ręczna weryfikacja kodu Dodatkowe wyzwania związane z weryfikacją kodu Ręczne przeprowadzanie testów bezpieczeństwa kodu Statyczna analiza kodu Wykrywanie tajemnic Analiza dynamiczna Skanowanie zależności Skanowanie kontenerów Podsumowanie ręcznych testów bezpieczeństwa Ręczne pakowanie i wdrażanie kodu Skanowanie zgodności licencji Wdrażanie oprogramowania Problemy z ręcznymi praktykami w cyklu życia oprogramowania Rozwiązywanie problemów za pomocą DevOps Jak GitLab implementuje DevOps Podsumowanie Rozdział 2. Ćwiczenie podstawowych poleceń Gita Wymagania techniczne Dlaczego korzystać z Gita? Czym jest system kontroli wersji? Jakie problemy rozwiązuje system kontroli wersji? Dlaczego Git jest popularny Wady Gita Zatwierdzanie kodu, aby zachować go w bezpiecznym miejscu Wyłączenie plików z repozytorium Oznaczanie zatwierdzeń w celu identyfikowania wersji kodu Tworzenie gałęzi, aby rozwijać kod w oddzielnym miejscu Komendy Gita do zarządzania gałęziami Obsługa konfliktów scalania Synchronizacja lokalnych i zdalnych kopii repozytoriów "Złote" repozytorium Konfigurowanie zdalnych repozytoriów Wypychanie zatwierdzeń Pobieranie fetch Pobieranie pull Dodatkowe źródła do nauki Gita Podsumowanie Rozdział 3. Zrozumienie komponentów GitLaba Wymagania techniczne Kładziemy nacisk na "dlaczego" bardziej niż na "jak" Wprowadzenie do platformy GitLaba Czym jest GitLab? Jaki problem rozwiązuje GitLab? Etapy weryfikacji, zabezpieczania i wydawania Organizowanie pracy w projekty i grupy Przykład - organizacja pracy nad projektem Hats for Cats Śledzenie pracy za pomocą zgłoszeń Struktura zgłoszenia w GitLabie Rodzaje zadań, które mogą być reprezentowane przez zgłoszenia Etykiety Schematy pracy ze zgłoszeniami Bezpieczne edytowanie plików za pomocą zatwierdzeń, gałęzi i próśb o scalenie Historia zatwierdzeń Łączenie jednej gałęzi Gita z drugą Trzej amigos - zgłoszenia, gałęzie i prośby o scalenie Kiedy dwóch amigos wystarcza Czym różnią się zgłoszenia i prośby o scalenie? Korzystanie z praktyk DevOps za pomocą GitLab Flow Podsumowanie Rozdział 4. Opis struktury potoku CI/CD GitLaba Wymagania techniczne Definicje pojęć: "potok", "CI" i "CD" Czym jest potok Definiowanie jednego potoku na projekt Wyjaśnienie różnych znaczeń terminu "potok" Przeglądanie listy potoków CI - dowiedz się, czy Twój kod jest dobry CD - dowiedz się, gdzie powinien trafić Twój kod (i umieść go tam) GitLab Runnery Elementy potoku - etapy, zadania i polecenia Etapy Zadania Polecenia Łączenie elementów potoku Uruchamianie potoków CI/CD GitLaba Potoki dla gałęzi (ang. branch pipelines) Potoki dla tagów Gita Inne rodzaje potoków Pomijanie potoków Odczytywanie statusów potoków CI/CD GitLaba Konfigurowanie potoków CI/CD GitLaba Podsumowanie CZĘŚĆ 2. Automatyzacja etapów DevOps przy użyciu potoków CI/CD GitLaba Rozdział 5. Instalacja i konfiguracja GitLab Runnerów Wymagania techniczne Definicja GitLab Runnerów i ich związek z CI/CD GitLab Runner to aplikacja open source napisana w języku Go GitLab Runner uruchamia zadania CI/CD określone w pliku .gitlab-ci.yml Architektura runnera i obsługiwane platformy GitLab Runner jest obsługiwany przez większość platform i architektur Runnery mogą być specyficzne dla projektu, grupy lub współdzielone Każdy runner ma zdefiniowanego executora Tagi runnera określają, które runnery mogą wykonywać konkretne zadania Instalacja agenta runnera Instalacja GitLab Runnera Rejestracja runnera w GitLabie Rozważania dotyczące różnych typów runnerów i executorów Rozważania dotyczące wydajności Rozważania dotyczące bezpieczeństwa Rozważania dotyczące monitorowania Podsumowanie Rozdział 6. Weryfikacja kodu Wymagania techniczne Budowanie kodu w potoku CI/CD Kompilacja kodu Java za pomocą javac Kompilacja Javy przy użyciu narzędzia Maven Kompilacja języka C przy użyciu narzędzia GNU Compiler Collection (GCC) Przechowywanie skompilowanego kodu jako artefaktów Sprawdzanie jakości kodu w potoku CI/CD Włączanie funkcji jakości kodu Przeglądanie wyników funkcji jakości kodu Uruchamianie automatycznych testów funkcjonalnych na etapie dostarczania (CI/CD) Włączanie automatycznych testów funkcjonalnych Przeglądanie wyników automatycznych testów funkcjonalnych Testy fuzzingowe w potoku CI/CD Architektura i przepływ pracy testowania fuzzingowego Przepływ pracy testowania fuzzingowego Przeglądanie wyników testów fuzzingu Dodatkowe uwagi dotyczące testowania fuzzingu Testowanie fuzzingu z korpusem Sprawdzanie dostępności w procesie CI/CD Dodawanie testów dostępności Przeglądanie wyników testów dostępności Dodatkowe sposoby weryfikacji kodu Pokrycie kodu (ang. code coverage) Testowanie wydajności przeglądarki (ang. browser performance testing) Testowanie wydajności obciążeniowej (ang. load performance testing) Podsumowanie Rozdział 7. Zabezpieczanie kodu Wymagania techniczne Zrozumienie strategii skanowania bezpieczeństwa GitLaba GitLab korzysta ze skanerów open source Skanery są dostarczane jako obrazy Dockera Niektóre skanery używają różnych analizatorów dla różnych języków programowania Podatności nie zatrzymują potoku Wyniki pojawiają się w trzech różnych raportach Potoki mogą korzystać ze skanerów innych niż GitLab Korzystanie z SAST-a do skanowania kodu źródłowego pod kątem podatności Włączanie SAST-a Konfigurowanie SAST-a Przeglądanie wyników SAST-a Użycie wykrywania sekretów do znalezienia poufnych informacji w Twoim repozytorium Zrozumienie działania wykrywania sekretów Włączanie i konfigurowanie wykrywania sekretów Przeglądanie wyników wykrywania sekretów Korzystanie z DAST-a do wykrywania podatności w aplikacjach internetowych Zrozumienie działania DAST-a Włączanie i konfigurowanie DAST-a Przegląd wyników DAST-a Korzystanie ze skanowania zależności do wyszukiwania luk w zależnościach Zrozumienie skanowania zależności Włączanie i konfigurowanie skanowania zależności Przeglądanie wyników skanowania zależności Korzystanie ze skanowania kontenerów do wyszukiwania podatności w obrazach Dockera Zrozumienie skanowania zależności Włączanie i konfigurowanie skanowania kontenerów Przeglądanie wyników skanowania kontenerów Korzystanie z badania zgodności licencji do zarządzania licencjami zależności Zrozumienie badania zgodności licencji Włączanie i konfigurowanie badania zgodności z licencją Przeglądanie wyników badania zgodności z licencją Korzystanie ze skanowania IaC do wykrywania problemów w plikach konfiguracyjnych infrastruktury Zrozumienie skanowania IaC Włączanie i konfigurowanie skanowania IaC Przeglądanie wyników skanowania IaC Zrozumienie różnych rodzajów raportów bezpieczeństwa Zarządzanie podatnościami związanymi z bezpieczeństwem Integracja z zewnętrznymi skanerami bezpieczeństwa Podsumowanie Rozdział 8. Pakowanie i wdrażanie kodu Wymagania techniczne Przechowywanie kodu w rejestrze pakietów GitLaba w celu późniejszego wykorzystania Lokalizacja rejestrów kontenerów i pakietów GitLaba Rozpoczęcie pracy z rejestrem pakietów Obsługiwane formaty pakietów Uwierzytelnianie w rejestrze Budowanie i publikowanie pakietów w rejestrze pakietów Budowanie i przesyłanie pakietów do rejestru kontenerów Przechowywanie kodu w rejestrach kontenerów i pakietów GitLaba w celu późniejszego wdrożenia Korzystanie z obrazów z rejestru kontenerów Wykorzystanie pakietów z rejestru pakietów Wdrażanie w różnych środowiskach przy użyciu GitLab Flow Wdrażanie w narzędziu review app w celu testowania Wdrażanie w rzeczywistych środowiskach produkcyjnych Wdrażanie w klastrze Kubernetes Proces CI/CD Podejście GitOps Podsumowanie CZĘŚĆ 3. Następne kroki w doskonaleniu aplikacji za pomocą GitLaba Rozdział 9. Poprawa szybkości i łatwości utrzymania potoku CI/CD Przyspieszanie procesów za pomocą skierowanych grafów acyklicznych i architektury rodzic - dziecko Jak utworzyć DAG w potoku CI? Budowanie kodu dla wielu architektur Kiedy i jak wykorzystywać pamięć podręczną lub artefakty? Charakterystyka pamięci podręcznej Charakterystyka artefaktów Korzystanie z pamięci podręcznej Korzystanie z artefaktów Wykorzystywanie artefaktów jako zależności zadania Redukowanie powtarzającego się kodu konfiguracyjnego za pomocą zakotwiczeń i słowa kluczowego extends Zakotwiczenia Słowo kluczowe extends: Tagi referencji Poprawa zarządzalności poprzez łączenie wielu potoków oraz wykorzystywanie potoków macierzystych i potomnych Łączenie plików dla ułatwienia zarządzania Użycie opcji include: w celu uzyskania możliwości ponownego wykorzystania Dołączanie zdalnych zasobów Wykorzystywanie potoków macierzystych Zabezpieczanie i przyspieszanie zadań za pomocą kontenerów utworzonych w celu realizacji określonych zadań Przykład kontenera utworzonego w celu realizacji określonego zadania Podsumowanie Rozdział 10. Poszerzanie zakresu potoków CI/CD Wykorzystywanie potoków CI/CD do wykrywania problemów wydajnościowych Jak zintegrować przeglądarkowe testy wydajnościowe? Jak zintegrować testy obciążeniowe z użyciem narzędzia k6? Korzystanie z flag funkcji umożliwiających wydawanie różnych aplikacji w zależności od decyzji biznesowych Jak skonfigurować aplikację pod kątem flag funkcji? Integracja narzędzi innych firm z potokami CI/CD Tworzenie pliku Dockerfile dla kontenera narzędziowego Automatyzacja procesu budowy kontenera Skanowanie kontenerów Wywoływanie narzędzia zewnętrznego Wykorzystywanie potoków CI/CD do tworzenia aplikacji mobilnych Wymagania Fastlane Fastlane - wdrożenie Fastlane - automatyzacja testowania Podsumowanie Rozdział 11. Kompletny przykład Wymagania techniczne Konfiguracja środowiska Tworzenie projektu w GitLabie Planowanie pracy za pomocą zgłoszeń GitLaba Konfiguracja lokalnego repozytorium Gita Tworzenie kodu Tworzenie gałęzi Gita Tworzenie żądania MR Zatwierdzanie i przesyłanie kodu Tworzenie infrastruktury potoku Tworzenie potoku Tworzenie runnera Weryfikacja kodu Dodawanie testów funkcjonalnych do potoku Dodawanie skanowania jakości kodu do potoku Dodawanie testu typu fuzzing do potoku Zabezpieczanie kodu Dodawanie SAST-a do potoku Dodawanie wykrywania sekretów do potoku Dodawanie skanowania zależności do potoku Dodawanie badania zgodności licencji do potoku Integracja zewnętrznego skanera bezpieczeństwa z potokiem Doskonalenie potoku Korzystanie z DAG-a w celu przyspieszenia potoku Podział potoku na kilka plików Dostarczanie kodu do odpowiedniego środowiska Wdrażanie kodu Podsumowanie Rozdział 12. Rozwiązywanie problemów i przyszłość GitLaba Wymagania techniczne Rozwiązywanie problemów i najlepsze praktyki dotyczące powszechnych problemów spotykanych w potokach CI/CD Rozwiązywanie problemów związanych ze składnią i logiką CI/CD Rozwiązywanie problemów z działaniem potoku i przypisaniem runnera Zarządzanie infrastrukturą operacyjną przy użyciu GitOpsa Użycie Terraforma do wdrażania i aktualizowania stanu infrastruktury Użycie Ansiblea do zarządzania konfiguracjami zasobów Przyszłe trendy Automatyzacja stworzy więcej oprogramowania na większą skalę Abstrakcja prowadzi do modeli biznesowych opartych na pojęciu "wszystko jako kod" Skrócony czas cyklu rozwoju produktu pomoże zespołom wydawać lepsze oprogramowanie szybciej Podsumowanie i kolejne kroki

Specyfikacja

Podstawowe informacje

Autor
  • Christopher Cowell, Nicholas Lotz, Chris Timberlake
Wydawnictwo
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2024
Ilość stron
  • 320
Tematyka
  • Programowanie
ISBN
  • 9788328907751