Download presentation
Presentation is loading. Please wait.
Published byBarnaby Dickerson Modified over 6 years ago
1
Intro to Docker Containers and Orchestration in the Cloud
11/18/2018 5:51 AM Intro to Docker Containers and Orchestration in the Cloud @JeremyLikness Cloud Developer Advocate © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
2
Jeremy Likness https://blog.jeremylikness.com/ @JeremyLikness
Cloud Dev Microsoft 20+ Year Professional Dev @JeremyLikness
3
https://aka.ms/advocates
@azureAdvocates
4
11/18/2018 5:51 AM Containers, What? © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
5
11/18/2018 5:51 AM Before 🌩 cloud Copyright Computer Laboratory, University of Cambridge. Reproduced by permission. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
6
Microsoft Tech Summit FY17
11/18/2018 5:51 AM What is the right size of servers for my business needs? How do I deploy new code to my server? What happens in case of server hardware failure? What media should I use to keep backup? Which packages should be on my server? Who monitors my App? What size of servers should I buy? How often should I backup my server? How can I increase server utilization? How can I scale my app? Who has physical access to my servers? Which OS should I use? Do I need secondary network connection? Are my server in a secure location? What happens if the power goes out? Who monitors my Servers? Do I need a UPS? What storage I need to use? How many servers do I need? How can I dynamically configure my app? It takes how long to provision a new server? How often should I patch my servers? On-Premises The “evolution” of application platforms © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
7
Microsoft Tech Summit FY17
11/18/2018 5:51 AM What is the right size of servers for my business needs? How can I increase server utilization? How many servers do I need? How can I scale my app? How often should I patch my servers? How do I deploy new code to my server? How often should I backup my server? Which OS should I use? Which packages should be on my server? Who monitors my App? On-Premises IaaS The “evolution” of application platforms © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
8
Microsoft Tech Summit FY17
11/18/2018 5:51 AM What is the right size of “servers” for my business needs? How can I increase “server” utilization? How many “servers” do I need? How can I scale my app? On-Premises IaaS PaaS The “evolution” of application platforms © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
9
Microsoft Tech Summit FY17
11/18/2018 5:51 AM How do I architect my app? What runtime do I deploy? Where do I store my containers? Which container orchestrator should I use? Containers, lighter than IaaS more control than PaaS On-Premises IaaS PaaS Containers The “evolution” of application platforms © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
10
Once upon a time, long long ago …
11/18/2018 5:51 AM Once upon a time, long long ago … Application Runtime OS Hardware Source: © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
11
Infrastructure-as-a-Service (IaaS)
11/18/2018 5:51 AM Infrastructure-as-a-Service (IaaS) Application Runtime OS Virtualization Hardware © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
12
Platform-as-a-Service (IaaS)
11/18/2018 5:51 AM Platform-as-a-Service (IaaS) Application Runtime OS Virtualization Hardware © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
13
Containers Application Application Runtime Runtime Docker Host OS
11/18/2018 5:51 AM Containers Application Application Runtime Runtime Docker Host OS Hardware © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
14
Containers Application Container Image Runtime 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
15
Compact Container Benefits 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
16
Compact Consistent Container Benefits 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
17
Compact Consistent Isolated Container Benefits 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
18
Compact Consistent Isolated Fast Container Benefits 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
19
Container Benefits Compact Consistent Isolated Fast Simple
11/18/2018 5:51 AM Container Benefits Compact Consistent Isolated Fast Simple © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
20
Container Benefits Compact Consistent Isolated Fast Simple Scale
11/18/2018 5:51 AM Container Benefits Compact Consistent Isolated Fast Simple Scale © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
21
The Simple Stuff docker run -it --name fun jess/hollywood docker ps
docker ps –a docker stop docker rm // the image is the template. // the container is the instance. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
22
Let’s build something FROM golang:alpine as build-env RUN mkdir /src
11/18/2018 5:51 AM Let’s build something FROM golang:alpine as build-env RUN mkdir /src ADD /src RUN cd /src && go build -o goapp FROM alpine RUN mkdir /app WORKDIR /app COPY --from=build-env /src/goapp /app ADD /app/zork1.dat ENTRYPOINT ./goapp © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
23
Let’s build something docker build –t zork . docker images
11/18/2018 5:51 AM Let’s build something docker build –t zork . docker images docker run –it --name zork zork © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
24
Your first web server mkdir tinyweb cd tinyweb code .
11/18/2018 5:51 AM Your first web server mkdir tinyweb cd tinyweb code . FROM busybox:latest RUN mkdir /www COPY index.html /www EXPOSE 80 CMD ["httpd", "-f", "-p", "80", "-h", "/www"] docker build –t tinyweb . docker images docker run –d –p 8080:80 tinyweb © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
25
Take it to the Cloud 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
26
DevOps: Old vs. New Check in Code Source Repo Build Assets Deploy Web
11/18/2018 5:51 AM DevOps: Old vs. New Check in Code Source Repo Build Assets Deploy Web © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
27
DevOps: Old vs. New Check in Code Source Repo Build Image Image Repo
11/18/2018 5:51 AM DevOps: Old vs. New Check in Code Source Repo Build Image Image Repo Deploy Kubernetes © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
28
“Doesn’t work on my laptop”
11/18/2018 5:51 AM “Doesn’t work on my laptop” © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
29
Azure Command Line Interface (CLI)
Command line tool for managing Azure resources Facilitates scripting Cross-platform (Windows, macOS, Linux) Get the Azure CLI: Use the Azure CLI in your browser without installing a thing!
30
Create Container Registry
11/18/2018 5:51 AM Create Container Registry // anywhere az group create --name devnexus-group --location eastus az acr create --resource-group devnexus-group --name devnexuscr --sku Basic az acr update -n devnexuscr --admin-enabled true // on machine with image az acr login --name devnexuscr az acr list --resource-group devnexus-group --query "[].{acrLoginServer:loginServer}" --output table docker tag tinyweb <loginsvr>/tinyweb:v1 docker push <loginsvr>/tinyweb:v1 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
31
For Google Cloud Developers …
32
Azure Container Instance
11/18/2018 5:51 AM Azure Container Instance // Azure Container Instances export PASSWORD=$(az acr credential show --name devnexuscr --query "passwords[0].value" | tr -d \") az container create --resource-group devnexus-group --name tinyweb --image devnexuscr.azurecr.io/tinyweb:v1 --registry-password $PASSWORD --ip-address public --ports 80 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
33
Demo: Web App for Containers
11/18/2018 5:51 AM Demo: Web App for Containers © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
34
11/18/2018 5:51 AM Composition © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
35
Image A Container 1 Docker Host Crash 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
36
Load Balancer Image A Container 2 Image A Container 1 Docker Host Bang
11/18/2018 5:51 AM Docker Host Load Balancer Bang Image A Container 1 Image A Container 2 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
37
Docker Host Load Balancer Image A Container 3 Image A Container 2
11/18/2018 5:51 AM Docker Host Load Balancer Image A Container 3 Image A Container 2 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
38
docker-compose.yml user-facing Web Proxy service-facing Go 1 Go 2 Go 3
11/18/2018 5:51 AM docker-compose.yml version: '2' networks: user-facing: driver: bridge service-facing: services: webserver: image: webserver build: ./webserver ports: - 8000:80 - user-facing goservice: image: goservice build: ./goservice - 8080 - service-facing proxy: image: dockercloud/haproxy volumes: - /var/run/docker.sock:/var/run/docker.sock - 8080:80 links: - goservice user-facing Web Proxy service-facing Go 1 Go 2 Go 3 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
39
Demo: Docker Compose 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
40
What Now? Docker Host Load Balancer Image A Container 3
11/18/2018 5:51 AM What Now? Docker Host Load Balancer Image A Container 3 Image A Container 2 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
41
11/18/2018 5:51 AM Orchestration © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
42
Orchestration: manage containers at scale
11/18/2018 5:51 AM Orchestration: manage containers at scale Resiliency Scale out Load balancing Service discovery Roll-out and roll-back Secrets and configs Storage management Batch jobs © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
43
Popular orchestrators
11/18/2018 5:51 AM Popular orchestrators © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
44
Popular orchestrators
11/18/2018 5:51 AM Popular orchestrators © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
45
K8S Concepts Container 1 Container 2 Storage 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
46
11/18/2018 5:51 AM K8S Concepts Pod © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
47
K8S Concepts Node Kubelet Docker 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
48
K8S Concepts Cluster Master 11/18/2018 5:51 AM
© Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
49
11/18/2018 5:51 AM K8S high level summary A pod is a group of related containers and storage that share an IP A service is a related group of pods with access policies (some pods may be internal to the cluster, others may be exposed externally) and a virtual IP A node is a working agent that runs pods and services Nodes may span VMs The master coordinates all nodes in the cluster The master also handles deployments for creating and updating application instances (manage replicas) © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
50
Putting it all Together
11/18/2018 5:51 AM Putting it all Together © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
51
What we’ll create … Don’t worry … it’s easier than it looks!
52
Create and Use a Kubernetes Cluster
11/18/2018 5:51 AM Create and Use a Kubernetes Cluster az aks create –n devnexus-k8s –g devnexus-group sudo az aks install-cli az aks get-credentials –n devnexus-k8s –g devnexus-group kubectl get nodes // do secret stuff here kubectl run goservice –-image devnexuscr.azurecr.io/goservice:v1 kubectl get pods kubectl expose deployments goservice –-port=8080 -–type=LoadBalancer kubectl get svc Kubectl scale deployments/goservice –-replicas=3 © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
53
For Google Cloud Developers …
54
What we learned … Hardware -> IaaS -> PaaS -> Containers
Image vs. Instance Docker as the host Composition for multiple containers Orchestration for containerized applications Azure ACR, ACI, Web App for Containers and AKS Kubernetes
55
https://aka.ms/dock-web
56
https://blog.jeremylikness.com/ @JeremyLikness
11/18/2018 5:51 AM @JeremyLikness © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.