SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
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!

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie Running CFML on AWS Lambda with FuseLess

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
 

Ähnlich wie Running CFML on AWS Lambda with FuseLess (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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 

Kürzlich hochgeladen (20)

How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Running CFML on AWS Lambda with FuseLess

  • 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