Revolusjon kamerater! Softwaredesign i "skyen"

548 views

Published on

Presentasjon som skal holdes på Software 2013. Presentasjonen inneholder gode designmønstre for å utnytte "skyen" representert ved Heroku og Skatteetatens målarkitektur: "Alle har høye forventninger. Dagens systemer kan ikke utnytte den nye plattformen. En softwarerevolusjon er nødvendig. Slik gir du din arkitektur en radikal ”makeover” med gode gamle designmønstre!"

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
548
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Revolusjon kamerater! Softwaredesign i "skyen"

  1. 1. Revolusjon kamerater!Fantastiske muligheter med ny plattformSoftware 2013Tormod Varhaugvik, Skatteetaten, SITS, Februar 2013http://tormodv.blogspot.com
  2. 2. 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å GitHubSkatteetaten 06.02.2013 2
  3. 3. Utfordringen – Helhet og Fremtidsrettet• Helhet• Automatisert• Hendelsesdrevet Handlingsrom• Selvbetjening• Store volum Forenkle• Lang levetid Standardisere• Massiv spørring• Kjøremiljø, Container• In-memory, BIG-data• IaaS, PaaS, SaaSSkatteetaten 06.02.2013 3
  4. 4. Design av Programvare (når det blir STORT)Skatteetaten 06.02.2013 4
  5. 5. Hvordan representere virkeligheten? Modellering Programmering• Mellom-menneskelig • Maskin-instruksjon• Ord og uttrykk fra den • Eksakt, stivbeint virkelige verden • Formelt• Litteratur • Tegn• Illustrasjoner • Konkret, tid og rom• Filosofi • Mekanisk sympati• Arkitektur, modellerSkatteetaten 06.02.2013 5
  6. 6. 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»)Skatteetaten 06.02.2013 6
  7. 7. 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 verreSkatteetaten 06.02.2013 7
  8. 8. 50 år med tilnærmingSkatteetaten 06.02.2013 8
  9. 9. 50 år med tilnærming• Operativsystem (~1960) • HTML (~1989)• COBOL (~1959) • HTTP (~1995)• Objektorientering (~1968) • Java (~1995)• Relasjonsmodellen (~1969) • XML (~1998)• The art of programming (~1968) • Java EE (~1999)• Software engineering (~1968) • Integration patterns (~2002)• Klient tjener (~1975) • REST (~2000)• Virtual Machine (~1983) • SOA (BPEL/WS) (~ 1995/2001)• Container (~1997) • Domain Driven Design (~2003)• Case Verktøy (MDD) (~1982) • Eventually Consistent (~2000)• CQRS (CQS, ~1988) • PaaS, Heroku (~2007)• Design Patterns (GOF) (~1993) • XP / TDD (~1999)• Corba (RMI) (~1991) • Agile (~2001) • Lean (~1948)Skatteetaten 06.02.2013 9
  10. 10. Noe for framtiden • Operativsystem (~1960) • HTML (~1989) • COBOL (~1959) • HTTP (~1995) Smidig, men du må vite hvor du skal! • Objektorientering (~1968) • Java (~1995) Tjenesteorientering, men respekter domene! • Relasjonsmodellen (~1969) • XML (~1998) Testbar komponent, men ikke alt innholdet! • The art of programming (~1968) • Java EE (~1999)Riktig abstraksjonsnivå, men ikke glem mekanisk sympati! • Software engineering (~1968) • Integration patterns (~2002) • Klient tjener (~1975) • REST (~2000) Standardisering, struktur og modularisering • Virtual Machine (~1983) • SOA (BPEL/WS) (~ 1995/2001) , er viktigere enn språket i seg selv! • Container (~1997) • Domain Driven Design (~2003) • Case Verktøy (MDD) (~1982) • Eventually Consistent (~2000) • CQRS (CQS, ~1988) • PaaS, Heroku (~2007) • Design Patterns (GOF) (~1993) • XP / TDD (~1999) • Corba (RMI) (~1991) • Agile (~2001) • Lean (~1948) Skatteetaten 06.02.2013 10
  11. 11. Revolusjonen!Skatteetaten 06.02.2013 11
  12. 12. Arkitekturmål ved at regler, informasjon og prosess er tettest mulig opp Enkel mot forretningsbegrepved at moduler larseg teste hver for seg i en tydelig Testbar 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 Skatteetaten 06.02.2013 12
  13. 13. 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 Tilstand• Datalager tilpasset struktur• Datalager innkapslet av grensesnitt-container(e) Heroku er valgt som eksempel på PaaS, og ment illustrerende. Det er på ingen måte et valg eller anbefaling fra Skatteetaten.Skatteetaten 06.02.2013 13
  14. 14. Del opp problemet – ”Aggregate design”Nøkkel-objekt Nøkkel-objektTydelig tilgang,konsistens og root” ”Aggregate Informasjoninnkapsling kan ikke sees C på alene! B Oppførsel må A også med… Nå har vi 3 •God innkapsling er egentlig bare god softwaredesign aggregater. •God tjenesteorientering Eks. Lønn, Konto •Det gir forvaltbare og testbare komponenter og Selvangivelse •Der gir uavhengige informasjonsmengder •Uavhengighet gir parallellitet Skatteetaten 06.02.2013 14
  15. 15. In-memory: Monster minne AMinne og prosessering som Key Value omfatter flere maskiner. Disklager i bakkant B Key Value Applikasjon C Key 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 Området er preget av mange initiativ,• Applikasjon er upåvirket av volum og krav til svartid forskjellige tilnærming og «branding». Skatteetaten 06.02.2013 15
  16. 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 forskjellige tilnærming og «branding». Området er preget av mange initiativ,• Fra samfunnet, når det skjer• Søkemotor Header Key Aggregate• Hva med funksjoner på tvers av Value Value aggregater/dokumenter?• «Utilityspråk» som SQL? http://tormodv.blogspot.com/2011/02/document-store-for-enterprise.htmlSkatteetaten 06.02.2013 16
  17. 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 Dette blir nå implementert.• Hvilken prosesseringsarkitektur skal vi velge? 1. versjon er i produksjon. Snart: Alle lønnsslipper live.• Hvilken lagringsarkitektur skal vi velge? Tilby: 24/7 spørring til NAV.• Private Cloud, IaaS, PaaSSkatteetaten 06.02.2013 17
  18. 18. 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-skatteoppgjorSkatteetaten 06.02.2013 18

×