Visualizing Mandelbrot fractals

using Project Riff

and Spring Cloud Function

Dieter Hubau

 

Ordina Belgium

@dhubau

github.com/Turbots

ordina-jworks.github.io

Kubernetes

Container Orchestration

Service Discovery

Load Balancing

Automated Rollouts and Rollbacks

Secret and Config Management

Self Healing

Horizontal (auto)scaling

Istio

Service Mesh

Traffic Management

Secure Communication

Tracing

Monitoring & Logging

 

Knative

Building Blocks for your Serverless Workloads

Serving

Build

Events

Knative

Serving

 

Apps are Knative Services

Mutable Configuration

Immutable Revisions

Dynamic Routes

Automatic Scaling

Knative

Build

 

Builds uses Builders to build your app from source to image

Containers are the common language

BuildTemplates define how to build

Easy to extend

Knative

Events

 

Powerful primitives to connect event sources to consumers

Channels and Subscriptions as layer of abstraction

(Cluster)Bus as middleware implementation

Publish Events without consumers

Start consuming before publisher is even there

Riff

Riff is for Functions

Event Driven FaaS

Opinionated layer on K8s, Istio and Knative

Functions practice Inversion Of Control

No configuration, your logic only!

Polyglot

Riff

​riff function create <invoker> <name> <args>


riff service create <name> --image <image>


riff channel create <name> --cluster-bus <bus-name>


riff subscription create <name> --channel <chan> --subscriber <sub> --reply-to <reply>

Abstraction Layers

"The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise"

E.W. Dijkstra

Abstraction Layers

"The entire history of software engineering is that of the rise in levels of abstraction"

Grady Booch

Use case:

Mandelbrot

Visualizer

using K8s, Knative, Istio, Riff and Spring Cloud Function

Mandelbrot Set

"Most Complicated Object in Mathematics"

Function M()

Spring Cloud Function

m()

riff function create java mandelbrot

Docker Container

m()

Pod

m()

istio-proxy

queue-proxy

0-N Horizontal Scaling

m()

m()

m()

Build more functions/services

calc

m()

web

Channels & Subscriptions

web

grids

calc

calculations

m()

results

Resources

https://kubernetes.io/

https://istio.io/

https://cloud.google.com/knative/

https://projectriff.io

Demo Time

Questions?

Mandelbrot Fractals with Riff and Spring Cloud Function

By Dieter Hubau

Mandelbrot Fractals with Riff and Spring Cloud Function

Devoxx Belgium

  • 757