SlideShare a Scribd company logo
1 of 70
Download to read offline
ZERO DOWNTIME DEPLOYMENT
STRATEGIES WITH K8S
+ HOW TO PREPARE YOUR SERVICE
Wojciech Barczynski - SMACC.io | Hypatos.ai
Listopad 2018
WOJCIECH BARCZYŃSKI
Lead So ware Engineer
& System Engineer
Interests:
working so ware
Hobby:
teaching so ware
engineering and
programming
STORY
Go + Kubernetes
SMACC - Fintech / ML - [10.2017- ...]
Lyke - Mobile Fashion app - [12.2016, 07.2017]
KUBERNETES
Learn-as-you-go
Battery for 12factor
apps
...app must be smarter
KUBERNETES
Kubernetes
Node
Node
Node
Node
App
Ingress Controller
Repository
make docker_push; kubectl create -f app-srv-dpl.yaml
SCALE UP! SCALE DOWN!
Kubernetes
Node
Node
Node
Node
App
Ingress Controller
App
Appscale 3x
kubectl --replicas=3 -f app-srv-dpl.yaml
DEPLOYMENT AND PODS
Node
Master
Deployment
Docker containers
Node
Docker Containers
Pod
Schedule
Schedule
DEPLOYMENT.YML
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-api
labels:
app: demo-api
spec:
replicas: 3
strategy:
type: Recreate
selector:
matchLabels:
app: demo-api
template:
metadata:
SERVICE AND PODS
Node
Deployment
Pod
Node
Pod
services
Fixed virtual address
Fixed DNS entry
Service matches pods based on labels
SERVICE.YML
apiVersion: v1
kind: Service
metadata:
name: demo-api
spec:
ports:
- port: 80
protocol: TCP
selector:
app: demo-api
type: LoadBalancer
BASIC CONCEPTS
Name Purpose
Service Interface Entry point
(Service Name)
Deployment Factory How many pods,
which pods
Pod Implementation 1+ docker running
HOW GET USER REQUESTS?
API
BACKOFFICE 1
DATA
WEB
ADMIN
BACKOFFICE 2
BACKOFFICE 3
API.DOMAIN.COM
DOMAIN.COM/WEB
BACKOFFICE.DOMAIN.COM
ORCHESTRATOR
PRIVATE NETWORKINTERNET
API
LISTEN
(DOCKER, SWARM, MESOS...)
Ingress Controller
INGRESS
Pattern Target App Service
api.smacc.io/v1/users users-v1
api.smacc.io/v2/users users-v2
smacc.io web
SERVICE DISCOVERY
AND LABELING
names in DNS:
curl
labels:
name=value
annotations:
prometheus.io/scrape: "true"
http://users/list
DEPLOYMENT STRATEGIES
STRATEGIES
We will see:
Replace (downtime visible)
Rolling updates
Blue Green
Canary
OTHER
We will not cover:
Feature toggles
A/B like
Shadow deployment
FIRST THE HOMEWORK
Need to support:
liveness - am I dead?
readiness - can I serve requests?
KUBE LIVENESS PROBE
livenessProbe:
httpGet:
path: /model
port: 8000
httpHeaders:
- name: X-Custom-Header
value: Awesome
initialDelaySeconds: 600
periodSeconds: 5
timeoutSeconds: 18
successThreshold: 1
failureThreshold: 3
LIVENESS PROBE
our pod gets restarted
too many restarts -> CrashLoop
KUBE READINESS PROBE
readinessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5
YOUR APP SHOULD ON STOP
1. we get SIGTERM signal
YOUR APP SHOULD ON STOP
1. we get SIGTERM signal
2. app gives 500 on readinessProbe
YOUR APP SHOULD ON STOP
1. we get SIGTERM signal
2. app gives 500 on readinessProbe
3. k8s does not send more requests
YOUR APP SHOULD ON STOP
1. we get SIGTERM signal
2. app gives 500 on readinessProbe
3. k8s does not send more requests
4. app shuts down gracefully
YOUR APP SHOULD ON STOP
1. we get SIGTERM signal
2. app gives 500 on readinessProbe
3. k8s does not send more requests
4. app shuts down gracefully
5. kuberenetes forces kill if 30s limit exceeded
ALWAYS
Implement readiness for:
ML Model-based components
slow starting time
DEMO SERVICE IMPLEMENTATION
graceful shutdown
demo service
GRACEFUL SHUTDOWN
From :missy
func (s *Service) prepareShutdown(h Server) {
signal.Notify(s.Stop, os.Interrupt, syscall.SIGTERM)
<-s.Stop
s.StatusNotReady()
shutdown(h)
}
DEMO - RECREATE
Service
Pods
Labels
Service
Pods
Labels
v1 v1 v1 v2 v2 v2
DEMO - RECREATE
spec:
replicas: 3
strategy:
type: Recreate
kubectl set image deployment/demo-api 
app=wojciech11/api-status:2.0.0
DEMO - RECREATE
quick
downtime visible
DEMO - ROLLING UPDATES
Service
Pods
Labels
Service
Pods
Labels
v1 v1 v1 v1 v1 v2
DEMO - ROLLING UPDATES
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 2
maxUnavailable: 0
docs
DEMO - ROLLING UPDATES
kubectl set image deployment/demo-api
app=wojciech11/api-status:2.0.0
DEMO - ROLLING UPDATES
the most popular
DEMO - GREEN/BLUE
Pods
Service
Pods
Blue Green
DEMO - GREEN/BLUE
Pods
Service
Pods
Blue Green
DEMO - GREEN/BLUE
kubectl patch service api-status 
-p '{"spec":{"selector": {"label": "green"} }}'
DEMO - GREEN/BLUE
For big changes
Less common
Might be implemented with Ingress
DEMO - CANARY
Pods
Service
Pods
Production Canary
DEMO - CANARY
Pods
Service
Pods
Production Canary
DEMO - CANARY
Pods
Service
Pods
Production Canary
DEMO - CANARY
Pods
Service
Pods
Production Canary
DEMO - CANARY
manually
kubectl scale --replicas=3 deploy/api-status-nginx-blue
kubectl scale --replicas=1 deploy/api-status-nginx-green
# no errors, let's continoue
kubectl scale --replicas=2 deploy/api-status-nginx-blue
kubectl scale --replicas=2 deploy/api-status-nginx-green
TRAEFIK
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
traefik.ingress.kubernetes.io/service-weights: |
my-app: 99%
my-app-canary: 1%
name: my-app
spec:
rules:
- http:
paths:
- backend:
serviceName: my-app
servicePort: 80
traffic-splitting
ISTIO
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: helloworld
spec:
hosts:
- helloworld
http:
- route:
- destination:
host: helloworld
subset: v1
weight: 90
- destination:
host: helloworld
traffic shi ing with Istio
SUMMARY
learn-as-you go <3
easy to implement complex strategies
see kubectl rollout and minReadySeconds
for more control
THANK YOU. QUESTIONS?
https://github.com/wojciech12/talk_zero_downtime_deployment_with_kubernetes
BACKUP SLIDES
STORY
Lyke - [12.2016 - 07.2017]
SMACC - [10.2017 - present]
LYKE
Now JollyChic Indonesia
E-commerce
Mobile-only
50k+ users
2M downloads
Top 10 Fashion
Apps
w Google Play
Store
http://www.news.getlyke.com/single-
post/2016/12/02/Introducing-the-
New-Beautiful-LYKE
GOOD PARTS
Fast Growth
A/B Testing
Data-driven
Product Manager,
UI Designer,
Mobile Dev,
and tester - one
body
CHALLENGES
50+ VMs in Amazon, 1 VM - 1 App, idle machine
Puppet, hilarious (manual) deployment process
Fear
Forgotten components
sometimes performance issues
SMACC
Machine Learning FinTech
SaaS and API platform
From Enterprise (Deutsche Bank, AoK)
to SME
Well-known FinTech Startup in
Germany
STORY
Legacy on AWS, experiments with AWS ECS :/
Self-hosted K8S on ProfitBricks
Get to Microso ScaleUp, welcome Azure
Luckily - Azure-Kubernetes-Service
DIFFERENCE ☠
Two teams in Berlin and Warsaw
Me in Warsaw
APPROACH
Simplify, Simplify
Hide K8S magic
git tag driven Continoues Deployment
KUBERNETES
CONCEPTS+
PODS
See each other on
localhost
Live and die
together
Can expose
multiple ports
Pod
nginx
WebFiles
ENV:
HOSTNAME=0.0.0.0
LISTENPORT=8080
SIDE-CARS
Pod
memcached
prometheus
exporter
Pod
app
swagger-ui
8080
80
9150
11211
LOAD BALANCING
Kubernetes
Worker
Kubernetes
Worker
Kubernetes
Worker
Node
Port
30000
Node Node
Kubernetes
Worker
Node
user-232
<<Requests>>
B
users
Port
30000
Port
30000
Port
30000
Load Balancer
user-12F
user-32F

More Related Content

What's hot

What's hot (20)

Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Kubernetes Deployment Strategies
Kubernetes Deployment StrategiesKubernetes Deployment Strategies
Kubernetes Deployment Strategies
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Red Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized StorageRed Hat OpenShift on Bare Metal and Containerized Storage
Red Hat OpenShift on Bare Metal and Containerized Storage
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)Kubernetes & Google Kubernetes Engine (GKE)
Kubernetes & Google Kubernetes Engine (GKE)
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
CD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdfCD using ArgoCD(KnolX).pdf
CD using ArgoCD(KnolX).pdf
 
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
 

Similar to Zero downtime deployment of micro-services with Kubernetes

Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
niharikadhanik
 

Similar to Zero downtime deployment of micro-services with Kubernetes (20)

Zero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with KubernetesZero-downtime deployment of Micro-services with Kubernetes
Zero-downtime deployment of Micro-services with Kubernetes
 
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...Kubernetes and its Infrastructure - a walkthrough from the paths of container...
Kubernetes and its Infrastructure - a walkthrough from the paths of container...
 
Kubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsKubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud apps
 
Kubernetes deployment strategies - CNCF Webinar
Kubernetes deployment strategies - CNCF WebinarKubernetes deployment strategies - CNCF Webinar
Kubernetes deployment strategies - CNCF Webinar
 
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
AWS 고객사를 위한 ‘AWS 컨테이너 교육’ - 유재석, AWS 솔루션즈 아키텍트
 
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
AWS Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트) Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
Amazon Container Services – 유재석 (AWS 솔루션즈 아키텍트)
 
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
 
Matt Johnson - My developer journey towards true hybrid cloud with Kubernetes...
Matt Johnson - My developer journey towards true hybrid cloud with Kubernetes...Matt Johnson - My developer journey towards true hybrid cloud with Kubernetes...
Matt Johnson - My developer journey towards true hybrid cloud with Kubernetes...
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
 
Kubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud appsKubernetes and the 12 factor cloud apps
Kubernetes and the 12 factor cloud apps
 
Using kubernetes to lose your fear of using containers
Using kubernetes to lose your fear of using containersUsing kubernetes to lose your fear of using containers
Using kubernetes to lose your fear of using containers
 
Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?Effective Platform Building with Kubernetes. Is K8S new Linux?
Effective Platform Building with Kubernetes. Is K8S new Linux?
 
Mcollective introduction
Mcollective introductionMcollective introduction
Mcollective introduction
 
AWS Lambda from the trenches
AWS Lambda from the trenchesAWS Lambda from the trenches
AWS Lambda from the trenches
 
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHow Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
 
TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020TechUG - Kubernetes 101 - May 2020
TechUG - Kubernetes 101 - May 2020
 
Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)Evolution of kube-proxy (Brussels, Fosdem 2020)
Evolution of kube-proxy (Brussels, Fosdem 2020)
 
Gatekeeper: API gateway
Gatekeeper: API gatewayGatekeeper: API gateway
Gatekeeper: API gateway
 

More from Wojciech Barczyński

More from Wojciech Barczyński (8)

DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far
 
Effective Kubernetes == Keep it Simple [Ignite Talk DevOpsDays Warsaw]
Effective Kubernetes == Keep it Simple [Ignite Talk DevOpsDays Warsaw]Effective Kubernetes == Keep it Simple [Ignite Talk DevOpsDays Warsaw]
Effective Kubernetes == Keep it Simple [Ignite Talk DevOpsDays Warsaw]
 
Monitor your Java application with Prometheus Stack
Monitor your Java application with Prometheus StackMonitor your Java application with Prometheus Stack
Monitor your Java application with Prometheus Stack
 
How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?How to monitor your micro-service with Prometheus?
How to monitor your micro-service with Prometheus?
 
Golang Warsaw #19 (early autumn) Intro Slides
Golang Warsaw #19 (early autumn) Intro SlidesGolang Warsaw #19 (early autumn) Intro Slides
Golang Warsaw #19 (early autumn) Intro Slides
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
 
Azure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challengesAzure Kubernetes Service - benefits and challenges
Azure Kubernetes Service - benefits and challenges
 
SMACC - Automatic Bookkeeping with AI
SMACC - Automatic Bookkeeping with AISMACC - Automatic Bookkeeping with AI
SMACC - Automatic Bookkeeping with AI
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 

Zero downtime deployment of micro-services with Kubernetes