SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
FUSELESS
RUNNING CFML ON AWS LAMBDA WITH
Presented by: Pete Freitag
AGENDA
▸ AWS Lambda Basics (What, When, Where, Why, How)
▸ Using FuseLess (CFML for Lambda)
▸ Deploying to Lambda
▸ Events
▸ Roadmap
WHAT IS AWS LAMBDA?
▸ "Serverless" code execution environment
▸ A code zip
▸ minimal config (RAM, timeout, etc)
▸ Execution is caused by a trigger
MYTHBUSTERS
▸ The zip will be huge because it includes lucee right?
▸ It will ring in around 20mb and can be decreased further
▸ Node apps will be smaller right?
▸ It is not hard for node_modules to get to 50-100mb
▸ Java must be the slowest way to run code?
▸ Cold Starts may be slightly slower, but warm
performance is exceptional
WHAT TRIGGERS DOES LAMBDA SUPPORT?
▸ A HTTP Request (API Gateway, Application Load Balancer)
▸ S3 Event (eg: when new file is added run my code)
▸ SNS (can be used for scheduled tasks)
▸ SQS (queue message)
▸ Aurora / DynamoDB (database triggers)
▸ And many more…
WHAT IS SERVERLESS?
▸ Yes, there are still servers
▸ The server / OS is abstracted away
and managed by AWS
▸ Stateless
▸ You have just two dials
▸ RAM
▸ Max Concurrency
▸ There are limitations
photo (cc) flickr.com/photos/seeweb/8096492918
BENEFITS OF SERVERLESS
▸ Zero "Wasted" Spend
▸ Zero OS Patching
▸ Automatically Scales
▸ Least Privilege Execution (IAM)
▸ Cheap Compute
▸ Sub Second Billing
https://faasandfurious.com/39
AWS LAMBDA SECURITY
▸ White paper: https://d1.awsstatic.com/whitepapers/Overview-AWS-
Lambda-Security.pdf
▸ AWS has more security responsibility on Lambda vs EC2 based ops
▸ Compliance:
▸ PCI
▸ HIPAA
▸ SOC 1,2,3
LIMITATIONS OF AWS LAMBDA
▸ 15 minute maximum execution time
▸ Stateless - Your "Server" / "Container" / "Instance" will be
recycled after an unspecified period of time (usually an
hour or so)
▸ Max RAM 3008 MB
COLD STARTS
▸ The "server" instances recycled
frequently.
▸ If an instance isn’t available to
handle a request, a new one is
started.
▸ Performance hit of 0.8-2 seconds
(or higher within a VPC)
https://faasandfurious.com/46
DEALING WITH COLD STARTS
▸ Reduce the size of the code zip
▸ Your code must be downloaded from s3
▸ Zip file extracted
DEALING WITH COLD STARTS
▸ Increase RAM (faster CPU, network speed)
RAM Cold Start Duration
256mb 6 seconds
512mb 2-3 seconds
1024mb 1.5 seconds
2048mb 0.8 seconds
DEALING WITH COLD STARTS
▸ Pre-compile CFML
▸ The more cfm, cfcs the more compilation time on first
request
DEALING WITH COLD STARTS
▸ Function Warmers
▸ Run a scheduled task (CloudWatch alarm) every 5-10
minutes to hit the function and keep it warm.
▸ Hit concurrently to ensure multiple instances are warm
LAMBDA PRICING
▸ $0.20 per 1M Requests
▸ First 1M free each month
▸ $0.00001667 per GB-SECOND
▸ 1000 seconds at 1GB ram costs around 1 penny
▸ $1 =~ 60,000 GB-SECONDs
▸ First 400,000 GB-SECOND free each month
▸ Billed in 100ms intervals
A GENEROUS FREE TIER
▸ You can play for free, you may even be a able to go to
production for free.
▸ 800,000 requests at 1GB RAM running for 500ms is free
▸ Calculator: http://serverlesscalc.com/
API GATEWAY
▸ Free Tier 12 months - 1M Requests Free
▸ $3.50 per million requests
▸ Standard Data Transfer Pricing Applies
I WILL SAY THAT I'VE YET TO SEE A LAMBDA BILL
THAT'S SIGNIFICANT. $10K IN LAMBDA INVARIABLY
MEANS ABOUT $1 MILLION IN EC2. (YES, THERE'S
ALMOST CERTAINLY AN EXCEPTION CASE OR TWO
LURKING AROUND, BUT I'VE NOT SEEN IT PERSONALLY.)
Corey Quinn (Cloud Economist)
via twitter
LET’S GET
STARTED
SOME PRE-REQUISITE TOOLS
▸ Gradle: https://gradle.org/install/
▸ AWS SAM CLI: https://aws.amazon.com/serverless/sam/
▸ Not technically required, used for local testing
STEP 1: GRAB FUSELESS TEMPLATE
▸ Download / clone from github.com/foundeo/fuseless-
template/
▸ Or just goto fuseless.org and click Download
Template
▸ Run: init.sh
▸ It downloads lucee.jar and fuseless.jar
WHAT VERSION OF LUCEE?
▸ Because of size you want to use Lucee 5.3+ light
▸ The light version of lucee excludes default extensions
▸ No easy way to add extensions in FuseLess yet
FUSELESS FOLDER STRUCTURE
▸ /cfml/app/ → Your CFML code goes here!
▸ /jars/ → lucee.jar and fuseless.jar (any other jars you want)
▸ /build.gradle → a build script that packages everything
▸ /template.yml → a SAM template definition file
LETS RUN IT LOCALLY
▸ In Terminal / Command Prompt from the template root:
▸ gradle build
▸ Packages your lambda function into a zip file
▸ sam local start-api
▸ Uses docker to start a local lambda emulator
▸ Hit http://localhost:3000/dump.cfm
TESTING
▸ You will notice the sam local start-api method is slow
▸ Develop locally with commandbox, then test builds
▸ There are differences and limitations to Lambda that
make it important to test in both places.
▸ Even still there are slight differences between sam local
and the actual Lambda container.
OK LET’S DEPLOY
A BUNCH OF WAYS YOU CAN DEPLOY…
▸ Upload Zip File to AWS Console or S3
▸ Generally discouraged, old school approach
▸ SAM - Generate CloudFormation Templates
▸ Code Build, Code Pipeline
▸ Code Deploy
▸ Blue / Green, Canary
USING AWS CONSOLE
▸ Lambda → Create Function
▸ Setup an IAM Role (it can create one for you)
▸ Minimally needs to publish logs to CloudWatch
▸ Upload Zip: build/distributions/name.zip
▸ Set RAM, Timeout (template.yml is ignored)
▸ Handler: com.foundeo.fuseless.StreamLambdaHandler
AWS CODESTAR
▸ Create a new Project (you can use the Java AWS Lambda
template)
▸ Connect it to AWS CodeCommit or GitHub
▸ Select Cloud9 IDE
▸ Warning: May cost you a few pennies or dollars / month
AWS CODESTAR
▸ Created a CodeCommit git repo (you can use github)
▸ Created a CodeBuild (controlled by buildspec.yml file)
▸ Connected the CodeCommit repo as a trigger
▸ Created a Code Pipeline
▸ Takes Code Build Output and Applies CloudFormation
▸ It setup CodeDeploy
▸ Gradually Canary Deploy
AWS CODESTAR
▸ Created an API Gateway
▸ Which gives it a URL
▸ API Gateway can be configured with a custom domain
MODIFY BUILDSPEC.YML
▸ gradle build
▸ sam deploy
▸ uses template.yml to define how much RAM the
function uses, etc.
WHAT WAS THAT HANDLER?
▸ The java entry point that Lambda invokes (FuseLess)
▸ FuseLess has two handlers:
▸ com.foundeo.fuseless.StreamLambdaHandler::handleRequest
▸ Use for HTTP API
▸ com.foundeo.fuseless.StreamLambdaHandler::handleEventRequest
▸ Use for Events: S3, SNS, SQS, etc
HANDLING EVENTS
▸ Add your code to onRequest() in Application.cfc
▸ Event Payload
▸ Call getLambdaContext().getEventPayload()
FUSELESS / LAMBDA CONTEXT
▸ getLambdaContext()
▸ hasEventPayload() [FuseLess]
▸ getEventPayload() [FuseLess]
▸ getAwsRequestId()
▸ getLogger()
▸ getFunctionName()
▸ getRemainingTimeInMillis()
▸ (and more)
XRAY
▸ AWS Tracing Library
▸ To enabled:
▸ Set environment variable
FUSELESS_ENABLE_XRAY=true
▸ Add AWS X-ray jar to build.gradle
▸ Call XRay API from your CFML to add exceptions, trace
points, debugging metadata.
XRAY
OTHER LAMBDA LIMITS
▸ File system is read only except for /tmp/ (512mb)
▸ FuseLess uses part of /tmp/ (tip, use ram:// )
▸ Code Size Limit: 250mb uncompressed
▸ No Lucee Admin, everything must be configured in
Application.cfc or via Environment Variables
AWS API GATEWAY LIMITATIONS
▸ 29 Second Timeout
▸ Not designed for long running HTTP requests
FUSELESS IN ACTION
▸ Fixinator runs on AWS Lambda with FuseLess
▸ "We’re happily deploying several projects on AWS
Lambda with the Fuseless setup in combination with
hybrid mobile and static sites in S3/Cloudfront." — Kees
(Aan Zee Interactive, Netherlands)
DOWN THE ROAD
▸ FuseLess commandbox command
▸ Replace gradle
▸ Easy Template initialization
▸ Perform CFML specific build optimizations
▸ Inject Lucee Extensions
▸ FuseLess CFML API
▸ Abstract common code
QUESTIONS?
THANK YOU!

Más contenido relacionado

La actualidad más candente

DrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme ScalingDrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme Scalingzekivazquez
 
Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017Amazon Web Services
 
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Amazon Web Services
 
Hosting a Rails App
Hosting a Rails AppHosting a Rails App
Hosting a Rails AppJosh Schramm
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultGrzegorz Adamowicz
 
Microservices blue-green-deployment-with-docker
Microservices blue-green-deployment-with-dockerMicroservices blue-green-deployment-with-docker
Microservices blue-green-deployment-with-dockerKidong Lee
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...Yevgeniy Brikman
 
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)Amazon Web Services
 
Mitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpMitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpOntico
 
Adopting Java for the Serverless world at JUG London
Adopting Java for the Serverless world at  JUG LondonAdopting Java for the Serverless world at  JUG London
Adopting Java for the Serverless world at JUG LondonVadym Kazulkin
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021TomStraub5
 
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...Amazon Web Services
 
Adopting Java for the Serverless world at Serverless Meetup Italy
Adopting Java for the Serverless world at Serverless Meetup ItalyAdopting Java for the Serverless world at Serverless Meetup Italy
Adopting Java for the Serverless world at Serverless Meetup ItalyVadym Kazulkin
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesYevgeniy Brikman
 
Container Orchestration with Amazon ECS
Container Orchestration with Amazon ECSContainer Orchestration with Amazon ECS
Container Orchestration with Amazon ECSAmazon Web Services
 
Serverless in Java Lessons learnt
Serverless in Java Lessons learntServerless in Java Lessons learnt
Serverless in Java Lessons learntKrzysztof Pawlowski
 
Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Amazon Web Services
 
Step into serverless into the box 2018
Step into serverless into the box 2018Step into serverless into the box 2018
Step into serverless into the box 2018Ortus Solutions, Corp
 
Docker and AWS for data science
Docker and AWS for data scienceDocker and AWS for data science
Docker and AWS for data scienceJulián Perelli
 

La actualidad más candente (20)

DrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme ScalingDrupalCon Barcelona 2015 - Drupal Extreme Scaling
DrupalCon Barcelona 2015 - Drupal Extreme Scaling
 
Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017Intro to Batch Processing on AWS - DevDay Austin 2017
Intro to Batch Processing on AWS - DevDay Austin 2017
 
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
Docker on AWS with Amazon ECR & ECS - Pop-up Loft Tel Aviv
 
Hosting a Rails App
Hosting a Rails AppHosting a Rails App
Hosting a Rails App
 
AWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp VaultAWS DevOps - Terraform, Docker, HashiCorp Vault
AWS DevOps - Terraform, Docker, HashiCorp Vault
 
Microservices blue-green-deployment-with-docker
Microservices blue-green-deployment-with-dockerMicroservices blue-green-deployment-with-docker
Microservices blue-green-deployment-with-docker
 
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...How to test infrastructure code: automated testing for Terraform, Kubernetes,...
How to test infrastructure code: automated testing for Terraform, Kubernetes,...
 
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
AWS re:Invent 2016: Amazon ECR Deep Dive on Image Optimization (CON401)
 
Mitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorpMitchell Hashimoto, HashiCorp
Mitchell Hashimoto, HashiCorp
 
Adopting Java for the Serverless world at JUG London
Adopting Java for the Serverless world at  JUG LondonAdopting Java for the Serverless world at  JUG London
Adopting Java for the Serverless world at JUG London
 
Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021Developing Terraform Modules at Scale - HashiTalks 2021
Developing Terraform Modules at Scale - HashiTalks 2021
 
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
AWS December 2015 Webinar Series - Continuous Delivery to Amazon EC2 Containe...
 
Adopting Java for the Serverless world at Serverless Meetup Italy
Adopting Java for the Serverless world at Serverless Meetup ItalyAdopting Java for the Serverless world at Serverless Meetup Italy
Adopting Java for the Serverless world at Serverless Meetup Italy
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
 
Reusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modulesReusable, composable, battle-tested Terraform modules
Reusable, composable, battle-tested Terraform modules
 
Container Orchestration with Amazon ECS
Container Orchestration with Amazon ECSContainer Orchestration with Amazon ECS
Container Orchestration with Amazon ECS
 
Serverless in Java Lessons learnt
Serverless in Java Lessons learntServerless in Java Lessons learnt
Serverless in Java Lessons learnt
 
Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017Getting Started with Docker on AWS - DevDay Austin 2017
Getting Started with Docker on AWS - DevDay Austin 2017
 
Step into serverless into the box 2018
Step into serverless into the box 2018Step into serverless into the box 2018
Step into serverless into the box 2018
 
Docker and AWS for data science
Docker and AWS for data scienceDocker and AWS for data science
Docker and AWS for data science
 

Similar a ITB2019 Serverless CFML on AWS Lambda - Pete Freitag

Going Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAMGoing Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAMGeorge Tourkas
 
Riga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaRiga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaAntons Kranga
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold startsYan Cui
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudConor Svensson
 
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...AWS Chicago
 
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonAdopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonVadym Kazulkin
 
Cloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerizationCloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerizationMárton Kodok
 
Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Szabolcs Zajdó
 
SoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambdaSoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambdaStefan Deusch
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Eberhard Wolff
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparisonadesso AG
 
Stockholm Serverless Meetup - Serverless Challenges
Stockholm Serverless Meetup - Serverless ChallengesStockholm Serverless Meetup - Serverless Challenges
Stockholm Serverless Meetup - Serverless Challengesİbrahim Gürses
 
Introduction to the Serverless paradigm
Introduction to the Serverless paradigmIntroduction to the Serverless paradigm
Introduction to the Serverless paradigmAlex Casalboni
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudConor Svensson
 
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...Amazon Web Services
 
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHow Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHenning Jacobs
 

Similar a ITB2019 Serverless CFML on AWS Lambda - Pete Freitag (20)

Going Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAMGoing Serverless on AWS with Golang and SAM
Going Serverless on AWS with Golang and SAM
 
Intro to AWS Lambda
Intro to AWS LambdaIntro to AWS Lambda
Intro to AWS Lambda
 
Riga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS LambdaRiga DevDays 2017 - Efficient AWS Lambda
Riga DevDays 2017 - Efficient AWS Lambda
 
How to improve lambda cold starts
How to improve lambda cold startsHow to improve lambda cold starts
How to improve lambda cold starts
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring Cloud
 
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
AWS Community Day 2022 Dhiraj Mahapatro_AWS Lambda under the hood _ Best Prac...
 
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and BostonAdopting Java for the Serverless world at Serverless Meetup New York and Boston
Adopting Java for the Serverless world at Serverless Meetup New York and Boston
 
Cloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerizationCloud Run - the rise of serverless and containerization
Cloud Run - the rise of serverless and containerization
 
Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)Cloud cost optimization (AWS, GCP)
Cloud cost optimization (AWS, GCP)
 
SoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambdaSoCal NodeJS Meetup 20170215_aws_lambda
SoCal NodeJS Meetup 20170215_aws_lambda
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Java in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in ComparisonJava in the Cloud : PaaS Platforms in Comparison
Java in the Cloud : PaaS Platforms in Comparison
 
Big Data on AWS
Big Data on AWSBig Data on AWS
Big Data on AWS
 
Stockholm Serverless Meetup - Serverless Challenges
Stockholm Serverless Meetup - Serverless ChallengesStockholm Serverless Meetup - Serverless Challenges
Stockholm Serverless Meetup - Serverless Challenges
 
Introduction to the Serverless paradigm
Introduction to the Serverless paradigmIntroduction to the Serverless paradigm
Introduction to the Serverless paradigm
 
Cloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring CloudCloud Native Microservices with Spring Cloud
Cloud Native Microservices with Spring Cloud
 
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...
AWS re:Invent 2016: Monitoring, Hold the Infrastructure: Getting the Most fro...
 
Webapp on AWS
Webapp on AWSWebapp on AWS
Webapp on AWS
 
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:InventHow Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
How Zalando runs Kubernetes clusters at scale on AWS - AWS re:Invent
 

Más de Ortus Solutions, Corp

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionOrtus Solutions, Corp
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Ortus Solutions, Corp
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfOrtus Solutions, Corp
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfOrtus Solutions, Corp
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfOrtus Solutions, Corp
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfOrtus Solutions, Corp
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfOrtus Solutions, Corp
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfOrtus Solutions, Corp
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfOrtus Solutions, Corp
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfOrtus Solutions, Corp
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfOrtus Solutions, Corp
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfOrtus Solutions, Corp
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfOrtus Solutions, Corp
 

Más de Ortus Solutions, Corp (20)

BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Ortus Government.pdf
Ortus Government.pdfOrtus Government.pdf
Ortus Government.pdf
 
Luis Majano The Battlefield ORM
Luis Majano The Battlefield ORMLuis Majano The Battlefield ORM
Luis Majano The Battlefield ORM
 
Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI Brad Wood - CommandBox CLI
Brad Wood - CommandBox CLI
 
Secure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusionSecure your Secrets and Settings in ColdFusion
Secure your Secrets and Settings in ColdFusion
 
Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023Daniel Garcia ContentBox: CFSummit 2023
Daniel Garcia ContentBox: CFSummit 2023
 
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdfITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
ITB_2023_Human-Friendly_Scheduled_Tasks_Giancarlo_Gomez.pdf
 
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdfITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
ITB_2023_CommandBox_Multi-Server_-_Brad_Wood.pdf
 
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdfITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
ITB_2023_The_Many_Layers_of_OAuth_Keith_Casey_.pdf
 
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdfITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
ITB_2023_Relationships_are_Hard_Data_modeling_with_NoSQL_Curt_Gratz.pdf
 
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdfITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
ITB_2023_Extend_your_contentbox_apps_with_custom_modules_Javier_Quintero.pdf
 
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdfITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
ITB_2023_25_Most_Dangerous_Software_Weaknesses_Pete_Freitag.pdf
 
ITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdfITB_2023_CBWire_v3_Grant_Copley.pdf
ITB_2023_CBWire_v3_Grant_Copley.pdf
 
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdfITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
ITB_2023_Practical_AI_with_OpenAI_-_Grant_Copley_.pdf
 
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdfITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
ITB_2023_When_Your_Applications_Work_As_a_Team_Nathaniel_Francis.pdf
 
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdfITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
ITB_2023_Faster_Apps_That_Wont_Get_Crushed_Brian_Klaas.pdf
 
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdfITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
ITB_2023_Chatgpt_Box_Scott_Steinbeck.pdf
 
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdfITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
ITB_2023_CommandBox_Task_Runners_Brad_Wood.pdf
 
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdfITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
ITB_2023_Create_as_many_web_sites_or_web_apps_as_you_want_George_Murphy.pdf
 
ITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdfITB2023 Developing for Performance - Denard Springle.pdf
ITB2023 Developing for Performance - Denard Springle.pdf
 

Último

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 

Último (20)

Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 

ITB2019 Serverless CFML on AWS Lambda - Pete Freitag

  • 1. FUSELESS RUNNING CFML ON AWS LAMBDA WITH Presented by: Pete Freitag
  • 2. AGENDA ▸ AWS Lambda Basics (What, When, Where, Why, How) ▸ Using FuseLess (CFML for Lambda) ▸ Deploying to Lambda ▸ Events ▸ Roadmap
  • 3. WHAT IS AWS LAMBDA? ▸ "Serverless" code execution environment ▸ A code zip ▸ minimal config (RAM, timeout, etc) ▸ Execution is caused by a trigger
  • 4. MYTHBUSTERS ▸ The zip will be huge because it includes lucee right? ▸ It will ring in around 20mb and can be decreased further ▸ Node apps will be smaller right? ▸ It is not hard for node_modules to get to 50-100mb ▸ Java must be the slowest way to run code? ▸ Cold Starts may be slightly slower, but warm performance is exceptional
  • 5. WHAT TRIGGERS DOES LAMBDA SUPPORT? ▸ A HTTP Request (API Gateway, Application Load Balancer) ▸ S3 Event (eg: when new file is added run my code) ▸ SNS (can be used for scheduled tasks) ▸ SQS (queue message) ▸ Aurora / DynamoDB (database triggers) ▸ And many more…
  • 6. WHAT IS SERVERLESS? ▸ Yes, there are still servers ▸ The server / OS is abstracted away and managed by AWS ▸ Stateless ▸ You have just two dials ▸ RAM ▸ Max Concurrency ▸ There are limitations photo (cc) flickr.com/photos/seeweb/8096492918
  • 7. BENEFITS OF SERVERLESS ▸ Zero "Wasted" Spend ▸ Zero OS Patching ▸ Automatically Scales ▸ Least Privilege Execution (IAM) ▸ Cheap Compute ▸ Sub Second Billing https://faasandfurious.com/39
  • 8. AWS LAMBDA SECURITY ▸ White paper: https://d1.awsstatic.com/whitepapers/Overview-AWS- Lambda-Security.pdf ▸ AWS has more security responsibility on Lambda vs EC2 based ops ▸ Compliance: ▸ PCI ▸ HIPAA ▸ SOC 1,2,3
  • 9. LIMITATIONS OF AWS LAMBDA ▸ 15 minute maximum execution time ▸ Stateless - Your "Server" / "Container" / "Instance" will be recycled after an unspecified period of time (usually an hour or so) ▸ Max RAM 3008 MB
  • 10. COLD STARTS ▸ The "server" instances recycled frequently. ▸ If an instance isn’t available to handle a request, a new one is started. ▸ Performance hit of 0.8-2 seconds (or higher within a VPC)
  • 12. DEALING WITH COLD STARTS ▸ Reduce the size of the code zip ▸ Your code must be downloaded from s3 ▸ Zip file extracted
  • 13. DEALING WITH COLD STARTS ▸ Increase RAM (faster CPU, network speed) RAM Cold Start Duration 256mb 6 seconds 512mb 2-3 seconds 1024mb 1.5 seconds 2048mb 0.8 seconds
  • 14. DEALING WITH COLD STARTS ▸ Pre-compile CFML ▸ The more cfm, cfcs the more compilation time on first request
  • 15. DEALING WITH COLD STARTS ▸ Function Warmers ▸ Run a scheduled task (CloudWatch alarm) every 5-10 minutes to hit the function and keep it warm. ▸ Hit concurrently to ensure multiple instances are warm
  • 16. LAMBDA PRICING ▸ $0.20 per 1M Requests ▸ First 1M free each month ▸ $0.00001667 per GB-SECOND ▸ 1000 seconds at 1GB ram costs around 1 penny ▸ $1 =~ 60,000 GB-SECONDs ▸ First 400,000 GB-SECOND free each month ▸ Billed in 100ms intervals
  • 17. A GENEROUS FREE TIER ▸ You can play for free, you may even be a able to go to production for free. ▸ 800,000 requests at 1GB RAM running for 500ms is free ▸ Calculator: http://serverlesscalc.com/
  • 18. API GATEWAY ▸ Free Tier 12 months - 1M Requests Free ▸ $3.50 per million requests ▸ Standard Data Transfer Pricing Applies
  • 19. I WILL SAY THAT I'VE YET TO SEE A LAMBDA BILL THAT'S SIGNIFICANT. $10K IN LAMBDA INVARIABLY MEANS ABOUT $1 MILLION IN EC2. (YES, THERE'S ALMOST CERTAINLY AN EXCEPTION CASE OR TWO LURKING AROUND, BUT I'VE NOT SEEN IT PERSONALLY.) Corey Quinn (Cloud Economist) via twitter
  • 21. SOME PRE-REQUISITE TOOLS ▸ Gradle: https://gradle.org/install/ ▸ AWS SAM CLI: https://aws.amazon.com/serverless/sam/ ▸ Not technically required, used for local testing
  • 22. STEP 1: GRAB FUSELESS TEMPLATE ▸ Download / clone from github.com/foundeo/fuseless- template/ ▸ Or just goto fuseless.org and click Download Template ▸ Run: init.sh ▸ It downloads lucee.jar and fuseless.jar
  • 23. WHAT VERSION OF LUCEE? ▸ Because of size you want to use Lucee 5.3+ light ▸ The light version of lucee excludes default extensions ▸ No easy way to add extensions in FuseLess yet
  • 24. FUSELESS FOLDER STRUCTURE ▸ /cfml/app/ → Your CFML code goes here! ▸ /jars/ → lucee.jar and fuseless.jar (any other jars you want) ▸ /build.gradle → a build script that packages everything ▸ /template.yml → a SAM template definition file
  • 25. LETS RUN IT LOCALLY ▸ In Terminal / Command Prompt from the template root: ▸ gradle build ▸ Packages your lambda function into a zip file ▸ sam local start-api ▸ Uses docker to start a local lambda emulator ▸ Hit http://localhost:3000/dump.cfm
  • 26. TESTING ▸ You will notice the sam local start-api method is slow ▸ Develop locally with commandbox, then test builds ▸ There are differences and limitations to Lambda that make it important to test in both places. ▸ Even still there are slight differences between sam local and the actual Lambda container.
  • 28. A BUNCH OF WAYS YOU CAN DEPLOY… ▸ Upload Zip File to AWS Console or S3 ▸ Generally discouraged, old school approach ▸ SAM - Generate CloudFormation Templates ▸ Code Build, Code Pipeline ▸ Code Deploy ▸ Blue / Green, Canary
  • 29. USING AWS CONSOLE ▸ Lambda → Create Function ▸ Setup an IAM Role (it can create one for you) ▸ Minimally needs to publish logs to CloudWatch ▸ Upload Zip: build/distributions/name.zip ▸ Set RAM, Timeout (template.yml is ignored) ▸ Handler: com.foundeo.fuseless.StreamLambdaHandler
  • 30. AWS CODESTAR ▸ Create a new Project (you can use the Java AWS Lambda template) ▸ Connect it to AWS CodeCommit or GitHub ▸ Select Cloud9 IDE ▸ Warning: May cost you a few pennies or dollars / month
  • 31. AWS CODESTAR ▸ Created a CodeCommit git repo (you can use github) ▸ Created a CodeBuild (controlled by buildspec.yml file) ▸ Connected the CodeCommit repo as a trigger ▸ Created a Code Pipeline ▸ Takes Code Build Output and Applies CloudFormation ▸ It setup CodeDeploy ▸ Gradually Canary Deploy
  • 32. AWS CODESTAR ▸ Created an API Gateway ▸ Which gives it a URL ▸ API Gateway can be configured with a custom domain
  • 33. MODIFY BUILDSPEC.YML ▸ gradle build ▸ sam deploy ▸ uses template.yml to define how much RAM the function uses, etc.
  • 34. WHAT WAS THAT HANDLER? ▸ The java entry point that Lambda invokes (FuseLess) ▸ FuseLess has two handlers: ▸ com.foundeo.fuseless.StreamLambdaHandler::handleRequest ▸ Use for HTTP API ▸ com.foundeo.fuseless.StreamLambdaHandler::handleEventRequest ▸ Use for Events: S3, SNS, SQS, etc
  • 35. HANDLING EVENTS ▸ Add your code to onRequest() in Application.cfc ▸ Event Payload ▸ Call getLambdaContext().getEventPayload()
  • 36. FUSELESS / LAMBDA CONTEXT ▸ getLambdaContext() ▸ hasEventPayload() [FuseLess] ▸ getEventPayload() [FuseLess] ▸ getAwsRequestId() ▸ getLogger() ▸ getFunctionName() ▸ getRemainingTimeInMillis() ▸ (and more)
  • 37. XRAY ▸ AWS Tracing Library ▸ To enabled: ▸ Set environment variable FUSELESS_ENABLE_XRAY=true ▸ Add AWS X-ray jar to build.gradle ▸ Call XRay API from your CFML to add exceptions, trace points, debugging metadata.
  • 38. XRAY
  • 39. OTHER LAMBDA LIMITS ▸ File system is read only except for /tmp/ (512mb) ▸ FuseLess uses part of /tmp/ (tip, use ram:// ) ▸ Code Size Limit: 250mb uncompressed ▸ No Lucee Admin, everything must be configured in Application.cfc or via Environment Variables
  • 40. AWS API GATEWAY LIMITATIONS ▸ 29 Second Timeout ▸ Not designed for long running HTTP requests
  • 41. FUSELESS IN ACTION ▸ Fixinator runs on AWS Lambda with FuseLess ▸ "We’re happily deploying several projects on AWS Lambda with the Fuseless setup in combination with hybrid mobile and static sites in S3/Cloudfront." — Kees (Aan Zee Interactive, Netherlands)
  • 42. DOWN THE ROAD ▸ FuseLess commandbox command ▸ Replace gradle ▸ Easy Template initialization ▸ Perform CFML specific build optimizations ▸ Inject Lucee Extensions ▸ FuseLess CFML API ▸ Abstract common code