Jets:
A Ruby Serverless Framework
on AWS Lambda
by Tung Nguyen
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Tung Nguyen
tung@boltops.com
linkedin.com/in/tongueroo
youtube.com/tongueroo
@tongueroo
sonic
swiss-army knife
jack
elastic beanstalk
ufo
ecs deployment
lono
cloudformation
framework
jets
ruby serverless
framework
Background
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Desire for Ruby
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Ruby on AWS Lambda
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Node Shim
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Shim
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Shim Issue
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda Cold Starts
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda Prewarm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
AWS Lambda Prewarm
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Lambda Execution Context
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Performance Comparison
Ruby: 164ms
Python: 178ms
Essentially the Same!
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Demo Time: The Need for Speed
Jets
Ruby Serverless Framework
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Why Again?
VS
YAML Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Web API Architecture
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Simple Function
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Controllers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Controllers
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Routes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Routes
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Jobs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Jobs
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Project Structure
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Demo Time: CRUD
Jets
Ruby Serverless Framework
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Web API Architecture Review
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Core Resource Model
=
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven Security: Auto-
Remediation
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven Security: Auto-
Remediation Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven Security: Auto-
Remediation Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven Security: Multiple Events
Supported
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Polymorphic Support
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Polymorphic Support: Python
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Polymorphic Support: Node
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Continuous Compliance: AWS Config
Rules
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Continuous Compliance: Config Rules
Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven Compliance: AWS Config
Rules
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven: Internet of Things
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven: Internet of Things Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Event Driven: Internet of Things Code
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
REPL Console
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
REPL Console
Database Support
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
REPL Console
Database Support
Function Properties
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
REPL Console
Database Support
Function Properties IAM Policies
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Jets Features
Prewarming
Local Server
Jets Call
REPL Console
Database Support
Function Properties IAM Policies
Polymorphic Support
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Working Examples
© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Thanks!
Tung Nguyen
tung@boltops.com
linkedin.com/in/tongueroo
youtube.com/tongueroo
@tongueroo
sonic
swiss-army knife
jack
elastic beanstalk
ufo
ecs deployment
lono
cloudformation
framework
jets
ruby serverless
framework

Jets: A Ruby Serverless Framework

  • 1.
    Jets: A Ruby ServerlessFramework on AWS Lambda by Tung Nguyen
  • 2.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Tung Nguyen tung@boltops.com linkedin.com/in/tongueroo youtube.com/tongueroo @tongueroo sonic swiss-army knife jack elastic beanstalk ufo ecs deployment lono cloudformation framework jets ruby serverless framework Background
  • 3.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Desire for Ruby
  • 4.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Ruby on AWS Lambda
  • 5.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Node Shim
  • 6.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Shim
  • 7.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Shim Issue
  • 8.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. AWS Lambda Cold Starts
  • 9.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. AWS Lambda Prewarm
  • 10.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. AWS Lambda Prewarm
  • 11.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Lambda Execution Context
  • 12.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Performance Comparison Ruby: 164ms Python: 178ms Essentially the Same!
  • 13.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Demo Time: The Need for Speed Jets Ruby Serverless Framework
  • 14.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Why Again? VS YAML Code
  • 15.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Web API Architecture
  • 16.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Simple Function
  • 17.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Controllers
  • 18.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Controllers
  • 19.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Routes
  • 20.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Routes
  • 21.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Jobs
  • 22.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Jobs
  • 23.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Project Structure
  • 24.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Demo Time: CRUD Jets Ruby Serverless Framework
  • 25.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Web API Architecture Review
  • 26.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Core Resource Model =
  • 27.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven Security: Auto- Remediation
  • 28.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven Security: Auto- Remediation Code
  • 29.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven Security: Auto- Remediation Code
  • 30.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven Security: Multiple Events Supported
  • 31.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Polymorphic Support
  • 32.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Polymorphic Support: Python
  • 33.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Polymorphic Support: Node
  • 34.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Continuous Compliance: AWS Config Rules
  • 35.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Continuous Compliance: Config Rules Code
  • 36.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven Compliance: AWS Config Rules
  • 37.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven: Internet of Things
  • 38.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven: Internet of Things Code
  • 39.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Event Driven: Internet of Things Code
  • 40.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming
  • 41.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server
  • 42.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call
  • 43.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call REPL Console
  • 44.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call REPL Console Database Support
  • 45.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call REPL Console Database Support Function Properties
  • 46.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call REPL Console Database Support Function Properties IAM Policies
  • 47.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Jets Features Prewarming Local Server Jets Call REPL Console Database Support Function Properties IAM Policies Polymorphic Support
  • 48.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Working Examples
  • 49.
    © 2018, AmazonWeb Services, Inc. or its affiliates. All rights reserved. Thanks! Tung Nguyen tung@boltops.com linkedin.com/in/tongueroo youtube.com/tongueroo @tongueroo sonic swiss-army knife jack elastic beanstalk ufo ecs deployment lono cloudformation framework jets ruby serverless framework