
Kurzy a certifikace Open Source
CI/CD: end-to-end řešení pro on premise aplikace
Cena (bez DPH)
Kurz si klade za cíl podrobně popsat vytvoření kompletního DevOps stacku na ARM64 platformě a předvést jeden z mnoha způsobů instalace a využití vybraných CI/CD nástrojů a ekosystému služeb potřebných
pro provoz a správu aplikací. Kurz se zaměřuje na build, nasazení modelové cloud-native GO aplikace ze zdrojového kódu, přes build a deployment v rámci několika prostředí a následný monitoring.
Součástí kurzu je i popis ARM64 platformy a multiplatformního buildu image. Popisované aplikace a principy nejsou striktně vázané na ARM64, ale lze je bez problémů použít i na platformě x86-64.
Cílová skupina
- členové Dev/Ops týmů
- vývojáři
- kdokoliv, kdo chce začít s DevOps a pochopit základní principy
Cíle kurzu
- ARM64 platformou a multiplatnformními buildy
- vybraným CI nástrojem
- vybraným CD nástrojem
- vybranými komponentami DevOps stacku (artifact- a image repository, vault, ...)
- problematikou správy aplikací a jejich monitoringem
- pokročilé nastavení monitorovacích nástrojů
- distribuovaným trasováním
Garant kurzu
Adam Morávek pracuje ve společnosti Trask solutions, a.s. jako integrační vývojář, DevOps inženýr a solution architekt na projektech v bankovním prostředí. Dlouhodobě se zajímá o kontejnerizaci aplikací a DevOps na platformách Kubernetes a OpenShift. V poslední době se zároveň věnuje projektu vývoje mikrodatacenter založených na platformě ARM64 ve společnosti EdgeClusters s.r.o.
Osnova
Úvod
- Cíle kurzu
- Představení EdgeClusters
- Představení Taikun
- Úloha automatizace
- Automatizace není jen CI/CD
- Multiplatformní architektura
- Proč vlastně? (edge)
I. Platforma ARM64
1. Proč ARM64, představení platformy
2. Muti-arch
3. Způsoby buildu multi-arch image
4. Mechanismus získávání multi-arch image z registry
II. Rychlé představené cloud-native Java aplikace
1. Co to je cloud-native?
2. Proč Java - výhody, nevýhody v cloud-native prostředí (a jejich řešení)
3. Rychlé představení modelové aplikace
4. Požadavky na cloud-native aplikaci
III. ArgoCD deployment
1. Představení ArgoCD
2. Příklad ArgoCD deploymentu na vybrané komponentě DevOps stacku
IV. Základní CI/CD komponenty a jejich funkce
1. Git a jeho role
1.1 GitFlow
1.2 Vybrané git CLI operace s příklady
2.1 config, init, clone, add, commit, diff, push, pull, status, log, checkout, branch, stash, merge, tag, revert, rebase, cherry-pick, reset
1.3 Role Webhooků
1.4 Pull requesty a jejich schvalování
1.5 Příklady použití & workshop
- příklady použití vybraných git operací na modelovém příkladu
- příklad nastavení webhooků
- příklad podmíněného pull-requestu
1.6 GitOps
2. Keycloak
2.1 Instalace a základní administrace
2.2 Konfigurace SSO ve vybraných aplikacích
3. Artifact repository
3.1 Interní organizace
3.2 Metadata
3.3 Podepisování artefaktů
3.4 Instalace a nastavení pomocí ArgoCD
3.5 Příklady použití & workshop
- nastavení interní organizace
- virtuální repository
4. Image registry
4.1 Harbor
4.2 Podepisování image
4.3 Bezpečnostní scany
4.4 Registry mezi dodavetelem a zákazníkem - typické problémy
4.5 Instalace a nastavení pomocí ArgoCD
4.6 Příklady použití & workshop
- základní nastavení
- robotické účty
- image scan
5. Helm
5.1 Základní principy
5.2 Helm registry (chart repo vs OCI)
5.3 Helm CLI
5.4 Závislosti
5.5 Příklad
6. HashiCorp Vault - místo pro citlivá data
6.1 Architektura a funkce
6.2 Instalace a nastavení pomocí ArgoCD
6.3 Využití v aplikacích
6.4 Příklady použití & workshop
- nastavení a vložení citlivých údajů
- nastavení jako CA
- příklad získání citlivých údajů v podu
7. CI nástroj
7.1 GitHub Actions - architektura a principy
7.2 Instalace self-hosted runneru
7.3 Příklady použití & workshop
- nastavení
- příklad buildu aplikace
- integrace s Artifactory, Vault a Harbor
8. CD nástroj
8.1 ArgoCD - instalace a nastavení
8.2 ArgoCD ApplicationSet
8.3 Příklady použití & workshop
- příklad deploymentu demo aplikace
- nastavení projektů a oprávnění
- multicluster instalace
V. Monitoring, sběr logů a trasování
1. Monitoring
1.1 Metriky
1.2 Prometheus
1.3 Alerting
1.4 Grafana and dashboardy
1.5 Instalace a nastavení pomocí ArgoCD
1.6 Příklady použití & workshop
- nastavení dashboardů
- testování altertů
2. Sběr logů
2.1 loki
2.2 Instalace a nastavení pomocí ArgoCD
2.3 Příklady použití & workshop
- způsoby hledání příčin problémů
3. OpenTracing
3.1 Instalace a nastavení pomocí ArgoCD
3.2 Požadavky na aplikace
3.3 Příklady použití & workshop
- příklad trasování pomocí Jaeger
Předpoklady na účastníka
- základní znalost Docker a Kubernetes
- základní práce s Linux konzolí (bash)
Požadavek na BYOD
- počítač s jakýmkoliv OS (Linux, Windows, OS X) v podporované verzi
- SSH klient