+ All Categories
Home > Technology > Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Date post: 21-Jun-2015
Category:
Upload: tormod-varhaugvik
View: 449 times
Download: 1 times
Share this document with a friend
Description:
Presentasjon av Skatteetatens målarkitektur og proof of concept på Cloud, for Meetup Oslo Software Architecture 27. februar 2013.
Popular Tags:
27
Skatteetatens målarkitektur Softwaredesign for «in-memory» arkitektur Hvordan utnytte den nye plattformen? Oslo Software Architecture, 2013.02.27 Tormod Varhaugvik, SKD SITS, Februar 2013 tormodv.blogspot.com
Transcript
Page 1: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Skatteetatens målarkitektur Softwaredesign for «in-memory» arkitektur

Hvordan utnytte den nye plattformen? Oslo Software Architecture, 2013.02.27

Tormod Varhaugvik, SKD SITS, Februar 2013

tormodv.blogspot.com

Page 2: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

2/27/2013 NTA – Equity –transparent and live risk assessment 2

The Governmental Financial Institution

• Tax Norway

• 110 billion € in revenue from a population of 5 million

• 610 million € in operating cost

• 6.000 employees, 10.000 users, supported by 120 systems

• 700 working in IT

• Status

• Enterprise Architecture program started 2009

• This Architecture was defined and committed in 2010

• We have managed to change a large Government Organisation

• Major projects are now building the future

• We are establishing a private Cloud

• Me

• Some sort of Architect in the Enterprise Architecture practice

• Technical background, Enterprise Application domain since 1993

Page 3: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 3

Utfordringen – Helhet og Fremtidsrettet

• Helhet

• Automatisert

• Hendelsesdrevet

• Selvbetjening

• Store volum

• Lang levetid

• Massiv spørring

• Kjøremiljø, Container

• In-memory, BIG-data

• IaaS, PaaS, SaaS

Handlingsrom

Forenkle

Standardisere

Page 4: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Systemenes livsløp

• 8% investering, 92% i levetiden

• Markedsstøtte i levetiden

• COTS - ”Commercial of The Shelf”

• Varige egenskaper • ”Noen skal betale skatt av noe”

• Skiftende egenskaper • ”Hva skal betales i skatt”

• Eie egen kompleksitet • Logikk, informasjon og prosess

• Testbar

27.02.2013 Skatteetaten 4

Page 5: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Hva er det med siloen?

• Ikke mat siloen!

• Selvsentrisk

• Lite samarbeidsvillig

• Lite endringsvillig

• Eser utover tiltenkt funksjon

• Lite testbar

• Ingen forstår den

• Bærer ikke konsistens, oppetid, ytelse og endringsevne

• Størrelse er ikke synonymt med silo

• Kan ikke kjøpe en treningsdress og forvente forbedring

27.02.2013 Skatteetaten 5

Page 6: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

En håndterbar Portefølje

• Bestem systemer • Funksjonelt, teknisk og organisatorisk

• God tjenesteorientering

• Domain Driven Design

• Bestem unik eier av informasjon

• Del opp problem innad i system • … for å oppnå parallellitet

• Tid er løs kobling

• Store oppgaver trenger store systemer

• Ulike systemer trenger ikke lik arkitektur

• Federerte Samarbeidende Systemer

27.02.2013 Skatteetaten 6

Page 7: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 7

Etterlevelse Part

Målarkitektur

Fastsetting Innkreving

Prosess

Tilgang Dokument

! Ekstern kommunikasjon

Page 8: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 8

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

Page 9: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 9

Softwaredesign

(For in-memory og Big Data) Domain Driven Design, CQRS, SOA, ODS,

BASE, Tuple Space, XML-dokumenter og god gammel Java

Page 10: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 10

Del opp problemet – ”Aggregate design”

Nøkkel-objekt

”Aggregate root”

Nøkkel-objekt

”Aggregate root”

Nøkkel-objekt

Tydelig tilgang,

konsistens og

innkapsling

•God innkapsling er egentlig bare god softwaredesign

•God tjenesteorientering

•Det gir forvaltbare og testbare komponenter

•Der gir uavhengige informasjonsmengder

•Uavhengighet gir parallellitet

A B

C

Informasjon

og oppførsel

henger

sammen!

Nå har vi 3

dokumenter.

Eks. Lønn, Konto

og Selvangivesle

Page 11: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 11

«In-memory»: Monster minne

Applikasjon

Minne og prosessering som

omfatter flere maskiner

Disklager i bakkant

C

B

A

Key

Key

Key

Value

Value

Value

• Frikoble fra datalagret (disk)

• Sammensetting skjer i Applikasjon

(B kan inngå i flere sammenhenger)

• Forretningslogikk skjer i Applikasjon

• Nøkkelobjektet kan være sammensatt

• Applikasjon er upåvirket av volum og krav til svartid

Page 12: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 12

Dokument - Lagringsarkitektur (Big Data)

• Robust, konsistent og testbar

• Redusert I/O og mindre låsing

• Uavhengig og skalerbar

• Historisk korrekt

• Superdokument

• Alle dokumenter har skjema

• Fra samfunnet, på standard formater

• Fra samfunnet, når det skjer

• Søkemotor

• Hva med funksjoner på tvers av

aggregater/dokumenter?

• «Utilityspråk» som SQL? http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html

<hode/>

<prosess/>

<aggregat/>

<beslutning/>

<avvik/>

<logg/>

Superdokument

Page 13: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 13

Skattedomene

(Domain Driven Design, Tuple Space, CQRS, BASE, SOA, ODS,

XML-dokumenter og god gammel Java)

Page 14: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 14

Skatteetatens målbilde (Fastsetting)

• Enhetlig prosessering rundt ett stort datalager

• Tenk massivt arkiv med dokumenter

• … hvor vedtakene ligger utenfor

• Fakta ett sted, gjenbruk i flere dimensjoner

• Uavhengig funksjonalitet og informasjon

• Gjenbrukbar, løs koblet og eksakt

• Unik eier av informasjon

• Testbar = Forvaltbar

• Dokumentene er grensesnittene

• Migreringsvennlig

• Hvilken prosesseringsarkitektur skal vi velge?

• Hvilken lagringsarkitektur skal vi velge?

Dette blir nå implementert.

1. versjon er i produksjon.

Snart: Alle lønnsslipper live.

Tilby: 24/7 spørring til NAV.

Page 15: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 15

Tekniske egenskaper

• Parallelliserbar • Skill utvalg…

• … fra behandling

• … fra lagring av resultat

• Prosessfokus • Automatisk saksbehandling

• Manuell saksbehandling

• Kontinuerlig tilrettelegging

• Åpne standarder • Kapsle inn forretningslogikk

• xml, java, kontainer, web

• Leverandør / plattformuavhengig

• Plattform i utvikling

• Objektorientert • Rik semantikk, DSL

• xml 1:1 med java (aggregatet)

• Test og drift • Automatisk / avgrenset test

• Omkjøring ifbm feilretting

• Simulering / ”dry run”

http://tormodv.blogspot.com/2010/12/continual-data-hub-architecture-and.html

Page 16: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 16

XML dokumentstruktur

id,

gjelder,

rapportert av,

skjematype,

gyldighetsperiode [inntektsår, datoperiode],

Hode tidspunkt,

tilstand [privat, åpen, fjernet, erstattet]

erstatter

avvikbeskrivelse

gjelderPoster

Avvik

brukernavn

tidspunkt

hendelse

begrunnelse

endredePoster

Logg

fase [prognose, PSA, levert, fastsatt, klage]

versjon

tilstand [ny, behandles, ferdig ] Sak

post2.1.1

text

verdi

ref 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

Page 17: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 17

Proof of concept

Page 18: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 18

Utfordringen => Proof of concept

• Hvordan skifte kurs?

• Beslutningstagerne kan ikke dette

• Skape felles forståelse rundt arkitekturdiskusjoner og valg

• Å redusere risiko i planlegging og estimering

• Innsalg og troverdighet

• 1000 ganger ytelse?

• Hardware < 10%?

• Kodeforvaltning < 30%?

• => Særlig!

Okt ’09: Utfordringen VA

Mars ’10: Godkjent VA

Mai ’11: Gjør PoC

Jan ’12: PoC Suksess!

Mars ’12: Endre kurs…

http://tormodv.blogspot.com/2011/09/tax-norways-proof-of-concept.html

Page 19: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 19

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!

Page 20: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 20

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

?

Page 21: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 21

Kjøremiljø

27.02.2013 21

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?

Page 22: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Deployment-arkitektur (årsversjoner)

Skatteetaten

Maskin (server) Maskin (server) Maskin (server)

Node

Web server (v 1) 2009

Node

Web server (v 1)

Node

Web server (v 1)

Node Node

Node Node

Node Node

2010

2011

Web-server

http://intern.skd.no/selvangivelse/{fnr}/2009

http://localhost:2009/selvangivelse/{fnr} [{... 2009 JSON}]

[{... Gen. JSON}]

Page 23: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Hvor går linja for endringsevne?

• )

27.02.2013 Skatteetaten 23

Level Strategy

Domain code (schemas, POJOs,tests) In project

Libraries (internal, external) Branching (VCS, Copy)

Compiler Virtual image (dev/build)

JVM Virtual image (runtime)

OS Virtual image (runtime)

Virtualization software Fixed version

Hardware Fixed hardware

Page 24: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 24

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 (800 poster, 14 skatter)

• 80.000.000 Grunnlagsdata & Underskjemaer (5000 info, 7000 regler)

• 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

Page 25: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 25

Konseptet innfrir!

• Forretningsnær og vedlikeholdbar kode kan yte sykt bra

• Funksjonelle tester som regneark

• Kode som fagperson kan forstå

• Informasjonsmodellen er også viktig

• Åpne standarder gir verktøy, komponenter og markedsstøtte

• Handlingsrom for valg av kjøreplattform, skalere ved behov

• In-memory – Processing Grid (~GemFire, HazelCast)

• In-memory – Data Grid (~Terracotta)

• Distributed database – Big Data (~Hadoop)

• Omskriving er høyst oppnåelig

• La POJO utvikling være styrende, ikke xml-definisjoner

putSumPost("3.4", sum(post("3.1.14"), minus(post("3.3.13"))))

putSumPost("3.5.1",hvis(post("3.3.7.3")).er(kr(0)).brukDa(hvis(post("3.5.1.1")).ikke

Er(kr(0)).brukDa(post("3.5.1.1"))))

Page 26: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

27.02.2013 Skatteetaten 26

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

Page 27: Oslo Software Architecture: Skatteetatens målarkitektur og PoC

Bakgrunn og lenker

• http://domaindrivendesign.org/library/vernon_2011

• http://tormodv.blogspot.com/2011/02/comment-on-restful-soa-or-domain-driven.html

• http://www.infoq.com/minibooks/domain-driven-design-quickly

• http://heroku.com

• http://www.regjeringen.no/nn/dep/fin/pressesenter/pressemeldingar/2012/enklare-for-

naringslivet-med-edag.html?id=682401

• http://tormodv.blogspot.com/2010/11/concept-for-datastore-and-processing.html

• http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.html

• http://tormodv.blogspot.com/2012/01/tax-norways-poc-results.html

• http://tormodv.blogspot.no/2011/04/java-is-mature-software-teens-are-over.html

• http://tormodv.blogspot.no/2011/09/dont-let-enterprise-service-bus-lead-to.html

• http://tormodv.blogspot.no/2013/01/target-architecture-looking-good.html

• http://www.slideshare.net/tormodv

• http://www.tu.no/it/2012/10/19/1000-ganger-raskere-skatteoppgjor

27.02.2013 Skatteetaten 27


Recommended