From Source to Production: The Latest in Container Dev 1/2/2019 11:05 AM BRK3336 From Source to Production: The Latest in Container Dev Brendan Burns Matt Butcher © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
1/2/2019 11:05 AM Matt Butcher © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
1/2/2019 11:05 AM Brendan Burns © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How We’ll Roll Why we think the container development story is a big deal Demos, demos, and more demos
A Conceptual History of Cloud 1/2/2019 11:05 AM A Conceptual History of Cloud Bare Metal Dedicated Shared Hosting VM Emulation Workload Public Cloud Containers Isolated FS App-per-container Container Orchestration © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
What’s the difference between a container and a VM? 1/2/2019 11:05 AM What’s the difference between a container and a VM? © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How a Container Works Base Layer 1 Layer 2 Layer 3 Container 1/2/2019 11:05 AM How a Container Works Base Layer 1 Layer 2 Layer 3 Container © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Dockerfile for a JS App FROM node:8 RUN apt-get install –y wget 1/2/2019 11:05 AM Dockerfile for a JS App FROM node:8 RUN apt-get install –y wget RUN yarn install RUN yarn build CMD yarn start © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How a Container Works FROM node:8 RUN apt-get… RUN yarn install 1/2/2019 11:05 AM How a Container Works FROM node:8 RUN apt-get… RUN yarn install RUN yarn build CMD yarn start © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Container Orchestration: The Role of Kubernetes 1/2/2019 11:05 AM Container Orchestration: The Role of Kubernetes © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How Kubernetes Works Nodes Control Plane Nodes Nodes API Server Kubelet Client Scheduler Container Runtime YAML/ JSON Controller State Storage
But the Developer’s View… Service Deployment StatefulSet Pod Pod Pod Pod Namespace
1/2/2019 11:05 AM Instead of talking about what apps we run on a given host operating system, we now ask what containers we run on the cluster. © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
In other words, the cluster (not the host) is now the primary object.
For developers, this means… All the freedoms of running in containers (I own the entire FS) Parity between dev and prod is increased “Hard problems” like dependency management are now easy But my dev environment is now more complex The conceptual overhead for understanding ops is higher And persistence is hard
Our Challenge How do we increase the effectiveness of a developer in the container-first world of tools like Docker and Kubernetes?
Demos: Tools for Container-first Development
Let’s start by just running a single container in Azure.
Azure Container Instances Run individual containers inside of Azure. It’s serverless, but not Function-as-a-Service.
Demo: ACI Running a Tiny JS App
Now let’s use Kubernetes
Azure Container Services Get yourself a powerful preconfigured Kubernetes cluster running inside of Azure.
Demo: Installing Kubernetes ACS 1/2/2019 11:05 AM Demo: Installing Kubernetes ACS Using the az client © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Some Core Kubernetes Concepts 1/2/2019 11:05 AM Some Core Kubernetes Concepts Pods Replica Sets Deployments Daemon Sets Stateful Sets Secrets ConfigMaps Services Ingress © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Using kubectl to Interact with Kubernetes $ kubectl get pods $ kubectl create –f myPod.yaml $ kubectl logs myPod
Demo: Kubernetes Deployments Rolling Updates
Installing off-the-shelf applications into your Kubernetes cluster 1/2/2019 11:05 AM Installing off-the-shelf applications into your Kubernetes cluster © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Kubernetes Helm Helm is the package manager for Kubernetes. It simplifies the process of installing and managing applications on a Kubernetes cluster.
1/2/2019 11:05 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
How Helm Works K8S Resources Tiller Helm Chart YAML
Demo: Helm The package manager for Kubernetes
Here’s a common problem that a Helm chart easily solves
Demo: Kube-Lego Using Lets Encrypt to quickly add SSL/TLS
Using ACI with Kubernetes There is a Kubernetes bridge to ACI that lets us run Kubernetes pods as ACI resources. This means (a) we don’t consume node resources, and (b) these resources can be billed per second.
Draft A developer tool for authoring microservices for Kubernetes
How Draft Works img Registry Docker K8S Tiller Draftd Draft 1/2/2019 11:05 AM How Draft Works img Registry Docker K8S Draftd Tiller Draft Application Code Chart YAML © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo: Draft Cloud-first Applications, Pronto 1/2/2019 11:05 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Demo: Functions as a Service With Kubeless
Demo: Operators Automating operations
Demo: Terraform Deploying apps
Looking toward the future, how do you imagine the container landscape will evolve?
Please evaluate this session Tech Ready 15 1/2/2019 Please evaluate this session From your Please expand notes window at bottom of slide and read. Then Delete this text box. PC or tablet: visit MyIgnite https://myignite.microsoft.com/evaluations Phone: download and use the Microsoft Ignite mobile app https://aka.ms/ignite.mobileapp Your input is important! © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
1/2/2019 11:05 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.