Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DevOps Bootcamp

73 views

Published on

DevOps Bootcamp

Published in: Technology
  • Be the first to comment

DevOps Bootcamp

  1. 1. What is a Container? Containers are an application-centric way to deliver high-performing, scalable applications on the infrastructure of your choice.
  2. 2. VMVMVMVM Server Host OS Hypervisor Guest OS Guest OS Guest OS App CApp BApp A Server Host OS Hypervisor
  3. 3. VMVMVMVM Server Host OS Hypervisor Guest OS Guest OS Guest OS App CApp BApp A Server Host OS Hypervisor
  4. 4. VM Container VMVMVM Server Host OS Hypervisor Guest OS Guest OS Guest OS App CApp BApp A Server Host OS Hypervisor Bins/Libs AppA
  5. 5. VM ContainerContainerContainer VMVMVM Server Host OS Hypervisor Guest OS Guest OS Guest OS App BApp AApp A Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs
  6. 6. VM ContainerContainerContainer VMVMVM Server Host OS Hypervisor Guest OS Guest OS Guest OS App BApp AApp A Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs
  7. 7. VM ContainerContainerContainer Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs Container Image Container Image Container Image Container Image Container Image Container Image
  8. 8. VM ContainerContainerContainer Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs Container Image Container Image Container Image Container Image Container Image Container Image hub Azure Container Registry
  9. 9. VM ContainerContainerContainer Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs VM ContainerContainerContainer Server Host OS Hypervisor Bins/Libs AppB AppC Bins/Libs AppA Bins/Libs
  10. 10. ContainerOrchestrator
  11. 11. ContainerOrchestrator Cluster
  12. 12. VM Server Host OS Hypervisor Guest OS ContainerOrchestrator Cluster
  13. 13. Kubernetes comes from the Greek word κυβερνήτης:, which means helmsman or ship pilot, ie: the captainer of a container ship. "Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications."
  14. 14. VM Server Host OS Hypervisor Guest OS Kubernetes Master Node Cluster Node Node Node Node Node Node
  15. 15. AKS reduces the complexity and operational overhead of managing Kubernetes by offloading much of that responsibility to Azure. You only pay for the agent nodes within your clusters, not for the master nodes
  16. 16. Kubernetes Cluster Node Node Node Node Node Node
  17. 17. Azure Kubernetes Service (AKS) Get started easily $ az aks create $ az aks install-cli $ az aks get-credentials $ kubectl get nodes Azure Kubernetes Service (AKS)
  18. 18. Azure Kubernetes Service (AKS) Manage an AKS cluster $ az aks list $ az aks upgrade $ kubectl get nodes $ az aks scale Azure Kubernetes Service (AKS)
  19. 19. • Group of 1 or more containers • Shared Storage • Shared Network • Same IP-address • Shared port-range Pod 10.0.0.1 Storage Pod 10.0.0.2 Storage Port 80 Port 8080 Port 80
  20. 20. PodPod Pod Replica Set Deployment Label: backend Selector Label: backend Label: backend Label: backend Label: backend Selector Label: backend
  21. 21. Node 1 Pod Label: backend 10.0.0.2 Pod Label: backend 10.0.0.3 Node 0 Pod Label: backend 10.0.0.1 Node 2 Pod Label: backend 10.0.0.4 Pod Label: backend 10.0.0.5
  22. 22. Service Type: ClusterIP Selector Label: backend Node 1 Pod Label: backend 10.0.0.2 Node 0 Pod Label: backend 10.0.0.1 Node 2 Pod Label: backend 10.0.0.4 Pod Label: backend 10.0.0.5 192.168.0.1
  23. 23. Service Type: LoadBalancer Selector Label: backend Node 1 Pod Label: backend 10.0.0.2 Node 0 Pod Label: backend 10.0.0.1 Node 2 Pod Label: backend 10.0.0.4 Pod Label: backend 10.0.0.5 Public ip address: 37.17.208.21 192.168.0.2
  24. 24. Pod 10.0.0.1 Pod 10.0.0.2 Pod 10.0.0.3 Service Type: ClusterIP Pod 10.0.0.4 Pod 10.0.0.5 Pod 10.0.0.6 Service Type: ClusterIP Pod 10.0.0.7 Pod 10.0.0.8 Pod 10.0.0.9 Service Type: ClusterIP Service Type: LoadBalancer Public ip address: 37.17.208.21 Podquay.io/kubernetes-ingress-controller/ nginx-ingress-controller:0.15.0 Selector Label: ingresscontroller Label: ingresscontroller Ingress host: gaming.voxxed.cf serviceName: gamingwebapp Ingress host: erp.voxxed.cf serviceName: erpsvc Ingress host: www.voxxed.cf/crm serviceName: crmsvc Label: erpLabel: frontend Label: crm nginx.conf gaming.voxxed.cf 10.0.0.1 10.0.0.2 10.0.0.3 erp.voxxed.cf 10.0.0.4 10.0.0.5 10.0.0.6 Voxxed.cf/crm 10.0.0.7 10.0.0.8 10.0.0.9 Automatically generated
  25. 25. Helm The best way to find, share, and use software built for Kubernetes Manage complexity Charts can describe complex apps; provide repeatable app installs, and serve as a single point of authority Easy updates Take the pain out of updates with in- place upgrades and custom hooks Simple sharing Charts are easy to version, share, and host on public or private servers Rollbacks Use helm rollout to roll back to an older version of a release with ease Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Azure Kubernetes Service (AKS)
  26. 26. Helm Helm Charts helps you define, install, and upgrade even the most complex Kubernetes application custom services Chart.yml db load balancer ci … Azure Container Instances (ACI) Azure Container Registry Open Service Broker API (OSBA) Release Automation Tools Azure Kubernetes Service (AKS)
  27. 27. Helm Charts Application definition Consists of: • Metadata • Kubernetes resource definitions • Configuration • Documentation Stored in chart repository • Any HTTP server that can house YAML/tar files (Azure, GitHub pages, etc.) • Public repo with community supported charts (eg – Jenkins, Mongo, etc.) Helm (CLI) + Tiller (sever side) Release: Instance of chart + values -> Kubernetes
  28. 28. Chart structure  Layout  Helm expects a strict chart structure
  29. 29. Helm values.yaml  The knobs and dials:  A values.yaml file provided with the chart that contains default values  Use -f to provide your own values overrides  Use --set to override individual values
  30. 30. Inner-Loop Build/CI, Integrate, Test Production environments Run, Manage Container Service Service Fabric Batch App Services … … … Code Run Validate Debug CD, Deploy Source Code Control (SCC) Azure Container Registry Monitor and Diagnose
  31. 31. Multi-Container App  Containers locally in visual studio  Deploy to AKS through Helm
  32. 32. Microsoft Learn AzureDevOps Handson Lab Demo Repo Multi-Container Container

×