Kinderegget; enklere, billigere og mye raskere
Click here to load reader
-
Upload
tormod-varhaugvik -
Category
Technology
-
view
654 -
download
2
description
Transcript of Kinderegget; enklere, billigere og mye raskere
”Kinderegget”; enklere, billigere og mye raskereSoftwaredesign for Grid arkitektur• Hvordan utnytte den nye plattformen?Ark 2012
Tormod Varhaugvik, SKD SITS, Oktober 2012tormodv.blogspot.com
23.10.2012Skatteetaten 2
Utfordringen – Helhet og Fremtidsrettet
• Årsversjoner• Helhet • Selvbetjening
• Store volum• Lang levetid• Massiv spørring• Hendelsesdrevet
• Designpakke; Domain Driven Design, Tuple Space, CQRS, BASE, SOA, ODS, XML-dokumenter og god gammel Java
Endringsevne
Forvaltningskost
Handlingsrom
23.10.2012Skatteetaten 3
Muligheter
• Flerkjerne CPU• Mange billige standard maskiner • Vi må designe for parallellitet• Skalere ”ut av boksen”• Ikke alle problemer passer
• Markedssituasjon, nå og framover• Kompetanse og infrastruktur• Involvere markedet
Dokument
En mengde data som endres samlet
23.10.2012Skatteetaten 4
Softwaredesign
23.10.2012Skatteetaten 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
23.10.2012Skatteetaten 6
Del opp problemet – ”Aggregate design”
Nøkkel-objekt”Aggregate root”
Nøkkel-objekt”Aggregate root”
Nøkkel-objektTydelig tilgang, konsistens oginnkapsling
•God innkapsling er egentlig bare god softwaredesign•God tjenesteorientering•Det gir forvaltbare og testbare komponenter•Der gir uavhengige informasjonsmengder•Uavhengighet gir parallellitet
AB
C
Informasjon kan ikke sees
på alene!Oppførsel måogså med…
Nå har vi 3 dokumenter.
Eks. Lønn, Saldo og Selvangivesle
23.10.2012Skatteetaten 7
Grid arkitektur: Monster minne
Applikasjon
Minne og prosessering som omfatter flere maskiner
Disklager i bakkant
C
B
AKey
Key
Key
Value
Value
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
23.10.2012Skatteetaten 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• Alle dokumenter har skjema• Hva med funksjoner på tvers av
aggregater/dokumenter?• Søkemotor
http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html
<hode/><prosess/><aggregat/><beslutning/><avvik/><logg/>
Superdokument
23.10.2012Skatteetaten 9
Skattedomene
23.10.2012Skatteetaten 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
23.10.2012Skatteetaten 11
XML dokumentstruktur
id, gjelder, rapportert av, skjematype, gyldighetsperiode [inntektsår, datoperiode],
Hode tidspunkt, tilstand [privat, åpen, fjernet, erstattet] erstatter
avvikbeskrivelsegjelderPoster
Avvik
brukernavntidspunkthendelsebegrunnelseendredePoster
Logg
fase [prognose, PSA, levert, fastsatt, klage]versjontilstand [ny, behandles, ferdig ]
Sak
post2.1.1textverdiref Id
post3.1.12.7…post5
Selv-angivelse
Lik for alle
Lik for alle
Spesifikk pr skjematype
Selvangivelsen
Tilstand påSelvangivelsen
Nøkkel til dokumentet
23.10.2012Skatteetaten 12
Proof of concept
23.10.2012Skatteetaten 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!
23.10.2012Skatteetaten 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
?
23.10.2012Skatteetaten 15
Kjøremiljø
23.10.2012 15
Maskin (server) Maskin (server) Maskin (server)
Grid-node (JVM)
Skattefamilie
Lønns- og trekkoppgaver
Saldo- og rentemeldinger
PSA
Grid-node (JVM)
Skattefamilie
Lønns- og trekkoppgaver
Saldo- og rentemeldinger
PSA
Grid-node (JVM)
Skattefamilie
Lønns- og trekkoppgaver
Saldo- og rentemeldinger
PSA
• Alle noder er funksjonelt like• Hver node har sin andel data
• Skattefamilie samlokalisert
• ”Grid” skjermer teknisk kompleksitet(partisjonering, søk, jobber, redundans, overflow, lagring, failover, indekser, med mer.)
• Transparent for logikken
• Flokkoppførsel• Elastisitet, omkonfigurasjon• Overvåkning (teknisk)• Konsistens (funksjonelt)• ”Rett på jernet”, ikke virtualiser• Hva hvis strømmen går?
23.10.2012Skatteetaten 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
23.10.2012Skatteetaten 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