The Future of Enterprise Applications is Serverless
Jarkko Hirvonen, Manager, Solutions Architecture, AWS Nordics
In 2014 AWS introduced serverless computing with AWS Lambda. Since then, serverless has become one of the hottest topics in the industry. What is serverless, and what are the key trends and architecture patterns you should be aware of? Witness how AWS does it.
5. Two-pizzateam responsibilityVenn diagram
Responsible for
THEIR
PRODUCT
Deployment tools
CI/CD tools
Monitoring tools
Metrics tool
Logging tools
APM tools
Infrastructure provisioning
tools
Security tools
Database management
tools
Testing tools
….
Not responsible for
*
*Unless their product belongs in the blue
6. Two-pizzateam responsibilityVenn diagram
Responsible for Not responsible for
*
NOT
THEIR
PRODUCT
*Unless their product belongs in the blue
Application development
Infrastructure management
Application configuration
Pipeline configuration
Alarms
Runbooks
Testing
Compliance
Roadmap tracking
Goals tracking
On-call
Support escalation
….
17. Serverlessweb applicationwithAPIGateway
API Gateway handles all your
application routing. It can
handle authentication and
authorization, throttling, DDOS
protection, and more.
Amazon S3
API Gateway
Lambda runs all the logic
behind your website and
interfaces with databases,
other backend services, or
anything else your site needs.
AWS Lambda
Amazon Simple Storage
Service (Amazon S3) stores
all of your static content: CSS,
JS, images, and more. You
would typically front this with a
CDN such as CloudFront.
Amazon
CloudFront
20. AWSStepFunctions
Serverless workflow management with zero
administration
• Makes it easy to coordinate the components
of distributed applications and
microservices using visual workflows
• Automatically triggers and tracks each step
and retries when there are errors, so your
application executes in order and as
expected
• Logs the state of each step, so when things
do go wrong, you can diagnose and debug
problems quickly
Task
Choice
Failure capture
Parallel Tasks
22. N E W !
Language
s
Lambda
support for
Ruby
+ Bring any Linux compatible language
runtime;
Powered by new Runtime API -
Codifies the runtime calling conventions
and integration points
Same technology powering Ruby
support in AWS Lambda
Bring any Linux compatible
language runtime
Custom Runtimes
+
AWSOPENSOURCE
o f f e r e d b y
o f f e r e d b y
o f f e r e d b y
o f f e r e d b y
PARTNERSUPPORTED
23. N E W !
Extend the Lambda execution
environment with any binaries,
dependencies, or runtimes
Lambda Layers
BUSINESS
LOGIC
LIB
A
LIB
B
BUSINESS
LOGIC
LIB
A
LIB
B
BUSINESS
LOGIC
LIB
A
LIB
B
BUSINESS
LOGIC
LIB
A
LIB
B
Programming
Model
Before
BUSINESS
LOGIC
BUSINESS
LOGIC
BUSINESS
LOGIC
BUSINESS
LOGIC
LIB A LIB BAfter
Why are we here?
New way of working – DevOps?
Serverless technologies are here to stay
Cornerstone in application design for many business critical applications
https://secure.flickr.com/photos/mgifford/4525333972
Amazon founded 1994
Monolithic organization with separate development, operations, testing, dba:s.
Monolithic product. Everything in Amazon.com back then – monolitchic application.
From 2002 – massive transformation
How we think about building applications and organizing teams.
Decomposing Amazon.com and building new businesses
AWS, Alexa, Kindle… with this model
1000s of microservices in amazon
Two Pizza team concept
6-10 people. Some nbr of microservices – some part of overall product.
S3 = 200 microservices. Allows it to scale & add features. trillions of objects and regularly peaks at millions of requests per second.
New developer comes in
Flexible toolbox to build on.
No need for team to worry about tooling
This concept has lead us building services like S3, DynamoDB, Codepipeline
What still is team resp – traditional still lots of things.
Like infrastructure management, alarms, runbooks, compliance…
Thinking - Can we shift more from the team to platform
2014 – introduced AWS Lambda
What does serverless mean for us?
No servers to provision, manage or patch
Scalability built in
You shouldn’t pay for idle
High availability built in. (Az:s)
For business…
What our customers have told us:
Agility
Better focus on product & faster time to market
Helps with scalability.
The center of our world, and what we believe the future will be, is AWS Lambda.
Compute service – where you don’t need to think about the underlying infrastructure. (servers, containers, open sources Firecracker…)
Overview of serverless application
Event Sources
Function written in..
Services – anything. DB, rest-endpoint…
Regardless of programming language
Handler - called on invoke
Event - payload coming in. REST, Queue, DB change
Context - runtime (req id, logging...)
You don't pay for Idle
100ms increments
Free-tier
Easy & Cheap to get started
Web apps
Backends, mobile, iot
Data processing
Chatbots & Alexa
IT Automation
API GW overall
Cloudfront
Cache + monitoring
Backends: Lambda, EC2, ECS, Any
VPC
Typical web app pattern
Simple patterns:
Data processing
Messaging
Streaming
Scheduled jobs
Keep orchestration out of code.
Retries, exponential backoff.
Parallel execution.
Waiting and polling for results.
Adding languages & increasing memory (now 3GB)
Lambda timeout 15min (prev 5min)
SLA 99.95
In re:Invent – click…
In reinvent 2weeks ago
Ruby launch
Custom Runtimes allowing you to bring your own language.
Our Ruby support is built on this.
We are providing a C++ and Rust custom runtimes that you can use. They are available on GitHub
partners providing runtimes such as PHP, Cobol
Layers
Before –
After -
That was Lambda in a nutshell.
Get started now
Sweden region open now!
All mentioned services available there.