1 of 58

Utviklerdrømmen

Mine forventninger til en�offentlig PaaS

Johannes Brodwall, Politiet/Sopra Steria

Side 1

16.02.2023

NORWEGIAN POLICE IT UNIT

C2 - Restricted use

2 of 58

Utviklerdrømmen

Erfaring, håp og drømmer til en�offentlig PaaS

Johannes Brodwall, Politiet/Sopra Steria

Side 2

16.02.2023

NORWEGIAN POLICE IT UNIT

C2 - Restricted use

3 of 58

  • en Smidig
  • Plattform
  • for Fremtiden

C2 - Restricted use

4 of 58

  • Smidige
  • Plattformer
  • for Fremtiden

C2 - Restricted use

5 of 58

01

Smidig

Mimring fra Extreme Programming fra 90-tallet

Side 5

16.02.2023

C2 - Restricted use

6 of 58

Smidig:

Brukerkontakt

Stammespråk

Smidigpraksisen

6

C2 - Restricted use

7 of 58

XP verdier:

Kommunikasjon / Feedback / Enkelhet / Mot / Respekt

7

C2 - Restricted use

8 of 58

(Politiets verdier):

(Tett på/Helhetsorientert/Modig/Respekt)

8

C2 - Restricted use

9 of 58

Smidige verdier:

De som lager greia kommer nærmere de som bruker greia

9

C2 - Restricted use

10 of 58

Stammespråk:

«Når piketten skulle lese opp elleve på GP til null-en så fant ODL så fant ikke agenten ham»

10

C2 - Restricted use

11 of 58

Smidighet:

De som lager greia ser reaksjonen til de som bruker greia

11

C2 - Restricted use

12 of 58

Praksiser: 

Small releases / Simple design / �Continuous integration /Coding standards / On-site customer / Refactoring�...

12

C2 - Restricted use

13 of 58

Praksiser: 

Small releases / Simple design / �Continuous integration /Coding standards / On-site customer / Refactoring�...

13

C2 - Restricted use

14 of 58

Simple design: 

  • Lag og lever noe snarligt
  • Forbedre etter feedback
  • => Forutsetter mulighet trygge endringer

14

C2 - Restricted use

15 of 58

02

Plattform

Side 15

16.02.2023

C2 - Restricted use

16 of 58

Plattform:

Pipeline

Fra browser til db

Bootstrap

16

C2 - Restricted use

17 of 58

Vendor cloud services?

😒

17

C2 - Restricted use

18 of 58

CI/CD: 

  • Git hosting
  • Build pipelines (post-Jenkins!)
  • Deploy pipelines

  • Review apps

18

C2 - Restricted use

19 of 58

Min build pipeline i Gitlab: 

  • mvn
    • openapi-generator
    • frontend-maven-plugin => React
    • jib => Docker image
  • scopeo => hub.politiet.no
  • helm --set imageTag=$CI_HASH --set suffix=$CI_BRANCH_SLUG�| kubectl –-cluster jakku
    • < {secrets,deployment,service,postgres}.yaml
  • => https://oppdrag-<slug>.ops.jakku.test.politiet.no

19

C2 - Restricted use

20 of 58

Fra browser til base

20

C2 - Restricted use

21 of 58

Kubernetes kjerne:

  • Deployments
  • Services
  • ConfigMap/Secrets

21

C2 - Restricted use

22 of 58

Kubernetes extras:

  • Databases (preview)
  • Routing (automatisk)
  • Authentication (manuelt)

22

C2 - Restricted use

23 of 58

Desired state er lett for utviklere å forstå

23

C2 - Restricted use

24 of 58

Bootstrap

  • YAML-fil i systemkatalog Gitlab repo�=> Merge request�=> Automatisk opprettelse
  • Oppretter namespace + «AD rolle»
  • Kubelogin

24

C2 - Restricted use

25 of 58

03

Fremtiden

Side 25

16.02.2023

C2 - Restricted use

26 of 58

Fremtiden:

Autentisering

Storage as a service

Fra cattle til poultry

26

C2 - Restricted use

27 of 58

Autentisering

(til cluster, til tjenester, til mellom tjenester)

27

C2 - Restricted use

28 of 58

Driftautentisering

28

C2 - Restricted use

29 of 58

App Autentisering

Produksjonssetting forutsetter autentisering!

29

C2 - Restricted use

30 of 58

App Autentisering – drøm

Definere en CustomResource som setter opp Identity Provider og injecter secrets

30

C2 - Restricted use

31 of 58

Autentisering for integrasjon

Forsvarlig integrasjon starter med sikkerhet

31

C2 - Restricted use

32 of 58

Integrasjon – cross domain situational tokens

"Hei AMK, jeg er vakthavende operasjonsleder for politiet i Sør Øst med tjenestenummer F123 og jeg påberoper tjestlig behov for informasjon om oppdrag 6B29FC40-CA47-1067-B31D-00DD010662DA"

32

issuer

situational claim

Role claim

audience

subject

Self asserted claim

C2 - Restricted use

33 of 58

Side 33

16.02.2023

issuer

Role claim

audience

subject

C2 - Restricted use

34 of 58

Storage

34

C2 - Restricted use

35 of 58

Zalando PostgreSQL operator

  • Deployment + service
  • Secrets
  • Persistent Volumes
  • Backup cronjob => s3 storage

35

C2 - Restricted use

36 of 58

36

C2 - Restricted use

37 of 58

1. Definer en ressurs Kind: postgresql (acid.zalan.do/v1)

37

C2 - Restricted use

38 of 58

2. Oppretter StatefulSet med 2 spilo pods

38

C2 - Restricted use

39 of 58

3. Oppretter cronjob for logical backup (full dump)

39

C2 - Restricted use

40 of 58

4. Oppretter secrets med username og password

40

C2 - Restricted use

41 of 58

5. Bruk secrets for å connecte fra din app (deployment)

41

C2 - Restricted use

42 of 58

Gitlab review apps og PostgreSQL

  • Hver branch en egen database i test!

42

C2 - Restricted use

43 of 58

Produksjonsklar?

  • Ikke i bruk hos oss?
  • Zalando bruker, men ikke overalt
  • FINN.no bruker (kilde kode24-dagen)

43

C2 - Restricted use

44 of 58

Produksjonsklar: HA

44

C2 - Restricted use

45 of 58

StatefulSet med leader og secondary

45

C2 - Restricted use

46 of 58

Produksjonsklar: HA

  • Noen André må teste at det funker om man dreper underliggende node

46

C2 - Restricted use

47 of 58

Produksjonsklar: DR

47

C2 - Restricted use

48 of 58

Cronjob oppretter nattlig backup

48

C2 - Restricted use

49 of 58

WAL-E støtter point-in-time restore

49

C2 - Restricted use

50 of 58

Produksjonsklar: DR

  • Noen André må tester Alderaan scenario

50

C2 - Restricted use

51 of 58

Produksjonsklar?

  • HA og DR "finnes ikke" dersom den ikke er testet!

51

C2 - Restricted use

52 of 58

Hvorfor er dette viktig?

  • Hver branch en egen database i test!

52

C2 - Restricted use

53 of 58

Poultry

53

C2 - Restricted use

54 of 58

Poultry

  • Et cluster på hver operasjonssentral
  • Et namespace for hver branch
  • Fra en utvikler/lærer: KinD er superenkelt – dette får vi til!
  • Cloud specific services skaper kluss

54

C2 - Restricted use

55 of 58

Infrastructure sovereignty

55

C2 - Restricted use

56 of 58

Mine erfaringer fra PIT (organa)

Side 56

16.02.2023

NORWEGIAN POLICE IT UNIT

C2 - Restricted use

57 of 58

Mine erfaringer fra PIT 🚓 (organa 🍩)

På god vei

Gitlab er 👑

Infrastructure as code systemkatalog 👑

Autorisasjon 💎

Database on demand 🌟

Side 57

16.02.2023

NORWEGIAN POLICE IT UNIT

C2 - Restricted use

58 of 58

Takk for meg!

Norge har ekspertisen for

Smidige Plattformer for Fremtiden

johannes.brodwall@politiet.no

johannes.brodwall@soprasteria.com

Side 58

16.02.2023

C2 - Restricted use