State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing...

42
State of Serverless & Service Mesh William Markito Oliveira Product Manager @william_markito 1 Sep 2019 Giuseppe Bonocore Solution Architect

Transcript of State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing...

Page 1: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

State of Serverless & Service Mesh

William Markito OliveiraProduct Manager@william_markito

1

Sep 2019

Giuseppe BonocoreSolution Architect

Page 2: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

2

Page 3: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Service Mesh

3

Page 4: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

4

Distributed Architecture

Service ServiceService

Service ServiceService

Service ServiceService

Page 5: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

5

Microservices Evolution

Service

Config

Svc Discovery

Routing

Circuit Breaker

Tracing

Service

Platform Container Platform (+ Service Mesh)

...2014 2018

Page 6: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

6

● Two or more containers deployed to same pod● Share

○ Same■ Namespace■ Pod IP

○ Shared lifecycle● Used to enhance the co-located containers● Istio Proxy (L7 Proxy)

○ Proxy all network traffic in and out of the app container

Source: http://blog.kubernetes.io/2015/06/the-distributed-system-toolkit-patterns.html

Sidecars

POD

SERVICE A

Istio Proxy

Page 7: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Control Plane

7

POD

ENVOY

SERVICE

POD

ENVOY

SERVICE

POD

ENVOY

SERVICE

Pilot Mixer Auth

Service Mesh Architecture

Applies security, route rules, policies and reports traffic telemetry at the pod level

Jaeger

Data Plane

Page 8: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

8

Service Mesh Ecosystem

Observe Observe

Secure

ControlConnect

Jaeger

Kiali Grafana

PrometheusIstio

Page 9: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

9

Enhanced Visualization of Cluster TrafficWith Kiali

Visualization of what

Matters most:

● Application Topology

● Traffic throughput

● Error Rates

● Service Latency

● Service Versioning

Page 10: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

10

Convenient Overviews of Individual Services

Page 11: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

11

Guided Configuration of Traffic Policies

Page 12: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

12

Distributed Services WithRed Hat Openshift Service Mesh

INFRA

INFRA OPS

SERVICE OPS

SERVICE

ANYINFRASTRUCTURE

OpenShift Container Platform(Enterprise Kubernetes)

Amazon Web Services Microsoft Azure Google CloudOpenStackDatacenterLaptop

OpenShift Service Mesh(Istio + Jaeger + Kiali)

ANYAPPLICATION

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Service

CONTAINER

Page 13: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Key Features● A dedicated network for service to service

communications● Observability and distributed tracing● Policy-driven security● Routing rules & chaos engineering● Powerful visualization & monitoring● Will be available via OperatorHub

13

Generally Available

OpenShift Service Mesh

Page 14: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Serverless

14

Page 15: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, MilanoSERVERLESS

15

Wait… wat ?https://github.com/ghuntley/serverless-to-cgi-bin

Page 16: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Serverless Defined

SERVERLESS

16

“computing execution model that depends on services to manage server-side logic and state where business logic run in stateless, event-triggered compute linux containers"

event

action

result$

Page 17: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

17

"Function as a Service

(FaaS) is serverless in the

same way a square is a

rectangle"

Serverless > Functions

Serverless > Microservices

Serverless > Containers

SERVERLESS MARKET

Page 18: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

18

Page 19: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, MilanoCLOUD NATIVE DEVELOPMENT MARKET

19

Page 20: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, MilanoCLOUD NATIVE DEVELOPMENT MARKET

20

Page 21: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, MilanoCLOUD NATIVE DEVELOPMENT MARKET

21

Page 22: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Microservices, Functions and Apps + Events

22

MicroservicesFunctions Apps

Containers

Infrastructure & Scheduling

Containers

Infrastructure & Scheduling

Events

Infrastructure

Page 23: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

First Principles

MODERN APPLICATIONS

23

Distributed

Secure

API Centric

Event Driven

Multi-cloud Scalable

Polyglot

Java

.NetCore

Node.js

Python

GoLang

Disposable

Page 24: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Serverless & Knative

24

Page 25: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Companies contributing to Knative

25

Source: https://knative.teststats.cncf.io/d/8/dashboards?refresh=15m&orgId=1

Page 26: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

What is Knative ?

OPENSHIFT SERVERLESS

26

SERVING

An event-driven model that serves the container with your application and

can "scale to zero".

EVENTING

Common infrastructure for consuming and producing events that will stimulate

applications.

Page 27: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Community Operators

27

Page 28: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

28

Productized Operator

Page 29: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

User Experience

CLI

29

More details at https://github.com/knative/client/tree/master/docs

kn service create hello --image gcr.io/knative-samples/helloworld-go --env NAME=valueService 'hello' successfully created in namespace 'default'.

kn service get helloNAME DOMAIN GENERATION AGE CONDITIONS READY REASONhello hello.default.example.com 1 3m5s 3 OK / 3 True

Other commands available: update, replace, get, describe

Options: --limits-cpu 100m --limits-memory 1024m

Page 30: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, MilanoNEXT WAVE OF DEVELOPER TOOLS

apiVersion: apps/v1kind: Deploymentmetadata: name: frontend labels: app: guestbookspec: selector: matchLabels: app: guestbook tier: frontend replicas: 1 template: metadata: labels: app: guestbook tier: frontend spec: containers: - image: markusthoemmes/guestbook name: guestbook resources: requests: cpu: 100m memory: 100Mi env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 80

apiVersion: serving.knative.dev/v1alpha1kind: Servicemetadata: name: frontendspec: template: metadata: labels: app: guestbook tier: frontend spec: containers: - image: markusthoemmes/guestbook resources: requests: cpu: 100m memory: 100Mi env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 80

---apiVersion: v1kind: Servicemetadata: name: frontend-service labels: app: guestbook tier: frontendspec: ports: - port: 80 selector: app: guestbook tier: frontend---apiVersion: route.openshift.io/v1kind: Routemetadata: name: frontend-routespec: to: kind: Service name: frontend-service

Kubernetes Knative

22 lines 53 lines

"Lift & Shift" to Serverless

30

Page 31: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Knative v0.7.1 (v1alpha1)Kafka event sourceInstallation docsMeteringLogging & MonitoringDeveloper Console (UI)

31

OpenShift ServerlessRoadmap

Sep 2019

Knative v0.7.0 (v1alpha)Operators-based InstallDomain config & Ingress CLI (kn) for ServingCamel-K event source

Tech Preview 2

Feb 2020

Dev Preview 0.7

June 2019

General Availability

Knative v0.9.0 (v1beta1)Tekton Integration (Pipelines)VS Code PluginsCLI (kn) for EventingSupport for GPU workloads Rolling Updates (using OLM)App Migration ("Knatify")

Tech Preview 1

Nov 2019

Knative Eventing (TP)Developer Console (Eventing)Advanced Metering (Cost)Functions Catalog (Kscout)Program for ISV Event SourcesCamel-K productization

Sep 2019, Milano

Page 32: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

CONFIDENTIAL Designator

DEMO

32

Page 33: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

The Journey to Profit$! with Serverless

33

Kiosk App Store App Order Routing Payment

Page 35: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Admin User Experience

INSTALLATION

Page 36: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

User Experience

DEPLOY AN IMAGE

Applies to:

● Deploy Image

● Import from Git

● Create new App

* Developer Perspective coming in OpenShift 4.2

Page 37: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Summary & Roadmap

37

Page 38: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

OpenShift Platform Services

38

Platform Services

Operator Framework Knative TektonService Mesh

Interface Console Frameworks

Red Hat operator-based

services

OpenShiftServerless

OpenShift Pipelines

OpenShiftService Mesh

OpenShiftConsole

Core OpenShift

Full Stack Install Metering, Monitoring and Logging Kubernetes Networking &

Storage / OCS SecurityOver-the-air updates

Container Registry

Red Hat Quay

OpenShift Cluster Manager (a.k.a. UHC)

Cluster Registry Cluster Updates Cluster ConfigurationCluster Monitoring

ON PREMISE PUBLIC CLOUD OPENSHIFT ONLINE OPENSHIFT DEDICATED AZURE RED HAT OPENSHIFT

Page 39: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

Key features● Enable FaaS in OpenShift● Familiar developer experience using VS Code and Azure CLI● Polling based auto-scaling for Azure Queues, Kafka...● Reuse Knative event sources, HTTP auto-scaling ● On premise or Any cloud.● Familiar to Kubernetes users. Native.

Learn more● https://github.com/kedacore/keda

In partnership with:

Azure Functions & KEDA

Functions as a Service

39

Developer Preview

Page 40: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

OpenShift Serverless

Serverless for any container workload

40

Tech Preview 4.2

Key Features● Familiar to Kubernetes users. Native.● Scale to 0 and autoscale to N based on demand● Applications and functions. Any container workload.● Powerful eventing model with multiple event sources.● Operator available via OperatorHub● Knative v0.8 (v1beta1 APIs)● No vendor lock in

Learn morehttps://openshift.com/learn/topics/serverlesshttps://redhat-developer-demos.github.io/knative-tutorial

Page 41: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

Sep 2019, Milano

41

See you soon at...

Page 42: State of Serverless & Service Mesh - OpenShift...Serverless Defined SERVERLESS 16 “computing execution model that depends on services to manage server-side logic and state where

linkedin.com/company/red-hat

youtube.com/user/RedHatVideos

facebook.com/redhatinc

twitter.com/RedHat

42

● openshift.com/learn/topics/knative● https://redhat-developer-demos.github.io/knative-tutorial● github.com/kedacore/keda

Thank you

OPTIO

NAL SECTION

MARKER O

R TITLE

@william_markito