SlideShare a Scribd company logo
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
Building serverless APIs
Julien Simon, Principal Technical Evangelist, AWS
julsimon@amazon.fr 
@julsimon
Serverless
architecture"
="
Managed services "
+"
AWS Lambda"
"
Reference architectures: http://www.allthingsdistributed.com/2016/06/aws-lambda-serverless-reference-architectures.html
AWS Lambda
•  Announced at re:Invent 2014
•  Deploy pure functions in Java, Python, Node.js and C#
•  Just code, without the infrastructure drama
•  Built-in scalability and high availability
•  Integrated with many AWS services
•  Pay as you go
•  Combination of execution time (100ms slots) & memory used
•  Starts at $0.000000208 per 100ms
•  Free tier available: first 1 million requests per month are free
http://aws.amazon.com/lambda 
AWS re:Invent 2014 | (MBL202) NEW LAUNCH: Getting Started with AWS Lambda https://www.youtube.com/watch?v=UFj27laTWQA
What can you do with AWS Lambda?
•  Grow ‘connective tissue’ in your AWS infrastructure
–  Example: http://www.slideshare.net/JulienSIMON5/building-a-serverless-pipeline 

•  Build event-driven applications
•  Build APIs together with Amazon API Gateway
•  RESTful APIs
•  Resources, methods
•  Stages
http://aws.amazon.com/apigateway
https://read.acloud.guru/serverless-the-future-of-software-architecture-d4473ffed864 
A Cloud Guru: 100% Serverless
Typical development workflow
1.  Write and deploy a Lambda function
2.  Create and deploy a REST API with API Gateway
3.  Connect the API to the Lambda function
4.  Invoke the API
5.  Test, debug and repeat ;)
"
Simplifying Development "
"Code samples available at https://github.com/juliensimon/aws/tree/master/lambda_frameworks "
"
The Serverless framework "
formerly known as JAWS: Just AWS Without Servers


•  Announced at re:Invent 2015 by Austen Collins and Ryan Pendergast
•  Supports Node.js, as well as Python and Java (with restrictions) 
•  Auto-deploys and runs Lambda functions, locally or remotely

•  Auto-deploys your Lambda event sources: API Gateway, S3, DynamoDB, etc.
•  Creates all required infrastructure with CloudFormation
•  Simple configuration in YML

http://github.com/serverless/serverless 
https://serverless.com 
AWS re:Invent 2015 | (DVO209) https://www.youtube.com/watch?v=D_U6luQ6I90 & https://vimeo.com/141132756
Serverless: “Hello World” API
$ serverless create
Edit handler.js, serverless.yml and event.json
$ serverless deploy [--stage stage_name]
$ serverless invoke [--local] --function function_name
$ serverless info
$ http $URL
Gordon
•  Released in Oct’15 by Jorge Batista
•  Supports Python, Javascript, Golang, Java, Scala, Kotlin (including in the same project)
•  Auto-deploys and runs Lambda functions, locally or remotely

•  Auto-deploys your Lambda event sources: API Gateway, CloudWatch Events, DynamoDB
Streams, Kinesis Streams, S3
•  Creates all required infrastructure with CloudFormation

•  Simple configuration in YML
https://github.com/jorgebastida/gordon 
https://news.ycombinator.com/item?id=11821295
Gordon: “Hello World” API
$ gordon startproject helloworld
$ gordon startapp helloapp
Write hellofunc() function
$ gordon build
$ echo '{"name":"Julien"}' | gordon run helloapp.hellofunc
$ gordon apply [--stage stage_name]
$ http post $URL name=Julien
AWS Chalice "
Think of it as a serverless framework for Flask apps"

•  Released in Jul’16, still in beta
•  Just add your Python code
–  Deploy with a single call and zero config
–  The API is created automatically, the IAM policy is auto-generated
•  Run APIs locally on port 8000 (similar to Flask)
•  Fast & lightweight framework
–  100% boto3 calls (AWS SDK for Python) à fast
–  No integration with CloudFormation à no creation of event sources
https://github.com/awslabs/chalice 
https://aws.amazon.com/blogs/developer/preview-the-python-serverless-microframework-for-aws/
AWS Chalice: “Hello World” API
$ chalice new-project helloworld
Write your function in app.py
$ chalice local
$ chalice deploy
$ export URL=`chalice url`
$ http $URL
$ http put $URL/hello/julien
$ chalice logs [ --include-lambda-messages ]
AWS Chalice: PUT/GET in S3 bucket
$ chalice new-project s3test
Write your function in app.py
$ chalice local
$ http put http://localhost:8000/objects/doc.json value1=5 value2=8
$ http get http://localhost:8000/objects/doc.json
$ chalice deploy [stage_name]
$ export URL=`chalice url`
$ http put $URL/objects/doc.json value1=5 value2=8
$ http get $URL/objects/doc.json
Summing things up
Serverless

The most popular
serverless framework

Built with and for Node.js.
Python and Java: YMMV

Rich features, many event
sources

Not a web framework
Gordon

Great challenger!

Node.js, Python, Java,
Scala, Golang

Comparable to Serverless
feature-wise

Not a web framework



Chalice

AWS project, in beta

Python only

Does only one thing, but
does it great

Dead simple, zero config

Flask web framework
More Lambda frameworks
•  Kappa https://github.com/garnaat/kappa 
–  Released Dec’14 by Mitch Garnaat, author of boto and the AWS CLI (still maintained?)
–  Python only, multiple event sources
•  Apex https://github.com/apex/apex 
–  Released in Dec’15 by TJ Holowaychuk
–  Python, Javascript, Java, Golang
–  Terraform integration to manage infrastructure for event sources
•  Zappa https://github.com/Miserlou/Zappa 
–  Released in Feb’16 by Rich Jones
–  Python web applications on AWS Lambda + API Gateway
•  Docker-lambda https://github.com/lambci/docker-lambda 
–  Released in May’16 by Michael Hart
–  Run functions in Docker images that “replicate” the live Lambda environment
2 Java tools for AWS Lambda













https://java.awsblog.com/post/TxWZES6J1RSQ2Z/Testing-Lambda-functions-using-the-AWS-Toolkit-for-Eclipse 
https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-serverless-application
https://github.com/awslabs/aws-serverless-java-container 
Eclipse plug-in

•  Code, test and deploy Lambdas from Eclipse
•  Run your functions locally and remotely
•  Test with local events and Junit4 
•  Deploy standalone functions, or with the "
AWS Serverless Application Model (Dec’16)
Serverless Java Container

•  Run Java RESTful APIs as-is
•  Default implementation of the
Java servlet
HttpServletRequest "
HttpServletResponse
•  Support for Java frameworks
such as Jersey or Spark
"
"
Simplifying Deployment"
AWS Serverless Application Model (SAM)"

•  CloudFormation extension released in Nov’16 to bundle
Lambda functions, APIs & events
•  3 new CloudFormation resource types
–  AWS::Serverless::Function
–  AWS::Serverless::Api
–  AWS::Serverless::SimpleTable (DynamoDB)
•  2 new CloudFormation CLI commands
–  ‘aws cloudformation package’
–  ‘aws cloudformation deploy’
•  Integration with CodeBuild and CodePipeline for CI/CD
•  Expect SAM to be integrated in most / all frameworks
https://aws.amazon.com/fr/blogs/compute/introducing-simplified-serverless-application-deplyoment-and-management 
https://github.com/awslabs/serverless-application-model/
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Get items from a DynamoDB table.
Resources:
GetFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.get
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Environment:
Variables:
TABLE_NAME: !Ref Table
Events:
GetResource:
Type: Api
Properties:
Path: /resource/{resourceId}
Method: get
Table:
Type: AWS::Serverless::SimpleTable

Sample SAM template for:

•  Lambda function
•  HTTP GET API
•  DynamoDB table
"
"
Lambda@Edge"
preview
The AWS edge
North America
 South America
 EMEA
 APAC
POPs
Cities
 Countries
 Continents
Regional Edge Caches
Lambda@Edge
•  Lambda@Edge is an extension of AWS Lambda that allows you to run
Node.js code at AWS global edge locations.
•  Bring your own code to the edge and customize your content very
close to your users, improving the end-user experience.
•  Typical use cases
•  Customize content, based on user/device properties
•  Validate visitors: check tokens, filter bot traffic
•  Rewrite URLs: inject ads, hide file structure 
•  Run A/B testing
CloudFront Triggers for "
Lambda@Edge Functions
Lambda@Edge Service Limits
Items Lambda@Edge Lambda
Timeout 50 ms 300 seconds
Function “Power Level” 128 MB 128 MB – 1.5 GB
Function Deployment
Package Size
1MB 50MB
•  Runtime: Node.js 4.3
•  Triggered by CloudFront events
•  Access: No network connections, AWS region access, disk
access or Amazon VPC
Lambda@Edge demo: the Metal A/B test m/
•  Static website in S3, distributed to CloudFront
http://d2eb9d90qk3238.cloudfront.net
•  The index page references an image file that
doesn’t exist in the S3 bucket
<img src="http://d2eb9d90qk3238.cloudfront.net/album.jpg">

•  A Lambda function is triggered on the “Origin
request” event and replaces album.jpg with a
random file
"
"
Going further"
New Lambda videos from re:Invent 2016
AWS re:Invent 2016: What’s New with AWS Lambda (SVR202)
https://www.youtube.com/watch?v=CwxWhyGteNc 

AWS re:Invent 2016: Serverless Apps with AWS Step Functions (SVR201)
https://www.youtube.com/watch?v=75MRve4nv8s 

AWS re:Invent 2016: Real-time Data Processing Using AWS Lambda (SVR301)
https://www.youtube.com/watch?v=VFLKOy4GKXQ 

AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC402)
https://www.youtube.com/watch?v=b7UMoc1iUYw 

‪AWS re:Invent 2016: Bringing AWS Lambda to the Edge (CTD206)‬
https://www.youtube.com/watch?v=j26novaqF6M 

‪AWS re:Invent 2016: Ubiquitous Computing with Greengrass (IOT201)‬
https://www.youtube.com/watch?v=XQQjX8GTEko
The only Lambda book you need to read
Written by AWS Technical
Evangelist Danilo Poccia

Released in December 2016

https://www.amazon.com/Aws-Lambda-Action-
Event-driven-Applications/dp/1617293717/
Thank you!"
	
Julien	Simon,	Principal	Technical	Evangelist,	AWS	
julsimon@amazon.fr	
@julsimon
Ad

More Related Content

What's hot (9)

Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)
Julien SIMON
 
Building a Serverless Pipeline
Building a Serverless PipelineBuilding a Serverless Pipeline
Building a Serverless Pipeline
Julien SIMON
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 
Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)
Julien SIMON
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
Julien SIMON
 
Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)
Julien SIMON
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)
Julien SIMON
 
AWS CloudFormation (February 2016)
AWS CloudFormation (February 2016)AWS CloudFormation (February 2016)
AWS CloudFormation (February 2016)
Julien SIMON
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
Julien SIMON
 
Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)Running Open Source Platforms on AWS (November 2016)
Running Open Source Platforms on AWS (November 2016)
Julien SIMON
 
Building a Serverless Pipeline
Building a Serverless PipelineBuilding a Serverless Pipeline
Building a Serverless Pipeline
Julien SIMON
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and ToolsDeployment and Management on AWS:
 A Deep Dive on Options and Tools
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 
Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)Deep Dive: Amazon Relational Database Service (March 2017)
Deep Dive: Amazon Relational Database Service (March 2017)
Julien SIMON
 
A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)A 60-minute tour of AWS Compute (November 2016)
A 60-minute tour of AWS Compute (November 2016)
Julien SIMON
 
Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)Running Docker clusters on AWS (November 2016)
Running Docker clusters on AWS (November 2016)
Julien SIMON
 
An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)An Overview of AWS IoT (November 2016)
An Overview of AWS IoT (November 2016)
Julien SIMON
 
AWS CloudFormation (February 2016)
AWS CloudFormation (February 2016)AWS CloudFormation (February 2016)
AWS CloudFormation (February 2016)
Julien SIMON
 
Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)Devops with Amazon Web Services (January 2017)
Devops with Amazon Web Services (January 2017)
Julien SIMON
 

Viewers also liked (20)

Viadeo - Cost Driven Development
Viadeo - Cost Driven DevelopmentViadeo - Cost Driven Development
Viadeo - Cost Driven Development
Julien SIMON
 
The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)
Julien SIMON
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Julien SIMON
 
Amazon Inspector
Amazon InspectorAmazon Inspector
Amazon Inspector
Julien SIMON
 
Authentification et autorisation d'accès avec AWS IAM
Authentification et autorisation d'accès avec AWS IAMAuthentification et autorisation d'accès avec AWS IAM
Authentification et autorisation d'accès avec AWS IAM
Julien SIMON
 
Amazon AI (February 2017)
Amazon AI (February 2017)Amazon AI (February 2017)
Amazon AI (February 2017)
Julien SIMON
 
Big Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon AthenaBig Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon Athena
Julien SIMON
 
Iot og personvern 2017
Iot og personvern 2017Iot og personvern 2017
Iot og personvern 2017
Øystein Jakobsen
 
Presentación dia de andalucia pedro
Presentación dia de andalucia pedroPresentación dia de andalucia pedro
Presentación dia de andalucia pedro
Pedro Ramirez Serrano
 
Com clonar i com exportar i importar una màquina virtual
Com clonar i com exportar i importar una màquina virtualCom clonar i com exportar i importar una màquina virtual
Com clonar i com exportar i importar una màquina virtual
Edu Alias
 
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Kevin Penalva-Halpin
 
Filafat ilmu kepolisian
Filafat ilmu kepolisianFilafat ilmu kepolisian
Filafat ilmu kepolisian
rara wibowo
 
AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2) AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2)
Julien SIMON
 
IoT: it's all about Data!
IoT: it's all about Data!IoT: it's all about Data!
IoT: it's all about Data!
Julien SIMON
 
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
UNIVERSITY OF COIMBRA
 
Postmarxismo, post marxismo, post marxismo
Postmarxismo, post marxismo, post marxismoPostmarxismo, post marxismo, post marxismo
Postmarxismo, post marxismo, post marxismo
UNIVERSITY OF COIMBRA
 
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Artur Filipe dos Santos
 
презентація впм технологія емалей 2017
презентація  впм технологія емалей 2017презентація  впм технологія емалей 2017
презентація впм технологія емалей 2017
metallurg056
 
Bonnes pratiques anti-DDOS
Bonnes pratiques anti-DDOSBonnes pratiques anti-DDOS
Bonnes pratiques anti-DDOS
Julien SIMON
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)
Guy Podjarny
 
Viadeo - Cost Driven Development
Viadeo - Cost Driven DevelopmentViadeo - Cost Driven Development
Viadeo - Cost Driven Development
Julien SIMON
 
The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)The AWS DevOps combo (January 2017)
The AWS DevOps combo (January 2017)
Julien SIMON
 
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWSBonnes pratiques pour la gestion des opérations de sécurité AWS
Bonnes pratiques pour la gestion des opérations de sécurité AWS
Julien SIMON
 
Authentification et autorisation d'accès avec AWS IAM
Authentification et autorisation d'accès avec AWS IAMAuthentification et autorisation d'accès avec AWS IAM
Authentification et autorisation d'accès avec AWS IAM
Julien SIMON
 
Amazon AI (February 2017)
Amazon AI (February 2017)Amazon AI (February 2017)
Amazon AI (February 2017)
Julien SIMON
 
Big Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon AthenaBig Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon Athena
Julien SIMON
 
Presentación dia de andalucia pedro
Presentación dia de andalucia pedroPresentación dia de andalucia pedro
Presentación dia de andalucia pedro
Pedro Ramirez Serrano
 
Com clonar i com exportar i importar una màquina virtual
Com clonar i com exportar i importar una màquina virtualCom clonar i com exportar i importar una màquina virtual
Com clonar i com exportar i importar una màquina virtual
Edu Alias
 
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Labo XX Antwerp - Densification strategies for the 20th century belt (BUUR)
Kevin Penalva-Halpin
 
Filafat ilmu kepolisian
Filafat ilmu kepolisianFilafat ilmu kepolisian
Filafat ilmu kepolisian
rara wibowo
 
AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2) AWS re:Invent 2016 recap (part 2)
AWS re:Invent 2016 recap (part 2)
Julien SIMON
 
IoT: it's all about Data!
IoT: it's all about Data!IoT: it's all about Data!
IoT: it's all about Data!
Julien SIMON
 
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
Repubblicanesimo, repubblicanismo, republicanismo, républicanisme, republican...
UNIVERSITY OF COIMBRA
 
Postmarxismo, post marxismo, post marxismo
Postmarxismo, post marxismo, post marxismoPostmarxismo, post marxismo, post marxismo
Postmarxismo, post marxismo, post marxismo
UNIVERSITY OF COIMBRA
 
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Património Cultural Português - Panteões de Portugal e Edifícios da Soberania...
Artur Filipe dos Santos
 
презентація впм технологія емалей 2017
презентація  впм технологія емалей 2017презентація  впм технологія емалей 2017
презентація впм технологія емалей 2017
metallurg056
 
Bonnes pratiques anti-DDOS
Bonnes pratiques anti-DDOSBonnes pratiques anti-DDOS
Bonnes pratiques anti-DDOS
Julien SIMON
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)
Guy Podjarny
 
Ad

Similar to Building Serverless APIs (January 2017) (10)

Building serverless applications (April 2018)
Building serverless applications (April 2018)Building serverless applications (April 2018)
Building serverless applications (April 2018)
Julien SIMON
 
用Serverless技術快速開發line聊天機器人
用Serverless技術快速開發line聊天機器人用Serverless技術快速開發line聊天機器人
用Serverless技術快速開發line聊天機器人
Kevin Luo
 
Python in the Serverless Era (PyCon IL 2016)
Python in the Serverless Era (PyCon IL 2016)Python in the Serverless Era (PyCon IL 2016)
Python in the Serverless Era (PyCon IL 2016)
Benny Bauer
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDK
MooYeol Lee
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
Julien SIMON
 
Aws Lambda in Swift - NSLondon - 3rd December 2020
Aws Lambda in Swift - NSLondon - 3rd December 2020Aws Lambda in Swift - NSLondon - 3rd December 2020
Aws Lambda in Swift - NSLondon - 3rd December 2020
Andrea Scuderi
 
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS User Group - Thailand
 
AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless Recap
Daniel Zivkovic
 
muCon 2017 - 12 Factor Serverless Applications
muCon 2017 - 12 Factor Serverless ApplicationsmuCon 2017 - 12 Factor Serverless Applications
muCon 2017 - 12 Factor Serverless Applications
Chris Munns
 
Node.js Development with Apache NetBeans
Node.js Development with Apache NetBeansNode.js Development with Apache NetBeans
Node.js Development with Apache NetBeans
Ryan Cuprak
 
Building serverless applications (April 2018)
Building serverless applications (April 2018)Building serverless applications (April 2018)
Building serverless applications (April 2018)
Julien SIMON
 
用Serverless技術快速開發line聊天機器人
用Serverless技術快速開發line聊天機器人用Serverless技術快速開發line聊天機器人
用Serverless技術快速開發line聊天機器人
Kevin Luo
 
Python in the Serverless Era (PyCon IL 2016)
Python in the Serverless Era (PyCon IL 2016)Python in the Serverless Era (PyCon IL 2016)
Python in the Serverless Era (PyCon IL 2016)
Benny Bauer
 
Lambdaless and AWS CDK
Lambdaless and AWS CDKLambdaless and AWS CDK
Lambdaless and AWS CDK
MooYeol Lee
 
A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)A 60-mn tour of AWS compute (March 2016)
A 60-mn tour of AWS compute (March 2016)
Julien SIMON
 
Aws Lambda in Swift - NSLondon - 3rd December 2020
Aws Lambda in Swift - NSLondon - 3rd December 2020Aws Lambda in Swift - NSLondon - 3rd December 2020
Aws Lambda in Swift - NSLondon - 3rd December 2020
Andrea Scuderi
 
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS Community Day Bangkok 2019 - Building & Deploying AWS Lambda with Serverl...
AWS User Group - Thailand
 
AWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless RecapAWS re:Invent 2020 Serverless Recap
AWS re:Invent 2020 Serverless Recap
Daniel Zivkovic
 
muCon 2017 - 12 Factor Serverless Applications
muCon 2017 - 12 Factor Serverless ApplicationsmuCon 2017 - 12 Factor Serverless Applications
muCon 2017 - 12 Factor Serverless Applications
Chris Munns
 
Node.js Development with Apache NetBeans
Node.js Development with Apache NetBeansNode.js Development with Apache NetBeans
Node.js Development with Apache NetBeans
Ryan Cuprak
 
Ad

More from Julien SIMON (20)

deep_dive_multihead_latent_attention.pdf
deep_dive_multihead_latent_attention.pdfdeep_dive_multihead_latent_attention.pdf
deep_dive_multihead_latent_attention.pdf
Julien SIMON
 
Deep Dive: Model Distillation with DistillKit
Deep Dive: Model Distillation with DistillKitDeep Dive: Model Distillation with DistillKit
Deep Dive: Model Distillation with DistillKit
Julien SIMON
 
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and SpectrumDeep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Julien SIMON
 
Building High-Quality Domain-Specific Models with Mergekit
Building High-Quality Domain-Specific Models with MergekitBuilding High-Quality Domain-Specific Models with Mergekit
Building High-Quality Domain-Specific Models with Mergekit
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Julien Simon - Deep Dive: Compiling Deep Learning Models
Julien Simon - Deep Dive: Compiling Deep Learning ModelsJulien Simon - Deep Dive: Compiling Deep Learning Models
Julien Simon - Deep Dive: Compiling Deep Learning Models
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Julien Simon - Deep Dive - Optimizing LLM Inference
Julien Simon - Deep Dive - Optimizing LLM InferenceJulien Simon - Deep Dive - Optimizing LLM Inference
Julien Simon - Deep Dive - Optimizing LLM Inference
Julien SIMON
 
Julien Simon - Deep Dive - Accelerating Models with Better Attention Layers
Julien Simon - Deep Dive - Accelerating  Models with Better Attention LayersJulien Simon - Deep Dive - Accelerating  Models with Better Attention Layers
Julien Simon - Deep Dive - Accelerating Models with Better Attention Layers
Julien SIMON
 
Julien Simon - Deep Dive - Quantizing LLMs
Julien Simon - Deep Dive - Quantizing LLMsJulien Simon - Deep Dive - Quantizing LLMs
Julien Simon - Deep Dive - Quantizing LLMs
Julien SIMON
 
Julien Simon - Deep Dive - Model Merging
Julien Simon - Deep Dive - Model MergingJulien Simon - Deep Dive - Model Merging
Julien Simon - Deep Dive - Model Merging
Julien SIMON
 
An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
Julien SIMON
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face Transformers
Julien SIMON
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with Transformers
Julien SIMON
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)
Julien SIMON
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)
Julien SIMON
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)
Julien SIMON
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)
Julien SIMON
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
Julien SIMON
 
deep_dive_multihead_latent_attention.pdf
deep_dive_multihead_latent_attention.pdfdeep_dive_multihead_latent_attention.pdf
deep_dive_multihead_latent_attention.pdf
Julien SIMON
 
Deep Dive: Model Distillation with DistillKit
Deep Dive: Model Distillation with DistillKitDeep Dive: Model Distillation with DistillKit
Deep Dive: Model Distillation with DistillKit
Julien SIMON
 
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and SpectrumDeep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Deep Dive: Parameter-Efficient Model Adaptation with LoRA and Spectrum
Julien SIMON
 
Building High-Quality Domain-Specific Models with Mergekit
Building High-Quality Domain-Specific Models with MergekitBuilding High-Quality Domain-Specific Models with Mergekit
Building High-Quality Domain-Specific Models with Mergekit
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Julien Simon - Deep Dive: Compiling Deep Learning Models
Julien Simon - Deep Dive: Compiling Deep Learning ModelsJulien Simon - Deep Dive: Compiling Deep Learning Models
Julien Simon - Deep Dive: Compiling Deep Learning Models
Julien SIMON
 
Tailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use CasesTailoring Small Language Models for Enterprise Use Cases
Tailoring Small Language Models for Enterprise Use Cases
Julien SIMON
 
Julien Simon - Deep Dive - Optimizing LLM Inference
Julien Simon - Deep Dive - Optimizing LLM InferenceJulien Simon - Deep Dive - Optimizing LLM Inference
Julien Simon - Deep Dive - Optimizing LLM Inference
Julien SIMON
 
Julien Simon - Deep Dive - Accelerating Models with Better Attention Layers
Julien Simon - Deep Dive - Accelerating  Models with Better Attention LayersJulien Simon - Deep Dive - Accelerating  Models with Better Attention Layers
Julien Simon - Deep Dive - Accelerating Models with Better Attention Layers
Julien SIMON
 
Julien Simon - Deep Dive - Quantizing LLMs
Julien Simon - Deep Dive - Quantizing LLMsJulien Simon - Deep Dive - Quantizing LLMs
Julien Simon - Deep Dive - Quantizing LLMs
Julien SIMON
 
Julien Simon - Deep Dive - Model Merging
Julien Simon - Deep Dive - Model MergingJulien Simon - Deep Dive - Model Merging
Julien Simon - Deep Dive - Model Merging
Julien SIMON
 
An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
Julien SIMON
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face Transformers
Julien SIMON
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with Transformers
Julien SIMON
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)
Julien SIMON
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)
Julien SIMON
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)
Julien SIMON
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)
Julien SIMON
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
Julien SIMON
 

Recently uploaded (20)

Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025
BookNet Canada
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 

Building Serverless APIs (January 2017)

  • 1. ©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Building serverless APIs Julien Simon, Principal Technical Evangelist, AWS [email protected] @julsimon
  • 2. Serverless architecture" =" Managed services " +" AWS Lambda" " Reference architectures: http://www.allthingsdistributed.com/2016/06/aws-lambda-serverless-reference-architectures.html
  • 3. AWS Lambda •  Announced at re:Invent 2014 •  Deploy pure functions in Java, Python, Node.js and C# •  Just code, without the infrastructure drama •  Built-in scalability and high availability •  Integrated with many AWS services •  Pay as you go •  Combination of execution time (100ms slots) & memory used •  Starts at $0.000000208 per 100ms •  Free tier available: first 1 million requests per month are free http://aws.amazon.com/lambda AWS re:Invent 2014 | (MBL202) NEW LAUNCH: Getting Started with AWS Lambda https://www.youtube.com/watch?v=UFj27laTWQA
  • 4. What can you do with AWS Lambda? •  Grow ‘connective tissue’ in your AWS infrastructure –  Example: http://www.slideshare.net/JulienSIMON5/building-a-serverless-pipeline •  Build event-driven applications •  Build APIs together with Amazon API Gateway •  RESTful APIs •  Resources, methods •  Stages http://aws.amazon.com/apigateway
  • 6. Typical development workflow 1.  Write and deploy a Lambda function 2.  Create and deploy a REST API with API Gateway 3.  Connect the API to the Lambda function 4.  Invoke the API 5.  Test, debug and repeat ;)
  • 7. " Simplifying Development " "Code samples available at https://github.com/juliensimon/aws/tree/master/lambda_frameworks " "
  • 8. The Serverless framework " formerly known as JAWS: Just AWS Without Servers •  Announced at re:Invent 2015 by Austen Collins and Ryan Pendergast •  Supports Node.js, as well as Python and Java (with restrictions) •  Auto-deploys and runs Lambda functions, locally or remotely •  Auto-deploys your Lambda event sources: API Gateway, S3, DynamoDB, etc. •  Creates all required infrastructure with CloudFormation •  Simple configuration in YML http://github.com/serverless/serverless https://serverless.com AWS re:Invent 2015 | (DVO209) https://www.youtube.com/watch?v=D_U6luQ6I90 & https://vimeo.com/141132756
  • 9. Serverless: “Hello World” API $ serverless create Edit handler.js, serverless.yml and event.json $ serverless deploy [--stage stage_name] $ serverless invoke [--local] --function function_name $ serverless info $ http $URL
  • 10. Gordon •  Released in Oct’15 by Jorge Batista •  Supports Python, Javascript, Golang, Java, Scala, Kotlin (including in the same project) •  Auto-deploys and runs Lambda functions, locally or remotely •  Auto-deploys your Lambda event sources: API Gateway, CloudWatch Events, DynamoDB Streams, Kinesis Streams, S3 •  Creates all required infrastructure with CloudFormation •  Simple configuration in YML https://github.com/jorgebastida/gordon https://news.ycombinator.com/item?id=11821295
  • 11. Gordon: “Hello World” API $ gordon startproject helloworld $ gordon startapp helloapp Write hellofunc() function $ gordon build $ echo '{"name":"Julien"}' | gordon run helloapp.hellofunc $ gordon apply [--stage stage_name] $ http post $URL name=Julien
  • 12. AWS Chalice " Think of it as a serverless framework for Flask apps" •  Released in Jul’16, still in beta •  Just add your Python code –  Deploy with a single call and zero config –  The API is created automatically, the IAM policy is auto-generated •  Run APIs locally on port 8000 (similar to Flask) •  Fast & lightweight framework –  100% boto3 calls (AWS SDK for Python) à fast –  No integration with CloudFormation à no creation of event sources https://github.com/awslabs/chalice https://aws.amazon.com/blogs/developer/preview-the-python-serverless-microframework-for-aws/
  • 13. AWS Chalice: “Hello World” API $ chalice new-project helloworld Write your function in app.py $ chalice local $ chalice deploy $ export URL=`chalice url` $ http $URL $ http put $URL/hello/julien $ chalice logs [ --include-lambda-messages ]
  • 14. AWS Chalice: PUT/GET in S3 bucket $ chalice new-project s3test Write your function in app.py $ chalice local $ http put http://localhost:8000/objects/doc.json value1=5 value2=8 $ http get http://localhost:8000/objects/doc.json $ chalice deploy [stage_name] $ export URL=`chalice url` $ http put $URL/objects/doc.json value1=5 value2=8 $ http get $URL/objects/doc.json
  • 15. Summing things up Serverless The most popular serverless framework Built with and for Node.js. Python and Java: YMMV Rich features, many event sources Not a web framework Gordon Great challenger! Node.js, Python, Java, Scala, Golang Comparable to Serverless feature-wise Not a web framework Chalice AWS project, in beta Python only Does only one thing, but does it great Dead simple, zero config Flask web framework
  • 16. More Lambda frameworks •  Kappa https://github.com/garnaat/kappa –  Released Dec’14 by Mitch Garnaat, author of boto and the AWS CLI (still maintained?) –  Python only, multiple event sources •  Apex https://github.com/apex/apex –  Released in Dec’15 by TJ Holowaychuk –  Python, Javascript, Java, Golang –  Terraform integration to manage infrastructure for event sources •  Zappa https://github.com/Miserlou/Zappa –  Released in Feb’16 by Rich Jones –  Python web applications on AWS Lambda + API Gateway •  Docker-lambda https://github.com/lambci/docker-lambda –  Released in May’16 by Michael Hart –  Run functions in Docker images that “replicate” the live Lambda environment
  • 17. 2 Java tools for AWS Lambda https://java.awsblog.com/post/TxWZES6J1RSQ2Z/Testing-Lambda-functions-using-the-AWS-Toolkit-for-Eclipse https://aws.amazon.com/blogs/developer/aws-toolkit-for-eclipse-serverless-application https://github.com/awslabs/aws-serverless-java-container Eclipse plug-in •  Code, test and deploy Lambdas from Eclipse •  Run your functions locally and remotely •  Test with local events and Junit4 •  Deploy standalone functions, or with the " AWS Serverless Application Model (Dec’16) Serverless Java Container •  Run Java RESTful APIs as-is •  Default implementation of the Java servlet HttpServletRequest " HttpServletResponse •  Support for Java frameworks such as Jersey or Spark
  • 19. AWS Serverless Application Model (SAM)" •  CloudFormation extension released in Nov’16 to bundle Lambda functions, APIs & events •  3 new CloudFormation resource types –  AWS::Serverless::Function –  AWS::Serverless::Api –  AWS::Serverless::SimpleTable (DynamoDB) •  2 new CloudFormation CLI commands –  ‘aws cloudformation package’ –  ‘aws cloudformation deploy’ •  Integration with CodeBuild and CodePipeline for CI/CD •  Expect SAM to be integrated in most / all frameworks https://aws.amazon.com/fr/blogs/compute/introducing-simplified-serverless-application-deplyoment-and-management https://github.com/awslabs/serverless-application-model/
  • 20. AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: Get items from a DynamoDB table. Resources: GetFunction: Type: AWS::Serverless::Function Properties: Handler: index.get Runtime: nodejs4.3 Policies: AmazonDynamoDBReadOnlyAccess Environment: Variables: TABLE_NAME: !Ref Table Events: GetResource: Type: Api Properties: Path: /resource/{resourceId} Method: get Table: Type: AWS::Serverless::SimpleTable Sample SAM template for: •  Lambda function •  HTTP GET API •  DynamoDB table
  • 22. The AWS edge North America South America EMEA APAC POPs Cities Countries Continents Regional Edge Caches
  • 23. Lambda@Edge •  Lambda@Edge is an extension of AWS Lambda that allows you to run Node.js code at AWS global edge locations. •  Bring your own code to the edge and customize your content very close to your users, improving the end-user experience. •  Typical use cases •  Customize content, based on user/device properties •  Validate visitors: check tokens, filter bot traffic •  Rewrite URLs: inject ads, hide file structure •  Run A/B testing
  • 24. CloudFront Triggers for " Lambda@Edge Functions
  • 25. Lambda@Edge Service Limits Items Lambda@Edge Lambda Timeout 50 ms 300 seconds Function “Power Level” 128 MB 128 MB – 1.5 GB Function Deployment Package Size 1MB 50MB •  Runtime: Node.js 4.3 •  Triggered by CloudFront events •  Access: No network connections, AWS region access, disk access or Amazon VPC
  • 26. Lambda@Edge demo: the Metal A/B test m/ •  Static website in S3, distributed to CloudFront http://d2eb9d90qk3238.cloudfront.net •  The index page references an image file that doesn’t exist in the S3 bucket <img src="http://d2eb9d90qk3238.cloudfront.net/album.jpg"> •  A Lambda function is triggered on the “Origin request” event and replaces album.jpg with a random file
  • 28. New Lambda videos from re:Invent 2016 AWS re:Invent 2016: What’s New with AWS Lambda (SVR202) https://www.youtube.com/watch?v=CwxWhyGteNc AWS re:Invent 2016: Serverless Apps with AWS Step Functions (SVR201) https://www.youtube.com/watch?v=75MRve4nv8s AWS re:Invent 2016: Real-time Data Processing Using AWS Lambda (SVR301) https://www.youtube.com/watch?v=VFLKOy4GKXQ AWS re:Invent 2016: Serverless Architectural Patterns and Best Practices (ARC402) https://www.youtube.com/watch?v=b7UMoc1iUYw ‪AWS re:Invent 2016: Bringing AWS Lambda to the Edge (CTD206)‬ https://www.youtube.com/watch?v=j26novaqF6M ‪AWS re:Invent 2016: Ubiquitous Computing with Greengrass (IOT201)‬ https://www.youtube.com/watch?v=XQQjX8GTEko
  • 29. The only Lambda book you need to read Written by AWS Technical Evangelist Danilo Poccia Released in December 2016 https://www.amazon.com/Aws-Lambda-Action- Event-driven-Applications/dp/1617293717/