<-- SLIDE 0.1 -->

These slides online at https://mjbright.github.io/Talks/2018-Mar-25_FOSSAsia_Serverless

<-- SLIDE 0.1b -->

About Myself

  • British - living in Grenoble, in the French Alps

  • Developer Advocate @containous creators of @traefikproxy

  • Docker Community Lead

  • Python User Group Creator

  • Kubernetes CKA

  • Crazy about Open Source and Cloud Technologies


<-- SLIDE 0.1c -->

About Traefik

containo.us is hiring !

  • Reverse-proxy/load-balancer

  • Hot configuration reloads

  • Many backends

  • Let's Encrypt Support + automated cert. renewal

  • Widely deployed

  • Can act as a Kubernetes Ingress Controller


  • ... more on this later, in the demo ...

<-- SLIDE 0.2 -->

Serverless Computing

  • What Is Serverless?

  • Review of Cloud Provider Offerings

    +CNCF Serverless WG
  • Open Source Tools

  • Open Source Platforms

  • Demo of OpenFaaS/Traefik

<-- SLIDE 1.1 -->

What Is Serverless?

  • No more servers ?!

  • The ultimate
    "Cloud Native" ?

  • FaaS + BaaS

    • Functions as a Service

    • Back-ends as a Service

    • Functions glue together API-based back-end services

  • Serverless: a paradigm

    & a company
    & a tool
<-- SLIDE 1.2 -->

Serverless - What Is it?

At the peak of the Hype Cycle!!

  • Not caring about servers

    • Developers focus on apps
    • Platform provider
      • - Provisions
      • - Auto-scales
      • - Maintains
  • Pay as you go


    - (*)Pay for real (fn) usage
    - (*)No initial investment
    - (*)High availability for free
    - Great for startups
  • Agile


    - Short time to market
    - Enables innovation
    - (*)Massive scale on demand
 

* - These are the promises of Serverless

<-- SLIDE 1.3 -->

Serverless - an Event Driven Architecture

<-- SLIDE 1.4 -->

Serverless - What is it? ... Use Cases

Where it doesn't make sense to pay for always-on services - it's a business choice!


  • Event driven


    Scheduled (peak) events
    - monthly payroll
    - daily accounting
    - check processing
       (with image recognition)

    Unpredictable external events
    - web requests
    - web hooks
    - file uploads
    - messages
  • Domains



    CI / CD

    Banking

    IoT

    Glue-logic (of BaaS)

  • Characteristics


    Ideal Serverless applications are
    latency tolerant,
    event-driven,
    short-lived
<-- SLIDE 2.1 -->

Serverless - Cloud Providers

<-- SLIDE 2.2 -->

Serverless - Main Cloud Provider Offerings

<-- SLIDE 2.3 -->
AWS_Lambda

AWS Lambda


Introduced βeta in Nov 2014
Leader in developer uptake, back-end services and eco-system.

Language choices: Node.js (JS), Python, Java 8, C#, VB/F#

NEW Features - Announced at Reinvent 2017

  • Go (static binaries) and .Net(C#)

  • SAM for off-line debugging


Cost: Free tier: 1 mn req/mth, then $0.00001667/GBy-sec details
Strengths: Created the space, enormous ecosystem, Cloud9 IDE?
Weaknesses: A little slow, limited languages, lock-in

<-- SLIDE 2.4 -->

Potentially huge cost savings for your business, or not ...

Source: "The hidden costs of serverless"

<-- SLIDE 2.5 -->

The CNCF Created a Serverless WG

CNCF Serverless

We need open standards for Serverless

<-- SLIDE 2.5 MORE ... --> <-- SLIDE 3.1 ... -->

Serverless - Open-Source Tooling


  • Hundreds of Open-Source tools facilitate development, testing and deployment
  • See awesome-serverless
  • Some tools seek to support multi-language,
    some multi-platform or a combination ...

Some Important Frameworks


Serverless(.com)
apex(.com)
Chalice (AWS Lambda/Python)

<-- SLIDE 3.2 ... -->
<-- SLIDE 4.1 ... -->

Serverless - Open Source Platforms

<-- SLIDE 4.2 ... -->
<-- SLIDE 4.3 ... --> <-- SLIDE 4.4 ... -->

OpenFaaS - Finnian Anderson, Colourising Video with OpenFaaS

<-- SLIDE 5.0 -->

Demo Time !

<-- SLIDE 5.1 -->

Demo - Traefik Architecture

<-- SLIDE 5.2 -->

Demo - OpenFaaS + Traefik

<-- SLIDE 5.3 -->

Demo - Adding Traefik Service into Docker-Compose file - 1

services:
    traefik:
        image: traefik:v1.5
        command: --docker
            --docker.swarmmode
            --docker.domain=traefik
            --docker.watch
            --api
            --api.dashboard
            --debug
            --defaultEntryPoints='http,https'
            --entryPoints='Name:http Address::80 Redirect.EntryPoint:https'
            --entryPoints='Name:https Address::443 TLS:/ssl/wildcard.crt,/ssl/wildcard.key'

<-- SLIDE 5.4 -->

Demo - Adding Traefik Service into Docker-Compose file - 2

    # colorize images:
    colorise:
        image: alexellis2/openfaas-colorization:0.4.0
        labels:
            function: "true"
        networks:
            - functions
        environment:
            fprocess: "python -u index.py"
            no_proxy: "gateway"
            https_proxy: $https_proxy
            url_mode: "true"
        deploy:
            placement:
                constraints:
                    - 'node.platform.os == linux'
            labels:
                - "traefik.port=8080"
                - "traefik.enable=true"
                - "traefik.frontend.rule=Host:colorise.fn.faas"

<-- SLIDE 6.1 -->

Resources - 1

Resource Description URL
Lists
awesome-serverless Curated list of awesome services, solutions and resources for serverless / nobackend applications. [github] anaibol/awesome-serverless
awesome-Serverless(.com) Curated list of resources related to serverless architectures and the Serverless Framework [github] JustServerless/awesome-serverless
Tools
Serverless Tools for deploying to several Cloud Providers [github] serverless/serverless
Apex Tools for deploying to AWS Lambda [github] apex/apex

Resources - 2

Resource Description URL
Cloud Providers
AWS Lambda Amazon's Serverless Platform https://aws.amazon.com/fr/lambda/
Azure Functions Microsoft's Serverless Platform https://azure.microsoft.com/en-us/services/functions/
Google Cloud Functions Google's Serverless Platform https://cloud.google.com/functions/
IBM Cloud Functions IBM's Serverless Platform https://www.ibm.com/cloud-computing/bluemix/openwhisk

Resources - 3

Resource Description URL
Open Source Serverless Platforms
Kubeless Serverless platform from Bitnami url
Fission.io Serverless platform from Platform9 url
Apache OpenWhisk Serverless platform from IBM url
OpenFaaS Serverless platform from Alex Ellis, Docker Captain url
Serverless Python Frameworks
Apex Serverless framework supporting Python and other languages url
Chalice Serverless framework supporting Python / Flask url
Lambdify Serverless framework supporting Python url
Zappa Serverless framework supporting Python / WSGi url

Thanks !



@containous is hiring!



Awesome-Traefik on github

@mjbright

-->