GithubHelp home page GithubHelp logo

barkinet / faas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openfaas/faas

0.0 2.0 0.0 12.15 MB

Functions as a Service - a serverless framework for Docker

Home Page: http://docs.get-faas.com/

License: MIT License

Shell 10.84% HTML 12.63% Go 61.45% COBOL 1.56% CoffeeScript 0.20% C# 0.73% Java 1.01% JavaScript 9.69% Python 1.36% Makefile 0.15% PowerShell 0.37%

faas's Introduction

Functions as a Service (FaaS)

FaaS is a framework for building serverless functions on Docker with first class support for metrics. Any UNIX process can be packaged as a function enabling you to consume a range of web events without repetitive boiler-plate coding.

Concept

  • Each container has a watchdog process that hosts a web server allowing a post request to be forwarded to a desired process via STDIN. The response is sent back to the caller via STDOUT.

  • The API Gateway provides an external route into your functions and collects metrics in Prometheus. The gateway will scale functions according to demand by mangaging Docker Swarm replicas as throughput increases. A UI is baked in allowing you to invoke functions in your browser and create new ones as needed.

Closing Keynote at Dockercon 2017

Functions as a Service or FaaS was a winner in the Cool Hacks contest for Dockercon 2017.

If you'd like to find the functions I used in the demos head over to the faas-dockercon repository.

Background story

This is my original blog post on FaaS from Janurary: Functions as a Service blog post

Build Status

Stack

TestDrive

A one-line script is provided to help you get started quickly. You can test-drive FaaS with a set of sample functions as defined in the provided docker-compose.yml file.

Use your own laptop or the free community-run Docker playground: play-with-docker.com.

Highlights:

  • Ease of use through UI portal

  • Setup a working environment with one script

  • Portable - runs on any hardware

  • Baked-in Prometheus metrics

  • Any container can be a function

  • Auto-scales as demand increases

Begin the TestDrive

Here is a screenshot of the API gateway portal - designed for ease of use.

Portal

Community

Package existing code as functions

Roadmap and contributing

Ongoing development/screenshots:

FaaS is still expanding and growing, check out the developments around:

Minimum requirements:

  • Docker 1.13 (to support Docker Stacks)
  • At least a single host in Docker Swarm Mode. (run docker swarm init)

Additional content

Would you prefer a video overview?

Dockercon closing keynote - Cool Hacks demos with Alexa/Github - April 19th 2017

Watch on YouTube

FaaS tour of features including an Alexa Skill - April 9th 2017

Watch on YouTube

FaaS deep dive - 11th Jan 2017

See how to deploy FaaS onto play-with-docker.com and Docker Swarm in 1-2 minutes. See the sample functions in action and watch the graphs in Prometheus as we ramp up the amount of requests.

Prometheus metrics are built-in

Prometheus is built into FaaS and the sample stack, so you can check throughput for each function individually with a rate function in the UI at port 9090 on your Swarm manager.

If you are new to Prometheus, you can start learning about metrics and monitoring on my blog:

Monitor your applications with Prometheus

Prometheus UI

You can also link this to a Grafana dashboard and see auto-scaling live in action:

Sample dashboard JSON file available here

faas's People

Contributors

aafrey avatar actuino avatar alexellis avatar amirmc avatar austinfrey avatar chanezon avatar developius avatar tleyden avatar vegasbrianc avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.