kontinuerlig leveransei skatteetatenpart-2

Post on 02-Aug-2015

266 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

UAVGENGIGHET I PRAKSIS

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

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…

KONTINUERLIGE LEVERANSER

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

Kontinuerlige leveranser

• Få funksjonalitet foran brukerne

• Reduser risko

• Forbedre stabilitet

• Øke effektivitet og redusere kost

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

Kontinuerlige leveranser

• Automatisering

• Kvalitetssikring

• Størrelse på endringer

• Separasjon av endringer

• Uavhengighet i tid

• Felles målsetning

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?

KONTINUERLIGE LEVERANSER I PRAKSIS

Automatisering!

• For mange bevegelige deler • For få mennesker

• Alt må automatiseres

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

• Løsninger på problemer må automatiseres

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…

DevOps

DevOps

Kode

Konfigurasjon

Tjenester

Operativsystem

Nettverk

Hardware

Team

Drift

Team

Drift

Stack

Java 1.7

Java 1.6

Glassfish 3.2.1 (Java 1.7)

Tjenester

Oracle 11

MongoDB 2.4

MongoDB 2.2

Webseal

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

PaaS

• Felles målsetning?

• Fleksibilitet i plattform

• Nyutvikling av stacks og tjenester

• Alle trenger en IaaS

– Gulerot eller pisk?

THE GOOD PARTS

Pakking og standard deploy

• Leveransepakker

– Inspirasjon fra Heroku

– Versjoner via Nexus

• Migreringer

• Liten avhengighet til maskin

• Mange instanser fra samme pakke

Teknologier

Java

Glassfish

Elastic Search

Akka

Hazelcast

Guice

Jetty

Grizzly

Distribuert arkitektur

• Uavhengighet mellom applikasjoner

• Build pipeline…

• Oppslagstjenesten…

• Driftsdashboardet…

• Robusthet…

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…

Build pipeline

Oppslagstjenesten

• Tjenesteregister

• Sparer oss for konfigurasjon

• Inspirasjon fra Netflix og AirBnB

• Fleksibilitet i fremtiden

• Noe vil alltid være i bevegelse

• Driftsinformasjon

Oppslagstjenesten

Oppslags-tjenesten

Parts-registeret

Parts-registeret

Magnet-saldo-rente

Magnet-saldo-rente

Magnet-saldo-rente

Oppslagstjenesten

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?

Driftsdashboardet

Robusthet i applikasjoner

• Feil kontrollert

• Selvbevisste applikasjoner

• Sjekk omgivelser

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

Helsesjekker

• Hva er feil?

– Internt

– Eksternt

– Forventet/uventet

• Hvor alvorlig er det?

– Vent og se

– Sjekk et annet sted

– Debug

Helsesjekk

FREMTIDEN

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

Fremtiden

• Høyere kvalitet – Testdata – Akseptansetester – Verdikjeder

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

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

SPØRSMÅL?

Trond Arve Wasskog trond.arve.wasskog@bekk.no

@ilmyggo

Anders Sveen anders.sveen@miles.no

@anderssv

top related