Automatyzacja całego cyklu wytwarzania oprogramowania

Z uwzględnieniem pracy z Gitem i mikroserwisami, pracy w zespole – aż po wdrożenie na wiele środowisk (w tym Kubernetes) zgodnie z najlepszymi praktykami DevSecOps.

AGENDA AUTOMATION MAESTRO

01.01: Witaj w Automation Maestro
01.02: Metoda nauki
01.03: Nie tylko CI/CD
01.04: Na jakich narzędziach będziemy pracować?
01.05: Najważniejsze narzędzie w automatyzacji
01.06: Kluczowe zasady dostarczania oprogramowania
01.07: Podejście do pracy z Gitem wspierające automatyzację
01.08: Typy podejść do wydawania nowych wersji kodu oraz podejście do naprawiania błędów na produkcji
01.09: Ciekawe podejścia do pracy z Gitem oraz rozwoju oprogramowania
01.10: Zadania do samodzielnego wykonania

02.01: Jak pracować w zespole gdzie mamy wyrównany poziom doświadczenia VS zespół gdzie mamy zarówno juniorów i seniorów?
02.02: Standaryzacja środowiska do pracy w zespole
02.03: Standaryzacja środowiska podczas pracy w zespole w praktyce
02.03A: Jak pracować z DevContainer
02.03B: Dev Container w produktach JetBrains (IntelliJ, PHPStorm i inne)
02.04: Commit Message świadczy o Tobie – co robić, a czego nie robić
02.05: Git w zespole – czy znasz ten mechanizm?
02.06: Git w zespole – jeden trik, który ustandaryzuje pracę zespołu i pomoże w automatyzacji
02.07: Git w zespole – drugi trik, który podniesie jakość projektu
02.08: Złote zasady tworzenia Pull Requestów
02.09: Mikroserwisy - Mono repo vs multi repo w kontekście automatyzacji
02.10: Zadania do samodzielnego wykonania

03.01: Czym jest Continuous Integration (CI) i dlaczego każde oprogramowanie powinno go mieć?
03.02: Co może (lub powinno) wyzwalać uruchomienie Continuous Integration?
03.03: Jak podejść do automatyzacji, gdy system jest już na produkcji, albo jest to Legacy?
03.04: Typy testów, które można (i warto) uruchamiać z poziomu CI
03.05: Typy podejść do wersjonowania artefaktów i obrazów dockerowych
03.06: Przygotowanie środowiska do uruchomienia pierwszej automatyzacji
03.07: Budowanie i testowanie kodu w praktyce
03.08: Uruchamianie CI tylko dla tej części systemu, która tego wymaga
03.09: Alternatywne i ciekawe podejście do Continuous Integration
03.10: Uruchamianie CI lokalnie bez konieczności commita do repo
03.11: 5 najważniejszych praktyk testowania
03.12: Zadania do samodzielnego wykonania

04.01: 5 złotych zasad Continuous Integration
04.02: Kroki warte rozważenia w Continuous Integration
04.03: Kontenery i Kubernetes
04.04: Continuous Delivery vs Continuous Deployment
04.05: W pełni zautomatyzowany sposób na Continuous Delivery – #1
04.06: Continuous Delivery – sposób #1 w praktyce
04.07: W pełni zautomatyzowany sposób na Continuous Delivery – #2
04.08: Continuous Delivery – sposób #2 w praktyce
04.09: Automatyczne generowanie dokumentacji
04.10: Sposób na Continuous Delivery – #3
04.11: Continuous Delivery – sposób #3 w praktyce
04.11A: Proces publikacji eksperymentalnego kodu na główny kanał dystrybucji
04.12: Porównanie sposobów na Continuous Delivery

05.01: Najważniejsze zasady Deployment Pipeline
05.02: Hasła, klucze i poufne dane w automatyzacji
05.03: Kiedy i dlaczego stosuje się Self Hosted Runner
05.04: Self-Hosted Runner w praktyce
05.05: Jak podejść do wdrożenia aplikacji bezpośrednio z platformy CI/CD na serwer VPS, który nie ma publicznego IP, albo nie ma dostępu do internetu?
05.06: Wdrożenie na prywatny serwer VPS w praktyce
05.6A: Jak wdrażać automatycznie na serwer VPS?
05.07: Wdrożenie i co dalej?
05.08: Strategie wdrożeń
05.09: Strategia Recreate
05.10: Strategia Rolling Update
05.11: Blue-Green Deployment
05.12: Canary Deployment
05.13: Strategia A/B Testing
05.14: Zadanie do samodzielnego wykonania

06.01: Wprowadzenie do Software Supply Chain
06.02: Przykłady ataków związanych z Software Supply Chain
06.03: SBOM – czyli z czego składa się Twoje oprogramowanie
06.04: Wprowadzenie do SAST i DAST
06.05: Skanowanie zależności i bibliotek
06.06: Automatyczna aktualizacja zależności
06.07: Wykrywanie haseł, kluczy i innych poufnych danych
06.08: Tworzenie standardów i praktyk, które mogą być używane w firmie lub organizacji wielokrotnie
06.09: Tworzenie reużywalnych automatyzacji w praktyce
06.10: Zabezpieczenie przed dodaniem do repozytorium Gita nieszyfrowanych haseł, kluczy i innych poufnych
06.11: Bezpieczeństwo obrazów dockerowych
06.12: Skanowanie kodu odpowiedzialnego za infrastrukturę
06.13: Przykład pełnej automatyzacji zawierającej poznane wcześniej poziomy bezpieczeństwa

07.01: Nieszyfrowane hasła i klucze zakomitowane w repozytorium to jeszcze nie koniec "złych" rzeczy. Case Study wycieku haseł i kluczy na innym etapie niż repozytorium Gita oraz jak temu zapobiec
07.02: W jakim stopniu podatny obraz dockerowy może mieć wpływ na bezpieczeństwo aplikacji? – Case Study
07.03: Release to jeszcze nie koniec dbania o bezpieczeństwo. Zobacz jak można do tego podejść.
07.04 Ciągła weryfikacja bezpieczeństwa w praktyce
07.05: Bezpieczny sposób na przechowywanie haseł, kluczy i innych sekretów w Gicie
07.06: Odpowiedzialność za bezpieczeństwo
07.07: LAB: Dynamiczne skanowanie aplikacji

08.01: Wprowadzenie do Push-Based Deployment w Kubernetes
08.02: Architektura aplikacji mikroserwisowej, którą 
będziemy wdrażać w Kubernetes
08.03: Przygotowanie środowiska do automatyzacji dla aplikacji mikroserwisowej
08.04: W pełni automatyczne Continuous Delivery dla aplikacji mikroserwisowej
08.05: Bezpłatny klaster Kubernetes do nauki w chmurze
08.05A: Tworzenie klastra Kubernetes w praktyce
08.05B: Optymalizacja kosztów – jak się uczyć za darmo
08.05C: Konfiguracja połączenia między systemem CI/CD a klastrem Kubernetes
08.06: Wdrożenie w Kubernetes aplikacji mikroserwisowej za pomocą Kustomize
08.07: LAB: Continuous Deployment w Kubernetes dla aplikacji mikroserwisowej
08.08: Push-Based Deployment – wady i zalety

09.01: Dlaczego Helm dobrze wpisuje się w automatyzację?
09.02: Multi Repo a wdrożenie w Kubernetes – jak nie duplikować kodu
09.03: Automatyczne odnawianie certyfikatów SSL dla aplikacji wdrożonych w Kubernetes
09.04: Produkcyjne wdrożenie w Kubernetes aplikacji mikroserwisowej z własną domeną i automatycznie odnawianym certyfikatem SSL
09.05: LAB: Produkcyjne wdrożenie w Kubernetes aplikacji mikroserwisowej z własną domeną i automatycznie odnawianym certyfikatem SSL
09.05A: Podsumowanie LAB: Wdrożenie w Kubernetes z własną domeną i certyfikatem SSL
09.06: Jak działa Self Hosted Runner w Kubernetes?
09.07: Konfiguracja Self Hosted Runner w Kubernetes wraz z przykładem wykorzystania

10.01: Wprowadzenie do GitOps
10.02: GitOps - zalety i wyzwania
10.03: Mono repo vs Multi repo w podejściu GitOps
10.04: Anatomia ArgoCD
10.05: 4 sposoby na ArgoCD as a Code
10.06: Instalacja ArgoCD (as a Code) w praktyce
10.07: Produkcyjny przykład ArgoCD na własnej domenie z certyfikatem SSL
10.08: Jak można zorganizować repozytorium dla GitOps? Przypadki użycia na bazie doświadczeń Damiana
10.09: Wdrażanie zewnętrznych usług w podejściu GitOps
10.10: Wdrożenie end-to-end aplikacji mikroserwisowej w podejściu GitOps
10.11: LAB: Wdrożenie end-to-end aplikacji mikroserwisowej w podejściu GitOps

11.01: Jak podejść do synchronizacji między narzędziem CI/CD a narzędziem GitOps (ArgoCD)
11.02: ArgoCD ApplicationSets – po co, dlaczego i kiedy używać – wraz z przykładem wykorzystania
11.03: Jak zarządzać sekretami w podejściu GitOps
11.04: Sekrety w podejściu GitOps w praktyce
11.05: LAB: Sekrety & GitOps w praktyce
11.06: LAB: Uwierzytelnianie z Container Registry w podejściu GitOps (dynamiczne generowanie imagePullSecrets)
11.07: LAB: Wdrożenie aplikacji na potrzeby Pull Request do tymczasowego środowiska w podejściu GitOps
11.08: Wzorzec App of Apps – dlaczego i kiedy używać
11.09: LAB: Standaryzacja środowisk Kubernetes (zarówno w dużych jak i małych firmach) z wzorcem Apps of Apps
11.10: Najlepsze praktyki ArgoCD

12.01: Argo Rollouts – możliwości i korzyści
12.02: Argo Rollouts – instalacja & konfiguracja
12.03: LAB: Canary Release tylko dla frontendu w podejściu GitOps
12.04: LAB: Canary Release dla aplikacji mikroserwisowej w podejściu GitOps
12.05: LAB: Canary Release tylko dla frontendu w połączeniu z Ingress Controllerem w podejściu GitOps
12.06: LAB: Canary Release dla aplikacji mikroserwisowej w połączeniu z Ingress Controllerem w podejściu GitOps
12.07: LAB: Blue-Green Deployment dla aplikacji mikroserwisowej w połączeniu z Ingress Controllerem w podejściu GitOps

13.01: Wprowadzenie do autoskalowania
13.02: Skalowanie horyzontalne z na podstawie CPU i RAM
13.03: Skalowanie horyzontalne na podstawie CPU i RAM w praktyce
13.04: Skalowanie horyzontalne w Kubernetes z wykorzystaniem własnych metryk
13.05: Połączenie skalowania Horyzontalnego i skalowania wertykalnego w Kubernetes
13.06: Wyzwania z autoskalowaniem w Kubernetes i wprowadzenie do KEDA

14.01: Kto ma nacisnąć ENTER?
14.02: Proces dostarczenia kodu na produkcję, gdzie biznes wymaga przynajmniej jednego manualnego kroku
14.03: Use Case rozbudowanych automatyzacji – #1
14.04: Use Case rozbudowanych automatyzacji – #2
14.05: Bazy danych i Zero-Downtime Deployment – jak do tego podejść
14.06: Jak mierzyć, czy Twoje automatyzacje i procesy są na wysokim poziomie?
14.07: Co dalej?
14.08: Ostatnie zadanie

Aktualnie pracujemy także nad Apresly.com 

© Copyright AutomationMaestro.pl - All Rights Reserved