SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Twelve-factor serverless applications
Chris Munns
Principal developer advocate–Serverless
AWS
M A D 3 0 3
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
About me
Chris Munns - munns@amazon.com, @chrismunns
• Principal Developer Advocate – Serverless
• New Yorker
Previously:
• AWS Business Development Manager, DevOps, July 2015–Feb. 2017
• AWS Solutions Architect, Nov. 2011–Dec. 2014
• Formerly on operations teams @Etsy and @Meetup
• Little time at a hedge fund, Xerox, and a few other startups
• Rochester Institute of Technology: Applied Networking and Systems Administration
’05
• Internet infrastructure geek
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
The “twelve-factor” model and serverless applications
• Twelve-factor applications were popularized by developers building large scale applications
on platforms such as Heroku
• In recent years the twelve-factor guidelines have been considered best practices for both
developers and operations engineers regardless of the application’s use-case and at nearly
any scale
• Many of the twelve-factor guidelines align directly with best practices for serverless
applications and are improved upon given the nature of AWS Lambda, Amazon API
Gateway, and other AWS services
• However, some of the twelve-factor guidelines don’t directly align with serverless
applications or are interpreted very differently
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
From12factor.net
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Serverless applications
Event source Function Services
Changes in
data state
Requests to
endpoints
Changes in
resource state
Node.js
Python
Java
C#
Go
Ruby
Runtime API
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Common Lambda use cases
Web apps Backends Data
processing
Chatbots Amazon Alexa IT automation
• Static
websites
• Complex
web apps
• Packages
for Flask
and
Express
• Apps and
services
• Mobile
• IoT
• Real-time
• MapReduce
• Batch
• Powering
chatbot logic
• Powering
voice-
enabled apps
• Alexa Skills
Kit
• Policy engines
• Extending AWS
services
• Infrastructure
management
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
The twelve factors
Let’s explore how the twelve factors apply to a serverless application
1. Code base
2. Dependencies
3. Config
4. Backing services
5. Build, release, run
6. Process
7. Port binding
8. Concurrency
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
1. Code base
12factor.net: “One code base tracked in revision control, many deploys”
Serverless apps: All code should be stored in revision control (a development
best practice). The same repository should be used for all environments deployed
to. The bounds of an “application” differ in serverless terms:
• If events are shared (i.e., a common API Gateway), Lambda function code
for those events should be put in the same repository
• Otherwise, break “services” along event source into their own repositories
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
2. Dependencies
12factor.net: “Explicitly declare and isolate dependencies”
Serverless apps: Code that needs to be used by multiple functions should be
packaged into its own library. Include those packages inside of your deployment
package or into a Lambda layer.
Node.js, Python, Ruby
• .zip file consisting of
your code and any
dependencies
• Use npm/pip to install
libraries
• All dependencies must
be at root level
Java
• Either .zip file with all
code/dependencies, or
standalone .jar
• Use Maven/Eclipse
integrated development
environment (IDE) plugins
• Compiled class and
resource files at root
level, required jars in /lib
directory
C# (.NET Core)
• Either .zip file with all
code/dependencies or a
standalone .dll
• Use NuGet/Visual
Studio plugins
• All assemblies (.dll) at
root level
Go
• .zip file consisting of
your Go binary and any
dependencies
• Use “go get” to install
dependencies
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Lambda layers
Lets functions easily share code: upload layer once,
reference within any function
Layer can be anything: dependencies, training data,
configuration files, etc.
Promote separation of responsibilities; lets
developers iterate faster on writing business logic
Built in support for secure sharing by ecosystem
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Using Lambda layers
• Put common components in a .zip file and upload it
as a Lambda layer
• Layers are immutable and can be versioned to
manage updates
• When a version is deleted or permissions to use it are
revoked, functions that used it previously continue to
work, but you won’t be able to create new ones
• You can reference up to five layers, one of which can
optionally be a custom runtime
Lambda
layers
arn:aws:lambda:region:accountId:layer:shared-lib :1
Lambda
layers
arn:aws:lambda:region:accountId:layer:shared-lib:2
Lambda
layers
arn:aws:lambda:region:accountId:layer:shared-lib:3
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
3. Config
12factor.net: “Store config in the environment”
Serverless apps: Many ways to do this in serverless applications:
• Lambda environment variables:
• Key-value pairs available via standard environment variable APIs such as process.env for
Node.js or os.environ for Python
• Support AWS Key Management Service (AWS KMS) encryption
• API Gateway stages:
• Key-value pairs available for configuring API Gateway functionality or to pass on to HTTP
endpoints as Uniform Resource Identifier (URI) parameters or configuration parameters
to a Lambda invocation
• AWS Systems Manager parameter store:
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Systems Manager parameter store
Centralized store to manage your
configuration data:
• Supports hierarchies
• Plaintext or encrypted with AWS KMS
• Can send notifications of changes to Amazon Simple
Notification Service (Amazon SNS)/Lambda
• Can be secured with AWS Identity and Access
Management (IAM)
• Calls recorded in AWS CloudTrail
• Can be tagged
• Integrated with AWS Secrets Manager
• Available via API/SDK
Useful for: centralized environment
variables, secrets control, feature flags
from __future__ import print_function
import json, boto3
ssm = boto3.client('ssm', 'us-east-1')
def get_parameters():
response = ssm.get_parameters(
Names=['LambdaSecureString'],WithDe
cryption=True
)
for parameter in
response['Parameters']:
return parameter['Value']
def lambda_handler(event, context):
value = get_parameters()
print("value1 = " + value)
return value # Echo back the first key
value
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
4. Backing services
12factor.net: “Treat backing services as attached resources”
Serverless apps: No differences. Resources that Lambda functions connect to,
such as databases, should have their endpoints and access credentials made
available via config resources or IAM policies.
👍
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
5. Build, release, run
12factor.net: “Strictly separate build and run stages”
Serverless apps: No differences. Development best practices, such as continuous
integration and continuous delivery, should be followed.
• Use AWS CodeBuild and AWS CodePipeline to support this:
CodePipelineCodeBuild
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
buildspec.yml example
version: 0.1
environment_variables:
plaintext:
"INPUT_FILE": "saml.yaml”
"S3_BUCKET": ""
phases:
install:
commands:
- npm install
pre_build:
commands:
- eslint *.js
build:
commands:
- npm test
post_build:
commands:
- aws cloudformation package --template $INPUT_FILE --
s3-bucket $S3_BUCKET --output-template post-saml.yaml
artifacts:
type: zip
files:
- post-saml.yaml
- beta.json
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
buildspec.yml example
• Variables to be used by phases of build
• Examples for what you can do in the
phases of a build:
• You can install packages or run
commands to prepare your
environment in ”install”
• Run syntax checking, commands
in “pre_build”
• Execute your build tool/command
in “build”
• Test your app further or ship a
container image to a repository in
post_build
• Create and store an artifact in Amazon
Simple Storage Service (Amazon S3)
version: 0.1
environment_variables:
plaintext:
"INPUT_FILE": "saml.yaml”
"S3_BUCKET": ""
phases:
install:
commands:
- npm install
pre_build:
commands:
- eslint *.js
build:
commands:
- npm test
post_build:
commands:
- aws cloudformation package --template $INPUT_FILE --
s3-bucket $S3_BUCKET --output-template post-saml.yaml
artifacts:
type: zip
files:
- post-saml.yaml
- beta.json
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
An example minimal developer’s pipeline:
MyBranch-Source
Source
CodeCommit
Build
test-build-source
CodeBuild
This pipeline:
• Three stages
• Builds code artifact
• One development environment
• Uses AWS Serverless Application Model
(AWS SAM)/AWS CloudFormation to
deploy artifact and other AWS resources
• Has Lambda custom actions for running my
own testing functions
MyDev-Deploy
create-changeset
AWS CloudFormation
execute-changeset
AWS CloudFormation
Run-stubs
Lambda
MyApplication
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
An example minimal production pipeline:
This pipeline:
• Five stages
• Builds code artifact
• Three deployed to “environments”
• Uses AWS SAM/AWS CloudFormation to
deploy artifact and other AWS resources
• Has Lambda custom actions for running my
own testing functions
• Integrates with a third-party service
• Has a manual approval before deploying to
production
Source
Source
CodeCommit
MyApplication
Build
test-build-source
CodeBuild
Deploy testing
create-changeset
AWS CloudFormation
execute-changeset
AWS CloudFormation
Run-stubs
Lambda
Deploy staging
create-changeset
AWS CloudFormation
execute-changeset
AWS CloudFormation
Run-API-test
Runscope
QA-Sign-off
Manual approval
Review
Deploy prod
create-changeset
AWS CloudFormation
execute-changeset
AWS CloudFormation
Post-deploy-slack
Lambda
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
6. Process
12factor.net: “Execute the app as one or more stateless processes”
Serverless apps: This is inherent in how Lambda is designed already:
• Lambda functions should be treated as stateless, despite the potential to store
some state in-between execution environment reuse
• There is no promise of execution environment reuse between function
invocations
• Data that needs to be kept should be stored off Lambda in a stateful service
such as a database or cache
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
7. Port binding
12factor.net: “Export services via port binding”
Serverless apps: In Lambda/serverless applications, this factor doesn’t apply the
same due to a difference in how Lambda functions are accessed:
• Instead of a “port,” Lambda functions are invoked via one or more triggering
services or AWS APIs for Lambda
• When it comes to Lambda functions, there are three models for how they can
be invoked: synchronously, asynchronously, and poll-based
• Instead of having one function support multiple invocation sources, create
independent functions
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Lambda API
1. Lambda directly invoked
via invoke API
SDK clients
Lambda
function
API provided by the Lambda service
Used by all other services that invoke Lambda
across all models
Supports sync and async
Can pass any event payload structure you want
Client included in every SDK
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Lambda execution model
Synchronous (push)
Amazon
API Gateway
Lambda
function
/order
Asynchronous (event)
Amazon
SNS
Lambda function
Amazon
S3
reqs
Poll-based
Amazon
DynamoDB
Amazon
Kinesis
changes
Lambda service
Lambda
function
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
8. Concurrency
12factor.net: “Scale out via the process model”
Serverless apps: Doesn’t apply as Lambda functions will automatically scale based
on load. You can fork threads inside of your function execution, but there are
practical limits due to the memory and CPU/network constraints of your functions
based on how you configure them.
👍
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Tweak your function’s computer power
Lambda exposes only a memory control, with the percentage of CPU core and
network capacity allocated to a function proportionally.
Is your code CPU-, network-, or memory-bound? If so, it could be cheaper to
choose more memory.
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Smart resource allocation
Match resource allocation (up to 3 GB!) to logic
Stats for Lambda function that calculates 1,000 times all prime numbers <=
1,000,000
128 MB 11.722965 sec $0.024628
256 MB 6.678945 sec $0.028035
512 MB 3.194954 sec $0.026830
1024 MB 1.465984 sec $0.024638
Green == Best Red == Worst
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
Smart resource allocation
Match resource allocation (up to 3 GB!) to logic
Stats for Lambda function that calculates 1,000 times all prime numbers <=
1,000,000
128 MB 11.722965 sec $0.024628
256 MB 6.678945 sec $0.028035
512 MB 3.194954 sec $0.026830
1024 MB 1.465984 sec $0.024638
Green == Best Red == Worst
-10.25698 sec +$0.00001
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
9. Disposability
12factor.net: “Maximize robustness with fast startup and graceful shutdown”
Serverless apps: Shutdown doesn’t apply as Lambda functions and their
invocation are tied directly to incoming events. Speed at startup does matter
though and is a factor of deployment package size + language used + virtual
private cloud (or not) + pre-handler code calls.
👍
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS X-Ray
Profile and troubleshoot serverless
applications:
• Lambda instruments incoming
requests for all supported languages
and can capture calls made in code
• API Gateway inserts a tracing header
into HTTP calls as well as reports data
back to X-Ray itself
var AWSXRay = require(‘aws-xray-sdk-core‘);
var AWS = AWSXRay.captureAWS(require(‘aws-
sdk’));
S3Client = AWS.S3();
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
X-Ray trace example
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
10. Dev/prod parity
12factor.net: “Keep development, staging, and production as similar as possible”
Serverless apps: This can be made incredibly easy with serverless applications by:
• Making use of environment/stage variables or parameter store for
configuration information, backend resources, etc.
• Using AWS SAM to deploy your application
• Can pass environment/stage variables via parameters, mappings, and
imports
• Having a continuous integration and continuous delivery process and tooling
that supports multiple environments or accounts
Meet
AWS
SAM!
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SAM
AWS CloudFormation extension optimized for
serverless
Special serverless resource types: functions, APIs,
tables, layers, and applications
Supports anything AWS CloudFormation supports
Open specification (Apache 2.0)
https://aws.amazon.com/serverless/sam
AWS SAM template
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources:
GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs6.10
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
ListTable:
Type: AWS::Serverless::SimpleTable
AWS SAM template
Tells AWS CloudFormation this is an AWS
SAM template that it needs to
“transform.”
Creates a Lambda function with the
referenced managed IAM policy, runtime,
code at the referenced .zip location, and
handler as defined. Also creates an
Amazon API Gateway and takes care of all
mapping/permissions necessary.
Creates a DynamoDB table with five
read-and-write units.
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources:
GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs6.10
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
ListTable:
Type: AWS::Serverless::SimpleTable
https://github.com/awslabs/aws-serverless-samfarm/blob/master/api/saml.yaml
This
becomes this→
AWS SAM template
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
AWS SAM Command Line Interface (AWS SAM CLI)
CLI tool for local development, debugging, testing, deploying, and
monitoring of serverless applications
Supports API Gateway “proxy-style” and Lambda service API testing
Response object and function logs available on your local machine
Uses open-source docker-lambda images to mimic Lambda’s
execution environment such as timeout, memory limits, and
runtimes
Can tail production logs from CloudWatch logs
Can help you build in native dependencies
https://aws.amazon.com/serverless/sam
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
11. Logs
12factor.net: “Treat logs as event streams”
Serverless apps: Logging (as well as metric collection) are considered a “universal
right” in Lambda:
• Console output automatically collected and sent to CloudWatch Logs
• Logs can be turned into metrics
• Logs can be sent to Amazon S3 or Amazon Elasticsearch Service easily for
further inspection and trending
• Metrics for Lambda and API Gateway for several key stats are automatically
collected and sent to CloudWatch
• You can easily send more using the CloudWatch SDK
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
12. Admin processes
12factor.net: “Run admin/management tasks as one-off processes”
Serverless apps: Doesn’t apply to Lambda because you already limit your
functions based on use case. True administrative tasks would occur via their own
Lambda functions or via tools such as Amazon Elastic Compute Cloud Run
Command.
👍
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
The twelve factors and serverless applications
As we’ve seen, twelve-factor application design can still be applied to serverless
applications taking into account some small differences!
= Works similarly = Not relevant
1. Code base 5. Build, release, run 9. Disposability
2. Dependencies 6. Process 10. Dev/prod parity
3. Config 7. Port binding 11. Logs
4. Backing services 8. Concurrency 12. Admin processes
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
FIN, ACK (in closing)
As we’ve reviewed the twelve-factor methodology for applications, we’ve
seen which factors do and do not apply the same for serverless applications:
• Thinking about code reusability and how to scope your functions to the
smallest size necessary provides many benefits
• Factors related to underlying process management, network ports,
concurrency, and admin processes are largely not an issue in serverless
applications due to Lambda’s product design and features
• Best practices for serverless align closely with twelve-factor guidance
already, so you might be really close to meeting the “twelve-factor” bar
already!
aws.amazon.com/serverless/sam
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
aws.amazon.com/serverless
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thank you!
S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Chris Munns
munns@amazon.com
@chrismunns

Mais conteúdo relacionado

Mais procurados

How to speed up and scale your innovation efforts - MAD203 - Chicago AWS Summit
How to speed up and scale your innovation efforts - MAD203 - Chicago AWS SummitHow to speed up and scale your innovation efforts - MAD203 - Chicago AWS Summit
How to speed up and scale your innovation efforts - MAD203 - Chicago AWS SummitAmazon Web Services
 
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...Amazon Web Services
 
利用微服務加速創新的步伐
利用微服務加速創新的步伐利用微服務加速創新的步伐
利用微服務加速創新的步伐Amazon Web Services
 
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS SummitIntroducing Open Distro for Elasticsearch - ADB201 - Chicago AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS SummitAmazon Web Services
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAmazon Web Services
 
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitAmazon Web Services
 
Twelve-Factor serverless applications - MAD311 - Chicago AWS Summit
Twelve-Factor serverless applications - MAD311 - Chicago AWS SummitTwelve-Factor serverless applications - MAD311 - Chicago AWS Summit
Twelve-Factor serverless applications - MAD311 - Chicago AWS SummitAmazon Web Services
 
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...Amazon Web Services
 
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAmazon Web Services
 
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...Amazon Web Services
 
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...Amazon Web Services
 
Carry security with you to the cloud - DEM14-SR - New York AWS Summit
Carry security with you to the cloud - DEM14-SR - New York AWS SummitCarry security with you to the cloud - DEM14-SR - New York AWS Summit
Carry security with you to the cloud - DEM14-SR - New York AWS SummitAmazon Web Services
 
Introduction to AWS App Mesh - MAD301 - Anaheim AWS Summit
Introduction to AWS App Mesh - MAD301 - Anaheim AWS SummitIntroduction to AWS App Mesh - MAD301 - Anaheim AWS Summit
Introduction to AWS App Mesh - MAD301 - Anaheim AWS SummitAmazon Web Services
 
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS Summit
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS SummitOptimize data lakes with Amazon S3 - STG302 - Santa Clara AWS Summit
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS SummitAmazon Web Services
 
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...Amazon Web Services
 
如何成功的完成混合雲遷移專案
如何成功的完成混合雲遷移專案如何成功的完成混合雲遷移專案
如何成功的完成混合雲遷移專案Amazon Web Services
 
利用 Fargate - 無伺服器的容器環境建置高可用的系統
利用 Fargate - 無伺服器的容器環境建置高可用的系統利用 Fargate - 無伺服器的容器環境建置高可用的系統
利用 Fargate - 無伺服器的容器環境建置高可用的系統Amazon Web Services
 
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...Amazon Web Services
 
Twelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS SummitTwelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS SummitAmazon Web Services
 
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS SummitIntroducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS SummitAmazon Web Services
 

Mais procurados (20)

How to speed up and scale your innovation efforts - MAD203 - Chicago AWS Summit
How to speed up and scale your innovation efforts - MAD203 - Chicago AWS SummitHow to speed up and scale your innovation efforts - MAD203 - Chicago AWS Summit
How to speed up and scale your innovation efforts - MAD203 - Chicago AWS Summit
 
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...
A tale of two customers - Simplified data protection with Veeam, N2WS & AWS -...
 
利用微服務加速創新的步伐
利用微服務加速創新的步伐利用微服務加速創新的步伐
利用微服務加速創新的步伐
 
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS SummitIntroducing Open Distro for Elasticsearch - ADB201 - Chicago AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Chicago AWS Summit
 
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 BarcelonaAWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
AWS App Mesh (Service Mesh Magic)- AWS Container Day 2019 Barcelona
 
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS SummitBuilding Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
Building Serverless Enterprise Applications - SRV315 - Anaheim AWS Summit
 
Twelve-Factor serverless applications - MAD311 - Chicago AWS Summit
Twelve-Factor serverless applications - MAD311 - Chicago AWS SummitTwelve-Factor serverless applications - MAD311 - Chicago AWS Summit
Twelve-Factor serverless applications - MAD311 - Chicago AWS Summit
 
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...
Building Enterprise Solutions with Blockchain and Ledger Technology - SVC202 ...
 
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS SummitAWS networking fundamentals - SVC303 - Santa Clara AWS Summit
AWS networking fundamentals - SVC303 - Santa Clara AWS Summit
 
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...
Well-architected Amazon WorkSpaces: Enterprise deployment at scale - SVC304 -...
 
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...
Amazon EC2 instances: Customizable cloud computing across workloads - DEM20-S...
 
Carry security with you to the cloud - DEM14-SR - New York AWS Summit
Carry security with you to the cloud - DEM14-SR - New York AWS SummitCarry security with you to the cloud - DEM14-SR - New York AWS Summit
Carry security with you to the cloud - DEM14-SR - New York AWS Summit
 
Introduction to AWS App Mesh - MAD301 - Anaheim AWS Summit
Introduction to AWS App Mesh - MAD301 - Anaheim AWS SummitIntroduction to AWS App Mesh - MAD301 - Anaheim AWS Summit
Introduction to AWS App Mesh - MAD301 - Anaheim AWS Summit
 
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS Summit
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS SummitOptimize data lakes with Amazon S3 - STG302 - Santa Clara AWS Summit
Optimize data lakes with Amazon S3 - STG302 - Santa Clara AWS Summit
 
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...
Gain visibility & real-time actionable security alerts with VPC Flow Logs & A...
 
如何成功的完成混合雲遷移專案
如何成功的完成混合雲遷移專案如何成功的完成混合雲遷移專案
如何成功的完成混合雲遷移專案
 
利用 Fargate - 無伺服器的容器環境建置高可用的系統
利用 Fargate - 無伺服器的容器環境建置高可用的系統利用 Fargate - 無伺服器的容器環境建置高可用的系統
利用 Fargate - 無伺服器的容器環境建置高可用的系統
 
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...
Introduction to the AWS Well-Architected Framework and AWS WA Tool - SVC214-R...
 
Twelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS SummitTwelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
Twelve-factor serverless applications - MAD302 - Santa Clara AWS Summit
 
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS SummitIntroducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS Summit
Introducing Open Distro for Elasticsearch - ADB201 - Atlanta AWS Summit
 

Semelhante a Twelve-Factor Serverless Applications - MAD303 - Anaheim AWS Summit

Twelve-Factor serverless applications - MAD307 - New York AWS Summit
Twelve-Factor serverless applications - MAD307 - New York AWS SummitTwelve-Factor serverless applications - MAD307 - New York AWS Summit
Twelve-Factor serverless applications - MAD307 - New York AWS SummitAmazon Web Services
 
Twelve-Factor Serverless Applications
Twelve-Factor Serverless ApplicationsTwelve-Factor Serverless Applications
Twelve-Factor Serverless ApplicationsAmazon Web Services
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019AWS Summits
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Amazon Web Services
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Amazon Web Services
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019AWS Summits
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsAmazon Web Services
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Amazon Web Services
 
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...Amazon Web Services
 
JFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessJFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessMarcia Villalba
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWSBoaz Ziniman
 
All the Ops you need to know to Dev Serverless
All the Ops you need to know to Dev ServerlessAll the Ops you need to know to Dev Serverless
All the Ops you need to know to Dev ServerlessChris Munns
 
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Amazon Web Services
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...Amazon Web Services
 
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...Amazon Web Services
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsCobus Bernard
 
CICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfCICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfAmazon Web Services
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP MunichBoaz Ziniman
 
Building APIs with Amazon API Gateway
Building APIs with Amazon API GatewayBuilding APIs with Amazon API Gateway
Building APIs with Amazon API GatewayAmazon Web Services
 

Semelhante a Twelve-Factor Serverless Applications - MAD303 - Anaheim AWS Summit (20)

Twelve-Factor serverless applications - MAD307 - New York AWS Summit
Twelve-Factor serverless applications - MAD307 - New York AWS SummitTwelve-Factor serverless applications - MAD307 - New York AWS Summit
Twelve-Factor serverless applications - MAD307 - New York AWS Summit
 
Twelve-Factor Serverless Applications
Twelve-Factor Serverless ApplicationsTwelve-Factor Serverless Applications
Twelve-Factor Serverless Applications
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
 
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
 
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
Building a fully serverless application on AWS | AWS Summit Tel Aviv 2019
 
Introduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless ApplicationsIntroduction to AWS Lambda and Serverless Applications
Introduction to AWS Lambda and Serverless Applications
 
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
Intro to AWS Lambda and Serverless Applications: re:Invent 2018 Recap at the ...
 
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
Favorire l'innovazione passando da applicazioni monolitiche ad architetture m...
 
JFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverlessJFokus 2020 - How to migrate an application to serverless
JFokus 2020 - How to migrate an application to serverless
 
Modern Applications Development on AWS
Modern Applications Development on AWSModern Applications Development on AWS
Modern Applications Development on AWS
 
All the Ops you need to know to Dev Serverless
All the Ops you need to know to Dev ServerlessAll the Ops you need to know to Dev Serverless
All the Ops you need to know to Dev Serverless
 
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...
 
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
The Future of Enterprise Applications is Serverless (ENT314-R1) - AWS re:Inve...
 
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...
Serverless Application Debugging and Delivery Best Practices (DEV307-R1) - AW...
 
Serverless Functions Deep Dive
Serverless Functions Deep DiveServerless Functions Deep Dive
Serverless Functions Deep Dive
 
AWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applicationsAWS DevDay Cologne - CI/CD for modern applications
AWS DevDay Cologne - CI/CD for modern applications
 
CICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdfCICDforModernApplications-Oslo.pdf
CICDforModernApplications-Oslo.pdf
 
Introduction to Serverless Computing - OOP Munich
 Introduction to Serverless Computing - OOP Munich Introduction to Serverless Computing - OOP Munich
Introduction to Serverless Computing - OOP Munich
 
Building APIs with Amazon API Gateway
Building APIs with Amazon API GatewayBuilding APIs with Amazon API Gateway
Building APIs with Amazon API Gateway
 

Mais de Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareAmazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAmazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWSAmazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckAmazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without serversAmazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceAmazon Web Services
 

Mais de Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

Twelve-Factor Serverless Applications - MAD303 - Anaheim AWS Summit

  • 1. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Twelve-factor serverless applications Chris Munns Principal developer advocate–Serverless AWS M A D 3 0 3
  • 2. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T About me Chris Munns - munns@amazon.com, @chrismunns • Principal Developer Advocate – Serverless • New Yorker Previously: • AWS Business Development Manager, DevOps, July 2015–Feb. 2017 • AWS Solutions Architect, Nov. 2011–Dec. 2014 • Formerly on operations teams @Etsy and @Meetup • Little time at a hedge fund, Xerox, and a few other startups • Rochester Institute of Technology: Applied Networking and Systems Administration ’05 • Internet infrastructure geek
  • 3. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 4. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T The “twelve-factor” model and serverless applications • Twelve-factor applications were popularized by developers building large scale applications on platforms such as Heroku • In recent years the twelve-factor guidelines have been considered best practices for both developers and operations engineers regardless of the application’s use-case and at nearly any scale • Many of the twelve-factor guidelines align directly with best practices for serverless applications and are improved upon given the nature of AWS Lambda, Amazon API Gateway, and other AWS services • However, some of the twelve-factor guidelines don’t directly align with serverless applications or are interpreted very differently
  • 5. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 6. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 7. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 8. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 9. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 10. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 11. From12factor.net © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Copyright © 2012 Adam Wiggins.
  • 12. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Serverless applications Event source Function Services Changes in data state Requests to endpoints Changes in resource state Node.js Python Java C# Go Ruby Runtime API
  • 13. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Common Lambda use cases Web apps Backends Data processing Chatbots Amazon Alexa IT automation • Static websites • Complex web apps • Packages for Flask and Express • Apps and services • Mobile • IoT • Real-time • MapReduce • Batch • Powering chatbot logic • Powering voice- enabled apps • Alexa Skills Kit • Policy engines • Extending AWS services • Infrastructure management
  • 14. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T The twelve factors Let’s explore how the twelve factors apply to a serverless application 1. Code base 2. Dependencies 3. Config 4. Backing services 5. Build, release, run 6. Process 7. Port binding 8. Concurrency 9. Disposability 10. Dev/prod parity 11. Logs 12. Admin processes
  • 15. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 1. Code base 12factor.net: “One code base tracked in revision control, many deploys” Serverless apps: All code should be stored in revision control (a development best practice). The same repository should be used for all environments deployed to. The bounds of an “application” differ in serverless terms: • If events are shared (i.e., a common API Gateway), Lambda function code for those events should be put in the same repository • Otherwise, break “services” along event source into their own repositories
  • 16. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 2. Dependencies 12factor.net: “Explicitly declare and isolate dependencies” Serverless apps: Code that needs to be used by multiple functions should be packaged into its own library. Include those packages inside of your deployment package or into a Lambda layer. Node.js, Python, Ruby • .zip file consisting of your code and any dependencies • Use npm/pip to install libraries • All dependencies must be at root level Java • Either .zip file with all code/dependencies, or standalone .jar • Use Maven/Eclipse integrated development environment (IDE) plugins • Compiled class and resource files at root level, required jars in /lib directory C# (.NET Core) • Either .zip file with all code/dependencies or a standalone .dll • Use NuGet/Visual Studio plugins • All assemblies (.dll) at root level Go • .zip file consisting of your Go binary and any dependencies • Use “go get” to install dependencies
  • 17. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Lambda layers Lets functions easily share code: upload layer once, reference within any function Layer can be anything: dependencies, training data, configuration files, etc. Promote separation of responsibilities; lets developers iterate faster on writing business logic Built in support for secure sharing by ecosystem
  • 18. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Using Lambda layers • Put common components in a .zip file and upload it as a Lambda layer • Layers are immutable and can be versioned to manage updates • When a version is deleted or permissions to use it are revoked, functions that used it previously continue to work, but you won’t be able to create new ones • You can reference up to five layers, one of which can optionally be a custom runtime Lambda layers arn:aws:lambda:region:accountId:layer:shared-lib :1 Lambda layers arn:aws:lambda:region:accountId:layer:shared-lib:2 Lambda layers arn:aws:lambda:region:accountId:layer:shared-lib:3
  • 19. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 3. Config 12factor.net: “Store config in the environment” Serverless apps: Many ways to do this in serverless applications: • Lambda environment variables: • Key-value pairs available via standard environment variable APIs such as process.env for Node.js or os.environ for Python • Support AWS Key Management Service (AWS KMS) encryption • API Gateway stages: • Key-value pairs available for configuring API Gateway functionality or to pass on to HTTP endpoints as Uniform Resource Identifier (URI) parameters or configuration parameters to a Lambda invocation • AWS Systems Manager parameter store:
  • 20. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Systems Manager parameter store Centralized store to manage your configuration data: • Supports hierarchies • Plaintext or encrypted with AWS KMS • Can send notifications of changes to Amazon Simple Notification Service (Amazon SNS)/Lambda • Can be secured with AWS Identity and Access Management (IAM) • Calls recorded in AWS CloudTrail • Can be tagged • Integrated with AWS Secrets Manager • Available via API/SDK Useful for: centralized environment variables, secrets control, feature flags from __future__ import print_function import json, boto3 ssm = boto3.client('ssm', 'us-east-1') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDe cryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value
  • 21. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 4. Backing services 12factor.net: “Treat backing services as attached resources” Serverless apps: No differences. Resources that Lambda functions connect to, such as databases, should have their endpoints and access credentials made available via config resources or IAM policies. 👍
  • 22. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 5. Build, release, run 12factor.net: “Strictly separate build and run stages” Serverless apps: No differences. Development best practices, such as continuous integration and continuous delivery, should be followed. • Use AWS CodeBuild and AWS CodePipeline to support this: CodePipelineCodeBuild
  • 23. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T buildspec.yml example version: 0.1 environment_variables: plaintext: "INPUT_FILE": "saml.yaml” "S3_BUCKET": "" phases: install: commands: - npm install pre_build: commands: - eslint *.js build: commands: - npm test post_build: commands: - aws cloudformation package --template $INPUT_FILE -- s3-bucket $S3_BUCKET --output-template post-saml.yaml artifacts: type: zip files: - post-saml.yaml - beta.json
  • 24. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T buildspec.yml example • Variables to be used by phases of build • Examples for what you can do in the phases of a build: • You can install packages or run commands to prepare your environment in ”install” • Run syntax checking, commands in “pre_build” • Execute your build tool/command in “build” • Test your app further or ship a container image to a repository in post_build • Create and store an artifact in Amazon Simple Storage Service (Amazon S3) version: 0.1 environment_variables: plaintext: "INPUT_FILE": "saml.yaml” "S3_BUCKET": "" phases: install: commands: - npm install pre_build: commands: - eslint *.js build: commands: - npm test post_build: commands: - aws cloudformation package --template $INPUT_FILE -- s3-bucket $S3_BUCKET --output-template post-saml.yaml artifacts: type: zip files: - post-saml.yaml - beta.json
  • 25. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T An example minimal developer’s pipeline: MyBranch-Source Source CodeCommit Build test-build-source CodeBuild This pipeline: • Three stages • Builds code artifact • One development environment • Uses AWS Serverless Application Model (AWS SAM)/AWS CloudFormation to deploy artifact and other AWS resources • Has Lambda custom actions for running my own testing functions MyDev-Deploy create-changeset AWS CloudFormation execute-changeset AWS CloudFormation Run-stubs Lambda MyApplication
  • 26. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T An example minimal production pipeline: This pipeline: • Five stages • Builds code artifact • Three deployed to “environments” • Uses AWS SAM/AWS CloudFormation to deploy artifact and other AWS resources • Has Lambda custom actions for running my own testing functions • Integrates with a third-party service • Has a manual approval before deploying to production Source Source CodeCommit MyApplication Build test-build-source CodeBuild Deploy testing create-changeset AWS CloudFormation execute-changeset AWS CloudFormation Run-stubs Lambda Deploy staging create-changeset AWS CloudFormation execute-changeset AWS CloudFormation Run-API-test Runscope QA-Sign-off Manual approval Review Deploy prod create-changeset AWS CloudFormation execute-changeset AWS CloudFormation Post-deploy-slack Lambda
  • 27. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 6. Process 12factor.net: “Execute the app as one or more stateless processes” Serverless apps: This is inherent in how Lambda is designed already: • Lambda functions should be treated as stateless, despite the potential to store some state in-between execution environment reuse • There is no promise of execution environment reuse between function invocations • Data that needs to be kept should be stored off Lambda in a stateful service such as a database or cache
  • 28. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 7. Port binding 12factor.net: “Export services via port binding” Serverless apps: In Lambda/serverless applications, this factor doesn’t apply the same due to a difference in how Lambda functions are accessed: • Instead of a “port,” Lambda functions are invoked via one or more triggering services or AWS APIs for Lambda • When it comes to Lambda functions, there are three models for how they can be invoked: synchronously, asynchronously, and poll-based • Instead of having one function support multiple invocation sources, create independent functions
  • 29. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Lambda API 1. Lambda directly invoked via invoke API SDK clients Lambda function API provided by the Lambda service Used by all other services that invoke Lambda across all models Supports sync and async Can pass any event payload structure you want Client included in every SDK
  • 30. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Lambda execution model Synchronous (push) Amazon API Gateway Lambda function /order Asynchronous (event) Amazon SNS Lambda function Amazon S3 reqs Poll-based Amazon DynamoDB Amazon Kinesis changes Lambda service Lambda function
  • 31. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 8. Concurrency 12factor.net: “Scale out via the process model” Serverless apps: Doesn’t apply as Lambda functions will automatically scale based on load. You can fork threads inside of your function execution, but there are practical limits due to the memory and CPU/network constraints of your functions based on how you configure them. 👍
  • 32. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Tweak your function’s computer power Lambda exposes only a memory control, with the percentage of CPU core and network capacity allocated to a function proportionally. Is your code CPU-, network-, or memory-bound? If so, it could be cheaper to choose more memory.
  • 33. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Smart resource allocation Match resource allocation (up to 3 GB!) to logic Stats for Lambda function that calculates 1,000 times all prime numbers <= 1,000,000 128 MB 11.722965 sec $0.024628 256 MB 6.678945 sec $0.028035 512 MB 3.194954 sec $0.026830 1024 MB 1.465984 sec $0.024638 Green == Best Red == Worst
  • 34. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T Smart resource allocation Match resource allocation (up to 3 GB!) to logic Stats for Lambda function that calculates 1,000 times all prime numbers <= 1,000,000 128 MB 11.722965 sec $0.024628 256 MB 6.678945 sec $0.028035 512 MB 3.194954 sec $0.026830 1024 MB 1.465984 sec $0.024638 Green == Best Red == Worst -10.25698 sec +$0.00001
  • 35. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 9. Disposability 12factor.net: “Maximize robustness with fast startup and graceful shutdown” Serverless apps: Shutdown doesn’t apply as Lambda functions and their invocation are tied directly to incoming events. Speed at startup does matter though and is a factor of deployment package size + language used + virtual private cloud (or not) + pre-handler code calls. 👍
  • 36. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS X-Ray Profile and troubleshoot serverless applications: • Lambda instruments incoming requests for all supported languages and can capture calls made in code • API Gateway inserts a tracing header into HTTP calls as well as reports data back to X-Ray itself var AWSXRay = require(‘aws-xray-sdk-core‘); var AWS = AWSXRay.captureAWS(require(‘aws- sdk’)); S3Client = AWS.S3();
  • 37. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T X-Ray trace example
  • 38. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 10. Dev/prod parity 12factor.net: “Keep development, staging, and production as similar as possible” Serverless apps: This can be made incredibly easy with serverless applications by: • Making use of environment/stage variables or parameter store for configuration information, backend resources, etc. • Using AWS SAM to deploy your application • Can pass environment/stage variables via parameters, mappings, and imports • Having a continuous integration and continuous delivery process and tooling that supports multiple environments or accounts
  • 40. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SAM AWS CloudFormation extension optimized for serverless Special serverless resource types: functions, APIs, tables, layers, and applications Supports anything AWS CloudFormation supports Open specification (Apache 2.0) https://aws.amazon.com/serverless/sam
  • 41. AWS SAM template AWSTemplateFormatVersion: '2010-09-09’ Transform: AWS::Serverless-2016-10-31 Resources: GetHtmlFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.gethtml Runtime: nodejs6.10 Policies: AmazonDynamoDBReadOnlyAccess Events: GetHtml: Type: Api Properties: Path: /{proxy+} Method: ANY ListTable: Type: AWS::Serverless::SimpleTable
  • 42. AWS SAM template Tells AWS CloudFormation this is an AWS SAM template that it needs to “transform.” Creates a Lambda function with the referenced managed IAM policy, runtime, code at the referenced .zip location, and handler as defined. Also creates an Amazon API Gateway and takes care of all mapping/permissions necessary. Creates a DynamoDB table with five read-and-write units. AWSTemplateFormatVersion: '2010-09-09’ Transform: AWS::Serverless-2016-10-31 Resources: GetHtmlFunction: Type: AWS::Serverless::Function Properties: CodeUri: s3://sam-demo-bucket/todo_list.zip Handler: index.gethtml Runtime: nodejs6.10 Policies: AmazonDynamoDBReadOnlyAccess Events: GetHtml: Type: Api Properties: Path: /{proxy+} Method: ANY ListTable: Type: AWS::Serverless::SimpleTable
  • 44. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T AWS SAM Command Line Interface (AWS SAM CLI) CLI tool for local development, debugging, testing, deploying, and monitoring of serverless applications Supports API Gateway “proxy-style” and Lambda service API testing Response object and function logs available on your local machine Uses open-source docker-lambda images to mimic Lambda’s execution environment such as timeout, memory limits, and runtimes Can tail production logs from CloudWatch logs Can help you build in native dependencies https://aws.amazon.com/serverless/sam
  • 45. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 11. Logs 12factor.net: “Treat logs as event streams” Serverless apps: Logging (as well as metric collection) are considered a “universal right” in Lambda: • Console output automatically collected and sent to CloudWatch Logs • Logs can be turned into metrics • Logs can be sent to Amazon S3 or Amazon Elasticsearch Service easily for further inspection and trending • Metrics for Lambda and API Gateway for several key stats are automatically collected and sent to CloudWatch • You can easily send more using the CloudWatch SDK
  • 46. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T 12. Admin processes 12factor.net: “Run admin/management tasks as one-off processes” Serverless apps: Doesn’t apply to Lambda because you already limit your functions based on use case. True administrative tasks would occur via their own Lambda functions or via tools such as Amazon Elastic Compute Cloud Run Command. 👍
  • 47. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T The twelve factors and serverless applications As we’ve seen, twelve-factor application design can still be applied to serverless applications taking into account some small differences! = Works similarly = Not relevant 1. Code base 5. Build, release, run 9. Disposability 2. Dependencies 6. Process 10. Dev/prod parity 3. Config 7. Port binding 11. Logs 4. Backing services 8. Concurrency 12. Admin processes
  • 48. © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T FIN, ACK (in closing) As we’ve reviewed the twelve-factor methodology for applications, we’ve seen which factors do and do not apply the same for serverless applications: • Thinking about code reusability and how to scope your functions to the smallest size necessary provides many benefits • Factors related to underlying process management, network ports, concurrency, and admin processes are largely not an issue in serverless applications due to Lambda’s product design and features • Best practices for serverless align closely with twelve-factor guidance already, so you might be really close to meeting the “twelve-factor” bar already!
  • 49. aws.amazon.com/serverless/sam © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
  • 50. aws.amazon.com/serverless © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.S U M M I T
  • 51. S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.
  • 52. Thank you! S U M M I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Chris Munns munns@amazon.com @chrismunns