To repozytorium zawiera szablon projektu wykorzystywany podczas warsztatów DevOps.
Celem zajęć jest zbudowanie kompletnego pipeline'u CI/CD dla prostej aplikacji Calculator API oraz automatyczne wdrożenie jej do AWS Lambda przy użyciu AWS CLI i federacji tożsamości OIDC (OpenID Connect), bez przechowywania długoterminowych kluczy dostępowych.
Podczas warsztatów będziemy krok po kroku budować pipeline, uruchamiać testy oraz wdrażać aplikację do AWS w sposób zgodny z dobrymi praktykami bezpieczeństwa.
Po zakończeniu zajęć będziesz potrafił:
- zrozumieć podstawy działania CI/CD,
- uruchamiać automatyczne testy w pipeline,
- przygotować aplikację Python do wdrożenia na AWS Lambda,
- skonfigurować uwierzytelnianie do AWS z wykorzystaniem OIDC,
- wdrażać i aktualizować funkcje AWS Lambda przy użyciu AWS CLI,
- weryfikować poprawność wdrożenia,
- zrozumieć podstawy automatyzacji wdrożeń oraz Infrastructure as Code (IaC).
Programista
│
▼
Repozytorium Git
│
▼
Pipeline CI/CD
├── Instalacja zależności
├── Uruchomienie testów
├── Budowanie obrazu Docker
├── Budowanie artefaktu Lambda
├── Uwierzytelnienie przez OIDC
└── Deployment przez AWS CLI
│
│
▼
AWS Lambda
│
▼
Testowanie aplikacji
.
── app/
├── tests/
├── .github/
│ └── workflows/
│ └── ci-cd.yml
├── requirements.txt
├── lambda_handler.py
├── Dockerfile
└── README.md
Zrozumienie działania aplikacji Calculator API.
- Uruchom aplikację lokalnie
- Przeanalizuj strukturę projektu
- Zidentyfikuj punkt wejścia dla AWS Lambda
Zweryfikowanie poprawności działania aplikacji.
- Zainstaluj zależności
- Uruchom testy lokalnie
- Napraw ewentualne błędy
# Uzupełnij podczas warsztatówAutomatyzacja procesu testowania.
- Utwórz plik workflow
- Dodaj instalację zależności
- Dodaj automatyczne uruchamianie testów
- Zdefiniuj etapy pipeline'u
Skonfigurowanie bezpiecznego dostępu pipeline'u do AWS bez użycia kluczy dostępowych.
- Utwórz dostawcę tożsamości OIDC w AWS
- Utwórz rolę IAM dla pipeline'u
- Skonfiguruj relację zaufania (Trust Relationship)
- Zweryfikuj możliwość przejęcia roli z poziomu pipeline'u
Przygotowanie artefaktu do wdrożenia na AWS Lambda.
- Utwórz paczkę ZIP
- Zweryfikuj jej zawartość
- Dodaj generowanie artefaktu do pipeline'u
# Uzupełnij podczas warsztatówAutomatyczne wdrożenie aplikacji.
- Utwórz funkcję Lambda
- Wdróż aplikację przy użyciu AWS CLI
- Dodaj automatyczną aktualizację kodu w pipeline
# Uzupełnij podczas warsztatówPotwierdzenie poprawności działania wdrożonej aplikacji.
- Wywołaj funkcję Lambda
- Przeanalizuj logi
- Zweryfikuj odpowiedzi Calculator API
Przygotowanie aplikacji do uruchomienia w środowisku kontenerowym.
- Przeanalizuj plik Dockerfile
- Zbuduj obraz Docker
- Uruchom aplikację lokalnie w kontenerze
- Zweryfikuj działanie aplikacji
# Uzupełnij podczas warsztatów- Dodaj środowiska
deviprod - Dodaj wdrożenie wyłącznie z gałęzi
main - Dodaj wersjonowanie na podstawie SHA commita
- Dodaj oddzielne joby
testideploy - Dodaj automatyczne tagowanie wersji
- Dodaj rollback do poprzedniej wersji Lambda
- Aplikacja działa lokalnie
- Testy przechodzą poprawnie
- Pipeline CI/CD działa
- OIDC zostało poprawnie skonfigurowane
- Obraz Docker został zbudowany
- Artefakt Lambda został przygotowany
- Aplikacja została wdrożona
- Wdrożenie zostało zweryfikowane