3. Pourquoi rejoindre l’Academy ?
Une opportunité unique de se
former et d'être certifié AWS en
un temps record au contact de
nos experts du cloud.
Comment puis-je participer ?
Sur sélection interne et externe
5 ceintures (débutant ou expert venez comme vous êtes)
De 1 mois à 1 an
La tête dans les nuages, les pieds dans le code :)
- Un système de temps dédié pour la formation et les
certifications
- Une immersion avec nos experts Ippon (be a part of a
cloud project)
- Progresser techniquement mais aussi humainement
Où ?
Paris, Nantes, Lyon, Bordeaux, Richmond
VA, Washington DC, New York NYC
Dates clés :
Mars / Juin : Appel à candidature
Septembre : Rentrée de la AWS Academy
7. Ippon Technologies 2018
What is Serverless
Well… It means no servers right ?
● No need to manage servers
● No need to even think about servers
● No need to provision infrastructure
● Pay only for what to use
● Deploy function not apps (FaaS)
● It’s event based/oriented
12. Ippon Technologies 2018
A Monolith in Serverless?
Data Mapper / ORM
Service Layer
Resources
Authentication & Authorization
/users /users /users/{userId}
GET POST PUT
A basic monolith architecture:
● Data access
● Business services
● REST endpoints
● Security
13. Ippon Technologies 2018
A Monolith in Serverless?
/users /users /users/{userId}
GET POST PUT
HANDLER HANDLER HANDLER
Lot of people
would do
14. Ippon Technologies 2018
A Monolith in Serverless?
Function as a service (FaaS) is a category of cloud
computing services that provides a platform allowing
customers to develop, run, and manage application
functionalities without the complexity of building and
maintaining the infrastructure typically associated with
developing and launching an app
Wikipedia
16. Ippon Technologies 2018
A Monolith in Serverless?
Data Mapper /
ORM
Service Layer
Resources
Authorization
/users /users /users/{userId}
GET POST PUT
Data Mapper /
ORM
Service Layer
Resources
Authorization
Data Mapper /
ORM
Service Layer
Resources
Authorization
Why not using a single
project but bind different
handlers?
Code
quality
Test
consistency
Productivity
19. Ippon Technologies 2018
The tip of the Iceberg
What your
customer sees
Your backend
API Gateway
Lambda
Data
Mapper /
ORM
Service
Layer
Resources
Authorizati
on
/users
GET
20. Ippon Technologies 2018
Swagger forever
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-
03-
31/functions/${GetCurrentUserFunction.Outputs.Arn}:prod/invocations
passthroughBehavior: "when_no_match"
httpMethod: "POST"
responses:
default:
statusCode: "200"
responseParameters:
method.response.header.Access-Control-Allow-Origin: "'*'"
type: "aws_proxy"
security:
- sigv4: []
● Define your contract
● Bind your API to your functions
● Parameters definition & validation
● Security
● Build your documentation
27. Ippon Technologies 2018
What you should remember
● Initialization is free of charge
● Context initialization is free of charge (< 10s)
● ColdStart is not part of the timeout period
● Optimize your function’s dependencies and
package size
● Stay away from VPC as much as possible (> 10s)
28. Ippon Technologies 2018
Impact on your project
Careful on your architecture
impact:
- Think single execution
- Close your resources !!
- Full Stateless
29. Ippon Technologies 2018
Package your code
build:
$(VIRTUALENV) "$(VENV_DIR)"
mkdir -p "$(VENV_DIR)/lib64/python$(PY_VERSION)/site-
packages"
touch "$(VENV_DIR)/lib64/python$(PY_VERSION)/site-
packages/file"
"$(VENV_DIR)/bin/pip$(PY_VERSION)"
--isolated
--disable-pip-version-check
install --no-binary :all: -Ur requirements.txt
find "$(VENV_DIR)" -name "*.pyc" -exec rm -f {} ;
bundle.local:
zip -r -9 "$(ZIP_FILE)" example
cd "$(VENV_DIR)/lib/python$(PY_VERSION)/site-packages"
&& zip -r9 "$(ZIP_FILE)" *
cd "$(VENV_DIR)/lib64/python$(PY_VERSION)/site-packages"
&& zip -r9 "$(ZIP_FILE)" *
bundle:
docker run -v $$PWD:/var/task -it lambci/lambda:build-
python3.6 /bin/bash -c 'make clean build bundle.local'
What you need to know:
● Some languages have specific
dependencies depending on your
system
● All dependencies must be included
into your bundle
● Bundle must be compressed and
deployed on an S3 bucket
● Bundle name must be unique in
order to deploy changes - Use
Hash
31. Ippon Technologies 2018
Tough decision ahead
Careful, limits exists on AWS
● AWS API rate limit: use DependsOn
● Number of created resources per
stack: use Nested Stack
Think about:
● Project architecture
● Resources binding
● Deployment strategy
● Compliance with new AWS services
32. Ippon Technologies 2018
Who said continuous deployment
Canary
release
Functions
versioning
Natural
BlueGreen
35. Ippon Technologies 2018
Trace
● Get information on your
ColdStart
● Get information on function
execution time
● Can be used to calculate
financial impact from a
version to another