Knative: Building serverless platforms on top of Kubernetes

Similar documents
Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Kuber-what?! Learn about Kubernetes

Running MarkLogic in Containers (Both Docker and Kubernetes)

Red Hat OpenShift Roadmap Q4 CY16 and H1 CY17 Releases. Lutz Lange Solution

Kuberiter White Paper. Kubernetes. Cloud Provider Comparison Chart. Lawrence Manickam Kuberiter Inc

TEN LAYERS OF CONTAINER SECURITY

Azure DevOps. Randy Pagels Intelligent Cloud Technical Specialist Great Lakes Region

VMWARE PIVOTAL CONTAINER SERVICE

Oh.. You got this? Attack the modern web

[Docker] Containerization

OpenShift Roadmap Enterprise Kubernetes for Developers. Clayton Coleman, Architect, OpenShift

Real-life technical decision points in using cloud & container technology:

ACCELERATE APPLICATION DELIVERY WITH OPENSHIFT. Siamak Sadeghianfar Sr Technical Marketing Manager, April 2016

Evolving Cloud Native Landscape. Chris Aniszczyk, CTO

TEN LAYERS OF CONTAINER SECURITY. Kirsten Newcomer Security Strategist

DevOps + Infrastructure TRACK SUPPORTED BY

BUILDING MICROSERVICES ON AZURE. ~ Vaibhav

Accelerate at DevOps Speed With Openshift v3. Alessandro Vozza & Samuel Terburg Red Hat

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

개발자와운영자를위한 DevOps 플랫폼 OpenShift Container Platform. Hyunsoo Senior Solution Architect 07.Feb.2017

Docker Live Hacking: From Raspberry Pi to Kubernetes

Building a Microservices Platform with Kubernetes. Matthew Mark

Kubernetes made easy with Docker EE. Patrick van der Bleek Sr. Solutions Engineer NEMEA

The 12-Factor app and IBM Bluemix IBM Corporation

Continuous Delivery for Cloud Native Applications

Backup strategies for Stateful Containers in OpenShift Using Gluster based Container-Native Storage

OpenShift 3 Technical Architecture. Clayton Coleman, Dan McPherson Lead Engineers

itexamdump 최고이자최신인 IT 인증시험덤프 일년무료업데이트서비스제공

AGILE RELIABILITY WITH RED HAT IN THE CLOUDS YOUR SOFTWARE LIFECYCLE SPEEDUP RECIPE. Lutz Lange - Senior Solution Architect Red Hat

Red Hat Roadmap for Containers and DevOps

How to Re-Architect without Breaking Stuff (too much) Owen Garrett March 2018

Welcome to Docker Birthday # Docker Birthday events (list available at Docker.Party) RSVPs 600 mentors Big thanks to our global partners:

THE STATE OF CONTAINERS

Container in Production : Openshift 구축사례로 이해하는 PaaS. Jongjin Lim Specialist Solution Architect, AppDev

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

I keep hearing about DevOps What is it?

Building Kubernetes cloud: real world deployment examples, challenges and approaches. Alena Prokharchyk, Rancher Labs

WHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction

Containers & Microservices For Realists. Karthik

Logging, Monitoring, and Alerting

gcp / gke / k8s microservices

A Comparision of Service Mesh Options

Sunil Shah SECURE, FLEXIBLE CONTINUOUS DELIVERY PIPELINES WITH GITLAB AND DC/OS Mesosphere, Inc. All Rights Reserved.

Docker and Oracle Everything You Wanted To Know

Microservices. Chaos Kontrolle mit Kubernetes. Robert Kubis - Developer Advocate,

InterSystems Cloud Manager & Containers for InterSystems Technologies. Luca Ravazzolo Product Manager

Amir Zipory Senior Solutions Architect, Redhat Israel, Greece & Cyprus

Building an Operating System for AI

Industry-leading Application PaaS Platform

Red Hat Atomic Details Dockah, Dockah, Dockah! Containerization as a shift of paradigm for the GNU/Linux OS

Cloud I - Introduction

Disclaimer This presentation may contain product features that are currently under development. This overview of new technology represents no commitme

Kubernetes 101. Doug Davis, STSM September, 2017

Kubernetes: Integration vs Native Solution

Code: Slides:

Advanced Continuous Delivery Strategies for Containerized Applications Using DC/OS

Fixing the "It works on my machine!" Problem with Docker

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Application Centric Microservices Ken Owens, CTO Cisco Intercloud Services. Redhat Summit 2015

Security oriented OpenShift within regulated environments

São Paulo. August,

SUSE s vision for agile software development and deployment in the Software Defined Datacenter

CONTAINERS AND MICROSERVICES WITH CONTRAIL

Przyspiesz tworzenie aplikacji przy pomocy Openshift Container Platform. Jarosław Stakuń Senior Solution Architect/Red Hat CEE

Taming your heterogeneous cloud with Red Hat OpenShift Container Platform.

What s New in K8s 1.3

Deploying Applications on DC/OS

A DEVOPS STATE OF MIND. Chris Van Tuin Chief Technologist, West

Container Orchestration on Amazon Web Services. Arun

Oracle Container Natve Applicaton Development Platorm. Edgars Ruņģis Cloud Soluton Architect

A DEVOPS STATE OF MIND WITH DOCKER AND KUBERNETES. Chris Van Tuin Chief Technologist, West

IBM Bluemix compute capabilities IBM Corporation

70-532: Developing Microsoft Azure Solutions

The Post-Cloud. Where Google, DevOps, and Docker Converge

Cloud & container monitoring , Lars Michelsen Check_MK Conference #4

EASILY DEPLOY AND SCALE KUBERNETES WITH RANCHER

Beyond 1001 Dedicated Data Service Instances

Overview of Container Management

DevOps Agility in the Evolving Cloud Services Landscape

Container-Native Storage

SERVERLESS APL. For now this is just research in Cloud technologies in SimCorp A/S.

An Introduction to Kubernetes

How to Keep UP Through Digital Transformation with Next-Generation App Development

Introduction to Kubernetes

70-532: Developing Microsoft Azure Solutions

ovirt and Docker Integration

The four forces of Cloud Native

VMWARE PKS. What is VMware PKS? VMware PKS Architecture DATASHEET

CWIN CAPGEMINI WEEK OF INNOVATION NETWORKS. Re-platforming and Cloud Journey. Fausto Pasqualetti, Milano, 25 Settembre 2018

AZURE CONTAINER INSTANCES

Hybrid Cloud with Container in Telco. Red Hat Korea 최종일상무

Think Small to Scale Big

Serverless architectures with Fn Project

Monitoring MySQL with Prometheus & Grafana

Deep Learning Inference on Openshift with GPUs

Learn. Connect. Explore.

Ray Tsang Developer Advocate Google Cloud Platform

Zero to Microservices in 5 minutes using Docker Containers. Mathew Lodge Weaveworks

ASP.NET Core & Docker

Transcription:

Knative: Building serverless platforms on top of Kubernetes Ahmet Alp Balkan @ahmetb Thanks to Mark Chmarny, Ryan Gregg, DeWitt Clinton and Bret McGowen for some of the slides used in this presentation.

Talking about servers at a serverless conference

Kubernetes Serverless

I work on developer tools and experiences for Kubernetes. I'm passionate about microservices, infrastructure-as-code, and RPC frameworks. Past: worked at Microsoft Azure on Linux and Docker. Follow me at @ahmetb.

Kubernetes

Kubernetes is the de facto platform for running containers.

The incredible Kubernetes ecosystem 400+ Years of effort* 5,000+ Contributors 40k+ GitHub stars *Sources: COCOMO Model, CNCF Certified Providers, k8s.devstats.cncf.io

How did this happen? Kubernetes encourages cattle; not pets. Individual machines don't matter. Container isolates the app from the host. Containers are ephemeral: they come and go.

How did this happen? Kubernetes has a declarative API. Apply the desired configuration to your cluster. Kubernetes will drive "current state" to the "desired state" eventually.

How did this happen? Kubernetes keeps your applications running while you're asleep. Container died? Restart it. Container unhealthy? Reschedule to another node. Container overloaded? Add more replicas automatically.

How did this happen? Kubernetes API is extensible. You can create custom API types. You can write custom controllers to actuate the custom objects. apiversion: my.api/v1 kind: MysqlCluster metadata: name: orders-db spec: masters: 3 replicas: 12 storage: innodb: {}

Kubernetes is not easy 1. It was never meant to be used by developers directly. 2. Creating and operating Kubernetes clusters in production is pretty much a full time job.

Google Kubernetes Engine (GKE) The zero ops cluster experience: update your cluster to new versions of Kubernetes scale the cluster up/down automatically detect and replace broken nodes of the cluster

Kubernetes isn't actually for developers It's not the correct end-developer experience. (This doesn't stop developers from using Kubernetes directly!) But it's a great platform for building a PaaS on top of.

Developers using Kubernetes Have to do Want to do Write code Write code Build docker image Upload image to registry Deploy service Expose to the internet Set up monitoring Set up autoscaling

Why do developers still use Kubernetes? Some people want control over their infrastructure (VMs, machines, OS images, networking, security,...) Not everyone is on cloud yet, or they want to avoid vendor lock-in. Kubernetes lets you effectively manage a large set of {machines, deployments}.

Serverless

Serverless > Functions

Serverless is more than snippets of code Data warehouse AI Compute Messaging Database Storage Data processing

Serverless is more than snippets of code BigQuery Cloud Storage Cloud Dataflow Cloud Machine Learning Cloud Functions Cloud Datastore App Engine Cloud PubSub

Promise of serverless No servers Idiomatic Event-driven Free of lock-in

Developers just want to run their code.... want to use their favorite languages and dependencies. don't want to manage the infrastructure.

The case for Serverless on Kubernetes

Developers want serverless... just want to run their code.... want to use their favorite languages and dependencies.... don't want to manage the infrastructure. Operators want Kubernetes Kubernetes is great orchestrating microservices They love using GKE and not having to do operations for Kubernetes. Kubernetes is not the right abstraction for their developers.

Why would you want serverless on Kubernetes? Ask the developers of >13 open source Kubernetes-based FaaS/serverless projects. :)

Why would you want serverless on Kubernetes? 1. Your company doesn't use cloud (or wants vendor lock-in) 2. Need control over the infrastructure, machines, host OS,... 3. Kubernetes offers good abstractions to build upon.

How to get this on Kubernetes? No servers Idiomatic Event-driven Free of lock-in

The majority of people managing infrastructure just want PaaS. There's only one requirement:

The majority of people managing infrastructure just want PaaS. There's only one requirement: It has to be built by them. -Kelsey Hightower

Serverless stack Primitives Platform DX Event Sources Runtimes Build Routing Autoscaling Observability Invokers Event Binding Kubernetes... Effort scope... Products

Serverless stack Primitives Platform DX Event Sources Runtimes Build Routing Autoscaling Observability Invokers Event Binding Kubernetes... Opportunity lost Duplication of efforts... Products Decreased portability

What if I told you, we can still fulfill the serverless promises on servers (but you don't have to manage them)?

Knative

Hello Knative Building blocks for creating serverless experiences on top of Kubernetes. github.com/knative

Knative collaborators

The Knative Stack Platform Kubernetes

The Knative Stack Knative Primitives Build Platform Serving Kubernetes Events

Products Serverless Containers on GCF GKE Serverless Add-on SAP Kyma Pivotal Function Service IBM Cloud Functions Red Hat Cloud Functions riff OpenFaaS Jazz Knative Primitives Build Platform Serving Kubernetes Events

What Knative is An open source project Set of building blocks to construct your own FaaS/PaaS abstracts common tasks through custom Kubernetes API objects An abstraction on top of Kubernetes. It's still Kubernetes: Runs containers at the end of the day.

What Knative is not It's not a Google product. It's not a FaaS.

What can you do with Knative? [Developers] Use it directly to deploy stuff (not easy, but works fine) [Operators] Put a level of abstraction between your devs and Kubernetes. [Platform Architects] Use it to build your own serverless platform. e.g. DIY Heroku or GCF/Lambda.

Developers Developer Experience Primitives Infrastructure Off-the-shelf FaaS (riff, OpenFaaS, Apache Whisk ) Your in-house FaaS platform Knative Kubernetes

DIY FaaS on Kubernetes (oversimplified) Something to wake up your workload (activation) on request. Something to scale up, and back to zero. Something to turn your app/function into a container Something to collect metrics and export telemetry from the app. Handling of revisions of the code+config (+ability to rollback) A way to offer traffic splitting (gradual rollout) An eventing system with configurable sources/flows/subscribers

Knative building blocks Serving Build Events

Knative components Serving: Revisions, Traffic Splitting, Autoscaling Build: On-cluster builds and transformations Eventing: Declarative way to bind event sources to services

Knative Serving Benefits Seamlessly scale up and down Built-in traffic splitting between revisions Integrates networking and service mesh automatically Easy to reason about object model Pluggable Connect to your own logging and monitoring platform, or use the built-in system Auto-scaler can be tuned or swapped out for custom code

Knative Serving Primitives with clear separation of concerns: Configuration Current/desired state of an application Code & configuration separated (a la 12-factor) Revision Point in time snapshots for your code and configuration Route Maps traffic to a revisions Supports fractional, named routing

Knative Build Lets you go from source code to container images. Build pipelines can consist of multiple steps Each build step is a container image. Builds run inside the containers on the cluster. Makes it possible to do GitOps and go from "git push" to a running URL.

Knative Build: Source-to-container image source: git: url: git://github.com/example/foo.git steps: - name: compile image: gcc args: ["gcc", "-o", "a.out"] - name: build image: docker-cli args: ["docker", "build", "--tag", "my-image", "."] - [...]

Knative Build: Function-to-container Step 1: function to app (add an invoker for your function) Step 2: app to a container (add a buildpack environment) Step 3: push container to a registry

Knative Build: Benefits Flexible: Control over how your source is turned into artifact (container image). Builds happen on the cluster. No need for Docker locally Cached Docker builds Faster image pushes No cross-compiling toil

Knative on-cluster build Benefits No cross-compiling toil No need for Docker locally Cloud caching, faster image push Tooling ecosystem for Enterprise Policy to audit Builds Loosely coupled Use it to get started, and graduate to decoupled CI Keep your existing CI/CD to get started, and graduate to audited Builds

Knative Eventing (Work in progress, subject to change.) Eventing constructs : Event Sources (producer) Event Types (different events) Event Actions (any route) Event Feeds (configuration) Event type Event type Event source Event type Flow Event consumer(s)

Knative Eventing Benefits Declaratively bind between event produces and your services Custom event pipelines to connect with your own existing systems Event type Event type Event source Event type Flow Event consumer(s)

Knative development principles 01 02 03 Idiomatic Feel native on Kubernetes Meet the developer Extensible Loose coupling at the top Pluggable at the bottom Organic Codify the commonalities Build a stable platform

Demo

Thanks! github.com/knative cloud.google.com/knative g.co/serverlessaddon (alpha sign-up)