SlideShare a Scribd company logo
1S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
From Zero to DevOps
Superhero
The Container Edition
Jessica Deen| Senior Cloud
Advocate
2S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Before we
begin…
Disclaimer
@jldeen- [ ] -# D E E N O F D E V O P S
What to
expect in
the next 45
minutes…
3S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
I n t e n t- [ ] -
This session was
specifically
designed to…
Get you
thinking
Get you
excited
Show you
what’s
possible
Offer
resources to
learn more
4S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
“UBER, the world’s largest taxi company, owns no vehicles.
Facebook, the world’s most popular media owner, creates no
content. Alibaba, the most valuable retailer, has no inventory.
Airbnb, the world’s largest accommodation provider, owns no real
estate. Welcome to the Digital Economy!
-[ Monty C. M. Metzger ]-
Technology is changing.
D I S R U P T I O N- [ ] -
5S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
- Donovan Brown
What is DevOps?
D e f i n i t i o n- [ ] -
6S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Why Containers?
C o m i n g t o g e t h e r- [ ] -
Developers
Enable ‘write-once, run-
anywhere’ apps
Enables microservice
architectures
Operations
Portability
Standardization
Abstraction
Higher compute density
Scale
DevOps
7S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What is a
container
?
N o t a r e a l t h i n g- [ ] -
8S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
9S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What
container
s are not.
N o t a r e a l t h i n g- [ ] -
10S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
11S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
12S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
13S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Virtualization vs.
Containerization
C o m i n g t o g e t h e r- [ ] -
Infrastructure
Host OS
Docker
Bins/L
ibs
Bins/L
ibs
Bins/L
ibs
App A App B App C
Contain
er
Infrastructure
Hypervisor
Bins/L
ibs
App A
Guest
OS
Bins/L
ibs
App B
Guest
OS
Bins/L
ibs
App C
Guest
OS
VM
Infrastructure
Host OS
Hypervisor
Bins/L
ibs
App A
Guest
OS
Bins/L
ibs
App B
Guest
OS
Bins/L
ibs
App C
Guest
OS
VM
14S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Refresher on
container layers
C o m i n g t o g e t h e r- [ ] -
From: Alpine:3.8
f61792ba8979
a7183fb762a8
d31af33eb855
c220123c8472
d7b1189bf667
91e49dfb1179
Container Layer Read / Write
Image layers
Read only
15S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
N o t a r e a l t h i n g- [ ] -
16S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
The Container
Advantage
B e n e f i t s- [ ] -
Fast
iteration
Agile
delivery
Immutability Cost
savings
Elastic
bursting
Efficient
deployment
For ITFor
developers
17S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
• Containers on demand
• Per-second billing (!)
• Integrations with other Azure services
• No need to provision VM’s or clusters
• Hypervisor level isolation
• Public IP
• Persistent Storage
• Supports both Linux and Windows containers
17
Azure Container Instances
18S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
18
$ az container create
--resource-group myrg 
--name aci-helloworld 
--image microsoft/aci-helloworld 
--dns-name-label aci-demo 
--ports 80
Azure Container Instances
19S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
• Fully managed PaaS for containers
• Support for many workflows
• Advanced features for webapps
19
Azure App Services for Linux
20S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
20
$ az webapp create 
-g myrg 
-n nginx 
--plan my-appservice-plan 
--deployment-container-image-name 'nginx'
Azure App Services for Linux
21S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
What is
Kubernete
s?
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
22S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
22
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
23S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
23
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
24S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
24
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
25S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Kubernetes
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Master
VM
Master
VM
Master
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
26S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Kubernetes
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Hosted
Contro
l
Plane
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
Agent
VM
27S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
AKS
Azure Kubernetes Service
28S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Azure Kubernetes Service (AKS)
• Automated provisioning,
upgrades, patches
• High reliability, availability
• Easy, secure cluster scaling
• Self-healing
• API server monitoring
• At no charge
Infrastructure automation
API server
Controller
ManagerScheduler
etcd
Store
Cloud Controller
Self-managed master node(s)
Customer VMs
App/
workload
definitionUser
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Docker
Pods
Schedule pods
over private
tunnel
Kubernetes
API
endpoint
Azure managed control plane
Helm charts
custom or
from
kubeapps/
29S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
AKS
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
$ az aks create -g myResourceGroup -n myCluster --generate-ssh-keys
 Running ..
$ az aks install-cli
Downloading client to /usr/local/bin/kubectl ..
$ az aks get-credentials -g myResourceGroup -n myCluster
Merged "myCluster" as current context ..
$ kubectl get nodes
NAME STATUS AGE VERSION
aks-mycluster-36851231-0 Ready 4m v1.11.4
aks-mycluster-36851231-1 Ready 4m v1.11.4
aks-mycluster-36851231-2 Ready 4m v1.11.4
30S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
AKS
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
$ az aks list –o table
Name Location ResourceGroup KubernetesRelease ProvisioningState
------------------ ---------- -------------- ------------------- -------------------
myCluster eastus myResourceGroup 1.11.4 Succeeded
$ az aks upgrade -g myResourceGroup -n myCluster –-kubernetes-version 1.11.5
 Running ..
$ kubectl get nodes
NAME STATUS AGE VERSION
aks-mycluster-36851231-0 Ready 12m v1.11.5
aks-mycluster-36851231-1 Ready 8m v1.11.5
aks-mycluster-36851231-2 Ready 3m v1.11.5
$ az aks scale -g myResourceGroup -n myCluster --agent-count 10
 Running ..
31S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
AKS Scaling
The secret to scaling is the virtual nodes!
Azure Monitor
AKS production
cluster
Microservices
Azure Container Instances
(ACI)
Pods
Virtual
node
Availability Reliability Auto scaling
https://docs.microsoft.com/en-us/azure/aks/scale-cluster
az aks scale --resource-group myRG 
--name myAKSCluster 
--node-count 1 
--nodepool-name <your node pool name>
32S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
• Private, highly available container registry
• Manage images for all types of containers
• Manage a single registry across multiple regions
• Use standard open source Docker cli tools
33S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
az acr login --name <acrName>
az acr create --resource-group myRG 
--name myContainerRegistry007 
--sku Basic
docker build . –t acrName.azurecr.io/image-name:image-tag
docker push acrName.azurecr.io/image-name:image-tag
https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-azure-cli
34S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Build
Native Container Build Service in the cloud
Follows build semantics
docker build –t helloworld:v1 .
az acr build –t helloworld{{.Build.ID}} .
35S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Build
az acr build-task create
–-image helloworld{{.Build.ID}} 
--name myBuildTask 
--registry jengademos 
--context https://github.com/me/helloworld 
--branch master 
--git-access-token $PAT
36S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
ACR also natively supports Helm Repositories:
acrName=<acr-name-here>
az configure --defaults acr=$acrName
az acr helm push -n $acrName *.tgz --force
az acr helm repo add --name $acrName
helm search <chart-name-here>
helm install $acrName/<chart-name-here>
37S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
• Azure Reference
Architecture - CI/CD
pipeline for container-
based workloads
https://docs.microsoft.com/en-us/azure/devops/pipelines/apps/cd/deploy-aks?view=azure-devops
Containers and DevOps
38S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
Demo
• Deploying artifacts to Azure Kubernetes Service (AKS)
• Build on Jenkins, release to ACR, Deploy via Azure DevOps
Dev commits code
Build/CI
Jenkinsfile/Pipelin
e Project
Azure Container
Registry Azure Kubernetes
Service
(AKS)
Azure DevOps release
pipeline
Azure Web App
39S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
F U N T I M E
DEMO
40S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
41S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
K.I.SS
Keep It Super
Simple
42S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
“The steps you take don't have to be big,
they just have to take you in the right
direction.” // Jemma Simmons
43S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
What are my main
objectives?
44S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
What are my indicators for
those objectives?
45S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
C o n t a i n e r O r c h e s t r a t i o n- [ ] -
Does this add value, or
does this add unnecessary
complexity?
46S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
I t ’ s j u s t a w a f f l e- [ ] -
47S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
H e l l o !- [ ] -
I am Jessica Deen
48S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
aka.ms/jldeen/devopsdaysmontevid
eo SEARCH
49S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
THANK YOU

More Related Content

PDF
Production Readiness Strategies in an Automated World
PDF
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
PDF
Creating PostgreSQL-as-a-Service at Scale
PDF
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
PDF
Deep Dive into Docker Swarm Mode
PPTX
Docker Swarm for Beginner
PPTX
bootstrapping containers with confd
PDF
Build Automation 101
Production Readiness Strategies in an Automated World
Docker Swarm 45-min Workshop (Mountain View Docker Meetup 2/24/2016)
Creating PostgreSQL-as-a-Service at Scale
Under the Hood with Docker Swarm Mode - Drew Erny and Nishant Totla, Docker
Deep Dive into Docker Swarm Mode
Docker Swarm for Beginner
bootstrapping containers with confd
Build Automation 101

Similar to DevOps Days Montevideo Container Superhero Keynote (20)

PPTX
DevOps with Kubernetes and Helm
PPTX
DevOps, Kuberenetes, Helm and Draft Azure Montevideo Meetup
PPTX
Microsoft, Open Source, DevOps, Kubernetes
PPTX
From Zero to DevOps Superhero
PDF
The state of containers for your DevOps journey
PPTX
Kubernetes for .NET Developers
PPTX
DevOps, Waffles, and Superheroes
PPTX
Kubernetes VS. App Service: When the orchestrator challenges the platform
PDF
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
PPTX
Frome Zero to DevOps Superhero: The Container Edition
PDF
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
PDF
Running Containers on Azure
PPTX
Microsoft, Linux, Open Source, DevOps
PPTX
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
PPTX
Using Azure DevOps to continuously build, test, and deploy containerized appl...
PDF
Cloud for Kubernetes : Session4
PPTX
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
PDF
Container orchestration k8s azure kubernetes services
PDF
Accelerate Application Innovation Journey with Azure Kubernetes Service
PPTX
DevOps with Kubernetes and Helm - OSCON 2018
DevOps with Kubernetes and Helm
DevOps, Kuberenetes, Helm and Draft Azure Montevideo Meetup
Microsoft, Open Source, DevOps, Kubernetes
From Zero to DevOps Superhero
The state of containers for your DevOps journey
Kubernetes for .NET Developers
DevOps, Waffles, and Superheroes
Kubernetes VS. App Service: When the orchestrator challenges the platform
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
Frome Zero to DevOps Superhero: The Container Edition
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
Running Containers on Azure
Microsoft, Linux, Open Source, DevOps
Kubernetes on on on on on on on on on on on on on on Azure Deck.pptx
Using Azure DevOps to continuously build, test, and deploy containerized appl...
Cloud for Kubernetes : Session4
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Container orchestration k8s azure kubernetes services
Accelerate Application Innovation Journey with Azure Kubernetes Service
DevOps with Kubernetes and Helm - OSCON 2018
Ad

More from Jessica Deen (11)

PPTX
Microsoft, Linux, OSS, Cloud and DevOps
PPTX
From Zero to DevOps Superhero: The Container Edition (JenkinsWorld SF)
PPTX
Deploying Windows Containers with Draft, Helm and Kubernetes
PPTX
Microsoft, Linux, OSS, Cloud and DevOps
PPTX
From Zero to DevOps Superhero: The Container Edition (Build 2019)
PPTX
Getting Started with Azure DevOps
PPTX
Deploying Windows Apps to Kubernetes with Draft and Helm
PPTX
Microsoft, Linux, Open Source, DevOps
PPTX
DevOps with Kubernetes and Helm - Jenkins World Edition
PPTX
Tech Summit Paris DevOps Best Practices for Azure and VSTS
PPTX
DevOps: Kubernetes + Helm with Azure
Microsoft, Linux, OSS, Cloud and DevOps
From Zero to DevOps Superhero: The Container Edition (JenkinsWorld SF)
Deploying Windows Containers with Draft, Helm and Kubernetes
Microsoft, Linux, OSS, Cloud and DevOps
From Zero to DevOps Superhero: The Container Edition (Build 2019)
Getting Started with Azure DevOps
Deploying Windows Apps to Kubernetes with Draft and Helm
Microsoft, Linux, Open Source, DevOps
DevOps with Kubernetes and Helm - Jenkins World Edition
Tech Summit Paris DevOps Best Practices for Azure and VSTS
DevOps: Kubernetes + Helm with Azure
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
KodekX | Application Modernization Development
PPTX
A Presentation on Artificial Intelligence
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Unlocking AI with Model Context Protocol (MCP)
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KodekX | Application Modernization Development
A Presentation on Artificial Intelligence
20250228 LYD VKU AI Blended-Learning.pptx
Chapter 3 Spatial Domain Image Processing.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine learning based COVID-19 study performance prediction
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
Review of recent advances in non-invasive hemoglobin estimation
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation_ Review paper, used for researhc scholars
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

DevOps Days Montevideo Container Superhero Keynote

  • 1. 1S L I D E# D E E N O F D E V O P S @jldeen- [ ] - From Zero to DevOps Superhero The Container Edition Jessica Deen| Senior Cloud Advocate
  • 2. 2S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Before we begin… Disclaimer @jldeen- [ ] -# D E E N O F D E V O P S What to expect in the next 45 minutes…
  • 3. 3S L I D E# D E E N O F D E V O P S @jldeen- [ ] - I n t e n t- [ ] - This session was specifically designed to… Get you thinking Get you excited Show you what’s possible Offer resources to learn more
  • 4. 4S L I D E# D E E N O F D E V O P S @jldeen- [ ] - “UBER, the world’s largest taxi company, owns no vehicles. Facebook, the world’s most popular media owner, creates no content. Alibaba, the most valuable retailer, has no inventory. Airbnb, the world’s largest accommodation provider, owns no real estate. Welcome to the Digital Economy! -[ Monty C. M. Metzger ]- Technology is changing. D I S R U P T I O N- [ ] -
  • 5. 5S L I D E# D E E N O F D E V O P S @jldeen- [ ] - - Donovan Brown What is DevOps? D e f i n i t i o n- [ ] -
  • 6. 6S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Why Containers? C o m i n g t o g e t h e r- [ ] - Developers Enable ‘write-once, run- anywhere’ apps Enables microservice architectures Operations Portability Standardization Abstraction Higher compute density Scale DevOps
  • 7. 7S L I D E# D E E N O F D E V O P S @jldeen- [ ] - What is a container ? N o t a r e a l t h i n g- [ ] -
  • 8. 8S L I D E# D E E N O F D E V O P S @jldeen- [ ] - N o t a r e a l t h i n g- [ ] -
  • 9. 9S L I D E# D E E N O F D E V O P S @jldeen- [ ] - What container s are not. N o t a r e a l t h i n g- [ ] -
  • 10. 10S L I D E# D E E N O F D E V O P S @jldeen- [ ] - N o t a r e a l t h i n g- [ ] -
  • 11. 11S L I D E# D E E N O F D E V O P S @jldeen- [ ] - N o t a r e a l t h i n g- [ ] -
  • 12. 12S L I D E# D E E N O F D E V O P S @jldeen- [ ] - N o t a r e a l t h i n g- [ ] -
  • 13. 13S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Virtualization vs. Containerization C o m i n g t o g e t h e r- [ ] - Infrastructure Host OS Docker Bins/L ibs Bins/L ibs Bins/L ibs App A App B App C Contain er Infrastructure Hypervisor Bins/L ibs App A Guest OS Bins/L ibs App B Guest OS Bins/L ibs App C Guest OS VM Infrastructure Host OS Hypervisor Bins/L ibs App A Guest OS Bins/L ibs App B Guest OS Bins/L ibs App C Guest OS VM
  • 14. 14S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Refresher on container layers C o m i n g t o g e t h e r- [ ] - From: Alpine:3.8 f61792ba8979 a7183fb762a8 d31af33eb855 c220123c8472 d7b1189bf667 91e49dfb1179 Container Layer Read / Write Image layers Read only
  • 15. 15S L I D E# D E E N O F D E V O P S @jldeen- [ ] - N o t a r e a l t h i n g- [ ] -
  • 16. 16S L I D E# D E E N O F D E V O P S @jldeen- [ ] - The Container Advantage B e n e f i t s- [ ] - Fast iteration Agile delivery Immutability Cost savings Elastic bursting Efficient deployment For ITFor developers
  • 17. 17S L I D E# D E E N O F D E V O P S @jldeen- [ ] - • Containers on demand • Per-second billing (!) • Integrations with other Azure services • No need to provision VM’s or clusters • Hypervisor level isolation • Public IP • Persistent Storage • Supports both Linux and Windows containers 17 Azure Container Instances
  • 18. 18S L I D E# D E E N O F D E V O P S @jldeen- [ ] - 18 $ az container create --resource-group myrg --name aci-helloworld --image microsoft/aci-helloworld --dns-name-label aci-demo --ports 80 Azure Container Instances
  • 19. 19S L I D E# D E E N O F D E V O P S @jldeen- [ ] - • Fully managed PaaS for containers • Support for many workflows • Advanced features for webapps 19 Azure App Services for Linux
  • 20. 20S L I D E# D E E N O F D E V O P S @jldeen- [ ] - 20 $ az webapp create -g myrg -n nginx --plan my-appservice-plan --deployment-container-image-name 'nginx' Azure App Services for Linux
  • 21. 21S L I D E# D E E N O F D E V O P S @jldeen- [ ] - What is Kubernete s? C o n t a i n e r O r c h e s t r a t i o n- [ ] -
  • 22. 22S L I D E# D E E N O F D E V O P S @jldeen- [ ] - 22 C o n t a i n e r O r c h e s t r a t i o n- [ ] -
  • 23. 23S L I D E# D E E N O F D E V O P S @jldeen- [ ] - 23 C o n t a i n e r O r c h e s t r a t i o n- [ ] -
  • 24. 24S L I D E# D E E N O F D E V O P S @jldeen- [ ] - 24 C o n t a i n e r O r c h e s t r a t i o n- [ ] -
  • 25. 25S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Kubernetes C o n t a i n e r O r c h e s t r a t i o n- [ ] - Master VM Master VM Master VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM
  • 26. 26S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Kubernetes C o n t a i n e r O r c h e s t r a t i o n- [ ] - Hosted Contro l Plane Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM
  • 27. 27S L I D E# D E E N O F D E V O P S @jldeen- [ ] - AKS Azure Kubernetes Service
  • 28. 28S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Azure Kubernetes Service (AKS) • Automated provisioning, upgrades, patches • High reliability, availability • Easy, secure cluster scaling • Self-healing • API server monitoring • At no charge Infrastructure automation API server Controller ManagerScheduler etcd Store Cloud Controller Self-managed master node(s) Customer VMs App/ workload definitionUser Docker Pods Docker Pods Docker Pods Docker Pods Docker Pods Schedule pods over private tunnel Kubernetes API endpoint Azure managed control plane Helm charts custom or from kubeapps/
  • 29. 29S L I D E# D E E N O F D E V O P S @jldeen- [ ] - AKS C o n t a i n e r O r c h e s t r a t i o n- [ ] - $ az aks create -g myResourceGroup -n myCluster --generate-ssh-keys Running .. $ az aks install-cli Downloading client to /usr/local/bin/kubectl .. $ az aks get-credentials -g myResourceGroup -n myCluster Merged "myCluster" as current context .. $ kubectl get nodes NAME STATUS AGE VERSION aks-mycluster-36851231-0 Ready 4m v1.11.4 aks-mycluster-36851231-1 Ready 4m v1.11.4 aks-mycluster-36851231-2 Ready 4m v1.11.4
  • 30. 30S L I D E# D E E N O F D E V O P S @jldeen- [ ] - AKS C o n t a i n e r O r c h e s t r a t i o n- [ ] - $ az aks list –o table Name Location ResourceGroup KubernetesRelease ProvisioningState ------------------ ---------- -------------- ------------------- ------------------- myCluster eastus myResourceGroup 1.11.4 Succeeded $ az aks upgrade -g myResourceGroup -n myCluster –-kubernetes-version 1.11.5 Running .. $ kubectl get nodes NAME STATUS AGE VERSION aks-mycluster-36851231-0 Ready 12m v1.11.5 aks-mycluster-36851231-1 Ready 8m v1.11.5 aks-mycluster-36851231-2 Ready 3m v1.11.5 $ az aks scale -g myResourceGroup -n myCluster --agent-count 10 Running ..
  • 31. 31S L I D E# D E E N O F D E V O P S @jldeen- [ ] - AKS Scaling The secret to scaling is the virtual nodes! Azure Monitor AKS production cluster Microservices Azure Container Instances (ACI) Pods Virtual node Availability Reliability Auto scaling https://docs.microsoft.com/en-us/azure/aks/scale-cluster az aks scale --resource-group myRG --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>
  • 32. 32S L I D E# D E E N O F D E V O P S @jldeen- [ ] - • Private, highly available container registry • Manage images for all types of containers • Manage a single registry across multiple regions • Use standard open source Docker cli tools
  • 33. 33S L I D E# D E E N O F D E V O P S @jldeen- [ ] - az acr login --name <acrName> az acr create --resource-group myRG --name myContainerRegistry007 --sku Basic docker build . –t acrName.azurecr.io/image-name:image-tag docker push acrName.azurecr.io/image-name:image-tag https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-azure-cli
  • 34. 34S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Build Native Container Build Service in the cloud Follows build semantics docker build –t helloworld:v1 . az acr build –t helloworld{{.Build.ID}} .
  • 35. 35S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Build az acr build-task create –-image helloworld{{.Build.ID}} --name myBuildTask --registry jengademos --context https://github.com/me/helloworld --branch master --git-access-token $PAT
  • 36. 36S L I D E# D E E N O F D E V O P S @jldeen- [ ] - ACR also natively supports Helm Repositories: acrName=<acr-name-here> az configure --defaults acr=$acrName az acr helm push -n $acrName *.tgz --force az acr helm repo add --name $acrName helm search <chart-name-here> helm install $acrName/<chart-name-here>
  • 37. 37S L I D E# D E E N O F D E V O P S @jldeen- [ ] - • Azure Reference Architecture - CI/CD pipeline for container- based workloads https://docs.microsoft.com/en-us/azure/devops/pipelines/apps/cd/deploy-aks?view=azure-devops Containers and DevOps
  • 38. 38S L I D E# D E E N O F D E V O P S @jldeen- [ ] - Demo • Deploying artifacts to Azure Kubernetes Service (AKS) • Build on Jenkins, release to ACR, Deploy via Azure DevOps Dev commits code Build/CI Jenkinsfile/Pipelin e Project Azure Container Registry Azure Kubernetes Service (AKS) Azure DevOps release pipeline Azure Web App
  • 39. 39S L I D E# D E E N O F D E V O P S @jldeen- [ ] - F U N T I M E DEMO
  • 40. 40S L I D E# D E E N O F D E V O P S @jldeen- [ ] -
  • 41. 41S L I D E# D E E N O F D E V O P S @jldeen- [ ] - C o n t a i n e r O r c h e s t r a t i o n- [ ] - K.I.SS Keep It Super Simple
  • 42. 42S L I D E# D E E N O F D E V O P S @jldeen- [ ] - C o n t a i n e r O r c h e s t r a t i o n- [ ] - “The steps you take don't have to be big, they just have to take you in the right direction.” // Jemma Simmons
  • 43. 43S L I D E# D E E N O F D E V O P S @jldeen- [ ] - C o n t a i n e r O r c h e s t r a t i o n- [ ] - What are my main objectives?
  • 44. 44S L I D E# D E E N O F D E V O P S @jldeen- [ ] - C o n t a i n e r O r c h e s t r a t i o n- [ ] - What are my indicators for those objectives?
  • 45. 45S L I D E# D E E N O F D E V O P S @jldeen- [ ] - C o n t a i n e r O r c h e s t r a t i o n- [ ] - Does this add value, or does this add unnecessary complexity?
  • 46. 46S L I D E# D E E N O F D E V O P S @jldeen- [ ] - I t ’ s j u s t a w a f f l e- [ ] -
  • 47. 47S L I D E# D E E N O F D E V O P S @jldeen- [ ] - H e l l o !- [ ] - I am Jessica Deen
  • 48. 48S L I D E# D E E N O F D E V O P S @jldeen- [ ] - aka.ms/jldeen/devopsdaysmontevid eo SEARCH
  • 49. 49S L I D E# D E E N O F D E V O P S @jldeen- [ ] - THANK YOU

Editor's Notes

  • #18: Containers as a service – a new take on serverless … with VM quality isolation The same as 'docker run' but in the cloud
  • #19: This command is equivalent to a 'docker run' that Northwind engineers are used to It launches a container in the cloud, with a public IP address and DNS name Since it's on Azure, you can integrate with other Azure cloud services as well
  • #20: Northwind is already using App Services Workflows: everything from CLI to FTP to VS deployments Advanced features for webapps: logging, SSL, etc...
  • #21: CLI deployment Git Push deployment VS Code Deployment FTP Deployment
  • #23: Kubernetes is a series of reconciliation loops that are constantly trying to reconcile the actual state toward the desired state specified by the declarative API
  • #25: Kubernetes has a series of control plane components that run on the agents and the master nodes Kubelet – Responsible for pulling, running and monitoring images scheduled to it Container Runtime – Docker, application that actually runs the container (called by kubelet) Kube-Proxy – This makes service object real and routable by containers in the cluster Etcd – Distributed database that stores all the Kubernetes data and leverages extensively by the control plane to monitor and save state API Server – All components of the control plane, and tooling ran (kubectl) communicate with the API Server. Which fetches or writes the data to etcd. Controller Manager – Runs many reconciliation loops to ensure that API objects are reconciled (ReplicationController, Node Status, etc) Cloud Controller Manager – Reconciles API objects with a cloud provider (Service types of Load Balancer, Storage, etc)
  • #28: So that brings us back to AKS. why would we want to use AKS to run our Kubernetes clusters for us?