Submit Search
Upload
AWS Lambda for Java Architects: Develop Serverless Microservices
•
2 likes
•
349 views
AI-enhanced title
Derek Ashmore
Follow
Presentation given to the Illinois VJug on May 3, 2016
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 42
Download now
Download to read offline
Recommended
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
Derek Ashmore
Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10
Derek Ashmore
Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16
Derek Ashmore
AWS Lambda Deployments: Best Practices and Common Mistakes O'Reilly Software...
AWS Lambda Deployments: Best Practices and Common Mistakes O'Reilly Software...
Derek Ashmore
Aws Lambda for Java Architects - Illinois JUG-Northwest -2016-08-02
Aws Lambda for Java Architects - Illinois JUG-Northwest -2016-08-02
Derek Ashmore
Aws Lambda for Java Architects - JavaOne -2016-09-19
Aws Lambda for Java Architects - JavaOne -2016-09-19
Derek Ashmore
Refactoring Into Microservices 2016-11-06
Refactoring Into Microservices 2016-11-06
Derek Ashmore
Aws Lambda for Java Architects CJug-Chicago 2016-08-30
Aws Lambda for Java Architects CJug-Chicago 2016-08-30
Derek Ashmore
Recommended
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
AWS Lambda for Architects - Chicago Coder Conference -2016-06-07
Derek Ashmore
Writing microservices in Java -- Chicago-2015-11-10
Writing microservices in Java -- Chicago-2015-11-10
Derek Ashmore
Microservices for architects los angeles-2016-07-16
Microservices for architects los angeles-2016-07-16
Derek Ashmore
AWS Lambda Deployments: Best Practices and Common Mistakes O'Reilly Software...
AWS Lambda Deployments: Best Practices and Common Mistakes O'Reilly Software...
Derek Ashmore
Aws Lambda for Java Architects - Illinois JUG-Northwest -2016-08-02
Aws Lambda for Java Architects - Illinois JUG-Northwest -2016-08-02
Derek Ashmore
Aws Lambda for Java Architects - JavaOne -2016-09-19
Aws Lambda for Java Architects - JavaOne -2016-09-19
Derek Ashmore
Refactoring Into Microservices 2016-11-06
Refactoring Into Microservices 2016-11-06
Derek Ashmore
Aws Lambda for Java Architects CJug-Chicago 2016-08-30
Aws Lambda for Java Architects CJug-Chicago 2016-08-30
Derek Ashmore
Refactoring Into Microservices 2016-11-08
Refactoring Into Microservices 2016-11-08
Derek Ashmore
Writing microservices in java java one-2015-10-28
Writing microservices in java java one-2015-10-28
Derek Ashmore
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15
Derek Ashmore
Microservices for java architects schamburg-2015-05-19
Microservices for java architects schamburg-2015-05-19
Derek Ashmore
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Derek Ashmore
Serverless in Java Lessons learnt
Serverless in Java Lessons learnt
Krzysztof Pawlowski
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Derek Ashmore
Using Apache Camel as AKKA
Using Apache Camel as AKKA
Johan Edstrom
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
Steve Purkis
Why akka
Why akka
Sapardi Sapardi
Scala in the Wild
Scala in the Wild
Tomer Gabel
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
Sander Temme
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
Derek Ashmore
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Chicago
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
Derek Ashmore
What's New in AWS Serverless and Containers
What's New in AWS Serverless and Containers
Amazon Web Services
SMC302 Building Serverless Web Applications
SMC302 Building Serverless Web Applications
Amazon Web Services
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
MongoDB
Building Serverless Web Applications
Building Serverless Web Applications
Amazon Web Services
More Related Content
What's hot
Refactoring Into Microservices 2016-11-08
Refactoring Into Microservices 2016-11-08
Derek Ashmore
Writing microservices in java java one-2015-10-28
Writing microservices in java java one-2015-10-28
Derek Ashmore
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15
Derek Ashmore
Microservices for java architects schamburg-2015-05-19
Microservices for java architects schamburg-2015-05-19
Derek Ashmore
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Derek Ashmore
Serverless in Java Lessons learnt
Serverless in Java Lessons learnt
Krzysztof Pawlowski
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Derek Ashmore
Using Apache Camel as AKKA
Using Apache Camel as AKKA
Johan Edstrom
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
Steve Purkis
Why akka
Why akka
Sapardi Sapardi
Scala in the Wild
Scala in the Wild
Tomer Gabel
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
Sander Temme
What's hot
(12)
Refactoring Into Microservices 2016-11-08
Refactoring Into Microservices 2016-11-08
Writing microservices in java java one-2015-10-28
Writing microservices in java java one-2015-10-28
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects it-symposium-2015-09-15
Microservices for java architects schamburg-2015-05-19
Microservices for java architects schamburg-2015-05-19
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Refactoring Into Microservices. Chicago Coders Conference 2017-06-26
Serverless in Java Lessons learnt
Serverless in Java Lessons learnt
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Microservices with Terraform, Docker and the Cloud. JavaOne 2017 2017-10-02
Using Apache Camel as AKKA
Using Apache Camel as AKKA
High Availability Perl DBI + MySQL
High Availability Perl DBI + MySQL
Why akka
Why akka
Scala in the Wild
Scala in the Wild
Apache Performance Tuning: Scaling Out
Apache Performance Tuning: Scaling Out
Similar to AWS Lambda for Java Architects: Develop Serverless Microservices
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
Derek Ashmore
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Chicago
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
Derek Ashmore
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
Derek Ashmore
What's New in AWS Serverless and Containers
What's New in AWS Serverless and Containers
Amazon Web Services
SMC302 Building Serverless Web Applications
SMC302 Building Serverless Web Applications
Amazon Web Services
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
MongoDB
Building Serverless Web Applications
Building Serverless Web Applications
Amazon Web Services
What's New with AWS Lambda
What's New with AWS Lambda
Amazon Web Services
以AWS Lambda與Amazon API Gateway打造無伺服器後端
以AWS Lambda與Amazon API Gateway打造無伺服器後端
Amazon Web Services
Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Amazon Web Services
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Amazon Web Services
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Amazon Web Services
Serverless design considerations for Cloud Native workloads
Serverless design considerations for Cloud Native workloads
Tensult
What's New with AWS Lambda
What's New with AWS Lambda
Amazon Web Services
Serverless Architecture Patterns
Serverless Architecture Patterns
Amazon Web Services
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
Amazon Web Services
Workshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs Zombies
Amazon Web Services
Similar to AWS Lambda for Java Architects: Develop Serverless Microservices
(20)
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
AWS Lambda: Best Practices and Common Mistakes - Dev Ops West 2019
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2019
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
AWS Lambda: Best Practices and Common Mistakes - DevOps East 2019
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Community Day - Derek C. Ashmore - AWS Lambda: Best Practices
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
AWS Lambda: Best Practices and Common Mistakes - AWS Community Days 2019
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
AWS Lambda: Best Practices and Common Mistakes - Chicago Cloud Conference 2020
What's New in AWS Serverless and Containers
What's New in AWS Serverless and Containers
SMC302 Building Serverless Web Applications
SMC302 Building Serverless Web Applications
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
Webinar: Serverless Architectures with AWS Lambda and MongoDB Atlas
Building Serverless Web Applications
Building Serverless Web Applications
What's New with AWS Lambda
What's New with AWS Lambda
以AWS Lambda與Amazon API Gateway打造無伺服器後端
以AWS Lambda與Amazon API Gateway打造無伺服器後端
Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Deep Dive on AWS Lambda - January 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Building Serverless Web Applications - May 2017 AWS Online Tech Talks
Serverless design considerations for Cloud Native workloads
Serverless design considerations for Cloud Native workloads
What's New with AWS Lambda
What's New with AWS Lambda
Serverless Architecture Patterns
Serverless Architecture Patterns
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
AWS re:Invent 2016: Accenture Cloud Platform Serverless Journey (ARC202)
Workshop: AWS Lamda Signal Corps vs Zombies
Workshop: AWS Lamda Signal Corps vs Zombies
Recently uploaded
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
2toLead Limited
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Commit University
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Alex Barbosa Coqueiro
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
charlottematthew16
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Miki Katsuragi
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Precisely
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
BookNet Canada
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Fwdays
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
hariprasad279825
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
Slibray Presentation
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
Recently uploaded
(20)
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
AWS Lambda for Java Architects: Develop Serverless Microservices
1.
AWS Lambda for
Java Architects Given by Derek C. Ashmore May 3, 2016 ©2016 Derek C. Ashmore, All Rights Reserved 1
2.
Who am I? •
Professional Geek since 1987 • Java/J2EE/Java EE since 1999 • Roles include: • Developer • Architect • Project Manager • DBA • System Admin ©2016 Derek C. Ashmore, All Rights Reserved 2
3.
Discussion Resources • This
slide deck – http://www.slideshare.net/derekashmore • Sample code on my Github – https://github.com/Derek-Ashmore/ • Sample Java AWS Lambda Source – https://github.com/Derek-Ashmore/AWSLambdaExamples • Slide deck has hyper-links! – Don’t bother writing down URLs ©2016 Derek C. Ashmore, All Rights Reserved 3
4.
Agenda The “What” and “Why”
of AWS Lambda Developing Lambda Supporting Lambda Lambda and Microservices Summary / Q&A ©2016 Derek C. Ashmore, All Rights Reserved 4
5.
What are AWS
Lambdas? • You provide custom code -> AWS runs it – Java, Node.js, Python • Computing power with less management – AWS manages the hardware – AWS autoscales that hardware – AWS maintains that hardware • Lambdas are event driven – API Gateway (e.g. RESTful Web Service call) – Many more • Lambdas are stateless • Not to be confused with “Lambda Expressions” in Java 8 ©2016 Derek C. Ashmore, All Rights Reserved 5
6.
Lambda Event Sources •
API Gateway • SNS Messaging Subscriptions • Schedule • Storage writes – S3, DynamoDB, Kenesis ©2016 Derek C. Ashmore, All Rights Reserved 6 • SES Email receipt • Cloudwatch – Schedule, Events, log entries • Cognito (Security) • CloudFormation – Creation script
7.
What’s the Business
Benefit • Less Maintenance Hassle • Unlimited Parallelism • Current cost advantage – Don’t pay for idle – CPU cost currently lower • Free tier – 1 M executions and 400K compute seconds per month – Memory allocated determines allowed free-tier runtime • 20 cents per 1 M executions + memory/runtime cost – Administration cost • No O/S upgrades, server backups, etc. ©2016 Derek C. Ashmore, All Rights Reserved 7
8.
There’s no free
lunch • Less control over environment – Harder to tune – Memory and time limits on execution • No Java EE amenities – No connection pooling, session support, caching • Proprietary Interface – Potential Technical Lock-in • No Guarantee that AWS cost will be constant – Potential Business Risk • Modern version of CGI ©2016 Derek C. Ashmore, All Rights Reserved 8
9.
Agenda The “What” and “Why”
of AWS Lambda Developing Lambda Supporting Lambda Lambda and Microservices Summary / Q&A ©2016 Derek C. Ashmore, All Rights Reserved 9
10.
Lambda Java API •
RequestHandler interface • JSON marshalling of Request and Response • Execution Context • Deployment Zip Artifact – Typically one RequestHandler per Zip artifact ©2016 Derek C. Ashmore, All Rights Reserved 10
11.
Lambda Request /
Response Sample • Expose REST API that collects email addresses for a mailing list – https://scrubbed/prod/EmailCollector • Sample request/response ©2016 Derek C. Ashmore, All Rights Reserved 11
12.
Implementing a RequestHandler •
RequestHandler interface is generic. – POJOs represent the request and response – POJOs determine JSON request/response format – Execution Context class provided by AWS • This class specified when Lambda defined • Note the wrapping try/catch – Portion of the Context provided by AWS -> need more – AWS Does marshalling – ContextedRuntimeException from Apache Commons Lang3 • Note that the Lambda is thin -> Business logic is elsewhere • Sample is on GitHub (here) ©2016 Derek C. Ashmore, All Rights Reserved 12
13.
What’s in the
Context? • Execution Context provided by AWS • Contains: – AWS Request ID -> Get logs for specific request – Function name, version, arn – Cognito identity – Remaining time/memory – Mobile client information (AWS Mobile SDK) • Environment name/value map • Custom name/value map ©2016 Derek C. Ashmore, All Rights Reserved 13
14.
Resource Support • Java
8 Runtime -> – you can configure memory available • Log4J logging available – Viewable/searchable in Cloudwatch logs – Custom Log4J Appender provided • Third party jars can be included – Including AWS SDK for AWS Tasks (executing other Lambdas) – JDBC Drivers – HttpClient or Apache CXF • Keep in Mind – You create/destroy all database connections • No connection pooling (Lambdas are stateless) – Caching APIs have limited benefit (Lambdas are stateless) – No Remote Debug capability ©2016 Derek C. Ashmore, All Rights Reserved 14
15.
Lambda Deployment Package •
Zip Organization – Root is in the classpath – Lib contains 3rd party jars • Maven example here – Need maven-dependency-plugin, maven-antrun-plugin ©2016 Derek C. Ashmore, All Rights Reserved 15
16.
API Gateway • Exposes
Lambdas as a RESTful Web Service – Can be publicly available or part of a secured private microservice library ©2016 Derek C. Ashmore, All Rights Reserved 16
17.
Gateway Lambda Integration ©2016
Derek C. Ashmore, All Rights Reserved 17 • Integrations do basic transformations – Map headers and parameters to Lambda request fields
18.
Gateway Models ©2016 Derek
C. Ashmore, All Rights Reserved 18
19.
Gateway Models (con’t) •
Jackson can generate the Json schema needed as a Model – No Mavin plugin for this – Example Java code to generate (here) – Example Mavin pom generating on build (here) ©2016 Derek C. Ashmore, All Rights Reserved 19
20.
Lambdas and SNS
Topics • Lambdas can subscribe to SNS Publish/subscribe topics • Request Message is type SNSEvent ©2016 Derek C. Ashmore, All Rights Reserved 20
21.
Lambdas can be
scheduled • Lambda executions can be scheduled through CloudWatch – Cron expressions supported ©2016 Derek C. Ashmore, All Rights Reserved 21
22.
Tooling Gotchas • API
Gateway requires client with Server Name Indication (SNI) support – Most recent SoapUI does not (reference) – Had to write my own test client using Httpclient 4.2 or above ©2016 Derek C. Ashmore, All Rights Reserved 22
23.
Agenda The “What” and “Why”
of AWS Lambda Developing Lambda Supporting Lambda Lambda and Microservices Summary / Q&A ©2016 Derek C. Ashmore, All Rights Reserved 23
24.
Versioning Support • Lambda
versioning and aliases – Aliases are labels (e.g. PROD, TEST, DEV) that can be reassigned to different versions. – Versions are unique an can’t be changed. • S3 versioning possible for Lambda Zip artifacts • You need a correlation between source control and Lambda version – Possibilities • Tag all Lambda versions in source control and include the Lambda version number • Breadcrumbs in the deployed Zip that describe the specific source control change number used for the build ©2016 Derek C. Ashmore, All Rights Reserved 24
25.
Lifecycle Environment Support •
Configuration Support – Baked into the deployment zip • You can’t just move the zips from environment to environment • Spring profiles not an option as you don’t control JVM parms – API Gateway does have staging variables • No Remote Debug Support ©2016 Derek C. Ashmore, All Rights Reserved 25
26.
Automated Deployment Options •
Nothing out of the box • One possibility – Load Lambda function from S3 bucket – Jenkins plugin to load build artifacts to S3 • https://wiki.jenkins-ci.org/display/JENKINS/S3+Plugin – Use AWS CLI to Manage lambda publishing and aliases ©2016 Derek C. Ashmore, All Rights Reserved 26
27.
Performance • Start-up Time
– Python, Node.js, Java – Berezovsky performance test • Throughput – Java and Node.js – Both have a JIT – DZone comparison here – Close enough that other factors would likely guide your language choice ©2016 Derek C. Ashmore, All Rights Reserved 27
28.
Agenda The “What” and “Why”
of AWS Lambda Developing Lambda Supporting Lambda Lambda and Microservices Summary / Q&A ©2016 Derek C. Ashmore, All Rights Reserved 28
29.
Lambdas and Microservices ©2016
Derek C. Ashmore, All Rights Reserved 29
30.
Using Lambdas as
Microservices • Lambda / API Gateway is a deployment option for microservices – No differences in design principles • Single purpose • Self-contained – Still design for failure • Don’t “assume” that Lambda outages can’t happen – A Lambda might need external resources that aren’t available • Off Limits: Coding patterns that use state – Lambdas must be stateless – Fail fast patterns • Service Call Mediator • Circuit Breaker – Performance Patterns • Expiring Cache (API Gateway allows request caching) ©2016 Derek C. Ashmore, All Rights Reserved 30
31.
Back-ends for Front-ends ©2015
Derek C. Ashmore, All Rights Reserved 31
32.
Retry Pattern ©2015 Derek
C. Ashmore, All Rights Reserved 32 • Best for asynchronous tasks • Limit the number of tries • You must stay under your Lambda execution time limit! • Use sleep interval between tries • Only addresses temporary outages • Sample Retry Pattern implementation here. • Tooling Support: – Apache CXF supports Retry – Spring Batch RetryTemplate – Apache HttpClient (Example here)
33.
Dispatch via Messaging ©2015
Derek C. Ashmore, All Rights Reserved 33 • Place work instruction on persistent queue • If receivers are down, work stacks in queue • Work throttled by number of receivers • Queue can be SES, JMS or AMQP • Tooling Support: – JMS Api (easy API – many use natively) – Spring JMSTemplate or RabbitTemplate (producer)
34.
Custom Rollback ©2015 Derek
C. Ashmore, All Rights Reserved 34
35.
Custom Rollback (continued) •
Reverses a transaction previously posted • Only use this for multi-service transactions – Keeping the transaction within one service is preferred • This pattern is completely custom – No special product support available • More information here ©2015 Derek C. Ashmore, All Rights Reserved 35
36.
Contract Testing • Critical
for MS architectures – Contract changes can break other services – Bulkhead for rogue developers – Makes individual services more disposable • Consumer-based testing • Tooling support – Apache HttpClient (4.2 or above) ©2015 Derek C. Ashmore, All Rights Reserved 36
37.
Agenda The “What” and “Why”
of AWS Lambda Developing Lambda Supporting Lambda Lambda and Microservices Summary / Q&A ©2016 Derek C. Ashmore, All Rights Reserved 37
38.
Chief Complaints • Documentation
leaves a lot to be desired – This is an understatement. – For Java Lambdas, you are almost on your own. • Lambda start-up time not consistent – Sometimes long start-up time for JVM – Python is the fastest • Optimizations that depend on state aren’t as easy – You would have to persist that state • This would have it’s own concurrency and performance issues ©2016 Derek C. Ashmore, All Rights Reserved 38
39.
Implementation Tips • Separation
of Concerns – Keep Lambda code separate from business logic • Might want to change vendors someday – Keep AWS SDK code separate from business logic • Same reason – Invoke other Lambdas through the API Gateway, not directly through the AWS SDK • Same reason – Keep Business Logic locally runnable/debuggable • Remote debug isn’t yet possible • Ensure you can always tie AWS Request Id to your business transaction – Need a way to gather logs from a complete business transactions and the many services it might use – All invocations get unique AWS request Ids • For example, lambda invokes other lambdas – Configure log4j layout to include AWS Request Id (example) ©2016 Derek C. Ashmore, All Rights Reserved 39
40.
Lambda and the
Gartner Hype Cycle ©2016 Derek C. Ashmore, All Rights Reserved 40
41.
Further Reading • This
slide deck – http://www.slideshare.net/derekashmore • AWS Lambda Reading List – http://www.derekashmore.com/2016/04/aws-lambda-reading-list.html ©2016 Derek C. Ashmore, All Rights Reserved 41
42.
Questions? • Derek Ashmore: –
Blog: www.derekashmore.com – LinkedIn: www.linkedin.com/in/derekashmore – Twitter: https://twitter.com/Derek_Ashmore – GitHub: https://github.com/Derek-Ashmore – Book: http://dvtpress.com/ ©2016 Derek C. Ashmore, All Rights Reserved 42
Download now