0Pricing
DevOps Bootcamp · Lekcja

Koordynowanie warstw Web, App i DB

Sekwencjonowanie wdrożenia wielowarstwowego.

Koordynowanie warstw Web, App i DB to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Rzeczywiste aplikacje mają warstwy

Typowy stos dzieli się na warstwy: serwery web, serwery aplikacji i bazę danych. Każda warstwa ma własną rolę oraz kolejność wdrażania. 🏗️

Kolejność ma znaczenie

Zwykle najpierw uruchamia się bazę danych, następnie aplikację, a na końcu warstwę web. Konfigurowanie warstw w niewłaściwej kolejności przerywa wdrożenie.

Jeden play na warstwę

Należy przypisać każdej warstwie własny play w jednym playbooku. Plays są wykonywane od góry do dołu, więc ich kolejność określa sekwencję wdrożenia.

- hosts: db
  roles: [postgres]

- hosts: app
  roles: [backend]

- hosts: web
  roles: [nginx]

Grupy odpowiadają warstwom

Państwa grupy w inventory, takie jak db, app i web, odpowiadają hostom, na których działa dany play. Inventory stanowi podstawę orkiestracji.

[db]
db01

[app]
app01
app02

[web]
web01
web02

Przekazywanie danych między warstwami

Warstwa web często potrzebuje adresów IP serwerów aplikacji. Należy odczytać je za pomocą hostvars i grup, aby połączyć ze sobą poszczególne warstwy.

backends: "{{ groups['app'] | map('extract', hostvars, 'ansible_host') | list }}"

Oczekiwanie na gotowość warstwy

Przed uruchomieniem aplikacji należy potwierdzić otwarcie portu bazy danych za pomocą wait_for. Zapobiega to wyprzedzaniu powolnej usługi.

- ansible.builtin.wait_for:
    host: db01
    port: 5432
    timeout: 60

Uruchamianie migracji tylko raz

Zmiany schematu bazy danych powinny zostać wykonane tylko raz. Należy połączyć run_once z delegowaniem, aby jeden węzeł aplikacji przeprowadził migrację współdzielonej bazy danych.

- ansible.builtin.command: ./migrate.sh
  run_once: true
  delegate_to: app01

Sięganie między warstwami za pomocą delegate_to

Play aplikacji może oddziaływać na warstwę web, delegując zadanie do hosta web. Jeden playbook może koordynować wszystkie warstwy.

Oznaczanie warstw dla ukierunkowanych uruchomień

Należy dodać do playów tagi, takie jak db, app i web, aby za pomocą --tags można było ponownie wdrożyć pojedynczą warstwę, gdy zmieniła się tylko ona.

- hosts: web
  tags: web
  roles: [nginx]

Szybkie przerywanie wdrożenia całego stosu

Należy ustawić any_errors_fatal, aby błąd w warstwie db zatrzymał całe uruchomienie, zanim warstwa app rozpocznie wdrażanie na uszkodzonej warstwie.

- hosts: db
  any_errors_fatal: true
  roles: [postgres]

Cały stos w jednym pliku

Playbook z wieloma plays staje się Państwa przepisem wdrożeniowym: zawiera każdą warstwę we właściwej kolejności oraz konfigurację połączeń między warstwami w jednym miejscu.

Szybkie sprawdzenie

Sprawdźmy, jak ustala się kolejność warstw.

Podsumowanie

Warstwy należy koordynować za pomocą jednego play na każdą warstwę, w kolejności wdrażania, łącząc je przez grupy, hostvars, wait_for i delegowanie. ✅

Często zadawane pytania

Czy lekcja „Koordynowanie warstw Web, App i DB” jest bezpłatna?

Tak — pełny tekst „Koordynowanie warstw Web, App i DB” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.

Co nauczysz się w „Koordynowanie warstw Web, App i DB”?

Sekwencjonowanie wdrożenia wielowarstwowego. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Koordynowanie warstw Web, App i DB”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Automatyzacja urządzeń sieciowych za pomocą cli_command
  2. delegate_to i run_once do orkiestracji
  3. Koordynowanie warstw Web, App i DB
  4. Wyłączanie i ponowne włączanie węzłów w load balancerze
← Powrót do DevOps Bootcamp