kontinuerlig leveransei skatteetatenpart-2

37
UAVGENGIGHET I PRAKSIS

Upload: ilmyggo

Post on 02-Aug-2015

266 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Kontinuerlig leveransei skatteetatenpart-2

UAVGENGIGHET I PRAKSIS

Page 2: Kontinuerlig leveransei skatteetatenpart-2

Små biter, store tall

• 50 applikasjoner • 2-8 prosesser • 20 databaser

• 13 miljø

• Over 1000 kjørende prosesser (100 i prod) • Over 200 databaser (20 i prod)

• Summen større enn bitene til sammen

Page 3: Kontinuerlig leveransei skatteetatenpart-2

Tid og dynamikk

• Forskjellig takt gir forskjellige behov

• Testing og uavhengighet er essensielt

• Miljø skal ikke være en knapphetsressurs

• Forskjellig kapasitet til forskjellige tider

• Skatteetaten noe større…

Page 4: Kontinuerlig leveransei skatteetatenpart-2

KONTINUERLIGE LEVERANSER

Page 5: Kontinuerlig leveransei skatteetatenpart-2

Kontinuerlige leveranser

Continuous delivery is a set of principles and practices to reduce the cost, time, and risk of

delivering incremental changes to users.

– Jez Humble

http://www.thoughtworks.com/insights/blog/case-continuous-delivery

Page 6: Kontinuerlig leveransei skatteetatenpart-2

Kontinuerlige leveranser

• Få funksjonalitet foran brukerne

• Reduser risko

• Forbedre stabilitet

• Øke effektivitet og redusere kost

Page 7: Kontinuerlig leveransei skatteetatenpart-2

Teknikker…

The HP LaserJet Firmware team re-architected their software so they could apply these practices (even though they were not releasing the firmware any more frequently). In the excellent book they

published about their journey (from 2008 - 2011), they record the outcomes they achieved:

• Overall development costs reduced by ~40%

• Programs under development increased by ~140%

• Development costs per program reduced by 78%

• Resources driving innovation increased by 5x

http://www.thoughtworks.com/insights/blog/case-continuous-delivery

Page 8: Kontinuerlig leveransei skatteetatenpart-2

Kontinuerlige leveranser

• Automatisering

• Kvalitetssikring

• Størrelse på endringer

• Separasjon av endringer

• Uavhengighet i tid

• Felles målsetning

Page 9: Kontinuerlig leveransei skatteetatenpart-2

Kvalitet

• Hvem tester på tvers?

• Hvordan får du til akseptansetester?

• … som ikke i seg selv er hindring mot endring…

• Hva skjer når det går galt?

Page 10: Kontinuerlig leveransei skatteetatenpart-2

KONTINUERLIGE LEVERANSER I PRAKSIS

Page 11: Kontinuerlig leveransei skatteetatenpart-2

Automatisering!

• For mange bevegelige deler • For få mennesker

• Alt må automatiseres

– Deploy – WebSeal/BigIP – Databaser – Filområder – SFTP

• Løsninger på problemer må automatiseres

Page 12: Kontinuerlig leveransei skatteetatenpart-2

Automatisering!

• Deploy – En kommando – Oppgradering av data – Automatiserer resursser

• Hvordan løser du det når noe går galt? – Analyse – Rulle tilbake? – Rulle fremover – Manuelle fikser

• Men…

Page 13: Kontinuerlig leveransei skatteetatenpart-2

DevOps

Page 14: Kontinuerlig leveransei skatteetatenpart-2

DevOps

Kode

Konfigurasjon

Tjenester

Operativsystem

Nettverk

Hardware

Team

Drift

Team

Drift

Page 15: Kontinuerlig leveransei skatteetatenpart-2

Stack

Java 1.7

Java 1.6

Glassfish 3.2.1 (Java 1.7)

Tjenester

Oracle 11

MongoDB 2.4

MongoDB 2.2

Webseal

Page 16: Kontinuerlig leveransei skatteetatenpart-2

Tydelig grensesnitt

• Utvikling – Utvikler basert på tilgjengelige stack og tjenester

• Plattformdrift – Lager stacks og tjenester – Drifter plattformen

• Drift – Sørger for maskiner – Tilgjengelige ressurser

• Reduserer båndbredde og sikrer likhet på tvers av miljø

• PaaS

Page 17: Kontinuerlig leveransei skatteetatenpart-2

PaaS

• Felles målsetning?

• Fleksibilitet i plattform

• Nyutvikling av stacks og tjenester

• Alle trenger en IaaS

– Gulerot eller pisk?

Page 18: Kontinuerlig leveransei skatteetatenpart-2

THE GOOD PARTS

Page 19: Kontinuerlig leveransei skatteetatenpart-2

Pakking og standard deploy

• Leveransepakker

– Inspirasjon fra Heroku

– Versjoner via Nexus

• Migreringer

• Liten avhengighet til maskin

• Mange instanser fra samme pakke

Page 20: Kontinuerlig leveransei skatteetatenpart-2

Teknologier

Java

Glassfish

Elastic Search

Akka

Hazelcast

Guice

Jetty

Grizzly

Page 21: Kontinuerlig leveransei skatteetatenpart-2

Distribuert arkitektur

• Uavhengighet mellom applikasjoner

• Build pipeline…

• Oppslagstjenesten…

• Driftsdashboardet…

• Robusthet…

Page 22: Kontinuerlig leveransei skatteetatenpart-2

Build pipeline

• Release når alt ser bra ut – Tester – Pakking – Release – Kodesjekker – Deploy til miljø – Grensesnittstester

• Jenkins – Groovy automatisering

• Øker automatisering og kvalitetssikring • Akseptansetester…

Page 23: Kontinuerlig leveransei skatteetatenpart-2

Build pipeline

Page 24: Kontinuerlig leveransei skatteetatenpart-2

Oppslagstjenesten

• Tjenesteregister

• Sparer oss for konfigurasjon

• Inspirasjon fra Netflix og AirBnB

• Fleksibilitet i fremtiden

• Noe vil alltid være i bevegelse

• Driftsinformasjon

Page 25: Kontinuerlig leveransei skatteetatenpart-2

Oppslagstjenesten

Oppslags-tjenesten

Parts-registeret

Parts-registeret

Magnet-saldo-rente

Magnet-saldo-rente

Magnet-saldo-rente

Page 26: Kontinuerlig leveransei skatteetatenpart-2

Oppslagstjenesten

Page 27: Kontinuerlig leveransei skatteetatenpart-2

Driftsdashboardet

• Oversikt for ett miljø

• Helsesjekker

• Systemer med tjenester

• Hvis alt er rødt, hvor begynner du?

• Hvis alt er grønt, hva skal du sjekke i tillegg?

Page 28: Kontinuerlig leveransei skatteetatenpart-2

Driftsdashboardet

Page 29: Kontinuerlig leveransei skatteetatenpart-2

Robusthet i applikasjoner

• Feil kontrollert

• Selvbevisste applikasjoner

• Sjekk omgivelser

• Prøv igjen når situasjonen ikke eksisterer lenger

Page 30: Kontinuerlig leveransei skatteetatenpart-2

Helsesjekker

• Hva er feil?

– Internt

– Eksternt

– Forventet/uventet

• Hvor alvorlig er det?

– Vent og se

– Sjekk et annet sted

– Debug

Page 31: Kontinuerlig leveransei skatteetatenpart-2

Helsesjekk

Page 32: Kontinuerlig leveransei skatteetatenpart-2

FREMTIDEN

Page 33: Kontinuerlig leveransei skatteetatenpart-2

Fremtiden

Begrensede resursser på driftssiden kan

håndtere store mengder

applikasjoner og teknologier

Utvikling må ha frihet til å velge, innovere og bevege seg i forskjellig

takt

Page 34: Kontinuerlig leveransei skatteetatenpart-2

Fremtiden

• Høyere kvalitet – Testdata – Akseptansetester – Verdikjeder

• Mindre konfigurasjon • Mindre (manuell) overvåkning • Raskere deploy • Mindre deler som deployes oftere • Nye teknologier • Nye tjenester

Page 35: Kontinuerlig leveransei skatteetatenpart-2

Lykke til

• Alt må automatiseres

• Robusthet må bygges inn

• Kvalitet bygges inn

• Feedback looper kortes ned

• Det hjelper å gjøre det

• Det er forskjellig fra system til system, organisasjon til organisasjon

Page 36: Kontinuerlig leveransei skatteetatenpart-2

SPØRSMÅL?

Page 37: Kontinuerlig leveransei skatteetatenpart-2

Trond Arve Wasskog [email protected]

@ilmyggo

Anders Sveen [email protected]

@anderssv