Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetes & Cloud-Native für IT Entscheider - ...

Kubernetes & Cloud-Native für IT Entscheider - Sebastian Scheele & Tobias Schneck, Loodse

Für die meisten Mitarbeiter außerhalb der IT-Abteilungen ist die richtige Aussprache von Kubernetes der erste Schritt von vielen, um zu verstehen, was die Vorteile von zu Cloud-Native Technologien und welche Auswirkungen es auf das Business haben kann. Ziel dieses Workshop ist es, Kubernetes und Cloud-Native für Entscheider in IT-Abteilung vorzustellen und ihnen zu erläutern, wie sie von der Unterstützung bei der Einführung von Cloud-Native Technologien profitieren können und wie sie auch nicht IT-Abteilungen begeistern können. Der Workshop beginnt mit einem Überblick über Cloud-Native, führt zu einer nicht-technischen Erklärung von Kubernetes unter Verwendung von Häusern als Metapher und endet mit entscheidenden Vorteilen für Nicht-IT-Abteilungen bei der Einführung von Kubernetes. Die Teilnehmer lernen die Vorteile von Kubernetes & Cloud-Native Technologien, wie man Kubernetes auf organisatorischer Ebene erklärt und sich für sie einsetzt.

More Decks by Enterprise Cloud Native Summit

Other Decks in Technology

Transcript

  1. Agenda • Intro • Cloud Native for Business • The

    Journey of Cloud Native • Container Fundamentals • Kubernetes: The Cloud Native Operating System • From Legacy to Cloud Native and how to modernize you application • Open discussion
  2. apiVersion: kubermatic.k8s.io/v1 kind: Cluster metadata: name: g8gpmr9fw3 spec: cloud: dc:

    hetzner-nbg1 hetzner: token: SOME_SECRET_TOKEN clusterNetwork: dnsDomain: cluster.local pods: cidrBlocks: - 172.25.0.0/16 services: cidrBlocks: - 10.10.10.0/24 humanReadableName: demo version: 1.10.8 address: adminToken: 975w4b.7tcjkwl5zzhjrsg5 externalName: g8gpmr9fw3.europe-west3-c.dev.kubermatic.io ip: 35.198.93.90 url: https://g8gpmr9fw3.europe-west3-c.dev.kubermatic.io:32489 status: health: apiserver: true controller: true etcd: true machineController: true openvpn: true scheduler: true namespaceName: cluster-g8gpmr9fw3 Code
  3. Business • Cloud spending will top $203.4 billion by 2020

    - IDC • 67% of enterprise IT infrastructure and software spending will be for cloud by 2020 - Gartner
  4. apiVersion: kubermatic.k8s.io/v1 kind: Cluster metadata: name: g8gpmr9fw3 spec: cloud: dc:

    hetzner-nbg1 hetzner: token: SOME_SECRET_TOKEN clusterNetwork: dnsDomain: cluster.local pods: cidrBlocks: - 172.25.0.0/16 services: cidrBlocks: - 10.10.10.0/24 humanReadableName: demo version: 1.10.8 address: adminToken: 975w4b.7tcjkwl5zzhjrsg5 externalName: g8gpmr9fw3.europe-west3-c.dev.kubermatic.io ip: 35.198.93.90 url: https://g8gpmr9fw3.europe-west3-c.dev.kubermatic.io:32489 status: health: apiserver: true controller: true etcd: true machineController: true openvpn: true scheduler: true namespaceName: cluster-g8gpmr9fw3 • Cloud spending will top $203.4 billion by 2020 - IDC • 67% of enterprise IT infrastructure and software spending will be for cloud by 2020 - Gartner Business Code ≈
  5. What is Cloud Native? Cloud native technologies empower organizations to

    build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
  6. What is Business Cloud Native? Cloud native technologies help businesses

    build modern software that delivers a good and/or service to their customers. These technologies create better systems that allow engineers to make changes faster at a lower cost. S
  7. Cloud Native Continuum These technologies create better systems that allow

    engineers to make changes faster at a lower cost. Simplicity Agility Density Isolation Customization Control
  8. Split Space Virtual Machine Furnished Apartment Guest OS Server Binaries

    /Libraries App 1 Host OS Guest OS Binaries /Libraries App 1’ Guest OS Binaries /Libraries App 2 Hypervisor
  9. Non-Coder Translation Split Space Better Faster Cheaper Two Days ↓

    Ten Minutes Dedicated ↓ Per-second-billing Manual set-up process ↓ Consistent deployments
  10. Shared Space Container Flat Share Server Host OS Binaries /Libraries

    Binaries /Libraries App 1 App 1’ App 2'’ App 2’ App 2
  11. Non-Coder Translation Smaller Sharing Better Faster Cheaper Ten Minutes ↓

    1/2 Second 15% CPU utilization ↓ 80% CPU Utilization Separation of dependencies
  12. Hosting Continuum Data Center Cloud Virtual Machine Container Serverless Home

    Construction Renting Apartment Flat Share Hotel Simplicity Agility Density Isolation Customization Control
  13. What is Business Cloud Native? Cloud native technologies help businesses

    build modern software that delivers a good and/or service to their customers. These technologies create better systems that allow engineers to make changes faster at a lower cost. S
  14. The Paradox 91% of companies use hybrid and multi-cloud 36%

    10% use orchestration use automated orchestration 72% cite complexity as major challenge
  15. The New World Is Here Old World New World Infrastructure:

    Vendor lock-in → Continuous freedom of choice Dev Experience: Waiting for Ops → Self-service platform Operations: Resource-intensive → Automated Resilience: Costly downtimes → Highly available, self-healing infrastructure Cloud costs: Cloud-provider dependant → Dynamically move workloads for best price
  16. Use Case: Application on VM or on Containers? Infrastructure (100

    nodes*$ 30) $ 30,000 p.a. Total $ 30,000 p.a. Scenario 1: “Application as VMs” Infrastructure (15 nodes*$ 60) $ 10,800 p.a. Total $ 10,800 p.a. Scenario 2: “Application as Containers in Kubernetes” Total Cost Saving $ 19,200 p.a. Enterprise X runs numerous services. They want to evaluate running the Applications as dedicated VM or as Containers in a Kubernetes cluster. Cuts Costs
  17. Infrastructure (100 nodes*$ 30) $ 30,000 p.a. Application management (4

    FTE) $ 800,000 p.a. Total $ 908,000 p.a. Scenario 1: “Application as VMs” Infrastructure (15 nodes*$ 60) $ 10,800 p.a. Application management (1 FTE) $ 200,000 p.a. Total $ 210,800 p.a. Scenario 2: “Application as Containers in Kubernetes” Total Cost Saving $ 619,200 p.a. Simplify Management Use Case: Application on VM or on Containers? Enterprise X runs numerous services. They want to evaluate running the Applications as dedicated VM or as Containers in a Kubernetes cluster.
  18. Infrastructure (100 nodes*$ 30) $ 30,000 p.a. Application management (4

    FTE) $ 800,000 p.a. Downtime (1 hour) $ 302,800 Total $ 1,210,800 p.a. Scenario 1: “Application as VMs” Infrastructure (15 nodes*$ 60) $ 10,800 p.a. Application management (1 FTE) $ 200,000 p.a. Total $ 210,800 p.a. Scenario 2: “Application as Containers in Kubernetes” Total Cost Saving $ 922,000 p.a. Fix Faster Use Case: Application on VM or on Containers? Enterprise X runs numerous services. They want to evaluate running the Applications as dedicated VM or as Containers in a Kubernetes cluster.
  19. Why the Container Hype? The software industry is going through

    a transition • From "Pets": • Monolithic applications • Long development cycles • Environment-dependency • Low scalability • To "Cattle": • Distributed applications • Fast, iterative improvements • Multiple, isolated environments • Faster scalability
  20. The Deployment Challenge • Many different stacks: • Languages •

    Frameworks • Databases • Numerous targets: • Individual development environments • Pre-production, QA, staging... • Production: on premise, cloud, hybrid
  21. Multiplicity of goods Interaction between goods (bananas next to spices

    Multiplicitiy of transportation and storage methods Quick and smooth transportation
  22. The Rise of Shipping Containers Multiplicity of goods Interaction between

    goods (bananas next to spices Multiplicitiy of transportation and storage methods Quick and smooth transportation A standard container that can be loaded with any good and that is sealed until final delivery On it‘s way, it can be loaded, unloaded, stacked, moved over long distances....
  23. Flexibility Container Types Standard Container High-Cube Container Hardtop Container Open

    Top Container Flat Platform (Plat) Ventilated Container Cooling Container Bulk Container Tank Container
  24. General cargo freighter vs. container ship Container Ship “Marit Maersk”

    Port of Hamburg Feb. 2009 Length: 366m width: 48,2m Depth: 15,5m Loading capacity: 11 400 TEU (Twenty Foot Equivalent Unit) Cargo Freighter “Santa Ines” 1951 Length: 148,04m Width: 18,60m Depth: 8,16 Loading capacity: 11 710 t
  25. The Deployment Challenge Numerous stacks Appropriate interaction of services and

    apps Numerous hardware environments Smooth and quick migration Static website User DB Background workers Web frontend Queue API endpoint Analytics DB Deployment VM QA server Customer Data Center Public Cloud Disaster Recovery Production Server Production Cluster Contributor‘s laptop
  26. A Nightmare Development VM QA server Single Prod Server Onsite

    Cluster Public Cloud Contributor‘s labtop Customer Servers Static website ? ? ? ? ? ? ? Web frontend ? ? ? ? ? ? ? Background workers ? ? ? ? ? ? ? User DB ? ? ? ? ? ? ? Analytics DB ? ? ? ? ? ? ? Queue ? ? ? ? ? ? ?
  27. A Container System for Applications Numerous stacks Appropriate interaction of

    services and apps Numerous hardware environments Smooth and quick migration Static website User DB Web frontend Queue Analytics DB Deployment VM QA server Customer Data Center Public Cloud Production Cluster Contributor‘s laptop An isolated, lightweight, portable, self-sufficient container.... ...that can be manipulated using standard operations and run on virtually anx platform
  28. Escape the Nightmare Development VM QA server Single Prod Server

    Onsite Cluster Public Cloud Contributor‘s labtop Customer Servers Static website Web frontend Background workers User DB Analytics DB Queue
  29. Outcome • Standardization • Reduced dev-to-prod time • Reduced continuous

    integration job time • Declarative • leads to reproducibility • Abstraction and Isolation • contracts • Independence • Ease • Lots of containers!
  30. Containers vs VMs Containers are isolated but share OS kernel

    and, if appropriate, bins/libraries • Faster deployment • Less overhead • Easier migration • Faster restart
  31. • Lightweight • Hermetically sealed • Isolated • Easily deployable

    • Introspectable • Runnable Linux processes • Improves overall developer experience • Fosters code and component reuse • Simplifies operations for cloud native applications A quick recap of containers
  32. Everything at Google runs in containers…. > 2 billion containers

    per week • Gmail, Web Search, Maps, ... • MapReduce, batch, ... • GFS, Colossus, … • Even Google’s Cloud Platform: VMs run in containers!
  33. What is Kubernetes? Kubernetes is a portable, extensible open-source platform

    for managing workloads and services, that facilitates both declarative configuration and automation.
  34. What is Kubernetes? Greek - meaning helmsman or pilot Root

    of Governor cybernetics (study of communication and control)
  35. Kubernetes Project Stats • Over 42,000 stars on Github •

    1800+ Contributors to K8s Core • Most discussed Repository by a large margin • 50,000+ users in Slack Team
  36. Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software

    Applications Container Engine Containers Housing Stack Governor People Land Bare Metal Any Cloud Cloud Native Stack VMs Kubernetes KubeVirt/Virtlet Serverless Knative/OpenFaaS Software Applications Container Engine Containers Homes Hotels Apartments City Services
  37. Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software

    Applications Container Engine Containers Housing Stack Governor Cloud Native Stack Kubernetes
  38. What is Kubernetes? Kubernetes is a portable, extensible open-source platform

    for managing workloads and services, that facilitates both declarative configuration and automation.
  39. What is the problem to solve? • We are going

    to talk about a solution… • Can we agree on a problem first? A problem can be defined as any situation in which a gap is perceived to exist between what is and what should be. - Arthur B. Van Gundy Jr.
  40. What is the problem to solve? • We are going

    to talk about a solution… • Can we agree on a problem first? A problem can be defined as any situation in which a gap is perceived to exist between what is and what should be. - Arthur B. Van Gundy Jr. “Actual State” “Desired State” This! Exactly! Reconciliation
  41. K8s Master API Server Dashboard Scheduler kubelet kubelet kubelet kubelet

    Container Registry etcd Controllers web browsers kubectl web browsers Config file Image CNI - Plugin Network (e.g. Fanal, Calico) Developer Developer
  42. Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software

    Applications Container Engine Containers Housing Stack Governor Land Bare Metal Any Cloud Cloud Native Stack Kubernetes Building Blocks
  43. What is Kubernetes? Kubernetes is a portable, extensible open-source platform

    for managing workloads and services, that facilitates both declarative configuration and automation.
  44. Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software

    Applications Container Engine Containers Housing Stack Governor Land Bare Metal Any Cloud Cloud Native Stack VMs Kubernetes KubeVirt/Virtlet Serverless Knative/OpenFaaS Container Engine Containers Homes Hotels Apartments City Services
  45. What is Kubernetes? Kubernetes is a portable, extensible open-source platform

    for managing workloads and services, that facilitates both declarative configuration and automation.
  46. Scaling Services Workloads and Services Houses Bare Metal Any Cloud

    Cloud Native Stack VMs Kubernetes KubeVirt/Virtlet Serverless Knative/OpenFaaS Container Engine Containers
  47. Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software

    Applications Container Engine Containers Housing Stack Governor People Land Buildings Services Bare Metal Any Cloud Cloud Native Stack VMs Kubernetes KubeVirt/Virtlet Serverless Knative/OpenFaaS Software Applications Container Engine Containers Bare Metal Any Cloud Cloud Native Stack Kubernetes KubeVirt/Virtlet Software Applications Container Engine Containers Housing Stack Governor People Land Homes Hotels Apartments City Services
  48. What is Kubernetes? Kubernetes is a portable, extensible open-source platform

    for managing workloads and services, that facilitates both declarative configuration and automation.
  49. Day 2 IT City Shopping Mall Hospital Church University Clinic

    Museum Opera Docks CI/CD Observability Service proxy Service Mesh Streaming/messaging Networking Container registry Software distribution
  50. Microservice Release Cycles Feature to Prod Feature to Prod Feature

    to Prod Old feature still running Release Plan Release Plan Release Plan
  51. Microservice Release Cycles Release Plan Release Plan Release Plan Feature

    to Prod Feature to Prod Feature to Prod Old feature still running Feature to Prod
  52. The Result • Handled Christmas loads at scale without breaking

    a sweat • Quickly scale up and down. Burstable • Interchangeable front-end containers = automated sites with custom DNS and HTTPS • Developers have taken ownership of deployment, can update, roll-back, w/o sysadmins #1 Large Scale Web Applications Solution • Containerized tiered components • Small containers deployed at scale • CI/CD to manage and orchestrate containers • Development and prod have zero shift Problem • Content Management and E-Commerce needed at large scale • Servers did not scale under load • Multi-server states hard to synchronize • Development environment difficult to replicate
  53. The Result • From <50 concurrent to <5,000 concurrent requests

    • Exposed data and functionality to Mobile, Salesforce and partner channels • No big bang rewrite upfront. Retiring legacy incrementally. • Enabled DevOps #2 Legacy Middleware with Huge Data Problem • Data and functionality were closely coupled • User session = DB connection • Database choked during the day • Hard to add new features Solution • New microservices layer as new entry point • Data caching to avoid expensive hits to DB • Containerized microservices talk to legacy • Messaging backbone
  54. How we bring the App to production on Kubernetes? Continuous

    Integration (CI) Continuous Deployment (CD)
  55. 3 Main Patterns in Modernizing Workloads Lift & Shift Augment

    with new layers Complete rewrite • Containerize existing components • Deploy them on a PaaS • Keep external integrations and data on legacy • Legacy applications have to be well written and suited • Legacy remains intact • New layer enables new capabilities • Deploy on PaaS • New integration points between legacy and new layers • Legacy is totally replaced • New interfaces and data • Use PaaS to run • Some data and features can be re-wrapped, but mostly are retired
  56. Lift and Shift Step 1 • Lift existing runtimes into

    container • Keep data, messaging and integrations where they are • Enable development and ops to deliver value on a new platform
  57. Lift and Shift Step 2 • Slice functionality by vertical

    business concerns • Shift feature after feature into vertically aligned microservices and APIs • Rinse and repeat. Retire legacy when feature parity is attained
  58. Augment Based Modernization Step 1 • Create integrations points to

    expose legacy data and functionality. Legacy as backend • Create new capabilities through passthrough services • Deliver new business value
  59. Augment Based Modernization Step 2 • Slice backend in vertical

    business aligned services • Refactor backend functionality into business aligned microservices • Rinse and repeat. Retire backend when feature parity is attained
  60. How Do They Compare Complete ReWrite Augment with new layers

    Lift and Shift cost of migration Time Generally the most expensive and longest
  61. Application Modernization Pathways Enabling modernization from legacy applications Starting Point

    Open Source & Enablement Cloud Native Enablement Desired State Lift and Shift Modernization Non Open Source Middleware Applications Migrate to Open Source Stack Enable on Kubermatic container platform Modernize applications to API and Microservices cloud architecture on containers Augment with new functionality Monolithic / Mainframe applications that are hard to change without breaking functionality Enable integrations to expose data and functionality using Open Source stack Enable on Kubermatic container platform Modernize applications to API and Microservices cloud architecture on containers Complete re-write Monolithics or applications on non Open Source middleware about to be retired Architecture and Design mapping old system capabilities to new architecture Set-up, train on and get hands-on experience with modern container platform from Loodse Create new set of applications on modern cloud-native applications
  62. Methodology and Process Deploy Phase: Knowledge Base Migration Teams (1….n)

    Challenge Backlog Center of Excellence C B A C B D E F