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

Evolution of Application Delivery by Cloud Foun...

Avatar for David Ko David Ko
November 12, 2019

Evolution of Application Delivery by Cloud Foundry & Kubernetes

With the emerging of Cloud Native Application, two major forces including container orchestration and Microservices management continue extending the spectrum of Cloud Native solutions to improve the productivity of development, release and maintenance.

Cloud Foundry, a industry-standard for application management through application buildtime & runtime lifecycle, enhances development productivity w/ containerized isolation and also bring automation integration into development & release cycle.

Kubernetes, a de facto standard for container orchestration through container runtime lifecycle, provides high available, scalable distributed workload management with rich add-on design concepts.

How superior the evolution of Application Delivery takes effect along the time between two different age open source projects to converge a open standard solution in the market. By exploring SUSE CaaS Platform and Cloud Application Platform to see how they work together to achieve the effect.

Avatar for David Ko

David Ko

November 12, 2019
Tweet

More Decks by David Ko

Other Decks in Technology

Transcript

  1. Evolution of Application Delivery by Cloud Foundry & Kubernetes David

    Ko Engineering Manager, SUSE 2019/11/12 OpenInfra Days 2019 Taiwan
  2. 2 Outline • What is Application Delivery? • What is

    Cloud Foundry? • How Cloud Foundry works before Kubernetes? • How Cloud Foundry adapts after Kubernetes? • SUSE Solution for Application Delivery
  3. 3 Who is David Ko? Engineering Manager, SUSE CaaS Platform

    A hands-on senior software manager and architect with more than 10 years of software development experience, is familiar with Microservices, Distributed System Design, CI/CD, Automation, DevOps, Container Orchestration (Kubernetes, Mesos), Cloud Computing, Cloud Native Solution and Big & Fast Data Processing.
  4. 4 What is Application Delivery? Application Delivery refers to using

    a suite of technologies that ensure that application content and functionality are efficiently and reliably accessible by a large number of clients or users. (from: nginx.com) Build Test Package Container Image Publish Deploy Infra Source App Development Management App Runtime Management Reactive Runtime Continuous Integration Continuous Release
  5. 5 What is Cloud Foundry? • Platform as a Service

    • Cloud native application platform with enhanced features to support enriched development and deployment ◦ Integrated routing with advanced route handling ◦ Consolidating logging for both system and application levels ◦ Enhanced RBAC with organisation and space management model ◦ Service integration for applications ◦ Integrating scaling, support for for blue/green and canary deployments, and more • Originally open sourced by VMWare in 2011 • https://cloudfoundry.org
  6. 6 What is Cloud Foundry? Container Orchestration Application Delivery Cloud

    Foundry Infra Management Application Day 2 Application Day 1
  7. 7 Cloud Foundry Projects BOSH • BOSH Director for Infra

    Management ◦ The core orchestrating component in BOSH, and it controls VM creation and deployment, as well as other software and service lifecycle events. • BOSH Release for Software Management ◦ Provision, deploy software on the managed infra. Cloud Foundry Application Runtime (CFAR) • A code-centric platform that simplifies the lives of developers. It takes your code, written in any language or framework, and runs it on any cloud. • Extend to services with the Open Service Broker API easy to integrate the services your apps need to run.
  8. 10 How Cloud Foundry Works BOSH cf-deployment Component Nodes (master)

    Host Nodes (worker) Request application Stage application (in container) Run application (in container) Check available resource Check available resource Infra & CF Management App Management & Observability Container Orchestration
  9. 11 Cloud Foundry Architecture Application Staging uses Buildpacks to stage

    application artifact. It is used to compile or prepare your app for launch. Diego is Cloud Foundry Container Orchestration solution compared with Kubernetes. Application Staging/Running happens in a container created by Garden (using runC, OCI) in Diego Cell. Each host node has a Diego Cell.
  10. 15 Cloud Foundry Container Runtime, CFCR • Deploys and manages

    Kubernetes by BOSH • Gives you more granular control and management of containers with Kubernetes. BOSH, complex and burden Kubernetes Native Deployment
  11. 16 Fissile • Converts BOSH releases into container images and

    Helm charts • Works well for both large releases (CF) and smaller ones (e.g. postgres/mysql) $ helm install -n uaa suse/uaa -f uaa.yaml $ helm install -n cf suse/cf -f cf.yaml Packaging Fissile converts from bosh release to helm charts and container images Deployment Helm deploys onto kubernetes Management Kubernetes manages the running workload via k8s primitives
  12. 17 Eirini • Enables pluggable scheduling for the Cloud Foundry

    Application Runtime (CFAR). • Operators can choose between Diego/Garden or Kubernetes to orchestrate application container instances. • Orchestration Provider Interface (OPI). Eirini
  13. 19 Quarks • Package Cloud Foundry Application Runtime as containers

    instead of virtual machines, enabling easy deployment to Kubernetes. • cf-operator enables the deployment of BOSH Releases, especially Cloud Foundry, to Kubernetes.
  14. 20 How Cloud Foundry Works Cloud Foundry Container Runtime (CFCR)

    K8s Master Nodes K8s Worker Nodes Request application Stage application (in container) Run application (in container) Check available resource Check available resource Infra & CF Management App Management & Observability Container Orchestration Quarks
  15. 21 Cloud Foundry Architecture Cloud Foundry Application Runtime runs as

    deployments in Kubernetes to manage CFAR lifecycle. Application Staging/Running happens in a container created by Container Runtime Manager (ex: CRI-O) working with kubelet. Kubernetes Running on Kubernetes
  16. 23 How Cloud Foundry Works SUSE CaaS Platform K8s Master

    Nodes K8s Worker Nodes Request application Stage application (in container) Run application (in container) Check available resource Check available resource Infra & CF Management App Management & Observability Container Orchestration SUSE Cloud Application Platform
  17. 24 SUSE CaaS Platform • A cloud native opinionated Kubernetes

    management platform ◦ Integrates with value added cloud native solutions for day 1 and day 2 operation. ◦ Supports agnostic infrastructures including on-prem, hypervisor, private cloud and public cloud. • Not BOSH, use kubeadm for native Kubernetes deployment and upgrade to align with upstream. • Skuba is the upstream project of SUSE CaaS Platform https://github.com/SUSE/skuba, for cluster lifecycle management.
  18. 25 SUSE Cloud Application Platform • Cloud Foundry Application Runtime

    run as container workloads on on Kubernetes which is the control plane of CFAR. • Application workloads triggered by Cloud Foundry are deployed as deployment workloads on Kubernetes natively; Diego or Eirini is optional to select as workload backend. • The same user behavior of Cloud Foundry, no vendor lock-in and open standard.