$30 off During Our Annual Pro Sale. View Details »

Microservices deployment patterns

Microservices deployment patterns

A balancing act between cost, complexity, elasticity and availability

Abhishek Tiwari

June 22, 2016
Tweet

More Decks by Abhishek Tiwari

Other Decks in Technology

Transcript

  1. MICROSERVICES
    DEPLOYMENT PATTERNS
    #DCNCPEKPICEVDGVYGGPEQUVEQORNGZKV[GNCUVKEKV[CPFCXCKNCDKNKV[
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide

  2. CUPCAKE MICROTECTURE

    View Slide

  3. TO BUILD MICROSERVICE
    AT SCALE YOU NEED
    'ZEGNNGPEG

    View Slide

  4. TO BUILD MICROSERVICE
    AT SCALE YOU NEED
    +P#2+FGXGNQROGPVCPF#2+NKHGE[ENGOCPCIGOGPV
    'ZEGNNGPEG

    View Slide

  5. TO BUILD MICROSERVICE
    AT SCALE YOU NEED
    +P#2+FGXGNQROGPVCPF#2+NKHGE[ENGOCPCIGOGPV
    'ZEGNNGPEG
    +P[QWT&GX1RUCPF%QPVKPWQWU&GNKXGT[RTCEVKEGU

    View Slide

  6. Well-architected

    View Slide

  7. Well-architected
    JKIJCXCKNCDKNKV[UGVWRVQOCZKOKUGVJGUGTXKEGCXCKNCDKNKV[

    View Slide

  8. Well-architected
    GNCUVKEKV[
    CWVQUECNKPIVQFGCNYKVJWPRTGFKEVCDNGNQCFURKMGU
    JKIJCXCKNCDKNKV[UGVWRVQOCZKOKUGVJGUGTXKEGCXCKNCDKNKV[

    View Slide

  9. Well-architected
    GNCUVKEKV[
    CWVQUECNKPIVQFGCNYKVJWPRTGFKEVCDNGNQCFURKMGU
    JKIJCXCKNCDKNKV[UGVWRVQOCZKOKUGVJGUGTXKEGCXCKNCDKNKV[
    HCWNVVQNGTCPEGVQYKVJUVCPFHCKNWTGUCPFECUECFKPIHCKNWTGU

    View Slide

  10. Well-architected
    GNCUVKEKV[
    CWVQUECNKPIVQFGCNYKVJWPRTGFKEVCDNGNQCFURKMGU
    JKIJCXCKNCDKNKV[UGVWRVQOCZKOKUGVJGUGTXKEGCXCKNCDKNKV[
    HCWNVVQNGTCPEGVQYKVJUVCPFHCKNWTGUCPFECUECFKPIHCKNWTGU
    QRVKOKUGFHQTNQYGTKPHTCUVTWEVWTGEQUVCPFEQORNGZKV[FGDV

    View Slide

  11. DEPLOYMENT PATTERNS
    • 1PGOKETQUGTXKEGRGTXKTVWCNOCEJKPGUGTXGT
    • 1PGOKETQUGTXKEGRGTEQPVCKPGT
    • 1PGOKETQUGTXKEGRGT2CC5OQFWNGCRRNKECVKQPUGTXKEG
    • 1PGOKETQUGTXKEGCUCUGVQHEQORWVGHWPEVKQPU

    View Slide

  12. THINGS TO CONSIDER
    !5GTXKEG&KUEQXGT[
    "'ZVGTPCNXU+PVGTPCN
    "5GTXGTUKFGXUENKGPVUKFG
    !.QCF$CNCPEKPI
    "'ZVGTPCN
    '.$XU+PVGTPCN
    +.$
    "5GTXGTUKFGXUENKGPVUKFG
    !5ECNCDKNKV[
    "5GTXKEGUECNCDKNKV[XUENWUVGTUECNCDKNKV[
    "5VCVGNGUUXUUVCVGHWN
    !%QPVCKPGT%NWUVGTU

    View Slide

  13. EXAMPLE MICROSERVICES LANDSCAPE
    Web " Mobile #
    2TQFWEV#2+UX %CTV#2+UX 1TFGT#2+UX (WNHKNOGPV#2+UX
    API Gateway
    .CVGUV8GTUKQP

    View Slide

  14. EXAMPLE MICROSERVICES LANDSCAPE
    Web " Mobile #
    2TQFWEV#2+UX %CTV#2+UX 1TFGT#2+UX (WNHKNOGPV#2+UX
    API Gateway
    .CVGUV8GTUKQP
    2TQFWEV#2+UX %CTV#2+UX 1TFGT#2+UX (WNHKNOGPV#2+UX
    2TQFWEV#2+UX 1TFGT#2+UX
    1TFGT#2+UX
    (WNHKNOGPV#2+UX 1NFGT8GTUKQPU

    View Slide

  15. EXAMPLE MICROSERVICES LANDSCAPE
    Web " Mobile #
    2TQFWEV#2+UX %CTV#2+UX 1TFGT#2+UX (WNHKNOGPV#2+UX
    API Gateway
    .CVGUV8GTUKQP
    2TQFWEV#2+UX %CTV#2+UX 1TFGT#2+UX (WNHKNOGPV#2+UX
    2TQFWEV#2+UX 1TFGT#2+UX
    1TFGT#2+UX
    (WNHKNOGPV#2+UX
    /KETQUGTXKEGU
    8GTUKQPU
    'PXKTQPOGPVU
    &GX7#6.KXG
    1NFGT8GTUKQPU

    View Slide

  16. ONE MICROSERVICE PER VM/SERVER
    OS
    Service
    Hypervisor
    OS OS
    Service Service
    VM VM
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide

  17. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    API Gateway
    '.$
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    '.$ '.$ '.$

    View Slide

  18. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    API Gateway
    '.$
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    #<
    X
    '.$ '.$ '.$
    *KIJN[CXCKNCDNG/WNVK#<FGRNQ[OGPVYKVJNQCFDCNCPEGT
    '.$

    View Slide

  19. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    #95JQUVKPIEQUVRGTOKETQUGTXKEGłRGTOQPVJ
    5GTXKEG
    .KXGłWVKNKUGF
    5GTXKEG
    .KXGłWVKNKUGF
    5GTXKEG
    .KXGłWVKNKUGF 5GTXKEG
    7#6łWVKNKUGF
    5GTXKEG
    7#6łWVKNKUGF
    5GTXKEG
    7#6łWVKNKUGF 5GTXKEG
    &GXłWVKNKUGF
    5GTXKEG
    &GXłWVKNKUGF
    5GTXKEG
    &GXłWVKNKUGF
    X ZEZNCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$
    X ZENCTIG
    Z'.$

    View Slide

  20. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    API Gateway
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$ '.$ '.$

    View Slide

  21. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    API Gateway
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$ '.$ '.$
    RGTOQPVJHQTCNN
    UGTXKEGUKP.KXGGPXKTQPOGPV
    QP
    FGOCPFVQVCNXGTUKQPU

    View Slide

  22. ONE MICROSERVICE PER VIRTUAL MACHINE
    (WITH ELB)
    API Gateway
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$ '.$ '.$
    RGTOQPVJHQTCNN
    UGTXKEGUKP.KXGGPXKTQPOGPV
    QP
    FGOCPFVQVCNXGTUKQPU
    /QUVKORQTVCPVN[QWTXKTVWCN
    OCEJKPGUCTGJGCXKN[WPFGT
    WVKNKUGF

    View Slide

  23. CONTINUOUS DELIVERY
    &GRNQ[GFCU
    2CEMCIGFCU
    /KETQUGTXKEG #/+QT8/+OCIG
    +PUVCPEGU
    2CEMGT
    $QZHWUG
    6GTTCHQTO
    %NQWF(QTOCVKQP

    View Slide

  24. CONTINUOUS DELIVERY
    Using CI System Only
    2WUJ%QOOKV 6GUV$WKNF
    9GDJQQM $CMG#/+
    8/+OCIG
    7RNQCFDWKNF
    CTVKHCEV
    #TVKHCEVTGRQUKVQT[
    &GRNQ[
    CEVKXCVG
    &GCEVKXCVGQT
    FGUVTQ[
    6GTTCHQTO
    %NQWF(QTOCVKQP
    4GIKUVGT#/+
    QT8/+OCIG
    2CEMGT
    $QZHWUG

    View Slide

  25. CONTINUOUS DELIVERY
    Using CI System Only
    2WUJ%QOOKV 6GUV$WKNF
    9GDJQQM $CMG#/+
    8/+OCIG
    7RNQCFDWKNF
    CTVKHCEV
    #TVKHCEVTGRQUKVQT[
    &GRNQ[
    CEVKXCVG
    &GCEVKXCVGQT
    FGUVTQ[
    6GTTCHQTO
    %NQWF(QTOCVKQP
    4GIKUVGT#/+
    QT8/+OCIG
    2CEMGT
    $QZHWUG
    #EVKXCVKQPKPXQNXGU
    &05EJCPIGCPFQT
    .QCFDCNCPEGT
    EQPHKIWTCVKQPWRFCVG

    View Slide

  26. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR

    View Slide

  27. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR

    View Slide

  28. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR

    View Slide

  29. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X

    View Slide

  30. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X

    View Slide

  31. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X

    View Slide

  32. DEPLOYMENT STRATEGY
    Rolling Update – One Instance At A Time
    '.$
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X

    View Slide

  33. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR
    100%

    View Slide

  34. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    25%
    75%

    View Slide

  35. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    60% 40%

    View Slide

  36. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    50% 50%

    View Slide

  37. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    40% 60%

    View Slide

  38. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    25% 75%

    View Slide

  39. DEPLOYMENT STRATEGY
    Canary Release – % Users At A Time
    '.$
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    0% 100%

    View Slide

  40. DEPLOYMENT STRATEGY
    A/B– Equal Split of % Users
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR
    100%

    View Slide

  41. DEPLOYMENT STRATEGY
    A/B– Equal Split of % Users
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    50%
    50%

    View Slide

  42. DEPLOYMENT STRATEGY
    Blue-Green
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR'.$
    &05
    UGTXKEGGZCORNGEQO

    View Slide

  43. DEPLOYMENT STRATEGY
    Blue-Green
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR'.$ 0GY#WVQUECNKPI)TQWR'.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$
    &05
    UGTXKEGGZCORNGEQO

    View Slide

  44. DEPLOYMENT STRATEGY
    Blue-Green
    '.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    1NF#WVQUECNKPI)TQWR'.$ 0GY#WVQUECNKPI)TQWR'.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$
    &05
    UGTXKEGGZCORNGEQO

    View Slide

  45. DEPLOYMENT STRATEGY
    Blue-Green
    EZNCTIG
    #<
    X
    0GY#WVQUECNKPI)TQWR'.$
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    '.$
    &05
    UGTXKEGGZCORNGEQO

    View Slide

  46. CONTINUOUS DELIVERY
    Using CI System + Spinnaker
    2WUJ%QOOKV 6GUV$WKNF
    9GDJQQM $CMG#/+
    8/+OCIG
    7RNQCFDWKNF
    CTVKHCEV
    #TVKHCEVTGRQUKVQT[
    &GRNQ[
    CEVKXCVG
    &GCEVKXCVGQT
    FGUVTQ[
    6TKIIGTU
    4GIKUVGT#95
    #/+
    0GY#WVQUECNG
    ITQWR
    1NF#WVQUECNG
    ITQWR
    4GIKUVGT)%'
    8/+OCIG
    0GY/CPCIGF 1NF/CPCIGF

    View Slide

  47. Spinnaker Deck

    View Slide

  48. OBSERVATIONS
    %QUVł*KIJ%QORNGZKV[ł.QY'NCUVKEKV[ł*KIJ#XCKNCDKNKV[*KIJ
    0QFKUVKPEVKQPDGVYGGPUGTXKEGKPHTCUVTWEVWTGGNCUVKEKV[UECNGQWVKPVQIGVJGT

    View Slide

  49. ONE MICROSERVICE PER CONTAINER
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide

  50. ONE MICROSERVICE PER CONTAINER
    (WITH ELB)
    API Gateway
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    '.$
    X
    '.$
    X
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X

    View Slide

  51. ONE MICROSERVICE PER CONTAINER
    (WITH ELB)
    API Gateway
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    '.$
    X
    '.$
    X
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    RGTOQPVJHQTCNN
    UGTXKEGUKP.KXGGPXKTQPOGPV
    QP
    FGOCPFVQVCNXGTUKQPU

    View Slide

  52. ONE MICROSERVICE PER CONTAINER
    (WITH ELB)
    API Gateway
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    '.$
    X
    '.$
    X
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    RGTOQPVJHQTCNN
    UGTXKEGUKP.KXGGPXKTQPOGPV
    QP
    FGOCPFVQVCNXGTUKQPU
    0QYQWTXKTVWCNOCEJKPGUCTG
    QRVKOKUGFHQTTGUQWTEGU
    WVKNKUCVKQP

    View Slide

  53. ONE MICROSERVICE PER CONTAINER
    (WITH ELB)
    #NN5GTXKEGU
    .KXGłWVKNKUGF
    #NN5GTXKEGU
    .KXGłWVKNKUGF #NN5GTXKEGU
    7#6łWVKNKUGF
    #NN5GTXKEGU
    7#6łWVKNKUGF #NN5GTXKEGU
    &GXłWVKNKUGF
    #NN5GTXKEGU
    &GXłWVKNKUGF
    ZEZNCTIG
    Z'.$
    ZENCTIG
    Z'.$
    ZENCTIG
    Z'.$
    #VNGCUVNQYGT#95JQUVKPIEQUV
    YJGPEQORCTGFVQQPGOKETQUGTXKEGRGT
    KPUVCPEGOQFGNRNWUDGVVGTUGTXKEG
    RGTHQTOCPEGCPFKPUVCPEGWVKNKUCVKQP

    View Slide

  54. ONE MICROSERVICE PER CONTAINER
    (WITH HA/AUTO-SCALING)
    '.$
    X
    #<
    X
    API Gateway
    Port Instance
    8003
    Port Container
    8003
    Port ELB
    80
    X
    '.$
    X
    Port ELB
    80
    Port Instance
    6003
    Port Container
    6003
    /CRRKPIDGVYGGP
    +PUVCPEGRQTVUCPFEQPVCKPGTRQTVU

    View Slide

  55. ONE MICROSERVICE PER CONTAINER
    (SINGLE MULTI-AZ CONTAINER CLUSTER)
    API Gateway
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    '.$
    X
    '.$
    X
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X

    View Slide

  56. ONE MICROSERVICE PER CONTAINER
    (MULTIPLE SINGLE-AZ CONTAINER CLUSTER)
    API Gateway
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    '.$
    X
    '.$
    X
    '.$
    X
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    EZNCTIG
    #<
    X
    EZNCTIG
    #<
    X
    #<
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X
    '.$
    X

    View Slide

  57. ONE MICROSERVICE PER CONTAINER
    With ELB & ILB
    API Gateway
    '.$
    X
    #<
    X
    X
    X
    X
    X
    X
    +.$
    X
    #<
    X
    X
    X
    X
    X
    X
    +.$
    X
    #<
    X
    X
    X
    X
    X
    X
    +.$
    X
    %QODKPCVKQPQHGZVGTPCNCPFKPVGTPCNNQCFDCNCPEKPI
    HQTF[PCOKEEQPVCKPGTRNCEGOGPV

    View Slide

  58. ONE MICROSERVICE PER CONTAINER
    More On ELB, ILB & Cluster
    1TEJGUVTCVKQP
    (TCOGYQTM
    '.$ +.$ 5KPING/WNVK#<%NWUVGT /WNVKRNG5KPING#<
    %NWUVGT
    /CTCVJQP&%15 .QCF$CNCPEGT
    OCTCVJQPND
    OCTCVJQPND
    *#2TQZ[
    ;GU ;GU
    )QQING%QPVCKPGT'PIKPG )NQDCN.QCF$CNCPEGT *#2TQZ[ ;GU ;GU
    -WDGTPGVGU .QCF$CNCPEGT
    0QFG2QTV
    'ZVGTPCN+2U
    5GTXKEG.QCF$CNCPEGT
    +PITGU
    -WDG2TQZ[ ;GU8GTUKQP ;GU
    #OC\QP'%5 'NCUVKE.QCF$CNCPEGT *#2TQZ[ ;GU 0Q

    View Slide

  59. ONE MICROSERVICE PER CONTAINER
    More On Service Discovery & Networking
    1TEJGUVTCVKQP(TCOGYQTM +PVGTPCN5GTXKEG&KUEQXGT[ 'ZVGTPCN5GTXKEG&KUEQXGT[ 0GVYQTMKPI
    /CTCVJQP&%15 /GUQU&05
    OCTCVJQPND
    'ZVGTPCN&05
    %QPUWN
    +2RGTVCUM

    8KTVWCN+2#FFTGUUGU
    )QQING%QPVCKPGT'PIKPG )NQDCN.QCF$CNCPEGT )QQING&05 2TKXCVGENWUVGT+2RGT2QF
    -WDGTPGVGU 'PXKTQPOGPVXCTKCDNGU
    &055GTXGT
    'ZVGTPCN&05 2TKXCVGENWUVGT+2RGT2QF
    #OC\QP'%5 4QWVG
    'NCUVKE.QCF$CNCPEGT
    4QWVG
    %QPUWN
    '.$
    2TKXCVGENWUVGT+2RGTVCUM

    View Slide

  60. ONE MICROSERVICE PER CONTAINER
    Rolling Updates, Blue-Green and Canary
    1TEJGUVTCVKQP(TCOGYQTM 4QNNKPI7RITCFGU $NWG)TGGP %CPCT[ #$
    /CTCVJQP&%15 1WVQHDQZ
    /KPKOWO*GCNVJ%CRCEKV[
    2QUUKDNGDWVEWUVQO
    UETKRVKPITGSWKTGF
    )QQING%QPVCKPGT'PIKPG 1WVQHDQZ
    1PGRQFCVCVKOG
    2QUUKDNGDWVEWUVQO
    UETKRVKPITGSWKTGF
    1WVQHDQZ
    -WDGTPGVGU 1WVQHDQZ
    1PGRQFCVCVKOG
    2QUUKDNGDWVEWUVQO
    UETKRVKPITGSWKTGF
    1WVQHDQZ
    #OC\QP'%5 2QUUKDNGDWVXGT[ETWFG 2QUUKDNGDWVEWUVQO
    UETKRVKPITGSWKTGF

    View Slide

  61. CONTINUOUS DELIVERY
    &GRNQ[GFCUEQPVCKPGT
    2CEMCIGFCU
    /KETQUGTXKEG &QEMGT+OCIG
    %NWUVGT+PUVCPEGU

    View Slide

  62. CONTINUOUS DELIVERY
    Using CI System Only
    2WUJ%QOOKV 6GUV$WKNF
    9GDJQQM %TGCVG
    %QPVCKPGT
    7RNQCFDWKNF
    CTVKHCEV
    #TVKHCEVTGRQUKVQT[
    &GRNQ[
    CEVKXCVG
    &GCEVKXCVGQT
    FGUVTQ[
    7RNQCFEQPVCKPGT
    KOCIG

    View Slide

  63. /GUQU/CUVGT
    <-
    /GUQU/CUVGT
    <-
    MARATHON DC/OS
    /GUQU5NCXG /GUQU5NCXG /GUQU5NCXG
    /GUQU/CUVGT
    <-
    *#RTQZ[
    %QPHKI
    6TKIIGT&GRNQ[OGPVXKC4'56#2+
    +OCIG
    7RNQCF
    #WVQUECNG%QPVTQNNGT
    '.$

    View Slide

  64. 0QFG
    &QEMGT
    0QFG
    &QEMGT
    KUBERNETES
    0QFG
    /CUVGT
    6TKIIGT&GRNQ[OGPVXKC4'56#2+QTMWDGEVN
    +OCIG
    7RNQCF
    '.$
    -WDGNGV
    -WDG7+
    4'56#2+U
    -WDGNGV -WDGNGV
    &QEMGT
    2QF 2QF 2QF 2QF 2QF 2QF
    6[RG.QCF$CNCPEGT
    %QPVTQNNGTU
    -WDG2TQZ[ -WDG2TQZ[ -WDG2TQZ[
    GVEF GVEF
    GVEF

    View Slide

  65. OBSERVATIONS
    %QUVł.QY%QORNGZKV[ł*KIJ'NCUVKEKV[ł*KIJ#XCKNCDKNKV[*KIJ
    5GTXKEGCPFEQPVCKPGTENWUVGTUECNGUGRCTCVGN[łJGPEGOCPCIGFUGRCTCVGN[

    View Slide

  66. ONE MICROSERVICE PER PaaS SERVICE
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide

  67. ONE MICROSERVICE PER PaaS SERVICE
    (GOOGLE APP ENGINE)
    )QQING%NQWF2TQLGEV
    &CVCUVQTG
    /GOECEJG
    6CUM3WGWG
    2TQFWEV5GTXKEG %CTV5GTXKEG 1TFGT5GTXKEG (WNHKNOGPV5GTXKEG
    X
    X
    X
    X
    X
    X
    X
    X
    X

    X X
    https://version-dot-service-dot-app-id.appspot.com

    View Slide

  68. GOOGLE APP ENGINE
    #NN5GTXKEGU
    .KXGłWVKNKUGF
    #NN5GTXKEGU
    .KXGłWVKNKUGF #NN5GTXKEGU
    7#6łWVKNKUGF
    #NN5GTXKEGU
    7#6łWVKNKUGF #NN5GTXKEGU
    &GXłWVKNKUGF
    #NN5GTXKEGU
    &GXłWVKNKUGF
    5GTXKEGU
    #XI+PUVCPEGUUGTXKEG
    +PUVCPEGV[RG$$
    6QVCN+PUVCPEG*TU
    OQPVJ
    5GTXKEGU
    #XI+PUVCPEGUGTXKEG
    +PUVCPEGV[RG$
    6QVCN+PUVCPEG*TU
    /QPVJ
    5GTXKEGU
    #XI+PUVCPEGUGTXKEG
    +PUVCPEGV[RG$
    6QVCN+PUVCPEG*TU
    /QPVJ

    View Slide

  69. GOOGLE APP ENGINE
    #NN5GTXKEGU
    .KXGłWVKNKUGF
    #NN5GTXKEGU
    .KXGłWVKNKUGF #NN5GTXKEGU
    7#6łWVKNKUGF
    #NN5GTXKEGU
    7#6łWVKNKUGF #NN5GTXKEGU
    &GXłWVKNKUGF
    #NN5GTXKEGU
    &GXłWVKNKUGF
    5GTXKEGU
    #XI+PUVCPEGUUGTXKEG
    +PUVCPEGV[RG$$
    6QVCN+PUVCPEG*TU
    OQPVJ
    5GTXKEGU
    #XI+PUVCPEGUGTXKEG
    +PUVCPEGV[RG$
    6QVCN+PUVCPEG*TU
    /QPVJ
    5GTXKEGU
    #XI+PUVCPEGUGTXKEG
    +PUVCPEGV[RG$
    6QVCN+PUVCPEG*TU
    /QPVJ
    6JTQWIJRWVQHCIKXGPKPUVCPEGFGRGPFUQPVJGNCVGPE[QHTGSWGUVRTQEGUUKPI
    5QYKVJOKNNKUGEQPFNCVGPE[C$KPUVCPEGECPRTQEGUUTGSWGUVUUGEQPF

    View Slide

  70. GOOGLE APP ENGINE

    View Slide

  71. GOOGLE APP ENGINE
    9CTOWRłCFFYCTOWRTGSWGUVUVQ[QWTUGTXKEGFGRNQ[OGPVUKPQTFGT
    VQTGFWEGVJGNCVGPE[KPUGTXKEGUVCTVWR

    View Slide

  72. GOOGLE APP ENGINE
    9CTOWRłCFFYCTOWRTGSWGUVUVQ[QWTUGTXKEGFGRNQ[OGPVUKPQTFGT
    VQTGFWEGVJGNCVGPE[KPUGTXKEGUVCTVWR
    %CPCT[łWUGVTCHHKEOKITCVKQPVQITCFWCNN[OQXGVJGVTCHHKEHTQO
    VJGQNFXGTUKQPQHUGTXKEGVQVJGPGYXGTUKQP

    View Slide

  73. GOOGLE APP ENGINE
    9CTOWRłCFFYCTOWRTGSWGUVUVQ[QWTUGTXKEGFGRNQ[OGPVUKPQTFGT
    VQTGFWEGVJGNCVGPE[KPUGTXKEGUVCTVWR
    %CPCT[łWUGVTCHHKEOKITCVKQPVQITCFWCNN[OQXGVJGVTCHHKEHTQO
    VJGQNFXGTUKQPQHUGTXKEGVQVJGPGYXGTUKQP
    #$łWUGVTCHHKEURNKVVKPIVQURGEKH[CRGTEGPVCIGFKUVTKDWVKQPQH
    VTCHHKECETQUUVYQQTOQTGXGTUKQPUQHUGTXKEG

    View Slide

  74. OBSERVATIONS
    %QUVł*KIJ%QORNGZKV[ł.QY'NCUVKEKV[ł*KIJ#XCKNCDKNKV[*KIJ
    7PNGUU[QWTUGTXKEGUCTGJKIJN[QRVKOK\GFHQT)#'[QWTEQUVKUGZRGEVGFVQD[JKIJ

    View Slide

  75. ONE MICROSERVICE AS A SET OF COMPUTE
    FUNCTIONS
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide

  76. FaaS - Function as a Service
    NKIJVYGKIJVGXGPVDCUGFCU[PEJTQPQWUUKPINGRWTRQUGEQORWVGHWPEVKQPU

    View Slide

  77. AWS Lambda Function
    Amazon API Gateway
    RTQFWEVU
    RTQFWEVU]KF_
    ƛNKUVRTQFWEVU
    ƛIGVRTQFWEV
    ƛWRFCVGRTQFWEV
    ƛETGCVGRTQFWEV
    ƛFGNGVGRTQFWEV
    ƛIGVNKUVKOCIGU
    )'6
    276
    2156
    &'.'6'
    RTQFWEVU]KF_KOCIGU
    ƛIGVKOCIG
    RTQFWEVU]KF_KOCIGU]KF_
    ƛWRFCVGKOCIG
    ƛETGCVGKOCIG
    ƛFGNGVGKOCIG

    View Slide

  78. AWS Lambda Function

    View Slide

  79. AWS Lambda Function
    7UGHTCOGYQTMUVQDWKNFFGRNQ[CPFOCPCIG#95.CODFCHWPEVKQP
    DCUGFUGTXKEGUYKVJGCUGCPFUECNG

    View Slide

  80. AWS Lambda Function
    4GRWTRQUKPIGZKUVKPIUGTXKEGUKPVQHTCOGYQTMUUWEJCU#RGZCPFU
    5GTXGTNGUUPGGFUCNQVOQTGYQTMVJCPYTKVKPIHTQOUETCVEJ
    7UGHTCOGYQTMUVQDWKNFFGRNQ[CPFOCPCIG#95.CODFCHWPEVKQP
    DCUGFUGTXKEGUYKVJGCUGCPFUECNG

    View Slide

  81. OBSERVATIONS
    %QUVł.QY%QORNGZKV[ł.QY'NCUVKEKV[ł*KIJ#XCKNCDKNKV[*KIJ

    View Slide

  82. Thank you
    3#
    Abhishek Tiwari http://abhishek-tiwari.com ! @abhishektiwari

    View Slide