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 '.$
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'.$
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 '.$ '.$ '.$
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
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
DEPLOYMENT STRATEGY Rolling Update – One Instance At A Time '.$ EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR
DEPLOYMENT STRATEGY Rolling Update – One Instance At A Time '.$ EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR EZNCTIG #< X
DEPLOYMENT STRATEGY Rolling Update – One Instance At A Time '.$ EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR EZNCTIG #< X EZNCTIG #< X
DEPLOYMENT STRATEGY Canary Release – % Users At A Time '.$ EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR 25% 75%
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%
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%
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%
DEPLOYMENT STRATEGY Canary Release – % Users At A Time '.$ EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR 0GY#WVQUECNKPI)TQWR EZNCTIG #< X EZNCTIG #< X 25% 75%
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%
DEPLOYMENT STRATEGY Blue-Green '.$ EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR'.$ 0GY#WVQUECNKPI)TQWR'.$ EZNCTIG #< X EZNCTIG #< X '.$ &05 UGTXKEGGZCORNGEQO
DEPLOYMENT STRATEGY Blue-Green '.$ EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X EZNCTIG #< X 1NF#WVQUECNKPI)TQWR'.$ 0GY#WVQUECNKPI)TQWR'.$ EZNCTIG #< X EZNCTIG #< X '.$ &05 UGTXKEGGZCORNGEQO
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
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
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
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
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
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
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
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
CONTINUOUS DELIVERY Using CI System Only 2WUJ%QOOKV 6GUV$WKNF 9GDJQQM %TGCVG %QPVCKPGT 7RNQCFDWKNF CTVKHCEV #TVKHCEVTGRQUKVQT[ &GRNQ[ CEVKXCVG &GCEVKXCVGQT FGUVTQ[ 7RNQCFEQPVCKPGT KOCIG
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