Podstawy CodeDeploy i appspec.yml

Automatyzacja wdrożeń na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Co robi CodeDeploy

przepływ

  • Wdraża kod na EC2, Lambda lub ECS
  • Pobiera artefakt kompilacji z S3, GitHub lub Bitbucket
  • Uruchamia twój skrypt wdrożeniowy poprzez zdarzenia cyklu życia
  • Automatycznie wycofuje zmiany, jeśli coś się nie powiedzie
Automatyzacja wdrożeń na AWS

Kluczowe elementy CodeDeploy

przepływ

  • Aplikacja: nazwa grupująca wdrożenia
  • Grupa wdrożenia: które cele otrzymują wydanie
  • Konfiguracja wdrożenia: jak przebiega wdrożenie (partie instancji lub przesunięcie ruchu)
  • Wersja: pakiet artefaktów, który jest wdrażany
Automatyzacja wdrożeń na AWS

Poznaj appspec.yml

appspec

  • Plik YAML w katalogu głównym wersji
  • Na początku wymagane version: 0.0 i os: linux
  • Informuje CodeDeploy, które pliki gdzie trafiają
  • Informuje CodeDeploy, co i kiedy uruchomić
Automatyzacja wdrożeń na AWS

Zdarzenia cyklu życia na EC2

  • Ty piszesz: ApplicationStop, BeforeInstall, AfterInstall
  • Ty piszesz: ApplicationStart, ValidateService
  • System uruchamia: DownloadBundle, Install
  • Każdy hook to skrypt shell lub PowerShell uruchamiany na instancji

diagram

Automatyzacja wdrożeń na AWS

Zdarzenia cyklu życia na Lambda

  • Lambda ma tylko dwa hooki: BeforeAllowTraffic, AfterAllowTraffic
  • Hooki to funkcje Lambda, a nie skrypty shell
  • CodeDeploy przełącza alias na nową wersję
  • Brak instancji do logowania i plików do kopiowania

porównanie

Automatyzacja wdrożeń na AWS

Przykładowy appspec.yml dla EC2

  • Na początku version: 0.0 i os: linux
  • files: kopiuje zawartość app.zip do /var/www/app
  • BeforeInstall, AfterInstall, ApplicationStart: skrypty cyklu życia
  • ValidateService: test dymny potwierdza powodzenie

zip

Automatyzacja wdrożeń na AWS

Czas na praktykę!

Automatyzacja wdrożeń na AWS

Preparing Video For Download...