Guiding Architectural Decision Making on Quality Aspects in Microservice APIs

2f40cbf5c009290a2ab513768de249d1?s=47 pautasso
November 15, 2018

Guiding Architectural Decision Making on Quality Aspects in Microservice APIs

ICSOC2018 Paper Presentation by Uwe Zdun, Mirko Stocker, Olaf Zimmermann, Cesare Pautasso, and Daniel Lübke

2f40cbf5c009290a2ab513768de249d1?s=128

pautasso

November 15, 2018
Tweet

Transcript

  1.    *XLGLQJ$UFKLWHFWXUDO'HFLVLRQ0DNLQJ RQ4XDOLW\$VSHFWVLQ0LFURVHUYLFH$3,V 8ZH=GXQ0LUNR6WRFNHU2ODI=LPPHUPDQQ &HVDUH3DXWDVVRDQG'DQLHO/¾ENH KWWSZZZSDXWDVVRLQIRWDONVLFVRF #SDXWDVVR#VFKRODUVRFLDO SRZHUHGE\

  2. $3, 6HFXULW\ 5HOLDELOLW\ 8VDELOLW\ 3HUIRUPDQFH 6LPSOLFLW\ &RVW (YROYDELOLW\ 0DLQWDLQDELOLW\ 6XVWDLQDELOLW\

    3ULYDF\ 7HVWDELOLW\ 6FDODELOLW\ SRZHUHGE\
  3. 5HVHDUFK4XHVWLRQV :KDWDUHHVWDEOLVKHGSUDFWLFHVWRGHVLJQIRU UHDOL]HFRPPXQLFDWHDQGPDLQWDLQ WKHTXDOLW\RIDPLFURVHUYLFH$3," +RZKLJKLVWKHGHFLVLRQPDNLQJXQFHUWDLQW\ LQWKLVGHVLJQVSDFH" +RZFDQZHUHGXFHWKLVGHFLVLRQPDNLQJ XQFHUWDLQW\"  

    SRZHUHGE\
  4. .QRZOHGJH6RXUFHV $PD]RQ(&$3,$PD]RQ6$:6/DPEGD&ORXG&RQYHUW$3,&RQѺXHQFH 5(67$3,)DFHERRN*UDSK$3,)LOH7UDQVIHU6HUYLFH$3,)LQDQFH,QGXVWU\ :HE6HUYLFH$3,*LW+XE$3,Y*LW+XE$3,Y*RRJOH&DOHQGDU$3, *RRJOH&RPSXWH(QJLQH-,5$&ORXG$3,/LQNHG,Q$3,0LFURVRIW$]XUH 0LFURVRIW'\QDPLFV&500LFURVRIW*UDSK$3,2SHQ:HDWKHU0DS 2SWLPL]HO\3D\3DO$3,4XDQGO$3,6DOHVIRUFH$3,6LQJOHZLUH6WULSH$3, 6:,)76ZLVV%DQN$3,6ZLVV)HGHUDO$GPLQLVWUDWLRQUHJLVWU\RI FRPSDQLHVZHEVHUYLFH$3,6ZLVV,QVXUDQFH$3,70)RUXP5(67$3, 7ZLWWHU$3,<RX7XEH'DWD$3,

    $GLGDV$3,6SHF$PD]RQ$3,*DWHZD\DSLVW\OHERRNFRP%DVLF $XWKHQWLFDWLRQ&+$3($3(&6/$*XLGHOLQHV+773&RQGLWLRQDO 5HTXHVWV-621$3,6SHF.HUEHURV/'$30XOH6RIW$3,0DQDJHU2$XWK 2SHQ,'&RQQHFW2:$635(676HFXULW\3OD\*XDUG5(67$3,GHVLJQ ERRN5(67IXO:HE6HUYLFHV&RRNERRN5)&6$0/6/$%HVW 3UDFWLFHV6/$:KLWHSDSHU6XJJHVWHG5(673UDFWLFHV70)RUXP $SSOLFDWLRQV)UDPHZRUN  SRZHUHGE\
  5. 6RPH$3,4XDOLW\'HVLJQ'HFLVLRQV ([SOLFLW6SHFLѹFDWLRQRI4XDOLW\2EMHFWLYHVDQG3HQDOWLHV $3,&OLHQW,GHQWLѹFDWLRQDQG$XWKHQWLFDWLRQ 0HWHULQJDQG&KDUJLQJIRU$3,&RQVXPSWLRQ $YRLG8QQHFHVVDU\'DWD7UDQVIHU 3UHYHQWLQJ$3,&OLHQWVIURP([FHVVLYH$3,8VDJH &RPPXQLFDWH(UURUV SRZHUHGE\

  6. ([SOLFLW6SHFLѹFDWLRQRI4XDOLW\ 2EMHFWLYHVDQG3HQDOWLHV 'HFLVLRQ&ULWHULD &RQVXPHU$WWUDFWLYHQHVV 3URYLGHUFRVWHIѹFLHQF\DQG EXVLQHVVULVNV *RYHUQPHQWUHJXODWLRQV 5HOHYDQWTXDOLW\DWWULEXWHV $YDLODELOLW\3HUIRUPDQFH 3ULYDF\

    %XVLQHVVDJLOLW\YLWDOLW\ 2SWLRQV ,QWURGXFH 6HUYLFH/HYHO $JUHHPHQW ,QWHUQDOXVHRQO\ ([WHUQDOXVH 5HSUHVHQW6/$ZLWK ,QIRUPDOVSHFLѹFDWLRQ QDWXUDOODQJXDJH )RUPDOVSHFLѹFDWLRQ SRZHUHGE\
  7. 6HUYLFH/HYHO$JUHHPHQW +RZFDQDQ$3,FOLHQWOHDUQDERXWWKHVSHFLѹFTXDOLW\RI VHUYLFHFKDUDFWHULVWLFVRIDQ$3,DQGLWVRSHUDWLRQV"+RZFDQ WKHVHFKDUDFWHULVWLFVDQGWKHFRQVHTXHQFHVRIQRWPHHWLQJ WKHPEHGHѹQHGLQDPHDVXUDEOHZD\" $VDQ$3,SURYLGHUGHѹQHDVWUXFWXUHG6HUYLFH/HYHO $JUHHPHQW 6/$ WKDWLVZULWWHQLQDQDVVHUWLYHXQDPELJXRXV ZD\WKH6/$PXVWLGHQWLI\WKH$3,RSHUDWLRQWKDWLWSHUWDLQV

    WRDQGPXVWFRQWDLQDWOHDVWRQHPHDVXUDEOH6HUYLFH/HYHO 2EMHFWLYH 6/2 VXFKDVSHUIRUPDQFHRUDYDLODELOLW\ SRZHUHGE\
  8. $3,&OLHQW,GHQWLѹFDWLRQDQG $XWKHQWLFDWLRQ 'HFLVLRQ&ULWHULD 5HTXLUHGVHFXULW\OHYHO (DVHRIXVHIRUFOLHQWV 8VHUFUHGHQWLDOPDQDJHPHQW 3HUIRUPDQFHRYHUKHDG 2SWLRQV ,QWURGXFH$XWKHQWLFDWLRQ 0HFKDQLVP

     $3,.H\ $3,.H\ZLWK6HFUHW $XWKHQWLFDWLRQ3URWRFRO SRZHUHGE\
  9. $3,.H\ +RZFDQDQ$3,HQGSRLQW LGHQWLI\DQGDXWKHQWLFDWH WKHFOLHQWPDNLQJD UHTXHVW" $VDQ$3,SURYLGHUDVVLJQ HDFKFOLHQWDXQLTXHWRNHQȻ WKH$3,.H\ȻWKDWWKHFOLHQW FDQSUHVHQWWRWKH$3, HQGSRLQWIRULGHQWLѹFDWLRQ

    SXUSRVHV SRZHUHGE\
  10. 0HWHULQJDQG&KDUJLQJIRU$3, &RQVXPSWLRQ 'HFLVLRQ&ULWHULD 3ULFLQJ%XVLQHVV0RGHOV 0HWHULQJDQG%LOOLQJ$FFXUDF\ 0HWHU*UDQXODULW\ 6HFXULW\DQG3ULYDF\ 2SWLRQV 0RQLWRU&OLHQW8VDJHIRU %LOOLQJZLWK

     5DWH3ODQ YDULDQWV )ODWUDWHVXEVFULSWLRQ 3D\SHUXVH 0DUNHWEDVHG$OORFDWLRQ $XFWLRQVW\OH$OORFDWLRQ )UHHPLXP0RGHO SRZHUHGE\
  11.  5DWH3ODQ +RZFDQWKH$3,SURYLGHUPHWHU$3,VHUYLFHFRQVXPSWLRQDQG FKDUJHIRULW" $VVLJQD5DWH3ODQIRUWKH$3,XVDJHWKDWLVXVHGWRELOO$3, FOLHQWVDGYHUWLVHUVRURWKHUVWDNHKROGHUVDFFRUGLQJO\'HѹQH DQGPRQLWRUPHWULFVIRUPHDVXULQJ$3,XVDJHVXFKDV PRQLWRULQJ$3,XVDJHRQDSHURSHUDWLRQOHYHO SRZHUHGE\

  12. $YRLG8QQHFHVVDU\'DWD7UDQVIHUV 'HFLVLRQ&ULWHULD &OLHQW,QIRUPDWLRQ1HHGV 1HWZRUNERWWOHQHFNV 3HUIRUPDQFH 6HFXULW\ 'HYHORSPHQWDQG7HVWLQJ &RPSOH[LW\ 2SWLRQV 

    :LVK/LVW  :LVK7HPSODWH  &RQGLWLRQDO5HTXHVW  5HTXHVW%XQGOH SRZHUHGE\
  13. :LVK/LVW +RZFDQDQ$3,FOLHQWLQIRUPWKH$3,SURYLGHUDWUXQWLPH DERXWWKHGDWDLWLVLQWHUHVWHGLQ" $VDQ$3,FOLHQWSURYLGHD:LVK/LVWLQWKHUHTXHVWWKDW HQXPHUDWHVDOOGHVLUHGGDWDHOHPHQWVRIWKHUHTXHVWHG UHVRXUFH$VWKH$3,SURYLGHUGHOLYHURQO\WKRVHGDWD HOHPHQWVLQWKHUHVSRQVHPHVVDJHWKDWDUHHQXPHUDWHGLQ WKH:LVK/LVW SRZHUHGE\

  14. :LVK7HPSODWH +RZFDQDQ$3,FOLHQWLQIRUPWKH$3,SURYLGHUDWUXQWLPH DERXWWKHFRPSOH[GDWDLWLVLQWHUHVWHGLQ" 'HѹQHRQHRUPRUHSDUDPHWHUVLQWKHUHTXHVWPHVVDJHWKDW KDYHWKHVDPHVWUXFWXUHDVWKHGHVLUHGSDUDPHWHU V LQWKH UHVSRQVHPHVVDJH SRZHUHGE\

  15. &RQGLWLRQDO5HTXHVW +RZFDQXQQHFHVVDU\VHUYHUVLGHSURFHVVLQJDQGEDQGZLGWK XVDJHEHDYRLGHGZKHQIUHTXHQWO\LQYRNLQJ$3,RSHUDWLRQV WKDWUHWXUQUDUHO\FKDQJLQJGDWD" 6XSSRUWFRQGLWLRQDOUHTXHVWVE\DOORZLQJFOLHQWWRDGGRQH RUPRUHPHWDGDWDHOHPHQWVWRWKHUHTXHVWPHVVDJH UHSUHVHQWDWLRQV RUSURWRFROKHDGHUV WKDWUHTXHVWVDUH SURFHVVHGE\WKHSURYLGHURQO\LIDFRQGLWLRQLVPHW,IWKH

    FRQGLWLRQLVQRWPHWWKHSURYLGHUGRHVQRWUHSO\ZLWKDIXOO UHVSRQVHEXWUHWXUQVDVSHFLDOVWDWXVFRGHLQVWHDG SRZHUHGE\
  16. &RQGLWLRQDO5HTXHVW $VVXPSWLRQ&OLHQWFDQFDFKHSUHYLRXVUHVSRQVHV &OLHQW $3, &OLHQW $3, " " " 

     SRZHUHGE\
  17. 5HTXHVW%XQGOH +RZFDQWKHQXPEHURIUHTXHVWVDQGUHVSRQVHVEHUHGXFHG WRVDYHEDQGZLGWKDQGQHWZRUNFDSDFLW\DQGWRDYRLG XQQHFHVVDU\PHVVDJHSURFHVVLQJ" 'HѹQHD5HTXHVW%XQGOHDVDFRQWDLQHUWKDWDVVHPEOHV PXOWLSOHLQGLYLGXDOUHTXHVWVLQDVLQJOHUHTXHVWPHVVDJH $GGPHWDGDWDVXFKDVQXPEHUDQGLGHQWLѹHUVRILQGLYLGXDO UHTXHVWV SRZHUHGE\

  18. 5HTXHVW%XQGOH &RVW >5L@ 680 &RVW 5L *(7 5  *(7

    5  *(7 5 *(7 >555@   SRZHUHGE\
  19. 3UHYHQW([FHVVLYH$3,8VDJH 'HFLVLRQ&ULWHULD *XDUDQWHH6HUYLFH 3HUIRUPDQFH6FDODELOLW\DQG 6XVWDLQDELOLW\ 0DNH&OLHQWV$ZDUHRI/LPLWV ,PSDFW6HYHULW\RI$EXVH 1HJRWLDWLRQ&RPSOH[LW\ 2SWLRQV 0RQLWRU&OLHQW8VDJH

    IRU%LOOLQJZLWK  5DWH3ODQ ZLWKLQ 5DWH/LPLW RUERWK SRZHUHGE\
  20. 5DWH/LPLW +RZFDQWKH$3,SURYLGHU SUHYHQW$3,FOLHQWVIURP H[FHVVLYH$3,XVDJH" ,QWURGXFHDQGHQIRUFHD 5DWH/LPLWWRVDIHJXDUG DJDLQVW$3,FOLHQWVWKDW RYHUXVHWKH$3, SRZHUHGE\

  21. &RPPXQLFDWH(UURUV 'HFLVLRQ&ULWHULD +HOS)L[LQJ'HIHFWV ,QFUHDVH 5REXVWQHVV5HOLDELOLW\ 0DLQWDLQDELOLW\(YROYDELOLW\ ([SRVH6HFXULW\$WWDFN9HFWRU ,QWHUQDWLRQDOL]DWLRQ5HTXLUHG 2SWLRQV 3URWRFROOHYHO(UURU&RGHV

    3URWRFROLQGHSHQGHQW (UURU5HSRUWLQJ SRZHUHGE\
  22. (UURU5HSRUWLQJ +RZFDQWKHSURYLGHULQIRUPWKHFOLHQWDERXWFRPPXQLFDWLRQ DQGSURFHVVLQJIDXOWVZLWKRXWEHLQJUHVWULFWHGE\WHFKQRORJ\ VSHFLѹFVVXFKDVSURWRFROKHDGHUVDQGSUHGHѹQHGVWDWXV FRGHV" 5HSO\ZLWKDQHUURUFRGH HLWKHUDQLQWHJHURUDVWULQJ FRQVWDQW WKDWLQGLFDWHVWKHIDXOWLQDPDFKLQHUHDGDEOHZD\ ,QDGGLWLRQDGGDWH[WXDOGHVFULSWLRQRIWKHHUURUIRUWKH$3,

    FOLHQW SRZHUHGE\
  23. $3,4XDOLW\'HVLJQ6SDFH ([SOLFLW6SHFLѹFDWLRQRI4XDOLW\2EMHFWLYHVDQG3HQDOWLHV ,QWHUQDO6/$ ([WHUQDO6/$ ,QIRUPDO6/$ )RUPDO6/$ $3,&OLHQW,GHQWLѹFDWLRQDQG$XWKHQWLFDWLRQ $3,.H\ $3,.H\ZLWK6HFUHW $XWKHQWLFDWLRQ3URWRFRO

    0HWHULQJDQG&KDUJLQJIRU$3,&RQVXPSWLRQ )ODW5DWH3ODQ 3D\SHUXVH 0DUNHWEDVHG $OORFDWLRQ $XFWLRQVW\OH $OORFDWLRQ )UHHPLXP0RGHO $YRLG8QQHFHVVDU\'DWD7UDQVIHU :LVK/LVW :LVK7HPSODWH &RQGLWLRQDO5HTXHVW 5HTXHVW%XQGOH 3UHYHQWLQJ$3,&OLHQWVIURP([FHVVLYH$3,8VDJH %LOOZLWK5DWH3ODQ 5DWH/LPLWV &RPPXQLFDWH(UURUV 3URWRFROOHYHO(UURU&RGHV 3URWRFROLQGHSHQGHQW(UURU5HSRUWLQJ SRZHUHGE\
  24. 8QFHUWDLQW\(VWLPDWLRQ :LWK0RGHO :LWKRXW0RGHO 3RVVLEOH'HFLVLRQ 2XWFRPHV $OORZHG2SWLRQ &RPELQDWLRQV A 2SWLRQV 'HFLVLRQ&ULWHULD

    $VVHVVPHQWV 8QGHFLGHG &ULWHULD &ULWHULD™2SWLRQV SRZHUHGE\
  25. 8QFHUWDLQW\5HGXFWLRQ $3,/HYHO'HFLVLRQV2SHUDWLRQ/HYHO'HFLVLRQV 'HFLVLRQ&ULWHULD'HFLVLRQ2SWLRQV :LWK0RGHO :LWKRXW0RGHO 3RVVLEOH'HFLVLRQ 2XWFRPHV   

        'HFLVLRQ&ULWHULD $VVHVVPHQWV   SRZHUHGE\
  26. &RQFOXVLRQV 2UJDQL]LQJ$3,'HVLJQ.QRZOHGJHLQWR$UFKLWHFWXUDO'HVLJQ 'HFLVLRQ0RGHOVFDQOHDGWR6LJQLѹFDQW8QFHUWDLQW\5HGXFWLRQ XQLTXHVRXUFHVZHUHDQDO\]HGWRGLVWLOODUFKLWHFWXUDO GHVLJQGHFLVLRQVZLWKGHFLVLRQRSWLRQVDQGGHFLVLRQ FULWHULD /HWXVNQRZKRZZHFDQKHOS\RXDSSO\RXUGHFLVLRQJXLGDQFH PRGHOWR\RXU$3, SRZHUHGE\

  27. 5HIHUHQFHV 8ZH=GXQ0LUNR6WRFNHU2ODI=LPPHUPDQQ&HVDUH3DXWDVVR 'DQLHO/¾ENH 3URFRIWKHWK,QWHUQDWLRQDO &RQIHUHQFHRQ6HUYLFH2ULHQWHG&RPSXWLQJ ,&62&  +DQJ]KRX=KHMLDQJ&KLQD1RYHPEHU 0LUNR6WRFNHU2ODI=LPPHUPDQQ'DQLHO/¾ENH8ZH=GXQ &HVDUH3DXWDVVR

    3URFRIWKHUG (XURSHDQ&RQIHUHQFHRQ3DWWHUQ/DQJXDJHVRI3URJUDPV (XUR3/R3 .ORVWHU,UVHH*HUPDQ\-XO\ *XLGLQJ$UFKLWHFWXUDO'HFLVLRQ0DNLQJRQ4XDOLW\ $VSHFWVRI0LFURVHUYLFH$3,V ,QWHUIDFH4XDOLW\3DWWHUQV&UDIWLQJDQG &RQVXPLQJ0HVVDJH%DVHG5HPRWH$3,V SRZHUHGE\