SlideShare a Scribd company logo
1 of 46
Download to read offline
Kubernetes & the 12 factors
cloud applications
Ana Maria Mihalceanu
#JBCNConf2019
@ammbra1508#GDG #BJUG
HELLO!
I am Ana
Technical Lead @ IBM
Co-founder of Bucharest Software Craftsmanship Community
Why 12 factors & Kubernetes?
@ammbra1508#GDG #BJUG
Why 12 factors & Kubernetes?
@ammbra1508#GDG #BJUG
Evolution
Declarative
formats
Why 12 factors & Kubernetes?
@ammbra1508#GDG #BJUG
Run at push
of a button
Evolution
Declarative
formats
Scale up
with
minimal
changes
Declarative
formats
Scale up
with
minimal
changes
Why 12 factors & Kubernetes?
@ammbra1508#GDG #BJUG
Portability
Run at push
of a button
Evolution
Declarative
formats
Scale up
with
minimal
changes
Clean
Contract
Why 12 factors & Kubernetes?
@ammbra1508#GDG #BJUG
PortabilityLocal vs
production
Run at push
of a button
Evolution
Declarative
formats
Scale up
with
minimal
changes
Clean
Contract
Continuous
deployment
Scenario
@ammbra1508#GDG #BJUG
FACTOR 1 - CODEBASE
@ammbra1508#GDG #BJUG
One codebase tracked in
revision control,
with multiple deployments.
FACTOR 1 - CODEBASE
@ammbra1508#GDG #BJUG
HELM
v2.x.y
FACTOR 2 - DEPENDENCIES
@ammbra1508#GDG #BJUG
Explicitly declare and
isolate dependencies.
FACTOR 3 - CONFIGURATION
@ammbra1508#GDG #BJUG
FACTOR 3 - CONFIGURATION
@ammbra1508#GDG #BJUG
Store configuration in the environment.
kubectl create secret docker-registry ${SECRET_NAME}
--namespace ${CLUSTER_NAMESPACE}
--docker-server=${REGISTRY}
--docker-password=${TOKEN}
--docker-username=iamapikey --docker-email=a@b.com
FACTOR 3 - CONFIGURATION
@ammbra1508#GDG #BJUG
Store configuration in the environment.
kubectl create secret docker-registry ${SECRET_NAME}
--namespace ${CLUSTER_NAMESPACE}
--docker-server=${REGISTRY}
--docker-password=${TOKEN}
--docker-username=iamapikey --docker-email=a@b.com
FACTOR 4 – BACKING SERVICE
@ammbra1508#GDG #BJUG
Treat backing services as attached resources.
FACTOR 4 – BACKING SERVICE
@ammbra1508#GDG #BJUG
apiVersion: v1
kind: Secret
metadata:
name: cloudant
type: Opaque
data:
binding: {}
FACTOR 4 – BACKING SERVICE
@ammbra1508#GDG #BJUG
Treat backing services as attached resources.
apiVersion: v1
kind: Secret
metadata:
name: cloudant
type: Opaque
data:
binding: {}
FACTOR 4 – BACKING SERVICE
@ammbra1508#GDG #BJUG
Treat backing services as attached resources.
apiVersion: v1
kind: Secret
metadata:
name: cloudant
type: Opaque
data:
binding: {}
FACTOR 5 – BUILD, RELEASE, RUN
@ammbra1508#GDG #BJUG
FACTOR 5 – BUILD, RELEASE, RUN
@ammbra1508#GDG #BJUG
Strictly separate build
and run stages.
FACTOR 5 – BUILD, RELEASE, RUN
@ammbra1508#GDG #BJUG
FACTOR 6 – PROCESSES
@ammbra1508#GDG #BJUG
Execute the app as one or
more stateless processes.
Container
Filesystem
Persistent
VolumeVolume
FACTOR 6 – PROCESSES
@ammbra1508#GDG #BJUG
kubectl apply –f ${CREATE_VOLUME}.yaml
kubectl apply –f ${COPY_SCRIPTS_POLLER}.yaml
kubectl cp ./scripts ${POD}:/${LOCATION}
kubectl apply –f ${USE_SCRIPTS}.yaml
FACTOR 7 – PORT BINDING
@ammbra1508#GDG #BJUG
kubectl apply –f ${FILE}
FACTOR 7 – PORT BINDING
@ammbra1508#GDG #BJUG
Export services via port binding.
FACTOR 7 – PORT BINDING
@ammbra1508#GDG #BJUG
Export services via port binding.
kubectl expose deployment/${NAME}
--type=”${SERVICE_TYPE}”
--name=${SERVICE_NAME}
FACTOR 8 – CONCURRENCY
@ammbra1508#GDG #BJUG
Scale out via the process model.
FACTOR 8 – CONCURRENCY
@ammbra1508#GDG #BJUG
kubectl autoscale deployment {$DEPLOYMENT}
--min=${MIN_PODS} --max=${MAX_PODS}
--cpu-percent=${CPU}
--namespace=${NAMESPACE}
FACTOR 8 – CONCURRENCY
@ammbra1508#GDG #BJUG
kubectl autoscale deployment {$DEPLOYMENT}
--min=${MIN_PODS} --max=${MAX_PODS}
--cpu-percent=${CPU}
--namespace=${NAMESPACE}
𝐝𝐞𝐬𝐢𝐫𝐞𝐝𝐑𝐞𝐩𝐥𝐢𝐜𝐚𝐬 = ceil(currentReplicas ×
currentMetricValue
𝐝𝐞𝐬𝐢𝐫𝐞𝐝𝐌𝐞𝐭𝐫𝐢𝐜𝐕𝐚𝐥𝐮𝐞
)
FACTOR 9 – DISPOSABILITY
@ammbra1508#GDG #BJUG
Fast startup Graceful shutdown
Maximize robustness with
FACTOR 9 – DISPOSABILITY
@ammbra1508#GDG #BJUG
Fast startup Graceful shutdown
Maximize robustness with
helm upgrade ${RELEASE} ${CHART} --recreate-pods
FACTOR 9 – DISPOSABILITY
@ammbra1508#GDG #BJUG
Application boot time
FACTOR 9 – DISPOSABILITY
@ammbra1508#GDG #BJUG
Rolling update one after another
FACTOR 10 – DEV PROD PARITY
@ammbra1508#GDG #BJUG
Time People
Tools
FACTOR 10 – DEV PROD PARITY
@ammbra1508#GDG #BJUG
Keep development, staging and production
as similar as possible.
kubectl create namespace ${NAMESPACE}
FACTOR 11 – LOGS
@ammbra1508#GDG #BJUG
FACTOR 11 – LOGS
@ammbra1508#GDG #BJUG
Treat logs as event streams.
kubectl create secret generic logdna-agent-key
--from-literal=logdna-agent-key=<ingestion_key>
kubectl create -f
https://repo.logdna.com/ibm/prod/logdna-agent-ds-
us-south.yaml
FACTOR 12 – ADMIN PROCESSES
@ammbra1508#GDG #BJUG
Run admin/management tasks as one-off processes.
kubectl create configmap ${CONFIG}
--from-file=scripts/ -o yaml
kubectl apply –f ${ONE_TIME_JOB_CONFIGURATION}
@ammbra1508#GDG #BJUG
TAKEAWAYS
Decouple
Decouple
infrastructure
complexity from your
application code.
Managed Services
Prefer managed
services in matters
involving
persistency.
Environment Parity
Keep your
environments as
similar as possible.
@ammbra1508#GDG #BJUG
TAKEAWAYS
Stateless
Design your
application as
stateless.
Scale
Your application
should be able to
process diverse
workloads.
Monitor
Use appropriate
logging in application
code and implement
cluster-level logging.
@ammbra1508#GDG #BJUG
The strongest factor for success is self-esteem.
Believing you can do it, believing you deserve it,
believing you will get it.
Anonymous
“ “
@ammbra1508#GDG #BJUG
THANKS!
Useful links
https://gist.github.com/ammbra/e951f8192592bc175a971a31df904c2
2
@ammbra1508#GDG #BJUG

More Related Content

What's hot

Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native DevelopmentManuel Garcia
 
Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...Docker, Inc.
 
Securing and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSecuring and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSaim Safder
 
Fabio rapposelli pks-vmug
Fabio rapposelli   pks-vmugFabio rapposelli   pks-vmug
Fabio rapposelli pks-vmugVMUG IT
 
Is your kubernetes negative or positive
Is your kubernetes negative or positive Is your kubernetes negative or positive
Is your kubernetes negative or positive LibbySchulze
 
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for UnknownsTectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for UnknownsCoreOS
 
Kubestr browse2021.pptx
Kubestr browse2021.pptxKubestr browse2021.pptx
Kubestr browse2021.pptxLibbySchulze
 
6 Things You Need to Know to Safely Run Kubernetes
6 Things You Need to Know to Safely Run Kubernetes6 Things You Need to Know to Safely Run Kubernetes
6 Things You Need to Know to Safely Run KubernetesVMware Tanzu
 
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDC
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDCBasics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDC
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDCMatt McNeeney
 
Building Developer Pipelines with PKS, Harbor, Clair, and Concourse
Building Developer Pipelines with PKS, Harbor, Clair, and ConcourseBuilding Developer Pipelines with PKS, Harbor, Clair, and Concourse
Building Developer Pipelines with PKS, Harbor, Clair, and ConcourseVMware Tanzu
 
Akri cncf-jobs-webinar-final
Akri cncf-jobs-webinar-finalAkri cncf-jobs-webinar-final
Akri cncf-jobs-webinar-finalLibbySchulze1
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...SlideTeam
 
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...VMware Tanzu
 
運用高效、敏捷全新平台極速落實雲原生開發
運用高效、敏捷全新平台極速落實雲原生開發運用高效、敏捷全新平台極速落實雲原生開發
運用高效、敏捷全新平台極速落實雲原生開發inwin stack
 
Anthos Application Modernization Platform
Anthos Application Modernization PlatformAnthos Application Modernization Platform
Anthos Application Modernization PlatformGDG Cloud Bengaluru
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)충섭 김
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker, Inc.
 
DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA Docker, Inc.
 
Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)Weaveworks
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemKubeSphere
 

What's hot (20)

Cloud Native Development
Cloud Native DevelopmentCloud Native Development
Cloud Native Development
 
Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...Fully Orchestrating Applications, Microservices and Enterprise Services with ...
Fully Orchestrating Applications, Microservices and Enterprise Services with ...
 
Securing and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with KyvernoSecuring and Automating Kubernetes with Kyverno
Securing and Automating Kubernetes with Kyverno
 
Fabio rapposelli pks-vmug
Fabio rapposelli   pks-vmugFabio rapposelli   pks-vmug
Fabio rapposelli pks-vmug
 
Is your kubernetes negative or positive
Is your kubernetes negative or positive Is your kubernetes negative or positive
Is your kubernetes negative or positive
 
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for UnknownsTectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
 
Kubestr browse2021.pptx
Kubestr browse2021.pptxKubestr browse2021.pptx
Kubestr browse2021.pptx
 
6 Things You Need to Know to Safely Run Kubernetes
6 Things You Need to Know to Safely Run Kubernetes6 Things You Need to Know to Safely Run Kubernetes
6 Things You Need to Know to Safely Run Kubernetes
 
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDC
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDCBasics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDC
Basics of Kubernetes on BOSH: Run Production-grade Kubernetes on the SDDC
 
Building Developer Pipelines with PKS, Harbor, Clair, and Concourse
Building Developer Pipelines with PKS, Harbor, Clair, and ConcourseBuilding Developer Pipelines with PKS, Harbor, Clair, and Concourse
Building Developer Pipelines with PKS, Harbor, Clair, and Concourse
 
Akri cncf-jobs-webinar-final
Akri cncf-jobs-webinar-finalAkri cncf-jobs-webinar-final
Akri cncf-jobs-webinar-final
 
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
An Architectural Deep Dive With Kubernetes And Containers Powerpoint Presenta...
 
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...
Hitting the Enterprise Sweet Spot—A Real-World View of PKS Deployment and Suc...
 
運用高效、敏捷全新平台極速落實雲原生開發
運用高效、敏捷全新平台極速落實雲原生開發運用高效、敏捷全新平台極速落實雲原生開發
運用高效、敏捷全新平台極速落實雲原生開發
 
Anthos Application Modernization Platform
Anthos Application Modernization PlatformAnthos Application Modernization Platform
Anthos Application Modernization Platform
 
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
쿠버네티스를 이용한 기능 브랜치별 테스트 서버 만들기 (GitOps CI/CD)
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overview
 
DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA DCSF19 Kubernetes Security with OPA
DCSF19 Kubernetes Security with OPA
 
Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)Weave GitOps Core Overview (Free GitOps Workshop)
Weave GitOps Core Overview (Free GitOps Workshop)
 
Introduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystemIntroduction to KubeSphere and its open source ecosystem
Introduction to KubeSphere and its open source ecosystem
 

Similar to Kubernetes and the 12 factor cloud apps

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 appsAna-Maria Mihalceanu
 
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 appsAna-Maria Mihalceanu
 
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and ChefScaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chefbridgetkromhout
 
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 KubernetesWojciech Barczyński
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina LinTadayoshi Sato
 
Kubernetes &amp; the 12 factor cloud apps
Kubernetes &amp; the 12 factor cloud appsKubernetes &amp; the 12 factor cloud apps
Kubernetes &amp; the 12 factor cloud appsAna-Maria Mihalceanu
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsMárton Kodok
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD StoryLondon Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD StoryApigee | Google Cloud
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...NETWAYS
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTKai Zhao
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Lviv Startup Club
 
Kubernetes and Istio
Kubernetes and IstioKubernetes and Istio
Kubernetes and IstioKetan Gote
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersSteffen Gebert
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDocker, Inc.
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaJudy Breedlove
 
Agile integration workshop Atlanta
Agile integration workshop   AtlantaAgile integration workshop   Atlanta
Agile integration workshop AtlantaJeremy Davis
 
ITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoUri Savelchev
 
Kong ingress controller kubernetes ingress on steroids
Kong ingress controller   kubernetes ingress on steroidsKong ingress controller   kubernetes ingress on steroids
Kong ingress controller kubernetes ingress on steroidsLibbySchulze
 

Similar to Kubernetes and the 12 factor cloud apps (20)

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 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
 
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and ChefScaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
 
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
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
Kubernetes &amp; the 12 factor cloud apps
Kubernetes &amp; the 12 factor cloud appsKubernetes &amp; the 12 factor cloud apps
Kubernetes &amp; the 12 factor cloud apps
 
Serverless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud WorkflowsServerless orchestration and automation with Cloud Workflows
Serverless orchestration and automation with Cloud Workflows
 
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD StoryLondon Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
London Adapt or Die: Kubernetes, Containers and Cloud - The MoD Story
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 
Kubernetes and Istio
Kubernetes and IstioKubernetes and Istio
Kubernetes and Istio
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
DCEU 18: Docker Container Networking
DCEU 18: Docker Container NetworkingDCEU 18: Docker Container Networking
DCEU 18: Docker Container Networking
 
Red Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - AtlantaRed Hat Agile integration workshop - Atlanta
Red Hat Agile integration workshop - Atlanta
 
Agile integration workshop Atlanta
Agile integration workshop   AtlantaAgile integration workshop   Atlanta
Agile integration workshop Atlanta
 
ITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in ZalandoITGM#14 - How do we use Kubernetes in Zalando
ITGM#14 - How do we use Kubernetes in Zalando
 
Kong ingress controller kubernetes ingress on steroids
Kong ingress controller   kubernetes ingress on steroidsKong ingress controller   kubernetes ingress on steroids
Kong ingress controller kubernetes ingress on steroids
 

More from Ana-Maria Mihalceanu

Surveillance de la sécurité des applications Java avec les outils du JDK e...
Surveillance de la sécurité des applications Java  avec les outils du JDK e...Surveillance de la sécurité des applications Java  avec les outils du JDK e...
Surveillance de la sécurité des applications Java avec les outils du JDK e...Ana-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Monitoring Java Application Security with JDK Tools and JFR Events.pdf
Monitoring Java Application Security with JDK Tools and JFR Events.pdfMonitoring Java Application Security with JDK Tools and JFR Events.pdf
Monitoring Java Application Security with JDK Tools and JFR Events.pdfAna-Maria Mihalceanu
 
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17Ana-Maria Mihalceanu
 
Java 21 Language Features and Beyond
Java 21 Language Features and BeyondJava 21 Language Features and Beyond
Java 21 Language Features and BeyondAna-Maria Mihalceanu
 
From Java 17 to 21- A Showcase of JDK Security Enhancements
From Java 17 to 21- A Showcase of JDK Security EnhancementsFrom Java 17 to 21- A Showcase of JDK Security Enhancements
From Java 17 to 21- A Showcase of JDK Security EnhancementsAna-Maria Mihalceanu
 
Java 21 and Beyond- A Roadmap of Innovations
Java 21 and Beyond- A Roadmap of InnovationsJava 21 and Beyond- A Roadmap of Innovations
Java 21 and Beyond- A Roadmap of InnovationsAna-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox
 A Glance At The Java Performance Toolbox A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdfAna-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox-TIA.pdf
 A Glance At The Java Performance Toolbox-TIA.pdf A Glance At The Java Performance Toolbox-TIA.pdf
A Glance At The Java Performance Toolbox-TIA.pdfAna-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdfAna-Maria Mihalceanu
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdfAna-Maria Mihalceanu
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfAna-Maria Mihalceanu
 
The Automation Challenge Kubernetes Operators vs Helm Charts.pdf
The Automation Challenge Kubernetes Operators vs Helm Charts.pdfThe Automation Challenge Kubernetes Operators vs Helm Charts.pdf
The Automation Challenge Kubernetes Operators vs Helm Charts.pdfAna-Maria Mihalceanu
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upAna-Maria Mihalceanu
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upAna-Maria Mihalceanu
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upAna-Maria Mihalceanu
 
The automation challenge Kubernetes operators vs Helm charts
The automation challenge Kubernetes operators vs Helm chartsThe automation challenge Kubernetes operators vs Helm charts
The automation challenge Kubernetes operators vs Helm chartsAna-Maria Mihalceanu
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upAna-Maria Mihalceanu
 

More from Ana-Maria Mihalceanu (20)

Surveillance de la sécurité des applications Java avec les outils du JDK e...
Surveillance de la sécurité des applications Java  avec les outils du JDK e...Surveillance de la sécurité des applications Java  avec les outils du JDK e...
Surveillance de la sécurité des applications Java avec les outils du JDK e...
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Monitoring Java Application Security with JDK Tools and JFR Events.pdf
Monitoring Java Application Security with JDK Tools and JFR Events.pdfMonitoring Java Application Security with JDK Tools and JFR Events.pdf
Monitoring Java Application Security with JDK Tools and JFR Events.pdf
 
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17Enhancing Productivity and Insight  A Tour of JDK Tools Progress Beyond Java 17
Enhancing Productivity and Insight A Tour of JDK Tools Progress Beyond Java 17
 
Java 21 Language Features and Beyond
Java 21 Language Features and BeyondJava 21 Language Features and Beyond
Java 21 Language Features and Beyond
 
From Java 17 to 21- A Showcase of JDK Security Enhancements
From Java 17 to 21- A Showcase of JDK Security EnhancementsFrom Java 17 to 21- A Showcase of JDK Security Enhancements
From Java 17 to 21- A Showcase of JDK Security Enhancements
 
Java 21 and Beyond- A Roadmap of Innovations
Java 21 and Beyond- A Roadmap of InnovationsJava 21 and Beyond- A Roadmap of Innovations
Java 21 and Beyond- A Roadmap of Innovations
 
A Glance At The Java Performance Toolbox
 A Glance At The Java Performance Toolbox A Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdf
 
A Glance At The Java Performance Toolbox-TIA.pdf
 A Glance At The Java Performance Toolbox-TIA.pdf A Glance At The Java Performance Toolbox-TIA.pdf
A Glance At The Java Performance Toolbox-TIA.pdf
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdf
 
A Glance At The Java Performance Toolbox.pdf
 A Glance At The Java Performance Toolbox.pdf A Glance At The Java Performance Toolbox.pdf
A Glance At The Java Performance Toolbox.pdf
 
How Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdfHow Java 19 Influences the Future of Your High-Scale Applications .pdf
How Java 19 Influences the Future of Your High-Scale Applications .pdf
 
The Automation Challenge Kubernetes Operators vs Helm Charts.pdf
The Automation Challenge Kubernetes Operators vs Helm Charts.pdfThe Automation Challenge Kubernetes Operators vs Helm Charts.pdf
The Automation Challenge Kubernetes Operators vs Helm Charts.pdf
 
Exploring Quarkus on JDK 17
Exploring Quarkus on JDK 17Exploring Quarkus on JDK 17
Exploring Quarkus on JDK 17
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground up
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground up
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground up
 
The automation challenge Kubernetes operators vs Helm charts
The automation challenge Kubernetes operators vs Helm chartsThe automation challenge Kubernetes operators vs Helm charts
The automation challenge Kubernetes operators vs Helm charts
 
Cloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground upCloud native resiliency patterns from the ground up
Cloud native resiliency patterns from the ground up
 

Recently uploaded

Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 

Recently uploaded (20)

Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 

Kubernetes and the 12 factor cloud apps

  • 1. Kubernetes & the 12 factors cloud applications Ana Maria Mihalceanu #JBCNConf2019
  • 2. @ammbra1508#GDG #BJUG HELLO! I am Ana Technical Lead @ IBM Co-founder of Bucharest Software Craftsmanship Community
  • 3. Why 12 factors & Kubernetes? @ammbra1508#GDG #BJUG
  • 4. Why 12 factors & Kubernetes? @ammbra1508#GDG #BJUG Evolution Declarative formats
  • 5. Why 12 factors & Kubernetes? @ammbra1508#GDG #BJUG Run at push of a button Evolution Declarative formats Scale up with minimal changes Declarative formats Scale up with minimal changes
  • 6. Why 12 factors & Kubernetes? @ammbra1508#GDG #BJUG Portability Run at push of a button Evolution Declarative formats Scale up with minimal changes Clean Contract
  • 7. Why 12 factors & Kubernetes? @ammbra1508#GDG #BJUG PortabilityLocal vs production Run at push of a button Evolution Declarative formats Scale up with minimal changes Clean Contract Continuous deployment
  • 9. FACTOR 1 - CODEBASE @ammbra1508#GDG #BJUG One codebase tracked in revision control, with multiple deployments.
  • 10.
  • 11. FACTOR 1 - CODEBASE @ammbra1508#GDG #BJUG HELM v2.x.y
  • 12. FACTOR 2 - DEPENDENCIES @ammbra1508#GDG #BJUG Explicitly declare and isolate dependencies.
  • 13. FACTOR 3 - CONFIGURATION @ammbra1508#GDG #BJUG
  • 14. FACTOR 3 - CONFIGURATION @ammbra1508#GDG #BJUG Store configuration in the environment. kubectl create secret docker-registry ${SECRET_NAME} --namespace ${CLUSTER_NAMESPACE} --docker-server=${REGISTRY} --docker-password=${TOKEN} --docker-username=iamapikey --docker-email=a@b.com
  • 15. FACTOR 3 - CONFIGURATION @ammbra1508#GDG #BJUG Store configuration in the environment. kubectl create secret docker-registry ${SECRET_NAME} --namespace ${CLUSTER_NAMESPACE} --docker-server=${REGISTRY} --docker-password=${TOKEN} --docker-username=iamapikey --docker-email=a@b.com
  • 16. FACTOR 4 – BACKING SERVICE @ammbra1508#GDG #BJUG
  • 17. Treat backing services as attached resources. FACTOR 4 – BACKING SERVICE @ammbra1508#GDG #BJUG apiVersion: v1 kind: Secret metadata: name: cloudant type: Opaque data: binding: {}
  • 18. FACTOR 4 – BACKING SERVICE @ammbra1508#GDG #BJUG Treat backing services as attached resources. apiVersion: v1 kind: Secret metadata: name: cloudant type: Opaque data: binding: {}
  • 19. FACTOR 4 – BACKING SERVICE @ammbra1508#GDG #BJUG Treat backing services as attached resources. apiVersion: v1 kind: Secret metadata: name: cloudant type: Opaque data: binding: {}
  • 20. FACTOR 5 – BUILD, RELEASE, RUN @ammbra1508#GDG #BJUG
  • 21. FACTOR 5 – BUILD, RELEASE, RUN @ammbra1508#GDG #BJUG Strictly separate build and run stages.
  • 22. FACTOR 5 – BUILD, RELEASE, RUN @ammbra1508#GDG #BJUG
  • 23.
  • 24. FACTOR 6 – PROCESSES @ammbra1508#GDG #BJUG Execute the app as one or more stateless processes. Container Filesystem Persistent VolumeVolume
  • 25. FACTOR 6 – PROCESSES @ammbra1508#GDG #BJUG kubectl apply –f ${CREATE_VOLUME}.yaml kubectl apply –f ${COPY_SCRIPTS_POLLER}.yaml kubectl cp ./scripts ${POD}:/${LOCATION} kubectl apply –f ${USE_SCRIPTS}.yaml
  • 26. FACTOR 7 – PORT BINDING @ammbra1508#GDG #BJUG kubectl apply –f ${FILE}
  • 27. FACTOR 7 – PORT BINDING @ammbra1508#GDG #BJUG Export services via port binding.
  • 28. FACTOR 7 – PORT BINDING @ammbra1508#GDG #BJUG Export services via port binding. kubectl expose deployment/${NAME} --type=”${SERVICE_TYPE}” --name=${SERVICE_NAME}
  • 29. FACTOR 8 – CONCURRENCY @ammbra1508#GDG #BJUG Scale out via the process model.
  • 30. FACTOR 8 – CONCURRENCY @ammbra1508#GDG #BJUG kubectl autoscale deployment {$DEPLOYMENT} --min=${MIN_PODS} --max=${MAX_PODS} --cpu-percent=${CPU} --namespace=${NAMESPACE}
  • 31. FACTOR 8 – CONCURRENCY @ammbra1508#GDG #BJUG kubectl autoscale deployment {$DEPLOYMENT} --min=${MIN_PODS} --max=${MAX_PODS} --cpu-percent=${CPU} --namespace=${NAMESPACE} 𝐝𝐞𝐬𝐢𝐫𝐞𝐝𝐑𝐞𝐩𝐥𝐢𝐜𝐚𝐬 = ceil(currentReplicas × currentMetricValue 𝐝𝐞𝐬𝐢𝐫𝐞𝐝𝐌𝐞𝐭𝐫𝐢𝐜𝐕𝐚𝐥𝐮𝐞 )
  • 32. FACTOR 9 – DISPOSABILITY @ammbra1508#GDG #BJUG Fast startup Graceful shutdown Maximize robustness with
  • 33. FACTOR 9 – DISPOSABILITY @ammbra1508#GDG #BJUG Fast startup Graceful shutdown Maximize robustness with helm upgrade ${RELEASE} ${CHART} --recreate-pods
  • 34. FACTOR 9 – DISPOSABILITY @ammbra1508#GDG #BJUG Application boot time
  • 35. FACTOR 9 – DISPOSABILITY @ammbra1508#GDG #BJUG Rolling update one after another
  • 36.
  • 37. FACTOR 10 – DEV PROD PARITY @ammbra1508#GDG #BJUG Time People Tools
  • 38. FACTOR 10 – DEV PROD PARITY @ammbra1508#GDG #BJUG Keep development, staging and production as similar as possible. kubectl create namespace ${NAMESPACE}
  • 39. FACTOR 11 – LOGS @ammbra1508#GDG #BJUG
  • 40. FACTOR 11 – LOGS @ammbra1508#GDG #BJUG Treat logs as event streams. kubectl create secret generic logdna-agent-key --from-literal=logdna-agent-key=<ingestion_key> kubectl create -f https://repo.logdna.com/ibm/prod/logdna-agent-ds- us-south.yaml
  • 41. FACTOR 12 – ADMIN PROCESSES @ammbra1508#GDG #BJUG Run admin/management tasks as one-off processes. kubectl create configmap ${CONFIG} --from-file=scripts/ -o yaml kubectl apply –f ${ONE_TIME_JOB_CONFIGURATION}
  • 42. @ammbra1508#GDG #BJUG TAKEAWAYS Decouple Decouple infrastructure complexity from your application code. Managed Services Prefer managed services in matters involving persistency. Environment Parity Keep your environments as similar as possible.
  • 43. @ammbra1508#GDG #BJUG TAKEAWAYS Stateless Design your application as stateless. Scale Your application should be able to process diverse workloads. Monitor Use appropriate logging in application code and implement cluster-level logging.
  • 44. @ammbra1508#GDG #BJUG The strongest factor for success is self-esteem. Believing you can do it, believing you deserve it, believing you will get it. Anonymous “ “