molntjänster – välj rätt lösning · – juridik, avtal mm – säkerhet – fem moln-typer...

128
Molntjänster – välj rätt lösning Plattformar, tjänster och juridik Del 2 Sven-Håkan Olsson Styrelsemöte.se / Definitivus AB DF_Cloud_kurs_okt16_dag2_v.pptx © Sven-Håkan Olsson / Definitivus. Enstaka bilder får återges med angivande av källan.

Upload: others

Post on 10-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Molntjänster – välj rätt lösning

Plattformar, tjänster och juridik

Del 2

Sven-Håkan Olsson Styrelsemöte.se / Definitivus AB

DF_

Clo

ud_k

urs_

okt1

6_da

g2_v

.ppt

x

© Sven-Håkan Olsson / Definitivus. Enstaka bilder får återges med angivande av källan.

Page 2: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

2

Kursens ungefärliga upplägg •  Dag 1:

–  Föregångarna –  Cloud computing, idén –  Juridik, avtal mm –  Säkerhet –  Fem moln-typer –  Några molnleverantörer

•  Dag 2: –  Några molnleverantörer forts –  Appar och molnet –  Integration/SOA med molnen –  Praktikfall –  Molnstrategi

Verksam- hets- nytta

Teknik- nytta

V e r t i k a l

förståelse behövs

Page 3: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

3

Nytt?

•  Molnen är INGEN NY STOR PRINCIP, det är fortfarande outsourcing, däremot är det några detaljer som skiljer sig jämfört med tidigare – och dessa detaljer får STOR INVERKAN: –  Dramatiskt mycket flexiblare kapacitetstillgång

–  Flexibel prissättning och mycket lägre priströskel (i

vissa fall 0 kr)

–  Förlitande på att Internet duger för kommunikation mellan kund och outsourcingpartner – och Internet är vanligen billig kommunikation

$ $

Repetition är inlärningens moder…

Page 4: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

4

”Eget” OS.

Ex: Amazon EC2 Google Comp Eng MS Azure VM Rackspace, IBM iPeer, Ballou

- - - Internet - - -

Moln-lev typ 1 Moln-lev typ 2

”Eget” Win- dows...

GUI- klient

Ex: Citrix,TermSrvr… AWS Workspaces VDI VMware GNS.SE

Moln-lev typ 3

Kö.

Struk- turerad lagring, integration.

Ex: Amazon AWS Google GAE MS Azure SQL-tjänster Dropbox BizTalk

Moln-lev typ 4

Egen- utvecklade kod-moduler.

Ex: Google GAE MS Azure Heroku Force BizTalk

Ex: Salesforce Fortnox Google Apps Exchange Office365 Spotify

Moln-lev typ 5

Hel appl.

IaaS

PaaS? IaaS? iPaas?

PaaS SaaS

Docker

Repetition är inlärningens moder…

Page 5: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

5

Viktigaste från förra gången: •  De olika molntyperna är

mycket olika •  De olika molntyperna är

komplexa att sätta sig in i, och välja lev för. –  Särskilt PaaS, myller av

detaljer –  Även för SaaS, men det är å

andra sidan alltid komplext att välja standardapplikation

–  IaaS är mer likt ”vanlig” driftning, fast flexiblare och ofta billigare.

•  Integration med intern IT annan traditionell outsourcing och andra moln mycket viktig

•  Inlåsningen kan vara avsevärd –  Särskilt i PaaS –  Även i SaaS, men det är å andra

sidan alltid fallet vid standardapplikation

Repetition är inlärningens moder…

Page 6: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

MOBILA APPAR OCH INTEGRATION

Page 7: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Kul

Personlig effektivitet

Sociala nätverk

Affärs-processer

Mobila appar och integration

Integration ofta bra!

Affärs-processer

Integration krävs! Isolerade öar av info: kass.

Molnet passar ofta bra tillsammans med appar: •  Samma flexibla kultur… •  Lättare integrera… •  Lättare anpassa till last…

Page 8: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Utmaningen - varför är det så svårt? Ett axplock:

•  Säkerhetsmodeller och multitasking i dagens bästsäljande läsplattor/smarttelefoner är mycket olika – iPad/iPhone har till exempel varit mycket restriktiv, vilket gör att integrationer kan behöva göras på olika sätt på olika plattformar

•  Om appen bör fungera även vid dålig radiotäckning (3G/WiFi) så blir integrationen klart annorlunda än ren online, behövs ”offline mode”

•  Kvalitetsproblemen tillgänglighet/uptime, svarstider, säkerhet mm

•  Att hantera sammansatta transaktioner, så att inte data kommer bort

•  Framtidssäkring - dagens app-modell kontra traditionell webb kontra genomslag för html5 ?

Page 9: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Multitasking och parallellitet olika! Påverkar integrationsdesignen. Ex:

iOS (före v7) •  I stort sett insomnar app när den inte syns, för

att spara ström •  Sju speciella undantag:

–  Background audio - application continues to run in the background as long as it is playing audio or video content

–  Voice over IP - application is suspended when a phone call is not in progress

–  Background location - application is notified of location changes

–  Push notifications (APNS, from 3:rd party servers)

–  Local notifications - application schedules local notifications to be delivered at a predetermined time

–  Task completion - application asks the system for extra time to complete a given task

–  Fast app switching - application does not execute any code and may be removed from memory at any time

Android •  I stort sett insomnar app när den inte syns •  Samsung etc kan visa flera appar samtidigt •  Men en app kan ha en ”service”

–  En service får exekvera vidare i bakgrunden –  Måste vara försiktig så inte bakgrundsjobbet

förbrukar mycket radioeffekt, då försämras batteritiden

–  Kan polla en server (medan iOS behöver push från server)

–  Push kan i sig kan vara bra, Android har fått C2DN

WinRT •  I stort sett insomnar app när den inte syns •  Två appar kan synas samtidigt (”snapped”) •  Men en app kan ha ”background task”

–  Background task får exekvera vidare i bakgrunden. Antingen i appen eller i OS:et.

–  WinRT begränsar resurser i background –  Kan polla en server (medan iOS behöver push

från server) –  Push kan i sig kan vara bra, WinRT har fått

WNS •  (Vanliga Windows 8 kan förstås köra full multitask.)

Page 10: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Multitasking och parallellitet olika! Påverkar integrationsdesignen. Ex:

iOS (från v7, 2013) •  Ny, mer parallell multitasking, underlättar integrationer •  Men för att ändå försöka spara ström:

–  Intelligent scheduling •  iOS väcker olika appar olika, baserat på ditt användningsmönster över dagen

–  Opportunistic updates •  iOS väcker andra appar när du ändå har igång apparaten

–  Adapts to network conditions •  iOS väcker appar mer då det är bra radiosignal på 3/4G eller WiFi

–  Coalesced updates •  iOS väcker andra appar när någon app ändå kör radio

–  Push triggers •  iOS väcker appen så ev datahämtning görs direkt efter notifiering

•  Ägare (mest av äldre iPhones?) och kanske med olämpligt skrivna appar, rapporterar dock att batteriet håller kortare.

Page 11: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Multitasking och parallellitet olika! Påverkar integrationsdesignen. Ex:

iOS (från v8, 2014) •  Ny, ytterligare mer parallell multitasking, underlättar integrationer •  Många av de tidigare integrationsbekymren borta, men om din app behöver

stödja tidigare versioner kanske ändå arkitekturen i alla fall måste bli komplex •  Som med v7, ägare (mest av äldre iPhones?) och kanske med olämpligt skrivna

appar, rapporterar dock att batteriet håller kortare.

Page 12: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

App till app

App1

App2

Varje app får av säkerhetsskäl normalt bara leka inom sin egen ”sandlåda”. Teknikdetaljerna för integration är snåriga, och olika i iOS, Android och WinRT

Dropbox etc

För att ta sig runt sandlådan går många via extern molntjänst…

?

Page 13: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

App till interna system

App

Direkt integration kan ge mycket hög affärsnytta. Ärenden, order, kundinfo, lagersaldo…

Ärendesystem, affärssystem

etc

Säkerhetsutmaningar vid dubbelriktad kommunikation till interna system. Ofta vill man gå via mellanserver i ”DMZ” vilket adderar komplexitet.

Brandvägg

Page 14: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

App till molntjänst till interna system

App

Ibland är en kombination app – molntjänst – internt system lämplig. T ex Styrelsemöte.se J

Ärendesystem, affärssystem

etc

Om det passar, utåtriktad kommunikation är mycket säkrare – och enklare att införa utan IT-avdelningen

Brandvägg

Molntjänst

Page 15: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

”Offline mode”?

App

+ Ständigt online ger enkel app och färskt data! – MEN 3/4G-täckningen ÄR inte 100% (ibland flyger man, åker i tunnlar, är i glesbygd, utlandet osv). Och 3/4G kostar. + Offline mode ökar användarnyttan… – MEN ökar också komplexiteten avsevärt!

Offline mode kräver ”databas” och/eller kö i appen. Teknikval (SqLite..)?

Annat system

Synkning krävs före/efter offline. Synkprotokoll ganska komplexa och har ibland varit buggiga. Egenutveckla vs köpa? I enkla fall synkas hela filer, i andra fall enstaka dataposter (jmfr Evernote och Simplenote).

Page 16: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

MOLNET KRÄVER INTEGRATION – MÖNSTER

Page 17: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

17

”Eget” OS.

Moln-lev typ 1 Moln-lev typ 2

”Eget” Win- dows.

Moln-lev typ 3

Kö. Lagring.

Moln-lev typ 4

Egen- utvecklade kod-moduler.

Moln-lev typ 5

Hel appl.

Diverse interna system... Stort integrations-

behov

Diverse externa system... Diverse appar...

Hur fixa brandvägg,

DMZ, proxys…?

Page 18: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

18

Data integration •  Det är information i sig som delas på eller utväxlas •  Substantiv (t ex kundpost 123456789)

•  Delad databas, filöverföring, kö... mm

•  Ofta enkelt och beprövat •  Kanske inte tillräckligt bra •  Väldigt varierande egenskaper •  Kan vara en del av s k Master Data Management

(se Wikipedia etc)

Page 19: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

19

Functional integration •  Det är programlogik som delas på •  Verb (t ex beraekna_raenta för konto 987654321) •  Ofta ger logiken till resultat ngn datalagring

•  Beräkningsalgoritm, stored procedure, SOA-tjänst, COM-objekt,

RMI-anrop... mm

•  Ofta mer komplext •  Motsvarar högre behov •  Väldigt varierande egenskaper

Page 20: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

20

Olika topologier för informationsutbyte

Olika informations-

utbytesmönster

Olika lagrings- mönster

= Någon faktiskt integration Varje integration: har (minst) tre typer av egenskaper :

Page 21: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Informationsutbytesmönster

•  Hur initiativ tas till informationsutbyte •  När i tiden initiativ respektive dataresultatet

uppstår (nu, strax, månadsslut…) •  Vilken part som tar initiativet (den som har datat

eller den som behöver datat eller den som ber om lagring/uppdatering).

•  Ex: –  SOA-anrop –  Meddelandesändning –  Resource Oriented Architecture –  Månadsbatch –  Event Driven… 21

Page 22: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Informationsutbytestopologier

•  Vilka parter som kommunicerar •  Var parterna är

–  Hur parterna relaterar till varann –  Vilka skikt som finns inom integrationen –  Vilka ansvarsområden som uppstår –  Speciella middlewarebehov?

•  Ex:

–  Alla-till-alla –  Nav –  Buss –  Nav tillsammans med nav (en stor org. har ofta flera)…

22

Page 23: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Lagringsmönster

•  Var information lagras •  Hur informationen är uppdelad, dubblerad etc

•  Ex:

–  Central lagring –  Replikerad –  Cachead –  Lagring för MDM (Master Data Management)…

23

Page 24: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

24

Olika topologier för informationsutbyte

Olika informations-

utbytesmönster

Olika lagrings- mönster

Så, varje integration har (minst) fyra helt olika typer av egen- skaper :

Dataintegr. Funk.integr.

Page 25: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

25 www.eaipatterns.com

Hohpe har skrivit mycket om integrationsmönster. Ex:

Page 26: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

26

Integrationsförväntningar

•  Applikationer förväntas vara väl integrerade med varann numera (oavsett outsourcing eller moln).

Std.syst Bank- konto

Std.syst Fond- konto

Skr.sytt. syst Leasing- konto

Engagemangsbild

Front-end-

integr

•  T ex Engagemangsbild för en kunds alla förhållanden hos leverantören – ”front-end-integrering”.

Bokf- syst

Back-end-

integr

•  Eller integrerad supply chain management eller att förse bokföringen med info – ”back-end-integrering”.

•  Mer och mer köps standard-applikationer som måste integreras med varandra

S k stup-rör

Page 27: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

27

Typiska egenskaper, front-end integration/SOA

•  Ofta behövs purfärsk info – online hela vägen

•  Ibland duger halvfärsk info – async/batch/replikering

•  Client/server: –  svarstid? –  stabilitet? –  trådning?

•  Webb: –  som C/S? –  frames? –  portlet/webpart? –  master? –  inloggning?

•  Bakomliggande arkitektur –  SOA/WS:

•  felhantering till UI räcker? –  EAI/ESB:

•  prestanda, latenstid? •  overkill, krångligt, dyrt?

Bredvidläsning

Page 28: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

28

Typiska egenskaper, back-end integration/SOA

•  Oftast inget behov av purfärsk info – async/batch/ replikering

•  Fil: –  övervakning?

•  Enkel integr.prod –  t ex kö?

•  Bakomliggande arkitektur –  SOA/WS:

•  övervakning? •  kö?

–  EAI/ESB: •  stor produkt? •  formatkonvertering? •  kontroll?

Bredvidläsning

Page 29: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Användare/inloggning •  Väldigt vanligt att varje moln själv vill vara master för

användarinfo. •  SaaS-affärssystem har ofta egna tabeller för detta •  Iaas och Paas kan ha möjlighet att integrera med AD

etc. •  Annan variant är Single Sign On (SSO) med federering,

SAML2 etc –  SAML2 verkar slå igenom men är tyvärr väldigt komplicerat –  Inte så bra stöd hos Microsoft on-premise, bättre i Azure... –  Exempel: Mindre komplex ”token-utställare” baserad på AD –  Java Web Token (JWT) mycket behändigare än SAML2?

•  Köra AD i molnet? Se t ex https://forums.aws.amazon.com/servlet/JiveServlet/download/30-38001-150845-2806/amazon%20centalized%20management%20environment.pdf

29

Page 30: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Referensarkitektur •  Referensarkitektur verkar betyda ganska olika saker för

olika personer – när man söker hittar man ofta varierande metanivåer ;)

•  …dvs är det en bild av en arkitektur i sig, eller var en arkitektur passar in och hur den ska förvaltas, mm? Hur skapar man mer tillämpade referensarkitekturer för faktiska projekt?

•  CORA verkar vara en ovanligt fullödig (”icke meta”) referensarkitektur att utgå från: http://www.coramodel.com

•  Var uppstår ”molnfrågor” i en sådan modell?

30

Page 31: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

31 H2A (Human-to-Application)… B2B (Business-to-Business)…

And

ra p

arte

r

Page 32: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

And

ra p

arte

r

32

Främst PaaS, IaaS Främst SaaS,

PaaS, IaaS

Främst IaaS, iPaaS, +kö

Främst PaaS, IaaS ?

Främst SaaS, PaaS, IaaS

Här uppstår potentiellt molnkommunikation, måste optimeras…

Båda dessa områden extra

viktiga vid moln!

Page 33: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

33

Logga!

•  Kommer alltid att behövas för att kunna göra detektivarbete •  Någon bugg kommer det alltid att vara, du behöver loggen för att

försvara dig – kunna fördela ansvar vid fel!

•  Varje nod behöver logga både in/ut, särskilt då du kommunicerar med molnet och andra externa parter

•  Två sorters logg behövs vanligen: –  In/ut-meddelandeinnehåll

•  Kan även ev. vara bas för händelsestyrd arkitektur, krash-restore, uppsättning av testsystem... –  Logga vad programmet beslutar sig för –  Verbosity bör gå att styra med konfigurering

•  Loggkomponenter får inte ha komplex arkitektur i sig för då går det inte att logga när det blir fel där, moment-22.

–  Gärna enkla sekvensiellt filer –  Analys kan ev. göras genom att i efterhand ladda in filerna i SQL-db

•  Loggning kan också ge debiteringsunderlag eller möjlighet att attestera fakturor...

Page 34: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

34

”Exponentiell spaghetti”

•  Antalet systemsamband ökar exponentiellt med antalet integrerade applikationer (”Metcalfe's law”)

•  Risk för röra, trögrörlighet och kostnader i applikationsförvaltning och drift! •  Begreppet Inter-application spaghetti myntades av Gartner på 90-talet •  SOA/moln-spaghetti är också spaghetti! Men är det alltid ett problem? Vi får

se...

Page 35: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

35

Topologier: Nav, hub, ESB (Enterprise Service Bus)

Appl 1

•  Topologin för många avancerade integrationsprodukter •  Minskar risken för ”inter-application spaghetti” •  Potential för kontrollerad alla-till-alla-kommunikation •  Risk för duplicerad affärslogik i ”routing-logiken” •  Riskerar bli single-point-of-failure •  Viktigt att info-modellera ”objekt-modell”. Läs t ex om OAGIS •  Erbjuder vanligen info-formatkonvertering •  Ex: BizTalk, IBM, BEA (Oracle), WebMethods (Software AG)... •  Men hur passar nav i molnet? iPaaS slår igenom?

Appl 2

Appl 4

Appl 3 = integr-logik, central och inom varje appl.

Page 36: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

36

Anropsmässig trelagers-stack

”Ren datakom” TCP/IP dominant idag

”Ren datakom”

Sladd, radio

Kommuni- cerande applikation

Kommuni- cerande applikation

Web Services, MQ etc i enkelt fall

Integrations- teknik

Integrations- teknik

Jämför med den ”mera nertill detaljerade” sjulagers OSI- stacken

Öve

rens

kom

mel

ser /

kon

trakt

Page 37: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

37

Definitioner i femlagers-stack

”Ren datakom” TCP/IP dominant idag ”Ren datakom”

XML-schema t ex Syntax- definition

Syntax- definition

Semantik- definition Word-dokument

RDF/OWL?

Semantik- definition

Svårt

Process- definition Visio-fil eller

BPMN, BPEL...

Process- definition

Svårast

Web Services, MQ etc i enkelt fall

Välj integrations- teknik

Välj integrations- teknik

Öve

rens

kom

mel

ser /

kon

trakt

Sladd, radio

Page 38: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Grund- datakomm.

Syntax- definition

Syntax- definition

Semantikdefinition

Process- kontext

Färskhets- behov

Juridisk kontext

Säkerhets- kontext

Grund- datakomm.

Applikation A Applikation B

Service Level

Juridisk kontext

Säkerhets- kontext

Service Level

Kostnad Kostnad

Öve

rens

kom

mel

ser

/ av

tal

/ ko

ntra

kt Zoom in

Formell Konvention

Process- kontext

Färskhets- behov

Semantikdefinition

Formell Konvention

Page 39: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

39

Definitioner i femlagers-stack

”Ren datakom” TCP/IP dominant idag ”Ren datakom”

XML-schema t ex Syntax- definition

Syntax- definition

Semantik- definition Word-dokument eller

RDF etc

Semantik- definition

Svårt

Process- definition Visio-fil eller

BPEL etc

Process- definition

Svårast

MQ i enkelt fall t ex Välj integrations- teknik

Välj integrations- teknik

Öve

rens

kom

mel

ser

Sladd, radio

Page 40: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

40

SOA–EAI–ESB, min tolkning...

SOA-tyngdpunkt: Anrop av tjänster

SOA

EAI

EAI/ETL/BI- tyngdpunkt: Flöden av data

ESB

ESB-tyngdpunkt: Anrop samt anropsinfrastruktur (samt flöden)

...en hel del överlapp

ETL

BI

EAI: Enterprise Application Integration ETL: Extract-Transform-Load BI: Business Intelligence, data warehouse

Page 41: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

41

Web Services

ESB

Web Services vs SOA–EAI–ESB

WS helt centrala för interoperabla

SOA-anrop

Ökande användning av WS för att hälla

in/ut data

WS helt centrala för interoperabla

ESB-anrop

Om ESB (eller modern EAI) används som SOA-infrastruktur sker oftast anrop

med WS

Många gånger duger WS utan

annan infrastruktur för att skapa SOA

SOA EAI

EAI = Enterpr. Application Integr, ESB = Enterpr. Service Bus

Bredvidläsning

ETL

BI

Page 42: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

42

Ett antal nav/buss-lösningar har sålts in på: ”Du får kontroll”

+ Bra att kunna centralisera verksamhetslogik, ge överblick, mäta... -  Men VEM ska förvalta all logiken inne i navet/bussen? - Ibland svårt att delegera konfigurationsrättigheter till de ”rättmätiga ägarna” av verksamhetslogiken - Även om det går att delegera så har alla nav/buss-lösningar ordentligt höga inlärningströsklar. - Klickar man fel kan ”hela företaget stanna” om man lyckats införa nav/buss brett. Alltså en ”operatörsmässig” single-point-of-failure även om man clustrat och löst maskinmässig fault-tolerance - Man har tyvärr ofta erfarit en ”propp” inom central förvaltning av verksamhetslogik inne i nav/buss, så att verksamhetsförändringar försenats

Verksamhets- logikens troliga ägare, domänvist

Page 43: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

43

Black box

•  Inkapsling är en bra princip inom OO •  Tanken har förstås funnits länge, metaforen gissar jag kommer från

elektronikindustrin, t ex en elektronisk tändning sköts av en svart låda med några anslutningar men där ingen ska behöva bry sid om hur innanmätet är konstruerat, bara en spec uppfylls

•  Black box-tänket minskar antalet saker man måste bli överens om, det räcker att speca ytan/gränssnittet/funktionen – ”agreement is expensive”

•  En black box ska vara mycket självständig, innebär bl a att alla indata måste valideras strikt

•  SOA (och EAI/ESB) är starkt influerat av black box-principen

•  Svartlådan är förstås anroparens vy, tjänsteleverantören jobbar inuti svartlådan, förhoppningsvis i gott arbetsljus!

Bredvidläsning

Page 44: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

44

Grey box?

•  Black box-idén kanske inte håller helt? –  Säg att man ska upphandla en black box, sen ska den ju trots allt driftas,

personalen måste kunna hantera appservrar som krävs, databaser, middleware, OS

–  Man kanske också vill använda redan betalda licenser för sådan plattforms-mjukvara

•  I praktiken innebär det att man vill speca vissa saker om innehållet i en black box också, därmed uttrycket grey box (borde förstås hetat semi-transparent black box...)

•  En annan situation kan vara att man kan vilja inspektera programkoden inne i en black box för att lättare förstå vad den gör i ett udda läge (svårt speca allt hos gränssnittet)

•  Inspektering kan också snabbt behövas ifall t ex ett nytt säkerhetshot uppstått, eller då leverantören som ansvarar för en black box inte hinner med supporten eller har lagt ner

Bredvidläsning

Page 45: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

45

Kontrakt, överenskommelse

Process B

Process A

Kontrakt, t ex: - Info-innehåll - Driftkontrakt, SLA - Felavhjälpning - Vidareutveckling - Säkerhet - Pris, vite

Smörgåsbord av tjänster

“Black box” – anroparen ska inte behöva bry sig om innanmätet i boxen, bara vad den uträttar - kontraktet

Page 46: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

46

Information centric or process centric?

•  Stora debatter genom åren...

•  80-talet var starkt information centric •  90-talet starkt process centric (och objektorienterat) •  00-talet – viss balansering (komponenter som bas för

tjänster...)!?

Page 47: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

47

Information centric •  Stark betoning på de datatermer som verksamheten hanterar •  Vikt vid modellering av begrepp, semantik •  Ofta vill man överbrygga en hel verksamhet med en

genomgripande modell

•  + Ordning och reda, alla vet vad som gäller •  - Centralistiskt, kommer kanske inte i mål. Oflexibelt vid

omvälvningar såsom fusioner, dotterbolagsköp etc

•  Zachman, Texas Information Engineering ...

•  Nytändning i och med REST-vågen…

Page 48: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

48

Process centric och OO •  Betoning på processer, use cases •  Dessa leder till objekt (logik + state) •  Objekt behöver datalagring

(OO-db, SQL med klassisk modell eller ”köttfärsmodell”, OR-verktyg)

•  Datalagringen har inget egenvärde

•  + Processvyn är givande. Bra att termer måste motiveras •  - Processer kommer och går, inneboende data består...

•  OO-metoderna, OR-verktygen...

Page 49: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

49

Några verksamhets-scenarios

• En prisfråga mot en leverantör –  Frågan körs mot en lokal (replikerad) kopia av prisregistret

• En lagersaldofråga mot en leverantör –  Frågan körs online mot leverantören

• En faktura går till en kund –  Fakturan överförs via en kö på någon timme till kunden

Behoven ska styra ”temporal kvalitet” (dvs ”färskhet”)!

Page 50: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

50

Andra färskhetsbegrepp •  Det föreslagna datafärskhetsbegreppet är relativt ”gradvis”, men utfaller ofta i

de tre färskhetsgraderna som exemplifierades i fg bild

•  Master Data Management-ansatsen (MDM): –  Master Data (kund, produkt etc – lägre förändringstakt) –  Händelsedata (kundorder, bemanning etc – snabbare förändringstakt)

•  Helland & Box: –  Reference data (read-only) –  Activity-data & Per-User Data (state)

•  Ett annat vanligt ”motsatspar” ur färskhetshänseende som en del

infomodellerare hellre använder: –  Referensdata –  Instansdata

Page 51: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

51

Varför ändå inte alltid köra online/synkront, då är man ju säker på tillräcklig färskhet?

• Mikrosekund-färskt data överallt är väl trevligt som idé...

• Men online riskerar ge –  Sämre stabilitet (se nästa sida) –  Längre svarstider –  Sämre skalbarhet –  Högre kostnader

•  Särskilt via medium som Internet eller stort WAN

•  ...och ofta behöver inte allt vara så extremt färskt, 1-10 min fördröjning eller mer kan alltså vara helt OK beroende på verksamhetskraven - således optimera med avseende på färskhetskrav!

Page 52: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

52

Sannolikhet för stabilitet

•  En utmaning att få hög ”uptime” för ett sammansatt system med hårda beroenden (och/eller synkron karaktär)

•  Obeveklig matte: 10 bakomliggande system, 99% uptime vardera. Multiplicera sannolikheterna; 0,99*0,99*0,99*0,99*0,99*0,99*0,99*0,99*0,99*0,99 = 0,9910 = 0,90 endast, om de 10 är oberoende, kass!

•  Två varianter: både m a p oplanerade och planerade avbrott •  Asynkron grundkaraktär kan möjliggöra att presentation görs

allteftersom, jmfr Web Befordrar även upplevd prestanda, anrop kan ofta ske parallellt i tiden

•  Även andra nackdelar med hårda kopplingar. Jmf SOA-trenden med lösare kopplingar

Om alla tjänsterna behövs , synkront...

Tjänst Tjänst Tjänst Tjänst Tjänst …

(Även 0,995^10= 0,95 är kass, och 0,999^10= 0,99 är ganska dåligt)

Page 53: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

53

Sannolikhet för stabilitet

•  Föregående sida exemplifierade ett anropsberoende till flera tjänster •  Samma stabilitetsproblem uppkommer vid SKIKT-SJUKA, att man

har alldeles får många skikt av olika slag, vardera med sin egen uptime-sannolikhet som måste multipliceras...

Om alla tjänsterna behövs , synkront...

Tjänst Tjänst Tjänst Tjänst Tjänst …

Skikt 1

Skikt 2

Skikt 3

Skikt 10

Page 54: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

54

Hur höjer man ”uptime”? •  Om färskhetskraven alltså inte är jättehöga kan data

replikeras/cachas nära och onlineberoendena till många system minskas (se bild längre fram)

•  Olika cluster- och failover-lösningar. Komplicerade, dyra. Risk för felkonfigurering så de ändå inte funkar när de ska träda in.

•  Molnleverantören kan ge extra möjligheter till fail-over, men kan också stanna helt

•  Presentation allteftersom –  Asynkron grundkaraktär kan möjliggöra att presentation görs

allteftersom, jmfr Web (bilder, frames) –  Avancerad fet klient med trådning etc

–  Befordrar även upplevd prestanda, anrop kan ofta ske parallellt i tiden

Page 55: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Optimering kostnad/stabilitet

55

Åstad- kommen stabilitet

Tekniska åtgärder för stabilitet

För liten teknikhjälp till

stabiliteten

Risk för operatörsmiss-grepp pga teknisk

komplexitet eller att samverkan mellan olika teknik blir för komplex

Kostnad

Tekniska åtgärder för stabilitet

Kostnaden ökar kraftigt vid

avancerad teknik som syftar till

stabilitet

Optimalt band m.a.p. alla tre dimensionerna

Högsta stabilitet

Resonemanget utvecklas mer i www.definitivus.se > inlägg trendspaning > När hög tillgänglighet inte blir hög

Bredvidläsning

Page 56: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

56

Skalbarhet vid online/sync sämre än async •  All last fokuseras ofta ner i en central databasserver •  Allmänt hög last resp dyr server. •  Dessutom extra risk för låsningar vid hög last •  Databasservrar är fortfarande svåra o dyra att klustra för lastdelning •  Vanligt scenario:

Webb-server cluster

App-server cluster

Databas- server (ej cluster)

Repetition är inlärningens moder…

Page 57: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Ytterligare sätt att höja prestanda •  OM det är så att läsningar är det dominerande:

–  Cache, cache, cache… •  Öka databas-cachear •  RAM-databas? •  NoSQL? •  Egenskriven cache i appserver (OBS kostar att programmera/underhålla, jobbig att

testa) •  Använd ev inbyggda appserver- och webserver-cachear (äv separata) •  Webbsidorna måste ha korrekt http-inställningar så cachning sker i webbläsarna (OBS

färskhet kan stå mot prestanda) •  Om REST används, var noggrann med http-inställningar och URI-design

–  Replikering till lagring i molnwebbservern •  Molnwebbservrar i varje världsdel?

–  CDN – Content Delivery Network •  Hierarkiskt: Edge Servers i ”kanten av Internet”

–  Akamai, Azure, Amazon –  Kräver ofta CDN-anpassad html

•  P2P: BitTorrent, Akamai-variant, ”Spotify-stilen”… ställer speciella klientkrav

57

Page 58: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

58

Kortpraktikfall •  En bensinmack-kedja för några år sen

•  Kör normalt online mot server-central för kontokorts-kontroll och –debitering

mm (request/response pseudo-synkront)

•  Ifall centralen ger timeout eller kommunikationen faller går macken över i off-line mode: –  Macken funkar fortfarande –  Verksamhetsreglerna ändras: Man kan bara tanka för några hundra kr – balanserar

risken –  Alla transaktioner köas upp i macken och överförs asynkront snyggt och prydligt

när man glider över i on-line mode igen

•  Klart minskade teknikrisker, men å andra sidor kostar det mer att systemutveckla två moder. Ska balanseras mot failover- kommunikation och failover-cluster centralt...

Page 59: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

59

Lite om granularitet •  Fine grained – fin granularitet – finkornigt –

symaskins-API – chatty – pratigt API :

Många, små anrop

•  Coarse grained – grov granularitet – grovkornigt – chunky :

Större, men färre anrop

Page 60: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

60

Granularitet för SOA

Rik klient

Server

Pratigt c/s- protokoll kan vara OK

Rik klient?

Server

Mindre pratigt protokoll behövs i SOA-fallet, lösare kopplat etc

Rik klient

Server

Kanske behöver pratigt c/s-protokoll – men ej bra för tjänsteanrop från andra apps! C/s-protokoll må vara WS men då ej SOA...

SOA

Anrop från hängrännor o andra apps

Ej SOA . . . . . . . . . . SOA

Bredvidläsning

Page 61: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

61

Rätt arkitektur för rätt sak!?

Rik klient

Applikationens server-skikt

SOA-skikt

Anrop från hängrännor o andra apps

Verksh- objekt 1

Verksh- objekt 2

Verksh- objekt n ...

•  C/s-stilen •  Får vara hårt kopplat •  Får vara fingranulärt •  ACID •  OO ofta •  Klen interoperabilitet

•  SOA-stilen •  Ska vara löst kopplat •  Ska vara grovgranulärt •  Ej ACID •  Ej OO •  Stark interoperabilitet Vanlig OO-

återanvändning!

Bredvidläsning

Page 62: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

62

I molnet…

Rik klient

Applikationens server-skikt

SOA-skikt

Anrop från hängrännor o andra apps

Verksh- objekt 1

Verksh- objekt 2

Verksh- objekt n ...

•  Går detta bra? •  Symaskinsinterface riskfyllda vad gäller latenstid •  Mycket väldesignad asynkron användning kan gå bra, jmfr Googles successiva svar •  Kan inte ha OO-anrop, snarare SOAP eller REST.

•  SOA-stilen •  Torde gå bra mot molnet!

Om detta nu ligger i molnet…

Bredvidläsning

Page 63: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

63

Composite services (komponerade/sammansatta legoklossar)?

Rik klient

SOA-skikt

Anrop från hängrännor o andra apps

Verksh- objekt 1

Verksh- objekt 2

Verksh- objekt n ...

Dettta kan vara OK komponering av sammansatt (composite) tjänst – när man behöver ACID! = OO-återanvändning.

Detta kan vara OK komponering vid: •  Read-only •  Eller när det är OK att uppdateringar får gå fel •  Eller när man tar hand om felen med långa affärs-transaktioner e dyl = SOA-återanvändning.

Composite service

Bredvidläsning

Page 64: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

64

XML och sammansatt data

Rik klient

Server

Pratigt c/s- protokoll kan vara OK

Rik klient?

Server

Mindre pratigt protokoll behövs i SOA-fallet

En möjlighet att kunna få större granularitet är att XML lätt lånar sig till att blanda olika sorters data på ett hierarkiskt sätt – något som är mycket svårt i ett vanligt resultat-set; . Kund-id . Fakturahuvud

. Fakturarad . Fakturarad . Fakturarad

Bredvidläsning

Page 65: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

65

Fingranulärt vs redundant data vs grovgranulärt

SQL med en massa småanrop: Läs Kund Läs Fakturahuvud för kund-id:t Läs Fakturarader för faktura-id:t “chatty”, fingranulärt, problem med latenstider mm

SQL med ett anrop och join: Läs Fakturarader med Fakturahuvud med Kund ger kund1data fakturahuvud100data fakturarad1data kund1data fakturahuvud100data fakturarad2data kund1data fakturahuvud100data fakturarad3data kund1data fakturahuvud100data fakturarad4data kund1data fakturahuvud100data fakturarad5data dvs massor av upprepat, redundant data

XML för SOA-tjänst: Kund1 . Fakturahuvud100

. Fakturarad1 . Fakturarad2 . Fakturarad3 . Fakturarad4 . Fakturarad5

grovgranulärt, högre nivå, ingen redundans

Bredvidläsning

Page 66: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

66

Fasad och grovgranulärt •  Hittat på nätet:

Façade: Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use

•  Fasad kan tolkas på (minst) två sätt, enligt min åsikt ett bra och ett dåligt...

Ej grovgranulärt, ej SOA, ej lätthittat, ”kontraktet” betyder noll

L o-bra

Grovgranulärt, SOA, lätthittat

J bra

”skicka_till_Movex” Tunnel-fasad

Liten tjänst Kund

Liten tjänst Fakt_hvd

Liten tjänst Fakt_rad

Anrops-ex: skicka_till_Movex(”Kund”,param1,param2) skicka_till_Movex(”Fakt_hvd”,param3) skicka_till_Movex(”Fakt_rad”,param1) skicka_till_Movex(”Fakt_rad”,param1)

”skicka_fakt” Komposit-fasad

Anrops-ex: skicka_fakt(”param1,param2,param3)

...betänk ACID-frågan...

Liten tjänst Kund

Liten tjänst Fakt_hvd

Liten tjänst Fakt_rad

Särskilt viktigt om du skapar

publika molntjänster!

Bredvidläsning

Page 67: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

67

AJAX-trenden

Webb- server

SOA- servrar

Web vanligen mindre pratigt

Webbläsare •  AJAX innebär bl a att

använda omfattande Javascript-kod i webb- läsaren för att göra klienten rikare.

•  T ex validering för varje fält – ger mycket pratigare protokoll (om än med högre funktionalitet) •  Riskfyllt ifall denna pratighet fortplantar sig till bakomliggande SOA-skikt

Webb- server

SOA- servrar

AJAX vanligen mer pratigt

Webbläsare & AJAX-kod

?

AJAX = Asynchronous Java script And XML

Bredvidläsning

Page 68: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

68

Vad menas nu med löst kopplad? •  Olika oberoende-aspekter:

–  Sessionslöst/stateless *) –  Varje anrop/ meddelande är

självständigt –  En reaktion mot krånglig

“distributed object life-cycle management” inom DCOM/Corba/Java

–  Tydligt definierade ansvarsgränser (“kontrakt”) och maskingränssnitt (syntax, semantik, process...)

–  Vanligen inte ha ACID 2PC, skulle ge för hårda kopplingar mm

–  ”Löst kopplat i kalendertiden”, smörgåsbordstanken, ”composing an application”, konfigurera den långt efter stora programmerings-jobbet (testbarhet?)

–  Interoperabilitiet – färre teknikdetaljer måste vara exakt samma i bägge ändar

–  Ev kunna ha ”extremely late binding” t ex via UDDI – dock inte alltid lämpligt.

–  (En del menar att löst kopplat alltid innebär asynkront)

•  ...allt detta kan ge större flexibilitet, framtidssäkring och återanvändning! Viktigt i intern SOA, ännu viktigare vid moln!

*) Säkerhetskontext må få vara sessionsorienterad

”agreement is expensive”...

Bredvidläsning

Page 69: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

69

Andra sorters lös koppling också •  Lös koppling att sent i tiden i ett utvecklingsprojekt

kunna ändra baserat på verksamhetskrav (samt ändra fortlöpande)

•  Lös koppling för flexibel driftkonfigurering (inga fysiska adresser angivna, gå via proxy, extremely late binding etc)

•  Lös koppling för stabil och skalbar exekvering (stateless, ingen ACID mm enl föregående bilder)

Bredvidläsning

Page 70: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

70

ACID – ”tekniska transaktioner” •  Atomicity, Consistency, Independency, Durability •  Kallas även atomära transaktioner, before-image-journaling eller allt-

eller-ingen-uppdatering. •  Ibland behövs two-phase-commit (2PC), 3 eller fler parter •  Uppdateringar garanteras att inte kunna bli ”halva” •  Självklart för relationsdatabasuppdateringar men inte för

systemintegration/SOA •  Utan ACID risk att t ex en försäljning registreras i handelssystemet

men tappas bort i ekonomisystemet

Egentligen borde man väl alltid sträva mot ACID, men...

Tjänst B

Anropande A sammansatt tjänst

Anropsgränssnitt

Tjänst C

2PC

Kvalitets-mönster ACID

Page 71: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

71

...men ACID för integration kan ge problem

•  Inkompatibla teknikmiljöer (trots XA-initiativet t ex)

•  En del system-integrationsprodukter stöder inte alls ACID

•  Ger hårda sw-beroenden (versionsbyten, leverantörsinlåsning etc)

•  Risk får dålig ”uptime” •  Kan bli riktigt långsamt (faktor

10 för 2PC kan vara realistiskt) •  Dålig skalbarhet för 2PC pga

långa databasinterna lås vilket ger deadlock-timeout

•  Alltför “hård koppling”

Tjänst B

Anropande A

SOA-snitt. Vanligen EJ lämpligt med ACID och 2PC här!

Tjänst C

X

Page 72: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

72

Lösning 1: ACID under ytan!

•  Modellera tjänsterna så att inte flera skulle behövt anropas inom en uppdaterande ACID-transaktion (om nu detta är möjligt)

•  Ha gärna ACID under ytan, inom tjänsten

•  Ex 1: Modellera Kontoöverföring (inte Kontotrans och varsitt anrop med plus- och minusbelopp)

•  Ex 2: Modellera fakturahuvud och fakturarader tillsammans i ett anrop

•  Alltså motiv för TVÅ saker: –  Grov granularitet på tjänstegränssnitt

(dvs större-men-färre anrop)…

–  Grov granularitet på tjänsterna (dvs stora “SOA-domäner”)

–  Men återanvändning etc är istället lättare med liten granularitet…

–  Microservices, immutable services etc ger istället små tjänster... –  …så denna fråga måste balanseras och optimeras!

Tjänst B ACID under ytan

Anropande A

SOA-snitt Ej ACID här

ACID

Tidsmönster Nu

Page 73: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

73

Lösning 1a: ACID under ytan + async

•  Liknar Lösning 1, fast för att slippa så hård koppling mellan två lagringar görs den andra lagringen via äkta leveransskyddad asynkron kö

•  Kallas ibland deferred processing – senarelagd bearbetning

•  B måste ta ansvar även för C •  Bara ok ifall färskhetskraven är lägre i C •  Tyvärr behövs vanligen

även felflöde tillbaks från C (logiska och tekniska fel)

Tjänst B ACID under ytan

Anropande A

SOA-snitt Ej ACID här

Kö Tjänst C Modul för deferred processing

End-to-end async ACID (se nästa sida)

Annan SOA-domän

Tidsmönster

Strax + Nu

Page 74: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

74

Olika ACID-exempel för integration (i detta exempel: ”avisering” till annat system)

2PC-variant, synkont

Pgm B Write 1 . . . Write 2

Allt

-elle

r-in

get

Enkel

Pgm A Write 1 . . . Write 2

Allt

-elle

r-in

get

Pgm C Write 1 . . . Write 2

Allt

-elle

r-in

get

Pgm D Read & delete . . . Write

Allt

-elle

r-in

get

Asynk med äkta leveransskydd

Allt

-elle

r-in

get

Page 75: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

75

Behövs ofta asynkront returflöde

Pgm C Write 1 . . . Write 2

Allt

-elle

r-in

get

Pgm D Read & delete . . . Write

Allt

-elle

r-in

get

Normalflöde Returflöde

Allt

-elle

r-in

get

Både för tekniska och logiska undantag Och se upp för giftpiller som kan ge ”kraschloop”, finns ofta felkö för detta…

Page 76: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Om ACID finns så borde väl BASE finnas – bas/syra J

•  BASE –  Basically Available - Soft-state - Eventual consistency

–  Teoribygge kring principen att uppdatering kan tillåtas få ske strax

istället för nu –  Föregående bild 1a:s “deferred processing” är ett exempel på

BASE-principen –  Extra populärt i REST-världen och när man behöver massiv

skalbarhet och hög tillgänglighet (ofta förespråkas då RSS etc. eller retry-loopar för stabilitet…)

–  Vanligt i molnlagring med eventual consistency!

–  Se exempelvis http://queue.acm.org/detail.cfm?id=1394128

76

Kvalitets-mönster BASE Tidsmönster

Strax

Page 77: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

77

Lösning 1b: BASE i Composite Service

•  En mer generaliserad variant av 1a, där B och C ligger ”på samma nivå”

•  Bara ok ifall färskhetskraven är lägre i både B och C.

•  BASE – deferred update •  Obs, ifall A också har en databas så

måste man lösa även den ACID/BASE-frågan

•  Alternativ till säker kö kan vara avancerad omsändnings-hantering + dublettkontroll (idempotency)… många REST-förespråkare gillar detta

Sammansatt Tjänst BC ACID mot två köer oftast ok

Anropande A

SOA-snitt Ej ACID här

Köer

Tjänst B Uppdat strax

End-to-end ACID

Tjänst C Uppdat strax

ACID

Page 78: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

78

Lösning 1b: BASE i Composite Service

•  Eller RSS/Atom som kö – och då kanske endast EN feed för att slippa behov av ACID i skrivningen!

Sammansatt Tjänst BC ACID mot två köer oftast ok

Anropande A

SOA-snitt Ej ACID här

RSS/Atom

Tjänst B Uppdat strax

End-to-end “ACID”

Tjänst C Uppdat strax

Page 79: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

79

Lösning 1c: Vid read-only, sammansätt utan ACID-behov

Tjänst X

SOA-snitt

Tjänst Y

Tjänst Z

Anropare 2

WS

Se upp med sammansatta tjänster (composite services), det ser ju så förledande snyggt ut i Powerpoint fast kan ge problem. Men read-only är OK!

Implem. av X

WS wrap

WS wrap

Implem. av Y

Sammansatt tjänst A

Anropare 1

WS

WS

Page 80: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

80

Lösning 1d: ”Fuska”, sammansätt med ACID i en teknik??

Tjänst X

SOA-snitt

Tjänst Y

Tjänst Z

Sammansatt tjänst A

Anropare 1

Anropare 2

WS WS

Funkar endast bra ifall samma programmerings- miljö i A, X, och Y ! Överväg noga – kan ge alltför hård koppling L

OO-anrop m uppdatering

ACID

Implem. av X

WS wrap

WS wrap

Implem. av Y

Samma db eller 2PC L

Ej ACID

OO-anrop går ej bra till molnet…

Page 81: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

81

Lösning 2: Avstämningar!

•  Välfungerande 60-talslösning •  Skapa buntsummor, dagssummor e dyl i bägge

ändar, skicka dessa en annan kommunikationsväg

•  Manuell koll eller automatiskt larm •  Korrigera manuellt eller automatiskt

•  Manuell korrigering kan mycket väl vara optimalt! •  Logga! Behövs för att kunna göra detektivarbete.

Avstämning = eng. reconciliation

Sums for reconciliation

= ?

Page 82: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

82

Lösning 3: Visa upp uppdateringsfelen i användargränsnsittet

•  Ifall det är ett användargränssnitt ovanpå tjänsteanropen går det ibland att låta felsituationen och efterföljande åtgärdsbeslut direkt överlämnas till användaren

•  Kräver god felupptäckt •  Kräver användarvänlig dialogdesign •  Kräver tillräckligt kunniga användare

•  Funkar inte bra server-till-server

•  Logga! Behövs för att kunna göra detektivarbete, kunna fördela ansvar vid fel! In/ut-meddelandeloggning + logga vad programmet beslutar sig för

!?

Page 83: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

83

Lösning 4: Optimerad sekvens (”fail early”) + felupptäckt!

•  Optimerad variant av ”sista utvägen”: 1.  Anropa uppdaterande tjänst först som har

sämst sannolikhet att fungera, B i figuren 2.  Ifall det skulle bli fel i B, ha begränsad

retry-loop i A eller låt användaren göra retry. Gör ej C-anrop.

3.  Tjänst B måste klara dubletteliminering (s k idempotency)!

4.  Anropa sedan C och hoppas att den inte kraschar (dock låg sannolikhet)

5.  Ifall det ändå blir fel, larma till lång verksamhetstransaktion för kompensering etc.

Tjänst C (uppdat)

Anropande A

Ej ACID

Tjänst B (uppdat)

instabilare nät+tjänst

t ex till molnet

stabil

Page 84: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

84

Lösning 5: ”Kontrollerad inkonsistens”

•  Tillåt ”kontrollerad inkonsistens” –  Modellera så att relaterade objekt kan få vara

inkonsistenta innan de verkligen behövs –  T.ex. tillåt fakturarader utan fakturahuvud temporärt

(ifall separat fakturahuvudskrivning skulle misslyckas) –  Kräver felupptäckt och rättningsåtgärd innan fakturan

kan sändas ut –  Dyr och komplex undantagshantering –  Inte ovanlig i praktiska fall, t ex bokföring:

Avstämningar före bokslut

Page 85: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

85

Lösning 6: Saga-mönstret •  Tillhör den ”modernare” tidens mönster... •  Ex på sammansatt trans:

1.  Hyrbilsbokning 2.  Hotellbokning på annan sajt 3.  Flygbokning på tredje sajt

•  NEEJ, fanns ingen flight, måste backa de två tidigare bokningarna...

•  Hade varit himla bra med 2PC och commit-rollback, men inte trovärdigt

•  Saga-principer, t ex: –  Steg som är enklast att backa/kompensera läggs först –  I varje steg som lyckas adderas en anteckning i routing slip

•  I anteckningen skall också stå var/hur kompensationsåtgärd kan nås –  Om ett steg misslyckas, går man baklänges i kedjan i routing slip

och utför alla kompenseringarna –  Nackdel: Inte alltid lätt att i praktiken kompensera –  Vem håller rätt på att inte kedjan bryts, routing slip kommer bort...? –  Kompensering kan vara lättare med s.k. immutable services (kan ej

ändras när väl skapade – lägg istället till kompenserande, jmfr huvudbok)

Routing slip

Page 86: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

86

Lösning 7: Långa verksamhetstransaktioner!

•  Klar trend att koppla lösare vid systemintegration

•  Måste därvid tänka att en ”transaktion” kan pågå i timmar, dagar eller veckor innan den är definitiv

•  Eng. Long Running Transaction (ordet transaktion här är alltså inte ett tekniskt begrepp som i SQL)

•  Flera av de tidigare lösningarna är i själva verket varianter av långa verksamhets-transaktioner

•  Behövs ”compensation schemes”, dvs backnings-funktioner insystemerade i applikationerna (radera inte – betona spårbarhet jmfr kreditfaktura)!

•  Dessa initieras manuellt eller automatiskt

•  Håll ev ordning på dem med tekniskt workflow / orchestration

•  OBS att modellering, programmering och testning av långa verksamhetstransaktioner är mycket tidskrävande och dyrt! Se alltså dessa som en sista utväg!

Page 87: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Applikation A

Ordrar

Enrich- ment Slå upp, infoga

Applikation B

Ex: Artikelnr men ej

artikelpris

Ex: Prissatta ordrar

Applikationsintegration med ”enrichment” och övervakning

Komplet- teringsdata

Ex: Pris

Ordrar

Verksamhetens transaktionsövervakning

Ev. om- körning av trans!

Page 88: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Andra kvalitetsfrågor •  Tillgänglighet/uptime

–  Onlinelösningar alltid känsliga, särskilt för dålig 3G-täckning, men även för serverstopp.

–  Varje mellanserver adderar risk för dålig tillgänglighet –  Synkrona anrop till många parallella tjänster ger dålig uptime

•  Prestanda/svarstider –  3G-nätet har långa fördröjningstider, även ifall bandbredden

är hög – stort problem vid ”pratig kommunikation” –  Både bandbredd och latens blir sämre vid dålig radiosignal –  Synkning av stora filer en vanlig prestandabov

•  Säkerhet –  Stort område; virusskydd, kommunikationskryptering.

lagringskryptering, villkor för molntjänster, inloggning, ”remote wipe” mm mm…

Page 89: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Summering •  Naiv användning av

integrering leder till bort-tappade uppdateringar, ofärskhet – sämre infokvalitet!

•  Ibland tas inte detta på allvar alls. Ibland spelar det ingen roll.

•  Om möjligt, bäst är 1: ACID under ytan

•  Därefter 1a/1b: BASE (men drar mer anropskod + idempotency-kod)

•  De andra lösningarna kan vara nyttiga men de knuffar över undantagshantering till verksamhets-processerna och därmed till användarna!

•  Asynk är mer stabilt men leder till mindre färskt data

•  All asynkron felhantering är mycket dyrare att utveckla/testa och riskerar ha fler kvarvarande buggar

•  Alla långa verksamhets-transaktioner är dyra att utveckla/testa, håll nere antalet!

89

Page 90: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Balansera/optimera! •  Naiv användning av

integrering leder till bort-tappade uppdateringar, ofärskhet – sämre infokvalitet!

•  Ibland tas inte detta på allvar alls. Ibland spelar det ingen roll.

•  Om möjligt, bäst är 1: ACID under ytan

•  Därefter 1a/1b: BASE (men drar mer anropskod + idempotency-kod)

•  De andra lösningarna kan vara nyttiga men de knuffar över undantagshantering till verksamhets-processerna och därmed till användarna!

•  Asynk är mer stabilt men leder till mindre färskt data

•  All asynkron felhantering är mycket dyrare att utveckla/testa och riskerar ha fler kvarvarande buggar

•  Alla långa verksamhets-transaktioner är dyra att utveckla/testa, håll nere antalet!

90

$ L

$ L

$ L

$ L $ L

Page 91: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

91

Tekniken sticker upp sitt fula tryne...

Verksamhet

Teknik

När saker inte GÅR att göra obrytbart eller exakt samtidigt

Verksamhetsmässigt orsakade långa verksamhetstransaktioner

Tekniskt orsakade långa verksamhetstransaktioner

Kräver

Funktionalitet i verksamhetsstödet (kompensation etc)

Kräver

Page 92: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

92

Processdefinitions-lagret detaljerat – ta hand om långa verksamhetstransaktioner

”Ren datakom” ”Ren datakom”

HW

Syntax- definition

Syntax- definition

Semantik- definition

Semantik- definition

Process- definition.

Visio-filer eller BPEL etc

Välj integrations- produkt

Välj integrations- produkt

Öve

rens

kom

mel

ser

Workflow, orchestration, business process automation, choreography, arbetsflöden, ärendehantering etc – behandlas här som ungefär samma begrepp

Business workflow - - - - - - - - -

Ta om hand verksamhetsmässigt orsakade långa verksamhetstransaktioner

Business workflow - - - - - - - - - Technical workflow

Technical workflow Ta om hand tekniskt orsakade

långa verksamhetstransaktioner

Bredvidläsning

Page 93: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

93

P-flagga!

•  När vi ökar användningen av SOA och moln är det alltså mycket troligt att antalet tekniskt orsakade långa verksamhetstransaktioner ökar

•  Vi måste ge användarna en chans att se att visst data endast är preliminärt!

•  Användargränssnitten borde avspegla detta, förslag: –  Skriv ut ett ”P” vid siffror som endast är preliminära

Saldobild Namn: Sven Svensson Vecka 34: 32 768 Vecka 35: 25 432 Vecka 36: 36 443 P

P-flagga

Bredvidläsning

Page 94: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

94

Funktionell modellering vs teknik •  Krocken funktionella krav – tekniska krav vid tidiga

projektskeden: –  Har funnits en risk att man glömt bort att överväga

färskhetsbehov då man tar fram datamodell, bör-process, funktionella krav etc. Detta borde tillhöra samma modelleringsfas!

–  På samma sätt har man ofta glömt tänka ut funktioner för compensation – de måste ju finnas i applikationen, tekniken löser inte detta automatiskt!

Bredvidläsning

Page 95: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

95

Kortpraktikfall

•  Ett företag inom bank/finans/försäkring –  1994 – SOA/moln som mönster är ju egentligen inget nytt! –  Mångkanal-stöd skulle skapas –  Det fanns en gammal Cobol-applikation i stordator som

SaaS (fast det namnet inte fanns då) –  Cobol-koden försågs med “överrockar” så att det gick att

anropa dem online/synkront ifrån Gupta och VB –  Tjänsterna var på ganska hög nivå och innehöll mycket

affärslogik bakom

–  Skryt: Teknikrörläggningen har bytts flera gånger men själva tjänste-definitionerna (syntax/semantik) överlevde i stort sett oändrade i många år (för utökat antal kanaler)

Även jättegammal appl-kod kan gå att

använda i molnet – om den har bra

egenskaper i övrigt!

Page 96: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

96

Egenskaper i detta praktikfall •  Löst kopplade •  Sessionslösa/stateless – varje

tjänsteanrop oberoende •  Ingen ACID 2PC mot Windows-

miljön (däremot pålitlig ACID bakom tjänsten)

•  Ingen speciell säkerhets-lösning – ”två datahallar ihopkopplade med säkrade sladdar”

•  Noga uttänkt felhantering

•  Modelleringen av tjänsterna viktig – det möjligas konst (vad finns i stordatorn, vad behövs i användar-gränssnittet)

•  Vi diskuterade att skapa självbeskrivande info för anropen (såsom idag XML är) men hade inte tid att enas om det.

•  Vi höll på att modellera Överföring genom två separata insättning/uttag. L Istället gjorde vi en mer grovgranulär tjänst Överföring. Slapp ACID-problemet!

Bredvidläsning

Page 97: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

97

Meddelandemodelleringen i praktikfallet •  CRUD – Create, Read, Update,

Delete; 4 varianter för många av tjänsterna

•  Samma datastruktur både för begäran och svar, men med olika fältifyllnad

•  Strukturerad returkod – Information, Varning, Fel, Fatalt.

•  Uppdelning hos anroparen i förväntad/ ickeförväntad returkod.

•  Flerförekomst möjlig

•  Själva modellerings-arbetet var mycket nyttigt för att överbrygga kulturskillnader. Deltagare: Applikations-kompetens från stordator, från windows, samt moderator som kunde båda teknikerna

•  Tydlig ansvarsuppdelning med ”black box”-tänkande och med modellen som ”kontrakt”

•  Korsreferens stordator-fältnamn – windows-fältnamn behövde i alla fall skapas för lättare samarbete

•  Korsreferens datatyper (comp-3 – integer etc) skapades

Bredvidläsning

Page 98: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

98

Kortpraktikfall private cloud

”I dagsläget körs någonstans mellan 350 och 400 virtuella maskiner i det privata molnet. Det körs i två datahallar i Stockholmstrakten, med två serverrack

med sju noder i varje. Lösningen kommer från Oracle och heter PCA, Private Compute Appliance.”

2015-12-10

Page 99: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

99

Inlåsning, forts?

•  I flera fall är API:erna inom molntjänsterna proprietära och kan heller ofta inte exekvera utanför molnet. I andra fall kanske API:erna är öppna, men inte relevanta om du skulle ta hem driften till en egen server.

•  Särskilt viktigt för PaaS då du ju troligen skriver egen programkod som ska exekvera i molnleverantörents ”appserver”. Eller har egen programkod utanför molnet som ska ropa på lagring inne i en PaaS-tjänst.

•  KAPSLA IN! Gör klasser som innesluter de proprietära API:erna så att du kan byta lättare om du tröttnat på en molnleverantör.

•  Ex: –  Storage i Amazon, Google och MS Azure har olika API:er, men ändå relativt

liknande. Om du inte behöver utnyttja väldigt speciella finesser kan du skriva klasser som kan klara av alla tre alternativen.

–  Azure-queue kanske kan kapslas in så du kan byta till MSMQ om du skall flytta hem driften. Liknande med Azure Service Bus.

Page 100: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Tänkbar inkapsling av proprietära API:er, för minskad inlåsning

Exempel: Moln och integration

100

- GAE web. - AWS EC2. - Azure Web Role.

- GAE Backend. - AWS EC2. - Azure Worker Role.

Interna applikationer

- GAE Task Queue. - AWS SQS. - Azure Queue.

Egendef. REST eller SOAP

- GAE Blob-REST. - AWS S3-REST. - Azure-REST.

- GAE Blob el BigTable. - AWS S3 el SimpleDB. - Azure Blob el Table.

- Azure Service Bus. - XMPP. - Mm...

- GAE Blob-REST. - AWS S3-REST. - Azure-REST.

Externa användare

- GAE Blob-REST. - AWS S3-REST. - Azure-REST.

Öppen access- nyckel, tidsbeg- ränsad…

Hemlig access- nyckel…

Hemlig access- nyckel…

Appar, andra applik.

Page 101: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

GOVERNANCE, SLA KOSTNADER…

Page 102: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

102

Stabilitet

•  Leverantörerna lägger oerhörda pengar på att skapa stabila molnplattformar.

•  Google, Amazon, Azure t.ex. har totalt sett bra track-record (men har ju också stannat någon gång och förlorat data).

•  Molnmiljöerna troligen känsliga för ”en fel-konfigurering kan slå ut alla serverinstanser” (eftersom de måste kunna konfigureras centraliserat och effektivt så kan en felkonfigurering också sprida sig snabbt)

•  På liknande sätt med buggar i plattformarna

•  Beroende av stabiliteten hos Internet (där det inga garantier finns)

Page 103: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

103

Uppgradering av tjänsteplattformen

•  För PaaS och SaaS, undersök hur versionsuppgradering görs –  Skönt slippa hantera det hemma –  Men troligen måste du acceptera uppgradering samtidigt

med alla andra kunder –  Hur gör du ifall den nya versionen råkar bli sämre just för

dej? Du kan behöva en reservplan. –  Kan det finnas risk för bristande bakåtkompatibilitet? –  Vad får du för förvarning? –  Verkar ofta finnas ”rolling upgrade”, serverinstanserna

byter automatiskt allteftersom •  För IaaS är det mindre skillnad mot interndriftning

–  Dock OS-versioner etc... Kolla även ”managed” solutions…

Page 104: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

104

Backup

•  Någon slags backup/dataredundans brukar ingå men ofta endast spegling

•  Extra backup hemma (med längre tillfällen emellan)?

•  Deponering hos tredje part? •  OBS att backup ska skydda mot många saker:

–  Diskkrasch –  Operatörsmissgrepp (delete * hoppsan, konfigfel) –  Användarmissgrepp (felaktigt borttag av kundpost) –  Återställning efter applikationsbuggar –  Naturkatastrof, terrordåd etc –  Mm

•  Dvs endast spegling duger inte alls!

Page 105: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

SLA (Service Level Agreement)

•  Vanligen definitioner av: –  Servicetid (när ska lösningen garanteras vara igång,

servicefönster, ”best effort” annars…) –  Teknisk tillgänglighet (typ 99.95% av Servicetid) –  Prestanda (hur mäta? vem mäter – båda helst!)

•  Vad är straffet om SLA inte följs? –  Flera molnleverantörer har ”financially backed SLA:s”, läs

det finstilta. Och ofta låga straffbelopp. –  Endast 10% av fakturan (Amazon)? –  Hårda viten?

% => $

Page 106: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

106

Ansvar

•  I vissa fall lovar ingen molnleverantör ansvar (förutom kanske lite för uptime).

•  Det hjälper heller inte att kunna kräva skadestånd om jag redan gått i konkurs för att mitt data försvunnit eller applikationen varit nere i en vecka...

•  Det finns ibland en övertro på vad ett kontrakt eller ett vite kan göra.

§ $ $ § =>

Page 107: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Du har redan en massa moln? •  Personalen är så vana nu vid bring-your-own att de inte

bara tar med sin privata Mac eller smartphone, de tar också med sin Dropbox, Google+, OneDrive, gmail, hotmail, tidigare konto på Projektplatsen, dialoger på LinkedIn & FaceBook osv i en salig blandning

•  Avvägning: –  Hur hårt bör du styra genom policies? –  Till och med filtrera i brandvägg? –  Å andra sidan är man ofta mobilt uppkopplade. –  MDM (Mobile Device Management)? –  Vara mer proaktiv och erbjuda flexibla och behändiga

alternativ till ovanstående tjänster, men säkerhetsmässigt välhanterat?

107

Page 108: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Infoklassning…

108

Page 109: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

109

Kortpraktikfall: Leverantörskonkurs 1

•  En relativt stor molnleverantör har faktiskt gått i drickat hösten 2013, Nirvanix

•  Var stor amerikansk moln-lagrare. Priskrig på lagring, Amazon, Google, MS…

•  Kunderna fick två veckor att hämta sitt data, vilket nog var omöjligt för vissa kunder pga datamängd

•  IBM verkar i sin tur ha haft Nirvanix som underleverantör, visste IBM:s kunder om det?

•  Således: Kunder måste ha en exit-strategi!

Page 110: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

110

Kortpraktikfall: Leverantörskonkurs 2

•  En mindre molnleverantör stoppade också, Coghead gjorde konkurs 18/2 2009 –  Mellanting SaaS/PaaS: CRM, projekthantering, bug tracking –  SAP (!) har köpt konkursboet, men tjänsten är nerlagd. –  Konfigurering/anpassning/scriptning av apps via enkel drag-

drop mm –  Kunderna fick efter konkursen på egen hand exportera sitt

data, men kom egentligen inte åt investeringen i affärslogik •  “Customers should download their data that is available through

my.coghead.com before 3:00 p.m. Pacific time on April 30th. However, Customers should not attempt to copy, modify, reproduce or reverse engineer any portion of the software that is part of, or used in the delivery of, the service.”

•  Möjligen hade inte förbudet mot reverse engineering gällt i EU...

•  Således: Ta kreditupplysning, gör due diligence etc!

Page 111: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

111

Molnstrategi

Page 112: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Vem gör molnstrategin/taktiken? •  Verksamheten/chefer?

–  Ökande trend att verksamheten själv fattar beslut om partiell outsourcing, framförallt SaaS.

–  Senare kommer integrationskraven till IT-avdelning/EA som känner sig överkörda

•  EA-grupp? –  Kan logiskt ingå i en EA –  Är det en EA-grupp som sitter ihop bra med resten av organisationen eller

har den blivit isolerad?

•  IT-avdelningen? –  Har kunskapen att tänka ut tydliga krav på partiell outsourcing –  Kan behöva ta initiativ för att inte anses vara ”sega” –  Vill måna om sin egen driftning? –  Ta hybrid-moln-initiativ?

112

Page 113: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Var gör det ont? •  Var finns surdegarna? Måste man ruska om en förstenad IT-avdelningar som

själv tycker det fungerar bra men där verksamheten inte tycker det? –  Olika sorters outsourcing, både vanlig och traditionell, eller hybrid

•  Har man bra IT-avdelning men kanske måste spara kostnader ändå? –  Inte givet att outsourcing inkl moln blir billigare –  Kalkylera och skriv i strategin vad som i så fall ska läggas ut

•  Problem med kompetensförsörjningen? –  Outsourcing, inkl moln, kan göra att man slipper ha en mängd driftkompetens –  Outsourcingpartnern kan få bättre skalfördelar inom sin kompetensförsörjning –  Men skriv i så fall in i strategin att man måste ha ORDENTLIG upphandlingskompetens och

MÅSTE ha rejäl tillgång till kravställande IT-arkitekter.

113

Page 114: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Omgivande ekonomi. Kultur. •  Finns er organisation inom ett verksamhetsområde där lite förändras, eller är

det hög ändringstakt? Ska avgöra vilka flexibilitetsmål ni skriver in i strategin!

•  Hur är er organisationskultur? Troligen olämpligt att gå på tvärs mot den i strategin (om man inte särskilt vill ruska om). –  Vill man ha full koll, veta var allt finns, använda beprövade lösningar

•  Mindre andel moln!

–  Eller betonar man time-to-market, flexibilitet, fokusera-på-kärnverksamheten? •  Större andel moln! •  Om man ändå inte vill välja vanliga publika moln, satsa på smart virtualisering (”private cloud”)?

–  Många kanske lägger ut ”enkla saker” oavsett detta, t ex Exchange i molnet.

114

Page 115: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Kapitalbindning •  Har organisationen problem med för mycket bundet kapital, eller svårt att

expandera för att detta kräver mer kapital? Behöver göra om till löpandeutgifter! –  Drifta själv men hyr datorer (och ev licenser)? –  Insourca kompetens? –  Outsourca traditionellt –  Molnet

•  Vad händer om det blir lågkonjunktur? –  Är löpandeutgifterna ovan ändå ”fasta” pga traditionella drift-avtal? –  Molnet är vanligen helt baserat på förbrukning istället

•  Börsen älskar rörliga intäkter tillsammans med motsvarande rörliga kostnader •  Kanske är olika delar av organisationen olika, skriv olika strategier för dem!

115

Page 116: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Dela upp era applikationer i typer? 1.  Applikationer som manifesterar er speciella innovation

–  Troligen större förändringstakt, krävs större flexibilitet –  Överväg en strategi till molnet –  Troligen inte SaaS utan snarare egenutvecklat på IaaS eller PaaS –  Ex: Spotify, Hemnet

2.  Applikationer som gör er konkurrenskraftiga –  Troligen mittemellan-förändringstakt –  Överväg molnet, men kanske inte så bråttom –  Överväg i så fall SaaS –  Ex: Internetbank (detta var typ 1 för femton år sedan)

3.  Applikationer för att klara legala och fiskala krav –  Låg förändringstakt –  Visst kan molnet funka, men lika troligt egendriftning eller traditionell outsourcing –  Ex: Ekonomisystem, personalsystem

•  Svaret är troligen inte samma i de tre delstrategierna -> ev hybridstrategi!

116 Tankesättet delvis lånat från Gartner…

Page 117: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Några tänkbara rubriker i strategin •  Underlag

–  Företagets övergripande strategier –  Nulägesbeskrivning, var gör det ont, vilken kultur har vi (och vill vi ha), vilken

kapitalbindning ska vi sikta mot, vilka applikationstyper har vi, vilka säkerhetskrav, mm mm?

•  Outsourcinginriktning –  Baserat på underlaget, lägg ut en strategi

•  Hur mycket egendriftning om ett år, om fem år •  Hur mycket traditionell outsourcing om ett år, om fem år •  Hur mycket molndriftning om ett år, om fem år

–  Troligen vill man även välja ett huvud-moln att satsa på

•  Integrationsstrategi –  De flesta kommer att ha någon slags hybrid, i så fall måste integration ske mellan

applikationer driftade på olika ställen –  Peka ut integrationsskategorier som kan vara extra viktiga för er, t ex inloggning/

identifiering eller kund-grunduppgifter –  Investera i ett huvud-integrationsnav eller inte? I båda fallen behövs goda riktlinjer för

integrationsprinciper! Kanske måste man få ihop flera nav.

•  Utvärderingstidpunkter framåt – följ upp hur det gick!

117

Page 118: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Från cloudsweden.se:

Page 119: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

119

Migration

Page 120: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

120

Migrera till molnet: Programkod

•  EC2 är enkelt, du väljer fritt •  GAE och Azure: Vissa apps i Python resp C#/

VB kan tas över direkt till molnet, men modifiering kan behövas

•  Ev val av migrerbart språk: Php, Python, Java etc

•  För SaaS kan det vara svårt att importera in i deras proprietära kodning/konfigurering

Page 121: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

121

Migrera till molnet: Data

•  Mycket av integrationsmönstren ovan kan användas för engångsmigrering (och löpande replikering)

•  Ifall det är mycket: Skicka hårddisk med bud! •  SQL-replikering eller BCP kan ibland

användas •  AD-replikering, Exchange-replikering... •  Vid migrering till de ”enkla molndatabaserna”

kan om fattande konvertering behövas

Page 122: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

122

Migrera från molnet: Programkod

•  I genomgången av AWS, GAE, Azure gick vi igenom varierande inlåsning/migrerbarhet

•  Eftersom dessa tre plattformar troligen endast finns i EN upplaga, hos dessa leverantörer, kan du behöva förbereda koden för att bli migrerbar: –  Inkapsling av moln-API:er – Ev val av migrerbart språk: Php, Python, Java etc – För SaaS kan inlåsningen vara större, kan vara

HELT proprietär kodning/konfigurering

Page 123: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

123

Migrera från molnet: Data

•  Mycket av integrationsmönstren ovan kan användas för engångsmigrering (och löpande replikering)

•  Ifall det är mycket: Skicka hårddisk med bud!? •  SQL-replikering eller BCP kan ibland

användas •  AD-replikering, Exchange-replikering... •  Vid migrering från de ”enkla

molndatabaserna” kan omfattande konvertering behövas

Page 124: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Utläsning •  Vid anskaffande av lösning, ställ alltid krav

initialt på hur data ska kunna läsas ut ur lösningen när den ska pensioneras en gång! – Särskilt viktigt vid SaaS-köp – Samt för upphandling av standardapplikationer – Ta exemplet att bokföringsdata måste gå att nå tio år

– Men behövs också om leverantören konkar

124

Page 125: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Kom igen, vad rekommenderar du nu då?

•  Vela inte så, Sven-Håkan, rekommenderar du molnet eller inte? •  Typiska konsultsvaret: Det beror på! :)

•  MÅNGA småfaktorer att sätta sig in i, arbetsamt att besluta om för/emot.

•  Många molnlösningar går redan att använda på ett utmärkt sätt –  Men det är INTE ett generellt botemedel för allsköns driftproblem

•  Molnet kommer att mogna och bara bli en av många outsourcingvarianter

125

Page 126: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

126

Trendspaningar, artiklar

•  På min enkla sajt www.definitivus.se finns ett artikelarkiv för trendspaningar och annat som successivt fylls på, exempel på ämnen: –  Vad är vad uppe bland molnen (mer om molntyper) –  Säkerhetskopiering och asynkrona system –  Lösa transaktioner och rätt data –  REST och sånt… –  Facebook eller eID för inloggningen? –  Hur den lösa kopplingen ändå blir hård –  Till den som sitter med klistret –  ESB:n är död – leve ESB:n!

Page 127: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

Fler lästips •  arstechnica.com •  olika nätverk inom linkedin.com •  www.cloudcomputingpatterns.org •  searchcloudcomputing.techtarget.com •  eaipatterns.com •  cloudsweden.se •  www.iasa.se •  www.trendspaning.se •  www.definitivus.se •  msb.se •  Boken om IT-arkitektur 127

Page 128: Molntjänster – välj rätt lösning · – Juridik, avtal mm – Säkerhet – Fem moln-typer – Några molnleverantörer • Dag 2: – Några molnleverantörer forts – Appar

128

Sven-Håkan Olsson Definitivus AB 0708 – 84 01 34 sven-hakan.olsson[hos]definitivus.se www.definitivus.se www.styrelsemote.se www.socialjour.se Se även trendspaning.se