Foredrag 24. oktober: Ark2012 i regi av Dataforeningen.
Kinderegget; enklere, billigere og mye raskere
Tormod Varhaugvik, seniorrådgiver, Skatteetatens IT- og servicepartner (SITS)
Hovedmålet med Skatteetatens målarkitektur er endringsevne og forvaltningskost. I kjernen finnes en beregningsarkitektur for skatt og avgift. Beregningskjernen må ha høy endringsevne, full testbarhet, lineær skalering, store datamengder, lang levetid, fleksibel sourcing og massiv spørring 24/7. Vi har en radikal tilnærming og satt sammen en innovativ pakke. Vi tror vi er alene i verden på dette innen offentlig sektor. Hva med 100% funksjonell testdekning, 30% av dagens forvaltningskost, 5% av hardwarekost og 1000 ganger raskere? Presentasjon viser hvordan en drar nytte av Grid teknologi med Java.
1. ”Kinderegget”;
enklere, billigere og mye raskere
Softwaredesign for Grid arkitektur
• Hvordan utnytte den nye plattformen?
Ark 2012
Tormod Varhaugvik, SKD SITS, Oktober 2012
tormodv.blogspot.com
2. Utfordringen – Helhet og Fremtidsrettet
• Årsversjoner
evn e
• Helhet r ings
End
• Selvbetjening
Handlingsrom
• Store volum Forv
altni
ngsk
• Lang levetid o st
• Massiv spørring
• Hendelsesdrevet
• Designpakke; Domain Driven Design, Tuple Space, CQRS,
BASE, SOA, ODS, XML-dokumenter og god gammel Java
Skatteetaten 23.10.2012 2
3. Muligheter
• Markedssituasjon, nå og framover
• Kompetanse og infrastruktur
• Involvere markedet mengde data
En
som endres samlet
Dokument
• Flerkjerne CPU
• Mange billige standard maskiner
• Vi må designe for parallellitet
• Skalere ”ut av boksen”
• Ikke alle problemer passer
Skatteetaten 23.10.2012 3
5. Kompleksitet
• Du kan ikke flykte fra kompleksitet
• Kan ikke pakkes inn og late som ingenting
• Kompleksitet har ett omfang, og det må holdes samlet
• Testbarhet, testbarhet og testbarhet
• Tas dette feil, vil kompleksiteten komme som en rikosjett
Skatteetaten 23.10.2012 5
6. Del opp problemet – ”Aggregate design”
Nøkkel-objekt
Nøkkel-objekt
Tydelig tilgang,
konsistens og root”
”Aggregate Informasjon
innkapsling kan ikke sees
C på alene!
B Oppførsel må
A også med…
Nå har vi 3
•God innkapsling er egentlig bare god softwaredesign dokumenter.
•God tjenesteorientering Eks. Lønn, Saldo
•Det gir forvaltbare og testbare komponenter og Selvangivesle
•Der gir uavhengige informasjonsmengder
•Uavhengighet gir parallellitet
Skatteetaten 23.10.2012 6
7. Grid arkitektur: Monster minne
A
Minne og prosessering som Key Value
omfatter flere maskiner
Disklager i bakkant
B
Key Value
Applikasjon
C
Key Value
• Frikoble fra datalaget
• Sammensetting skjer i Applikasjon
• Forretningslogikk skjer i Applikasjon
• Nøkkelobjektet kan være sammensatt
• Applikasjon er upåvirket av volum og krav til svartid
• Big Data
Skatteetaten 23.10.2012 7
8. Lagringsarkitektur - Dokument
• Tenke Aggregat-design (info+use)
• Forretningslogikk styrende
• Endringsevne og testbarhet
• Robust, konsistent og skalerbar
• Redusert I/O og mindre låsing
Superdokument
• Superdokument <hode/>
• Alle dokumenter har skjema <prosess/>
• Hva med funksjoner på tvers av <aggregat/>
aggregater/dokumenter? <beslutning/>
• Søkemotor <avvik/>
<logg/>
http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html
Skatteetaten 23.10.2012 8
10. Helhetlig skatteprosess
• Enhetlig prosessering rundt ett stort datalager
• Dyrker forretningsmessig likhet
• Løpende saksbehandling
• Skille funksjonalitet fra informasjon
• Skille informasjonen fra hverandre
• Skille funksjonalitet fra hverandre
• Skille funksjonalitet fra infrastruktur
• Unik eier av informasjon
• Tenk massivt arkiv med dokumenter
• … hvor vedtakene ligger utenfor
• Testbar = Forvaltbar
• Essensiell kompleksitet er nå innkapslet
Skatteetaten 23.10.2012 10
11. XML dokumentstruktur
id, Nøkkel til
tidspunkt,
Hode gjelder, tilstand [privat, åpen, fjernet, erstattet] dokumentet
rapportert av, erstatter
skjematype,
gyldighetsperiode [inntektsår, datoperiode],
fase [prognose, PSA, levert, fastsatt, klage] Lik for alle
Sak versjon
tilstand [ny, behandles, ferdig ]
post2.1.1 Tilstand på
Selv- text Selvangivelsen
angivelse verdi
ref Id
post3.1.12.7 Spesifikk pr
…
post5 skjematype
Selvangivelsen
Avvik avvikbeskrivelse
gjelderPoster
brukernavn
Logg tidspunkt
hendelse
begrunnelse
Lik for alle
endredePoster
Skatteetaten 23.10.2012 11
13. Realiserbart!
• Erfaring med Smalltalk viste meget stor effektivitet
når man kunne ha forretningslogikk horisontalt
• Ekte objektorientering
• Lekker og veldikeholdbar kode (DSL)
• Kommer langt med en enkel programmeringsmodell
• Erfaring med domene-orientert distribuert system
viser at meldinger til sammen bygger opp ett
system
• En Moduls data kan bygges opp ”fra ingenting”
• Fikk kontroll på datamodellen og forretningshendelser
• Dokumentene er grensesnitt mellom Modulene
• En stor datamodell kan (og bør) deles opp i Aggregater
• Likhet med Finans og Gambling er slående
• Det John Davies / Cameron Purdy har messet om lenge!
Skatteetaten 23.10.2012 13
14. Proof of Concept mål
• Enkel; ved at regler, informasjon og
prosess er tettest opp mot
forretningsbegrep
• Testbar; ved at moduler lar seg teste hver
for seg i en tydelig verdikjede
• Skalerbar; ved at volum og svartider lar ?
seg løse ved kjøp av mer hardware, og
ikke igjennom å skrive om regler,
informasjon eller prosess
http://tormodv.blogspot.com/2011/09/tax-norways-proof-of-concept.html
Skatteetaten 23.10.2012 14
15. Kjøremiljø
• Alle noder er funksjonelt like • Flokkoppførsel
• Hver node har sin andel data • Elastisitet, omkonfigurasjon
• Skattefamilie samlokalisert • Overvåkning (teknisk)
• ”Grid” skjermer teknisk kompleksitet • Konsistens (funksjonelt)
(partisjonering, søk, jobber, redundans, overflow,
lagring, failover, indekser, med mer.) • ”Rett på jernet”, ikke virtualiser
• Transparent for logikken • Hva hvis strømmen går?
Maskin (server) Maskin (server) Maskin (server)
Grid-node (JVM) Grid-node (JVM) Grid-node (JVM)
PSA PSA PSA
Saldo- og rentemeldinger Saldo- og rentemeldinger Saldo- og rentemeldinger
Lønns- og trekkoppgaver Lønns- og trekkoppgaver Lønns- og trekkoppgaver
Skattefamilie Skattefamilie Skattefamilie
Skatteetaten 23.10.2012 15
16. Estimert fullskala produksjon
• 28.000 Selvangivelser i sekundet (ca 3 minutter)
• 56.000 Skatteberegninger i sekunder (ca 90 sekunder)
• 5.100.000 Selvangivelse & Skatt og Skattekort
• 80.000.000 Grunnlagsdata & Underskjemaer
• 120 Gb RAM netto
• 370 Gb RAM brutto med 1x redundans og indekser
• 12 Servere (Intel i7) a 32 Gb
• Last av XML fra fil: 6000tps => 5 timer
• Ekstrem ytelse ikke så viktig i seg selv, men gir handlingsrom
• Kost ca 400.000 i servere og 1 million i lisens
• Forretningsnær og vedlikeholdbar kode kan yte sykt bra
http://tormodv.blogspot.com/2012/01/tax-norways-poc-results.html
Skatteetaten 23.10.2012 16
17. Softwaredesign er gull
• Ta det på alvor, det er lov å tenke seg om
• Fysiske lover kan ikke knekkes,
… men ting kan gjøres smart
• Isoler foretningslogikk fra teknisk arkitektur
• Kompleksitet er din største trussel
• Software må skrives om for å dra nytte av ”dette nye i skyen”
• Testbarhet, enkelhet og parallellitet går hånd i hånd
• Gull også for de som ikke har store datamengder
• Frikoble fra tregt datalager
Lev deg inn i DDD. POJO er din beste venn
http://tormodv.blogspot.no/2012/02/module-and-aggregate-design-in-cah.html
Skatteetaten 23.10.2012 17