F6 Tjänstedesign Flashcards
Vad är maintainability inom tjänstedesign?
Maintainability är förmågan hos ett system att enkelt kunna underhållas över tid så att det behåller sin funktionalitet.
Vad är extensibility inom tjänstedesign?
Extensibility är möjligheten att enkelt kunna lägga till ny funktionalitet i systemet.
Vad är portability inom tjänstedesign?
Portability innebär att mjukvaran kan modifieras (”portas”) så att den kan köras på en annan plattform, till exempel genom att byta databas eller operativsystem.
Vad är interoperability inom tjänstedesign?
Interoperability är systemets förmåga att kunna kopplas samman och fungera tillsammans med andra system.
Vad innebär availability inom tjänstedesign?
Availability avser systemets tillgänglighet, ofta mätt i ”uptime” – hur mycket tid systemet är i drift.
Vad är scalability inom tjänstedesign?
Scalability är systemets förmåga att hantera ett ökat antal användare eller en ökad mängd data utan att prestandan försämras.
Vad innebär performance inom tjänstedesign?
Performance handlar om hur snabbt systemet kan hantera en begäran – det vill säga svarstiden.
Varför är discoverability viktigt inom tjänstedesign?
Discoverability gör det lättare att hitta och ansluta till tjänster genom ett sökbart register, ofta kallat servicekatalog eller service inventory.
Ge exempel på servicekataloger.
Exempel på servicekataloger inkluderar ProgrammableWeb, Stockholms stad och Dataportalen.
Vad är composability inom tjänstedesign?
Sammansättningsbarhet
Composability innebär att tjänster designas så att de enkelt kan kombineras och användas tillsammans.
Ge exempel på hur composability kan implementeras.
Ett exempel är att skapa grundläggande tjänster för vanliga koncept som ”kunder” och ”beställningar” samt att spegla affärsprocesser genom att kombinera dessa i process-tjänster.
Vad innebär autonomy inom tjänstedesign?
självständighet
Autonomy innebär att tjänster bör dela så få resurser som möjligt för att minska risken att ett fel i en resurs påverkar andra tjänster.
Ge exempel på olika nivåer av autonomy inom tjänstedesign.
a) Delad databas, separata servrar
b) Delad server, separata databaser
c) ”Shared nothing” – helt autonoma tjänster
Vad är abstraction inom tjänstedesign?
Abstraction innebär att dölja all information som inte är absolut nödvändig för att använda tjänsten.
Vilka tre typer av abstraction finns inom tjänstedesign?
Funktionell – Vilka operationer/metoder tjänsten erbjuder
Programmatisk – Hur tjänsten utför sitt arbete
Teknisk – Vilken teknik som används för att implementera tjänsten
Vad innebär loose coupling inom tjänstedesign?
Loose coupling minskar beroenden mellan tjänster genom exempelvis fysisk decoupling, asynkron meddelandehantering och standardiserade gränssnitt.
Vilka är fördelarna och nackdelarna med loose coupling?
Fördelar: Minskar behovet av att uppdatera en tjänst vid förändringar i omgivningen.
Nackdelar: Ökar den tekniska komplexiteten.
Vad innebär statelessness inom tjänstedesign?
Statelessness betyder att en tjänst inte lagrar någon intern tillståndsinformation mellan anrop, vilket gör den mer skalbar och minskar minnesförbrukningen.
Vad är skillnaden mellan stateful och stateless?
Stateful: Systemet sparar information om tidigare interaktioner.
Stateless: Varje begäran hanteras utan hänvisning till tidigare interaktioner.
Vad är BDUF och varför är det ett problem inom tjänstedesign?
BDUF (Big Design Up Front) innebär att all design görs i förväg, vilket kan vara ineffektivt eftersom det är svårt att förutsäga vilka tjänstefunktioner som kommer att vara mest värdefulla.
Varför kan tjänstedesign bli kostsamt?
Att implementera alla tjänstedesignprinciper i alla situationer kan bli dyrt. Det är viktigt att veta när det är värt att göra avvägningar.
Hur kan tjänstedesignprinciper tillämpas på en taxitjänst?
Autonomy: Varje taxibil hanterar sina egna bokningar.
Composability: Boknings-, betalnings- och karttjänster kan kombineras.
Abstraction: Kunden ser bara bokningsgränssnittet, inte de interna processerna.
Statelessness: Varje resa hanteras oberoende av tidigare resor.
Discoverability: En tjänstekatalog listar tillgängliga taxibolag
Vad är en service contract?
En service contract definierar regler för hur en tjänst ska användas, både tekniskt (t.ex. WSDL, XML Schema) och affärsmässigt (t.ex. SLA).
Vad är WSDL?
Web Services Description Language (WSDL) är ett XML-baserat språk för att beskriva webbtjänster och hur man anropar dem.
Vad är Design-by-Contract (DbC)?
DbC innebär att tjänster har tydliga avtal med preconditions och postconditions som styr deras beteende.
Vad är ett problem med otydliga kontrakt i tjänstedesign?
Om kontrakten är otydliga kan det bli svårt att veta vilka indata som är giltiga och vilka resultat som kan förväntas, vilket kan leda till felaktig användning.
Hur kan ett servicekontrakt formuleras tydligare?
Genom att definiera preconditions (vilka krav som måste vara uppfyllda innan anrop) och postconditions (vilka resultat som kan förväntas).
Var finns API-dokumentation idag jämfört med tidigare?
Tidigare tillhandahöll tjänsteleverantörer officiell dokumentation, men idag finns mycket dokumentation på sociala medier och bloggar.
Vad är microservices?
Microservices är en arkitektur där systemet består av små, oberoende tjänster som kommunicerar via API:er.
Vilka är de centrala principerna för microservices?
Autonomy – Varje mikrotjänst hanterar sin egen databas.
Composability – Enkla och effektiva anrop mellan mikrotjänster.
Statelessness – Förbättrad skalbarhet.
DevOps – Team ansvarar för hela livscykeln: utveckling, deployment och drift.
Vad innebär “If you build it, you ship it” i DevOps?
Det innebär att utvecklingsteamet inte bara bygger tjänster, utan också ansvarar för att distribuera och övervaka dem i produktion.