Revolusjon kamerater! Softwaredesign i "skyen"
-
Upload
tormod-varhaugvik -
Category
Technology
-
view
294 -
download
0
description
Transcript of Revolusjon kamerater! Softwaredesign i "skyen"
Revolusjon kamerater!
Fantastiske muligheter med ny plattform Software 2013
Tormod Varhaugvik, Skatteetaten, SITS, Februar 2013
http://tormodv.blogspot.com
Innovasjon fra Skatteetaten!
• Designet du nå skal få se, gir helt nye muligheter
• Satt sammen av erfaring, teknologi og gode mønstre
• Mange komplekse domener med sammensatt informasjon og
regler, kan fungere side om side i samme system
• I tillegg til å kunne yte svært mye bedre
• Og være mye lettere å forvalte
• Revolusjon for «Saksbehandlingssystemer»
• Vi bygger nå på denne måten
• Passer både In-Memory, BIG-data og PaaS
• Vi deler!
• Designet er dokumentert i en serie artikler på tormodv.blogspot.com
• Kildekoden fra PoC tilgjengelig på GitHub
06.02.2013 Skatteetaten 2
06.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
06.02.2013 Skatteetaten 4
Design av Programvare
(når det blir STORT)
Hvordan representere virkeligheten?
Modellering
• Mellom-menneskelig
• Ord og uttrykk fra den
virkelige verden
• Litteratur
• Illustrasjoner
• Filosofi
• Arkitektur, modeller
Programmering
• Maskin-instruksjon
• Eksakt, stivbeint
• Formelt
• Tegn
• Konkret, tid og rom
• Mekanisk sympati
06.02.2013 Skatteetaten 5
Maskin
• I/O!
• Fysiske realiteter, tid og rom
• Det tar tid å etablere data i en maskin
• Det tar enda mer tid å flytte data
• Eksakt, men feilbarlig
• Transaksjon;
å etablere en forretningsmessig konsistent tilstand
• Parallellitet en premiss
• Mekanisk sympati («gre teknologien med hårene»)
06.02.2013 Skatteetaten 6
Forvaltning
• Programvaredesign, Arkitektur!
• Kunnskap skalerer ikke
• Mange skal løse noe sammen, over tid
• Du kan ikke flykte fra kompleksitet
• Enterprise Application
• Kompleksitet må struktureres, slik at den blir forståelig
• Testbarhet, testbarhet og testbarhet
• Tas dette feil, gjør du vondt verre
06.02.2013 Skatteetaten 7
06.02.2013 Skatteetaten 8
50 år med tilnærming
50 år med tilnærming
• Operativsystem (~1960)
• COBOL (~1959)
• Objektorientering (~1968)
• Relasjonsmodellen (~1969)
• The art of programming (~1968)
• Software engineering (~1968)
• Klient tjener (~1975)
• Virtual Machine (~1983)
• Container (~1997)
• Case Verktøy (MDD) (~1982)
• CQRS (CQS, ~1988)
• Design Patterns (GOF) (~1993)
• Corba (RMI) (~1991)
• HTML (~1989)
• HTTP (~1995)
• Java (~1995)
• XML (~1998)
• Java EE (~1999)
• Integration patterns (~2002)
• REST (~2000)
• SOA (BPEL/WS) (~ 1995/2001)
• Domain Driven Design (~2003)
• Eventually Consistent (~2000)
• PaaS, Heroku (~2007)
• XP / TDD (~1999)
• Agile (~2001)
• Lean (~1948)
06.02.2013 Skatteetaten 9
Noe for framtiden
• Operativsystem (~1960)
• COBOL (~1959)
• Objektorientering (~1968)
• Relasjonsmodellen (~1969)
• The art of programming (~1968)
• Software engineering (~1968)
• Klient tjener (~1975)
• Virtual Machine (~1983)
• Container (~1997)
• Case Verktøy (MDD) (~1982)
• CQRS (CQS, ~1988)
• Design Patterns (GOF) (~1993)
• Corba (RMI) (~1991)
• HTML (~1989)
• HTTP (~1995)
• Java (~1995)
• XML (~1998)
• Java EE (~1999)
• Integration patterns (~2002)
• REST (~2000)
• SOA (BPEL/WS) (~ 1995/2001)
• Domain Driven Design (~2003)
• Eventually Consistent (~2000)
• PaaS, Heroku (~2007)
• XP / TDD (~1999)
• Agile (~2001)
• Lean (~1948)
06.02.2013 Skatteetaten 10
Smidig, men du må vite hvor du skal!
Tjenesteorientering, men respekter domene!
Testbar komponent, men ikke alt innholdet!
Riktig abstraksjonsnivå, men ikke glem mekanisk sympati!
Standardisering, struktur og modularisering
, er viktigere enn språket i seg selv!
06.02.2013 Skatteetaten 11
Revolusjonen!
Arkitekturmål
ved at moduler lar seg teste hver for seg i en tydelig
verdikjede
ved at moduler lar seg teste hver for seg i en tydelig
verdikjede
06.02.2013 Skatteetaten 12
Skalerbar Skalerbar
Testbar Testbar
Enkel Enkel
ved at regler, informasjon og prosess er tettest mulig opp
mot forretningsbegrep
ved at regler, informasjon og prosess er tettest mulig opp
mot forretningsbegrep
ved at volum og svartider lar seg løse ved kjøp av mer hardware,
og ikke igjennom å skrive om regler, informasjon eller prosess
ved at volum og svartider lar seg løse ved kjøp av mer hardware,
og ikke igjennom å skrive om regler, informasjon eller prosess
Platform as a Service (Heroku)
• «Container» og «stack»
• Grensesnitt-container
(maskin og bruker)
• Arbeider-container
• Køer, Timere
• Logging og overvåkning
• HTTP (HTML/REST)
• Hendelses-drevet
• Orkestrering styres av
arbeider-container
• Datalager tilpasset struktur
• Datalager innkapslet av
grensesnitt-container(e)
06.02.2013 Skatteetaten 13
Tilstand
Heroku er valgt som eksempel på PaaS, og ment illustrerende.
Det er på ingen måte et valg eller anbefaling fra Skatteetaten.
06.02.2013 Skatteetaten 14
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
kan ikke sees
på alene!
Oppførsel må
også med…
Nå har vi 3
aggregater.
Eks. Lønn, Konto
og Selvangivelse
06.02.2013 Skatteetaten 15
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 Området er preget av mange initiativ,
forskjellige tilnærming og «branding».
Value
06.02.2013 Skatteetaten 16
Big Data: Dokumenter
• 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
Key
Aggregate
Header
Value
Om
rådet e
r pre
get a
v m
ange in
itiativ
,
fors
kje
llige tiln
ærm
ing o
g «
bra
ndin
g».
06.02.2013 Skatteetaten 17
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 veldig eksakt
• Unik eier av informasjon
• Testbar = Forvaltbar
• Dokumentene er grensesnittene
• Hvilken prosesseringsarkitektur skal vi velge?
• Hvilken lagringsarkitektur skal vi velge?
• Private Cloud, IaaS, PaaS
Dette blir nå implementert.
1. versjon er i produksjon.
Snart: Alle lønnsslipper live.
Tilby: 24/7 spørring til NAV.
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
06.02.2013 Skatteetaten 18