Patterns for service design
-
Upload
peter-hj-van-eijk -
Category
Design
-
view
30 -
download
0
Transcript of Patterns for service design
Patterns for Service Design
Peter HJ van EijkIndependent coach/trainer
cloud and other digital infrastructures
(micro) service oriented architecture
Suwinet:Closed community SaaS in 2002
many actorscomplicated support structure
Routering en Nummerplan SUWInet (end2end)194.104.14.0/27 vrij194.104.14.32/27 ABP/USZO ethernet194.104.14.64/27 SFB FR194.104.14.96/27 CADANS FR194.104.14.128/27 GUO FR194.104.14.160/27 GAK FR194.104.14.192/27 UWV vrij194.104.14.224/27 niet gebruiken
194.104.15.0/27 vrij194.104.15.32/27 GVI ..CADANS194.104.15.64/27 ARBVO/CWI FR194.104.15.96/27 Pink Roccade FR194.104.15.128/27 GEMnet .. PinkR194.104.15.160/27 SUWI Helpdesk.. PinkR194.104.15.192/27 SK (suwinet.nl) ethernetomvat routers, servers en client NAT pool.
RoccadeVPN backbone
Laan NOI netwerk194.104.15.160/27
BKWI centrale voorzieningen194.104.15.96/27
SUWI koppel LAN194.104.15.192/27
GAK DMZ
CV
CS
"ex
tern
e" n
etw
erk
192.
168.
140.
0/26
CVCS interne prod netwerk192.168.155.128/25
Internet ProviderVersatel
Client Workstation
FirewallFilter
Internet ProviderKPN
DNS servercadans.nl
DNS serverguo.nl
DNS serverlisv.nl
Internet Provider UUnet
DNS servers
.nl
CVCSproxy.cvcs.nlCryptocom
CVCS Homepagemincvcs.cvcs.nl
ftp.cvcs.nlmailhost.cvcs.nl
192.168.140.58
SUWI BKWI infra
Test servertest.suwikoppel.nl194.104.15.200
FirewallFilter
spoor1-html-integratietest.extranet.gak.nlspoor1-html-acceptatietest.extranet.gak.nlspoor1-html-productie.extranet.gak.nlspoor1-xml-integratietest.extranet.gak.nlspoor1-xml-acceptatietest.extranet.gak.nlspoor1-xml-productie.extranet.gak.nltest.extranet.gak.nl194.104.14.160/27
Inkijk server
Inkijk servers
CWI DMZ
Client Workstation
FirewallFilter
FirewallFilter
Inkijk server
194.104.15.222
HelpdeskWorkstation
sfb DMZ
Client Workstation
FirewallFilter
FirewallFilter
spoor1-html-integratietest.extranet.sfb.nlspoor1-html-acceptatietest.extranet.sfb.nlspoor1-html-productie.extranet.sfb.nlspoor1-xml-integratietest.extranet.sfb.nlspoor1-xml-acceptatietest.extranet.sfb.nlspoor1-xml-productie.extranet.sfb.nltest.extranet.sfb.nl194.104.14.64/27
Inkijk server
uszo DMZ
Client Workstation
PIX FirewallFilter
FirewallFilter
spoor1-html-integratietest.extranet.uszo.nlspoor1-html-acceptatietest.extranet.uszo.nlspoor1-html-productie.extranet.uszo.nlspoor1-xml-integratietest.extranet.uszo.nlspoor1-xml-acceptatietest.extranet.uszo.nlspoor1-xml-productie.extranet.uszo.nltest.extranet.uszo.nl194.104.14.32/27
Inkijk server
guo DMZ
Client Workstation
FirewallFilter
FirewallFilter
spoor1-html-integratietest.extranet.guo.nlspoor1-html-acceptatietest.extranet.guo.nlspoor1-html-productie.extranet.guo.nlspoor1-xml-integratietest.extranet.guo.nlspoor1-xml-acceptatietest.extranet.guo.nlspoor1-xml-productie.extranet.guo.nltest.extranet.guo.nl194.104.14.128/27
Inkijk server
cadans DMZ
Client WorkstationsFirewallFilterIntern
spoor1-html-integratietest.extranet.cadans.nlspoor1-html-acceptatietest.extranet.cadans.nlspoor1-html-productie.extranet.cadans.nlspoor1-xml-integratietest.extranet.cadans.nlspoor1-xml-acceptatietest.extranet.cadans.nlspoor1-xml-productie.extranet.cadans.nltest.extranet.cadans.nl194.104.14.96/27
Inkijk server
lisv DMZ
FirewallFilter
gvi-spoor1-html-integratietest.extranet.lisv.nlgvi-spoor1-html-acceptatietest.extranet.lisv.nlgvi-spoor1-html-productie.extranet.lisv.nlgvi-spoor1-xml-integratietest.extranet.lisv.nlgvi-spoor1-xml-acceptatietest.extranet.l isv.nlgvi-spoor1-xml-productie.extranet.lisv.nltest.extranet.lisv.nl194.104.15.32/27
Inkijk servers
begin2002
To Be
GEMnet Adoorn194.104.15.128/27
PinkRocc Adoorn194.104.15.96/27
+GemNet+ Laan NOI
CVCSWolk
192.168.140.64/26?
HelpdeskWorkstation
MinisterieWolk
CVCS-Ministerie
Handhaven tot?
GemnetWolk
CWI interneWAN
145.84/16?
FrameRelayKPN
CVCS Inbel:loket aan huis
192.168.140.30
CVCS pilotWorkstation
CVCS pilotWorkstation
CVCS pilotWorkstations
GSD LAN
Workstation
CVCS DNS servercvcs.nl
192.168.140.1
.129 Mincvcs, DNS, Pibsys
.130 TIB en FTP server
.132 Mailserver
BeveiligdeInternettoegang
BeveiligdeInbel (BinBel)voorziening
FirewallFilter
DNS serveruszo.nl
DNS serversfb.nl ?
DNS servergak.nl
DNS serverarbeidsbureau.
nl
Internet ProviderEuronet
DNS serversuwinet.nl
Internet ExchangeAMS-IX
Internet ProviderXL server
Internet ExchangeAMS-IX
SUWI koppelingenTO BE situatie per begin2002FIle:Modified: 19 December 2001Peter van Eijk
Deze plaat beschrijft debelangrijkste technischeinfrastructurele componenten,waarvan de werking de SUWIketen beinvloed.Bilaterale contacten, enverbindingen alleen voorbeheer zijn veelal nietgetekend.Alle organisaties hebben inprincipe een Internetverbinding. Voor SUWIdoeleinden wordt deze alleengebruikt voor DNS lookup.
Op alle firewalls vindt inprincipe network addresstranslation plaats, op allerouters in principe niet.
NAT
NAT NAT
NAT
NAT - CVCSNAT - Ministerie
TIBserver
publiekeURL?
IB serverInlichtingenbureau.nl NAT
NAT
interneWAN
interneWAN
interneWAN
interneWAN
interneWAN
FirewallFilter
spoor1-ovz-rika.extranet.arbeidsbureau.nlspoor1-xml-rika.extranet.arbeidsbureau.nlspoor1-ovz-kolomtest.extranet.arbeidsbureau.nlspoor1-xml-kolomtest.extranet.arbeidsbureau.nlspoor1-ovz-suwitest.extranet.arbeidsbureau.nlspoor1-xml-suwitest.extranet.arbeidsbureau.nlspoor1-ovz-productie.extranet.arbeidsbureau.nlspoor1-xml-productie.extranet.arbeidsbureau.nltest.extranet.arbeidsbureau.nl194.104.15.64/27
RINIS is op deze plaatbuiten beschouwinggelaten.
home-spoor1-htm l-integratietest.suwinet.nlhome-spoor1-htm l-acceptatietest.suwinet.nlhome-spoor1-htm l-productie.suwinet.nlhome-spoor1-xml-integratietest.suwinet.nlhome-spoor1-xml-acceptatietest.suwinet.nlhome-spoor1-xml-productie.suwinet.nlhome-spoor1-deladm-integratietest.suwinet.nlhome-spoor1-deladm-acceptatietest.suwinet.nlhome-spoor1-deladm-productie.suwinet.nltest.suwinet.nl194.104.15.96/27
Routering en Nummerplan CVCS(extern alles via Firewall 192.168.140.58)192.168.155.128/25 PR CVCS intern productie192.168.155.64/26 PR CVCS internacceptatie192.168.140.0/26 PR CVCS extern netw192.168.140.64/26 CVCS netwerk adressen192.168.140.128/26 ?? client pool?192.168.140.192/26 CVCS externe servers
Why patterns?(Micro) Services design is hardProtocols are hardService management is hardDesigning cooperation is hard
Language ….
Basic service pattern example
6
Query:Can I get a drink please?
Ack: Yes you can, it will arrive shortly
Reply: Here is your drink
Ack: Thank you, this is what I wanted
Interaction pattern breakdown
8
Query
Ack
Provider
Client
AckReply Query: Can I get a drink please?
Ack: Yes you can, it will arrive shortlyReply: Here is your drinkAck: Thank you, this is what I wanted
Often combined
Often implicit
Query: ask for a commitmentAck: acceptance of commitmentReply: request to accept (acquittal)Ack: acceptance of completion
SemanticsSpeech act theory: language controls a process, or creates a shared reality, each of which can be about information or about a physical process
“I now pronounce you husband and wife”
Rooted in Deontic logic (obligations, commitments, permissions)
Example TCP/IP
ConnectQ: can you reserve buffer space for a connection?R: yes we can, here is your initial window sizeA: thank you, here is your initial window size
TransmissionQ: please accept this dataA: thank you, I will forward it, here is your new window size
Rinse and Repeat
Example customer serviceQ: Can I get a new App / Macbook / User account / IYFG?
A: Yes you can
R: Here it is
Etc.
Service elements:consumer actions and provider responses
Every service has multiple components/elements, i.e.• Access resource (login, get webpage, …)• Create resource (server, virtual disk, mailbox, …)• Modify resource (bigger disk/mailbox, new functional module, add friend,
…)• Create user (provisioning)• Create account• Talk to a sales representative• Negotiate and set up contract• Reset password• Delete account• Delete data (deprovisioning)
Generally: anything that can be governed by a permission or can lead to a commitment
12Extra note: can you group these in phases: contract, provision, use..
Intermediary patterns have 3 or more actortypes
An intermediary adds value between client/server, source/sinkI.e. index, filter, conversion, (de)couple
Bron
Bron
Bron
Afnemer
Afnemer
Afnemer
Intermediair
PubSub interaction pattern
Subscribe
Ack
IntermediaryClient
Ack
Publish
ProviderProvide
rProvider
ClientClient
Intermediary holds source and subscriber directories. Notice the various commitments that can be made.
Subscribe
AckIssue
Pattern composition
• Tell me the current state, • subject to authorization intermediary, • then subscribe me to changes.
Big issue: what is an obligation?
Inspired by Cfengine21 "/var/cfengine/bin/." 22 create => "true", 23 perms => usystem("0700");
Turns out to be a nice model/formalism to express interaction patterns in:
• Clear notion of autonomy• Less confusion about commitment and
obligations
SemanticsPromise Theory (Burgess, Bergstra)“Autonomous agents make promises”
“A promise is a strongly stated intention to provide a service, which may or may not be kept” (Jeff Sussna)
“I promise that the dir will have permissions 0700 or report my failure”
Service interaction example
24
Query:Please promise me to bring a drink
Ack: I promise to bring you a drink in a short while
Reply: Please promise me that you are satisfied and will pay
Ack: I promise to pay you for the drink
Service Agreement Items
27
SecurityConfidentialityMaintenance
Continuity
CapacityFunctionalitySupport
PromiseWe promise to prevent unauthorized accessWe promise to keep your information safeWe promise to maintain according to vendor best practicesWe promise to make sure that there is a spare copy of your data
off siteWe promise to add resources as neededWe promise to apply updates and improvementsWe promise to have trained staff that reacts timely and
professionally
Item
And of course a lot of additional financial and legal items.
The chain gangCEO A to CEO B: please promise to me that Alice can talk to Bob when I have a service request
CEO B to Bob: please promise to me that you promise to Alice to pick up the phone when she calls
CEO A CEO B
Alice Bob
Risk and securityEvery promise is a risk:
failure deception
Security can also be about information leakage: I promise to not tell
Apply toProtocol/collaboration designService Level AgreementConfig management (CFEngine)Risk managementSecurity assessments
Jeff Sussna: how can promise theory help digital service quality? (Slideshare)
Does this sound familiar?Can this simplify things around at your end?
Then maybe we can have a chat
Peter van Eijk [email protected] @petersgriddle
- 33 -
Berichten hangen samen met verplichtingen om in de toekomst iets te doenDeze verplichtingen staan samengevat in “Service Level Agreements (SLA).” Deze beschrijven ook het toegestane gebruik van gegevens.
Berichten besturen verplichtingen
• Een bericht staat nooit op zichzelf, het betekent wat.
Tekst van het bericht FunctieMag ik de dagschotel? Verzoek, bestellingNatuurlijk, komt er zo aan Belofte, commitment
Verklaring, leveringAlstublieft, uw dagschotelDank u wel. Acceptatie, decharge
Berichten besturen een levering.Dat kan ook een levering van gegevens zijn.
InteractieBerichtenTransport
Infrastructuur
- 34 -
Authentieke bronnen en Intake patronen
• Het “authentieke bron” patroon bestaat veelal uit–inkijk met autorisatie, –het nemen van een abonnement op wijzigingen, –en het terugmelden van discrepanties
• Het “intake” patroon bestaat veelal uit het –raadplegen van een index voor authentieke bronnen, –inkijk daarop,–voorleggen hiervan aan de client,–opvragen van aanvullende gegevens bij de client.
• Indexen zijn een authentieke bron van metagegevens.InteractieBerichtenTransport
Infrastructuur
- 35 -
Gebruikers hebben rollen, bevoegdheden en verantwoordelijkheden
• Gebruikers wisselen berichten uit, en hebben dus verplichtingen over en weer.• Voorbeelden van gebruikers:
–Medewerkers–Intermediairs–Sectoren–Partijen–Vestigingen–Applicaties
• Gebruikersadministraties zijn een index over de gebruikers, en spelen een rol in de bericht verdeling (routering)
• Via gebruikersadministraties worden autorisaties toegekendInteractieBerichtenTransport
Infrastructuur
- 36 -
Volledigheid en correctheid van patronen
• In de uitwerking staan ook alle speciale gevallen benoemd:
–Wat als het antwoord niet mogelijk is?–Wat als er geen antwoord komt? Time-out.
–Wat als de ontvanger het niet aankan?–Bijwerken van indexen–Stopzetten van abonnementen
• Volledig state diagram
IntakeRequest
ontvangen
VerzoekIndex
BronnenInformatie
Vraag bijBron 2
Vraagbij Bron 2
Clientbij
Intake
Info van bronnenis beschikbaar
Intake EventVerzonden
Intake EventOntvangen
OpvragenPopulatie
Index
Opvragenbronnen
Gesprek metClient met hulp
van IntakeApplicatie -
Verzend Intake resultaat
Ontvangstbevestiging
Antwoord vanalle bronnenbeschikbaar
Elk InteractieProtocol is
gebaseerd op eenState Diagram
(voorbeeld - Intake)
InteractieBerichtenTransport
Infrastructuur
More
• http://markburgess.org/blog_cap.html
• Microservices.io Chris Richardson
- 38 -
End to end bewaking van applicatie performance
• Meet wat er toe doet: respons en uptime
• Meet waar het er toe doet; van client tot server
• Vertaling naar tussenliggende SLAs is onderdeel van een leerproces
Zie presentatie Iping!
Norm is bijvoorbeeld:
99,5% van de gevallen transactie binnen 1 sec afgerond.
Contractual framework• General terms and conditions• Service Agreements• Service Level Agreements (SLA)• Acceptable Use Policy (like a reverse SLA)
=> Contracts are the interfaces in the supply chain and should be matched to GRC requirements
39