Espen Henriksen
Senioringeniør
Statens Kartverk
esphen_
esphen
espen.dev
SKIP Workshop
Del II
Plan
-
Hvordan jobber produktteamene med SKIP?
-
Argo CD
-
Hvordan skal dere håndtere deploy på SKIP?
-
Sikkerhet på SKIP. Runtime og buildtime. Hvordan kan produktteamene ta i bruk hele verktøykassa?
-
Diskusjon
Deploy-drømmen
Det var en gang
Lars foreslo en endring
Teamet kodet endringen
I produksjon på dagtid samme dag
Teamet itererte
Glede brøt ut,
snipp snapp snute
Hvorfor er dette et mål?
Cycle time
- Fra kode til verdi raskest mulig
- Teamet fokuserer på å levere verdi over leveransevinduer
- Slipper å vente uker om man misser et vindu
- Minst mulig byråkrati
- Hot-swappe komponenter på dagtid
- Mindre overtidsarbeid
Brukerfokus
- Test ut nye funksjoner med ekte brukere
- Få tilbakemelding på hypoteser
- Iterere på idéer
- A/B testing
- Canary-deploy
- Kundene merker når man evner å snu seg raskt
Deploy på SKIP
CI
- Kontinuerlig integrasjon
- Delt koderepo som merges til
- Bygg trigges for hver push
- Kjøre tester i hvert bygg
- Gi tilbakemelding når testene feiler
- Feedback loop
CD
- Kontinuerlig leveranse OG kontinuerlig utrulling
- Leveranse: At koden kan deployes til enhver tid og at når det gjøres er det automatisk (en knapp)
- Utrulling: At leveranser skjer kontinuerlig og automatisk når ny funksjonalitet kodes
- Snakker først og fremst om kontinuerlig utrulling
GitOps
Skiperator
Operator
Enkelt eksempel
apiVersion: skiperator.kartverket.no/v1alpha1
kind: Application
metadata:
name: testapp
namespace: test
spec:
image: nginxinc/nginx-unprivileged
port: 80
replicas: 2
ingresses:
- espentester.dev.skip.statkart.no
Jsonnet
Jsonnet
- All JSON er gyldig Jsonnet
- ✨ Spicy JSON ✨
- Templating-språk for å genererere JSON
- Features: Variabler, conditionals, funksjoner og gjenbrukbare maler
- Designet for å gjøre vedlikehold av komplekse konfigurasjoner og dynamisk data enkelt
Hvorfor Jsonnet?
- Jsonnet allows for modular and reusable code, making it easier to maintain and update configurations.
- It provides a concise and expressive syntax, reducing the amount of code needed to define complex data structures.
- Jsonnet's ability to generate dynamic data enables the creation of flexible and customizable configurations.
Trivielt eksempel
Ikke-trivielt eksempel
Sikkerhet
Zero Trust-arkitektur
GitHub Advanced Security
- Code Scanning
- Secret Scanning
- Dependency Review (Dependabot)
Praktisk oppgave
Oppgave
- Mål: Få opp en app på SKIP!
- Apps repo
- Argo CD
- Få opp app
- Ingress
- ditt-navn.dev.skip.statkart.no
Diskusjon
- Hvordan kan vi samarbeide bedre?
- Hva vil dere lære mer om?
- Hvordan håndtere alarmer
- Mer rundt kompetanse
- Forventninger og muligheter
Fin
https://slides.com/esphen/skip-workshop-2
SKIP Workshop 2
By Eline H
SKIP Workshop 2
- 31