Espen Henriksen
Senioringeniør
Statens Kartverk
esphen_
esphen
espen.dev
SKIP Workshop
Del I
Plan
-
Overordna - hva er SKIP? Hva er fordelene? Hva er utfordringene?
-
Intro til YAML, Kubernetes, Linux, Git
-
Teste ut verktøy i terminal og feilsøke et liksom-problem sammen
-
Diskusjon
Hva er SKIP?
Brukeropplevelse - UI/UX
"Jeg trenger verktøy for å bygge
gode produkter for brukerene"
DASK - Dataplattform
"Jeg vil transformere og dele data"
SKIP - Infrastruktur
"Jeg vil kjøre en applikasjon"
Plattform
Standardiserte verktøy
Innebygget sikkerhet
Terraform
Crossplane
SLSA
GitHub Advanced Security
Intrusion Detection
Hemmelighets-hvelv
Selvbetjening & Autonomi
Hva er SKIP?
LGTM-stack
Metrikker
Logger
Tracer
Dashboard
Google Cloud
Cloud SQL
Hybrid Cloud
Stabile byggeløyper
GitHub Actions
Etablerte best practices
Kubernetes
Containere
Kostnads-overvåkning
Automatisk skalering
Zero trust
Nettverk
Sertifikater
Sårbarhetsscanning
Service Mesh
Dokumentasjon
Standardiserte verktøy
Innebygget sikkerhet
Terraform
Crossplane
SLSA
GitHub Advanced Security
Intrusion Detection
Hemmelighets-hvelv
Selvbetjening & Autonomi
Eller sagt på en annen måte:
Det som SKIP gjør for dere
LGTM-stack
Metrikker
Logger
Tracer
Dashboard
Google Cloud
Cloud SQL
Hybrid Cloud
Stabile byggeløyper
GitHub Actions
Etablerte best practices
Kubernetes
Containere
Kostnads-overvåkning
Automatisk skalering
Zero trust
Nettverk
Sertifikater
Sårbarhetsscanning
Service Mesh
Dokumentasjon
Det jeg bruker
Skiperator
ArgoCD
GitHub &
GitHub Actions
Grafana
Nacho SKIP
Pharos
GKE Enterprise
- Utviklet av Google
- Hybridsky-delen av Google Cloud Platform
- On-prem støtte for VMWare og bare-metal
- Sky-støtte for GCP, AWS og Azure
- Multi-cloud
- Helhetlig leveranse med flere støttesystemer
- GCP cloud console som GUI
- Integrert med AD
Teknologi
YAML
- "Yet another markup language"
- Syntaks-lett konfigurasjonsspråk
- Behagelig, lett å lese
- Automatiske typer
- Indenterting = Objekt
- Strek = Objekt i liste
- Utfordring: The Norway-problem
- Utfordring: Indentering
Git
- Versjonskontroll
- Snapshots av kode
- Historikk, diff
- CLI eller GitHub Desktop app
- GitHub.com vs. Git
- Pull Requests, Peer review
- Brukes mye på SKIP
- Deling av skript
- Konfigurasjon
Alt er en fil
- Alle containere på SKIP kjører en variant av Linux
- Underliggende OS kjører Container OS (Linux)
- Package managers
- Fordel: Alt er aksesserbart med terminal
- Fordel: Alt kan skriptes
- Containere bruker Linux' cgroups
- Open source, stort økosystem
- Ofte gratis
Hva er en container?
- Tenk på en shippingcontainer
- Abstraherer bort underliggende infra
- Lar deg konsentrere deg om å bygge applikasjonen
- Kan inneholde hva som helst (java, python, etc)
- Eksponerer porter (API) og skriver til disk
- Deploye uten å bestille servere
Containers vs. virtualization
Hva er Docker?
- Populæriserte containers
- En prosess per container
- Isolert filsystem
- Bygger og kjører containere basert på Dockerfile
- Brukes ofte til utvikling
- Brukte propritært format, bruker nå åpen standard
Hva er Kubernetes?
- Container-orkestrering
- Produksjonsklart
- Håndterer skalering, monitorering, lagring, nettverk.. Alt rundt
- Mikrotjenester
- Leveres som skytjenester, kan også kjøres lokalt
- På din PC: https://kind.sigs.k8s.io
Mye greier!
SKIP abstraherer bort kompleksitet
Brukerfokus: Lager hjelpeverktøy som gjør deres jobb enklere
Skiperator
- Enklere administrasjon av applikasjoner
- Skiperator Applikasjons- manifest
- Hver applikasjon definerer enkle opsjoner
- Abstraksjon over noe mer komplisert
- Forenkler oppsett av Zero Trust-nettverk, Service Mesh, Autoskalering, Autentisering mot GCP...
Under er det bare Linux
- Vi har en del linux-servere, containere er ikke ulike
- Exec inn i pod = SSH
- Logs fra pod = stdout/err
- Kubernetes kjører på Linux
Hva kan det gjøre for meg?
Stabilitet
(Auto)skalerbarhet
Jobber (oneshot & cron)
Git & Peer Review
Synlighet
Innebygget sikkerhet
Auto-fornyede sertifikater
OPA - Trust, but verify
Hybrid sky
Infrastructure as Code (IaC)
Utfordringer
Kompleksitet
- Kubernetes er en "datacenter in a box" og relativt komplekst
- Tar tid å kurse opp produktteam og ansatte
- Skip håndterer mye, men er en del nye moduler i porteføljen
Applikasjons-modenhet
- SKIP bygget på moderne teknologi
- Flere apper trenger omskriving
- Ingen planer om å flytte alt over på SKIP
- I dialog med eksterne leverandører for SKIP som kjøremiljø
Praktisk oppgave
Oppgave
- Gå til bit.ly/skip-lab
- kubectl run ..
- kubectl delete ..
- kubectl apply -f https://bit.ly/skip-lab-1
- kubectl get pods
- kubectl describe pod
- kubectl apply -f https://bit.ly/skip-lab-2
- kubectl logs
Diskusjon
- Hvordan kan vi samarbeide bedre?
- Hva vil dere lære mer om?
- Avklaring av byggmesterrollen
- Hvordan kan vi fylle "Ops" i "DevSecOps"?
- Konkretisering av kompetansekrav
- Forventninger og muligheter
Fin
https://slides.com/esphen/skip-workshop-1
SKIP Workshop 1
By Eline H
SKIP Workshop 1
- 21