Master tooling for containers

A presentation at Microsoft Ignite in September 2018 in Orlando, FL, USA by Baruch Sadogursky

Slide 1

Slide 1

Slide 2

Slide 2

Slide 3

Slide 3

http://jfrog.com/shownotes

Slide 4

Slide 4

GOING DIGITAL 1 million/hour new devices coming online by 2020 12 years average age of S&P 500 corporations by 2020 60% computing in the public cloud by 2025

Slide 5

Slide 5

developers I need to create applications at a competitive rate without worrying about IT New applications run smoothly on my machine but malfunction on traditional IT servers My productivity and application innovation become suspended when I have to wait on IT

Slide 6

Slide 6

IT I need to manage servers and maintain compliance with little disruption I’m unsure of how to integrate unfamiliar applications, and I require help from developers I’m unable to focus on both server protection and application compliance

Slide 7

Slide 7

IT stress points Security threats Datacenter efficiency Supporting innovation

Slide 8

Slide 8

Cloud is a new way to think about a datacenter Servers Services

Slide 9

Slide 9

People Process Products

Slide 10

Slide 10

http://bit.ly/WhatIs-DevOps

Slide 11

Slide 11

Infrastructure as Code Continuous Integration Continuous Deployment Automated Testing Release Management Performance Monitoring Availability Monitoring Load Testing & Auto Scale Automated Recovery (Rollback & Roll Forward)

Slide 12

Slide 12

2015 2016 2017 Deployment Frequency 30x more frequent 200x more frequent 46x more frequent Lead Time for Changes 200x faster 2,555x faster 440x faster Mean Time to Recover (MTTR) 168x faster 24x faster 96x faster 3x lower (1/3 as likely) 5x lower (1/5 as likely) Change Failure Rate Source: https://puppetlabs.com

Slide 13

Slide 13

Developers Operations Enable ‘write-once, run-anywhere’ apps Enables microservice architectures Great for dev/test of apps and services Production realism Growing Developer Community Portability, Portability, Portability Standardized development, QA, and prod environments Abstract differences in OS distributions and underlying infrastructure Higher compute density Easily scale-up and scale-down in response to changing business needs DevOps

Slide 14

Slide 14

Not a real thing. An application delivery mechanism with process isolation based on several Linux kernel features. v v v v v v v v v v v v v v

Slide 15

Slide 15

v v v v v

Slide 16

Slide 16

Slide 17

Slide 17

Slide 18

Slide 18

Virtualization versus containerization Virtualization Containerization Virtual machine Container Application XYZ Application App dependencies Dependencies Guest OS C VM VM VM VM VM VM C C Dependency 1 C Dependency 2 Hypervisor 2 Docker Engine Hypervisor 1 Host OS Host OS Hardware Hardware Hardware Type 1 Type 2 C

Slide 19

Slide 19

advantage Fast iteration Agile delivery For developers Immutability Cost savings Efficient deployment For IT Elastic bursting

Slide 20

Slide 20

Slide 21

Slide 21

Slide 22

Slide 22

Slide 23

Slide 23

Slide 24

Slide 24

Slide 25

Slide 25

Slide 26

Slide 26

Slide 27

Slide 27

Slide 28

Slide 28

Slide 29

Slide 29

Slide 30

Slide 30

Slide 31

Slide 31

Slide 32

Slide 32

Slide 33

Slide 33

Slide 34

Slide 34

Promotion pipeline If quality requirments are hit CI SERVER 1 If quality requirments are hit 2 Integration If quality requirments are hit 3 System Testing 4 Staging Production *

  • Quality gates -

Slide 35

Slide 35

Kubernetes Pipeline Build Package Deploy Test Kubernetes Repository

Slide 36

Slide 36

Slide 37

Slide 37

Open source container orchestrator that automates deployment, scaling, and management of applications. v v v v v v v v v v Designed by Google v Based on their system used to run BILLIONS of containers per week Over 2,300 contributors Graduated from CNCF

Slide 38

Slide 38

Slide 39

Slide 39

Slide 40

Slide 40

Slide 41

Slide 41

Slide 42

Slide 42

Slide 43

Slide 43

Easy to manage: v v v v v v Automated upgrades and patching Easily scale the cluster up and down Self-healing control plane Uses open APIs – 100% upstream Kubernetes

Slide 44

Slide 44

$ 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 aks-mycluster-36851231-0 aks-mycluster-36851231-1 aks-mycluster-36851231-2 STATUS Ready Ready Ready AGE 4m 4m 4m VERSION v1.8.1 v1.8.1 v1.8.1

Slide 45

Slide 45

$ az aks list –o table Name Location ProvisioningState ------------------ --------------myCluster westus2 ResourceGroup -------------- KubernetesRelease ------------------- myResourceGroup 1.7.7 ------------Succeeded $ az aks upgrade -g myResourceGroup -n myCluster –-kubernetes-version 1.8.1 \ Running .. $ kubectl get nodes NAME aks-mycluster-36851231-0 aks-mycluster-36851231-1 aks-mycluster-36851231-2 STATUS Ready Ready Ready AGE 12m 8m 3m VERSION v1.8.1 v1.8.1 v1.8.1 $ az aks scale -g myResourceGroup -n myCluster --agent-count 10 \ Running ..

Slide 46

Slide 46

Kubernetes without AKS Master VM Master VM Master VM Control Plane Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent Pool

Slide 47

Slide 47

Kubernetes with AKS Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Agent VM Hosted Control Plane Agent Pool

Slide 48

Slide 48

Azure Container Service (AKS) Release automation tools Simplifying the Kubernetes experience Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Streamlined Kubernetes development The package manager for Kubernetes Event-driven scripting for Kubernetes Visualization dashboard for Brigade

Slide 49

Slide 49

Helm Azure Container Service (AKS) The best way to find, share, and use software built for Kubernetes Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Manage complexity Easy updates Simple sharing Rollbacks Charts can describe complex apps; provide repeatable app installs, and serve as a single point of authority Take the pain out of updates with in-place upgrades and custom hooks Charts are easy to version, share, and host on public or private servers Use helm rollback to roll back to an older version of a release with ease

Slide 50

Slide 50

Azure Container Service (AKS) Helm Helm Charts helps you define, install, and upgrade even the most complex Kubernetes application services ci db load balancer custom Azure Container Instances (ACI) … Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Chart.yml

Slide 51

Slide 51

Azure Container Service (AKS) Simple app development and deployment – into any Kubernetes cluster Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Simplified development Language support Using two simple commands, developers can now begin hacking on container-based applications without requiring Docker or even installing Kubernetes themselves Draft detects which language your app is written in, and then uses packs to generate a Dockerfile and Helm Chart with the best practices for that language

Slide 52

Slide 52

Slide 53

Slide 53

v v v v v v v v v v

Slide 54

Slide 54

v v v v http://jfrog.com/shownotes v v v v v