serverless pune meetup 3

25
SERVERLESS WITH FUNKTION PUNE SERVERLESS MEETUP - 3 HTTPS://WWW.MEETUP.COM/SERVERLESS-FUNCTION-AS-A-SERVICE-PUNE 13 MAY 2017

Upload: vishal-biyani

Post on 23-Jan-2018

122 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Serverless Pune meetup 3

SERVERLESS WITH FUNKTION

PUNE SERVERLESS MEETUP - 3HTTPS://WWW.MEETUP.COM/SERVERLESS-FUNCTION-AS-A-SERVICE-PUNE

13 MAY 2017

Page 2: Serverless Pune meetup 3

VISHAL BIYANICTO & Founder at

infraCloud technologies (www.infracloud.io )

2004Java, PLM, JSP, Servlets, Java Swing,

2004-2009eMatrix, PLM, J2EE, Database, architecture, Shell, Windchill, jUnit, Oracle,

2010 - 2013: Spring, Maven, Jenkins, ElasticSearch, CloudFoundry, Google App Engine, APIs, CI

2013: Puppet, Chef, Ansible,

CD/CI, DevOps Coach, Docker, API Mgmt, Microservices, Infra as code, Artifactory, Nexuus, Integration as a Service

Now:Containers, Kubernetes, Mesos, Salt, Scale, Distributed, Serverless

https://twitter.com/vishal_biyanihttps://www.vishalbiyani.com

Page 3: Serverless Pune meetup 3

ANNOUNCEMENT TIME

We will host a meetup every month and cover more advanced topics

We also conduct a Kubernetes meetup every month - Join on https://www.meetup.com/Kubernetes-Pune

A Kubernetes 101 & Openshift 101 workshop to be launched in Pune soon

Page 4: Serverless Pune meetup 3

PLEASE RAISE HANDS

• If you have worked with either of AWS Lambda/Azure Functions/Google Cloud Functions?

• Heard of OpenWhisk/Fission/Funktion?

• Work on Go language?

Page 5: Serverless Pune meetup 3

Source: https://github.com/Miserlou/Zappa

Page 6: Serverless Pune meetup 3

TABLE OF FUNCTIONS (PUN INTENDED).. ..

• Defining Serverless - evolving definitions

• BaaS (Backend As a Service)

• FaaS (Function as a Service)

• Serverless

• Frameworks

• Architecture

• Benefits & Challenges

• Funktion introduction & Demo

Page 7: Serverless Pune meetup 3

EVOLVING DEFINITIONS

SERVERLESS

Page 8: Serverless Pune meetup 3

What is Serverless?

Backend as a Service

Use third party systems as much as possible and build systems. Algolia,

oAuth are prime examples

Reference & highly reccomended read: https://martinfowler.com/articles/serverl

ess.html

Page 9: Serverless Pune meetup 3

What is Serverless?

Backend as a Service

Completely managed backend - and you write rich logic in

front end

Reference & highly reccomended read: https://martinfowler.com/articles/serverl

ess.html

Page 10: Serverless Pune meetup 3

What is Serverless?

Function as a Service(FaaS)

You only write backend functions

Deploying, scaling and managing functions is

done by platform

Client is stil rich - may be not as rich as in

case of BaaS

You only write a function; a function can be in any language as long as it can be called from Linux CLI

You provide function to the FaaS provider and everything else - deploying, scaling on demand and running function is taken care by the provider

Front end is relatively aware of various functions but the implementation is hidden from front end.

Page 11: Serverless Pune meetup 3

AWS Lambda Google Cloud Functions Azure Functions

Commercial frameworks

OpenSource or OpenSource+Managed

frameworks

Enabling Frameworks/ Toolkits

Apache OpenWhisk Fission - Platform9 Fabric8- Funktion IronIO - Function

Enables Easy deploy to AWS & openwhisk

Apex - deploy to AWS Lambda

Python Apps on AWS Lambda

Page 12: Serverless Pune meetup 3

SERVERLESS - 100K VIEWEvent/Trigger Functions ServicesClient/Apps

API Gateway

Object Storage

Monitoring System

Voice

Nodejs Function Microservice

Java Function

Python Function

Database

Analytics

Object Storage

External API

Another function

Page 13: Serverless Pune meetup 3

SERVERLESS: KEY ARCHITECTURAL CONSIDERATIONS

State

• There is no state you maintain beyond execution of a function

Execution

• They are intended to be short lived (AWS puts a 5 minute timeout on a function)

Startup - fast?

• There might be some latency in startup - as the execution instance is created on the fly

API Management

• Managing the API gateway is an important aspect -weather it is a HTTP or voice or FTP gateway

How to CI/CD, development?

• At the moment tooling is still evolving and is an important aspect

Page 14: Serverless Pune meetup 3

Typical servers in business and enterprise data centers deliver between 5 and 15 percent of their maximum computing output on average over the course of the year.

http://www.forbes.com/sites/benkepes/2015/06/03/30-of-servers-are-sitting-comatose-according-to-research/#6861ea9f2c2e

Page 15: Serverless Pune meetup 3

SERVERLESS: BENEFITS & CHALLENGES

BenefitsSaves $$ - you pay per execution

Easy to bootstrap new ideas

You literally pay as you scale

Lesser operation overhead

ChallengesSame login in multiple functions

Where to store configs?

Not easy to test

How to manage 100s of functions, deploy & version?

Discovery, monitoring and debugging is not yet easy

Page 16: Serverless Pune meetup 3

HOW TO DEPLOY SERVERLESS ON PREMISE/HYBRID?

• Apache OpenWhisk, Iron Functions, Fission, Fabric.io Funktion can be deployed on premise/any machine cluster

• The projects are incubating and maturing fast. Many of them are targettingKubernetes as their target (Ease of creating routes & spining up containers etc.)

• You might need additional framework/infra such as messaging queue etc. based on where you deploy!

Page 17: Serverless Pune meetup 3

FUNKTION

Page 18: Serverless Pune meetup 3

FUNKTION

• Part of larger Fabric8 platform

• Enables lambda style development and deployment on Kubernetes

Page 19: Serverless Pune meetup 3

REMEMBER 4 THINGS

• Funktion - the actual function

• Runtime - The language/platform runtime

• Connector - Connect stuff

• Flow - Make a flow from functions and connectors

Page 20: Serverless Pune meetup 3

FUNKTION INSTALLATION

• Install

funktion install platform --namespace default

• Verify

kubectl get pod

• If you want to use Fabric8 platform

funktion install operator

Page 21: Serverless Pune meetup 3

RUNTIMES & CONNECTORS

• funktion install runtime

• funktion install connector http4 timer twitter

• funktion install connector --list

Page 22: Serverless Pune meetup 3

CREATING FIRST FUNCTION

• funktion create fn -f hello.js

• funktion create fn -n hello -s 'module.exports = function(context, callback) { callback(200, "Hello, world!\n"); }’

• funktion get fn

• funktion url fn hello

Page 23: Serverless Pune meetup 3

FLOW

• A set of functions in pipeline

• funktion create flow timer://bar?period=5000 http://ip.jsontest.com/

Page 24: Serverless Pune meetup 3

WHAT NEXT > NEXT MEETUPS

• Deeper dive and hands on demos on some frameworks

• Hands on sessions on AWS Lambda, Google Functions & Azure functions

• Hackathons - where we will hack together some use cases and develop some frameworks together

Page 25: Serverless Pune meetup 3

ধন্যবাদ!

Dank je!Kiitos!આભાર!

धन्यवाद!Grazie!

Je vous remercie!ありがとうございました!

ਤੁਹਾਡਾ ਧੰਨਵਾਦ!

நன்றி!ధన్యవాదాలు!

നന്ദി!

THANK YOU!

Thanks to RedhatIndia for hosting us

Thanks a lot to you the audience who made this possible