SlideShare a Scribd company logo
1 of 66
Services
Dave McCrory
         @mccrory on Twitter

Senior Architect, Cloud Foundry, VMware
Wordpress?
Facebook apps on Heroku: 34,000 in 24 Hours



                          How To:
curl
‐u
“$EMAIL:$PASSWORD”
‐X
POST
https://api.heroku.com/apps
PaaS Provider   Your App




                MySQL
1
PaaS Provider       Your App




                    MySQL
1
PaaS Provider       Your App



                2
                    MySQL
1
PaaS Provider       Your App

                         3
                2
                    MySQL
Setting the Stage
    “The Dream State”

• This is specifically targeted at PaaS
  (Platform as a Service)
• All providers have an interface (CLI
  or otherwise) to control services in
  their platform
-Cobb
“...Inception, now before you bother
telling me it's impossible...”

                       -Cobb
-Eames
“No, it's perfectly possible. It's just
bloody difficult.”
                        -Eames
Dependencies

• Most Apps Have Them...
• I’m not just talking about
  • require ‘rubygems’
  • Bundler
  • etc...
I’m talking about
 Service Dependencies
• “Assumes Redis”
• “Built for MongoDB”
• “Works with MySQL, other support
  coming”
• “Requires/Assumes X Service”
YOU need to go setup
       that Service...
You need

 • Resources
 • the bits for the service (the correct version)
 • and YOU must configure it
 • and in some cases you must install it
An Example from Today
https://github.com/defunkt/resque


Resque is our Redis-backed library for creating
background jobs, placing those jobs on multiple queues,
and processing them later.
https://github.com/defunkt/resque


Resque is our Redis-backed library for creating
background jobs, placing those jobs on multiple queues,
and processing them later.



Installing Redis

Resque requires Redis 0.900 or higher.
https://github.com/defunkt/resque


Resque is our Redis-backed library for creating
background jobs, placing those jobs on multiple queues,
and processing them later.



Installing Redis

Resque requires Redis 0.900 or higher.




Resque Dependencies
gem install redis redis-namespace yajl-ruby
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.

 Resque-mongo uses a fairly new feature of mongo, findAndModify().
 findAndModify that is only supported by 0.20+ version ofthe ruby mongo driver.
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.

 Resque-mongo uses a fairly new feature of mongo, findAndModify().
 findAndModify that is only supported by 0.20+ version ofthe ruby mongo driver.
 Also, check your mongo version: 1.3.0 or higher
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.

 Resque-mongo uses a fairly new feature of mongo, findAndModify().
 findAndModify that is only supported by 0.20+ version ofthe ruby mongo driver.
 Also, check your mongo version: 1.3.0 or higher

 Mysql::Error:
MySQL
server
has
gone
away

 If your workers remain idle for too long they may lose their MySQL connection.
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.

 Resque-mongo uses a fairly new feature of mongo, findAndModify().
 findAndModify that is only supported by 0.20+ version ofthe ruby mongo driver.
 Also, check your mongo version: 1.3.0 or higher

 Mysql::Error:
MySQL
server
has
gone
away

 If your workers remain idle for too long they may lose their MySQL connection.


 Installing Redis
 Resque requires Redis 0.900 or higher.
https://github.com/wistia/resque-mongo

Resque-mongo is a fork of [Resque][resque] that uses
MongoDB as a backend instead of Redis.

 Resque-mongo uses a fairly new feature of mongo, findAndModify().
 findAndModify that is only supported by 0.20+ version ofthe ruby mongo driver.
 Also, check your mongo version: 1.3.0 or higher

 Mysql::Error:
MySQL
server
has
gone
away

 If your workers remain idle for too long they may lose their MySQL connection.


 Installing Redis
 Resque requires Redis 0.900 or higher.

 Resque Dependencies
 gem install redis redis-namespace yajl-ruby
-Eames
“If you’re going to perform inception,
        you need imagination.”

                               -Eames
Imagine an application
   that can create the
services that it needs and
      depends on...
Why do you need this?
• Why does the Application have a
  Dependency on a Service that you
  have to create outside of your code?

• Worse, replicate someone else’s steps/
  configuration to get working
  properly?
• Ideally you shouldn’t even have to find
  the resources they should build
  themselves!
Not meant to directly reflect resque-mongo


       A Basic App

                       App
          $redis               $mongo


         connection           connection




         Redis               MongoDB

                      PaaS
Services Inception
 Services inside Services inside...


              App
                                      Depends on
 $redis               $mongo        Redis and Mongo
connection           connection


                                   You are expected to
Redis               MongoDB
                                  set these up yourself
                                  using a command line
             PaaS                   tool in most cases
What happens if you
forget or misconfigure a
        Service?
Services Limbo
 -Cobb

           “We drop into limbo.”

                           “Are you serious?”


                                                -Arthur
           “Limbo?”

               “Unconstructed dream space.”



-Ariadne
Why isn’t this part of the
      code itself?
Services Inception
• The App should ask the Platform for
  the Service and get it
• If the Platform doesn’t have a service
  due to complexity, the app should be
  able to create/build it

• The App should have the ability to
  automatically bootstrap, update, and
  repair itself if need be
• Include the steps, let me choose if I
  want to change them
We need a Services
        Architect

-Ariadne
           “I designed the place.”
We need a Services
           Architect

   -Ariadne
               “I designed the place.”




  The original Developer of the code knows what
it expects, they should leave this behind with the
        code (either in it or as an artifact)
PaaS Provider   Your App




                MySQL
1
PaaS Provider       Your App




                    MySQL
1
PaaS Provider       Your App



                2
                    MySQL
1
PaaS Provider       Your App

                         3
                2
                    MySQL
PaaS Provider   Your App




                MySQL
1
PaaS Provider       Your App




                    MySQL
1
PaaS Provider       Your App

                2


                    MySQL
1
PaaS Provider       Your App

                2


                3   MySQL
1
PaaS Provider       Your App

                2        4

                3   MySQL
PaaS Provider           App




                Redis         MongoDB
PaaS Provider           App




                Redis         MongoDB
PaaS Provider           App




                Redis         MongoDB
PaaS Provider           App




                Redis         MongoDB
One Approach
Planning Inception

                                   manifest.yml




              App
                                   ....
 $redis               $mongo


connection            connection
                                   services:

Redis               MongoDB        





redis_test:

             PaaS                  







type:
:redis
                                   







if_exists:
keep
                                   





mongo_test:

                                   







type:
:mongodb
                                   







if_exists:
keep
A Second Approach
DevOps?




Maybe an extension or file format reuse?
A Third Approach
Why not do this in the
              App
                                          App code?
 $redis               $mongo


connection            connection




Redis               MongoDB

             PaaS

                                   DependsOn
=
{
                                   

'foo'
=>
'redis',

                                   

'bar'
=>
'mongo'
                                   }
configure
do


$client
=
Paasclient.new('MyPassword',nil)


resolve_deps
=
Dependency.new(DependsOn)
end
Dependency.each
do
|dep_name,
dep_type|






case
dep_type







when
'redis'








unless
$client.exists(dep_name)










$client.create_redis(dep_name)








end








unless
$client.bound(dep_name)










$client.bind(dep_name)








end







when
'mongo'








....
PaaS Provider           App




                Redis         MongoDB
The Penrose Stairs




     Be Careful with
Metaprogramming Services
Methods
• service exists / create / delete
• service bound / bind / unbind
• app exists / create / delete
• app start / stop / restart / instances
existed?                         history?
A Sample More Complex
     Application
              Consuming App
              (Uses Infrastructure Below)




    Twitter          http service             GridFS

                        $redis                $mongo


                      connection             connection




                      Redis                 MongoDB
  Internet

                                    PaaS
Questions?


    Opinions?


Other Approaches?
Thank You!

More Related Content

What's hot

What's hot (20)

Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
How Netflix Tunes Amazon EC2 Instances for Performance - CMP325 - re:Invent 2017
 
How Flipkart scales PHP
How Flipkart scales PHPHow Flipkart scales PHP
How Flipkart scales PHP
 
Living on the Edge, It’s Safer Than You Think! Building Strong with Amazon Cl...
Living on the Edge, It’s Safer Than You Think! Building Strong with Amazon Cl...Living on the Edge, It’s Safer Than You Think! Building Strong with Amazon Cl...
Living on the Edge, It’s Safer Than You Think! Building Strong with Amazon Cl...
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
Serverless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLMServerless Beyond Functions - CTO Club Made in JLM
Serverless Beyond Functions - CTO Club Made in JLM
 
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
Serverless OAuth: Authorizing Third-Party Applications to Your Serverless API...
 
Containers - Amazon EKS
Containers - Amazon EKSContainers - Amazon EKS
Containers - Amazon EKS
 
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
20191029 AWS Black Belt Online Seminar Elastic Load Balancing (ELB)
 
Building Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJsBuilding Killer RESTful APIs with NodeJs
Building Killer RESTful APIs with NodeJs
 
a Running Tour of Cloud Foundry
a Running Tour of Cloud Foundrya Running Tour of Cloud Foundry
a Running Tour of Cloud Foundry
 
Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017Containers on AWS - State of the Union - CON201 - re:Invent 2017
Containers on AWS - State of the Union - CON201 - re:Invent 2017
 
ragi_tutorial_v1
ragi_tutorial_v1ragi_tutorial_v1
ragi_tutorial_v1
 
Cloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and VaadinCloud Foundry, Spring and Vaadin
Cloud Foundry, Spring and Vaadin
 
Elastic Load Balancing Deep Dive and Best Practices - NET402 - re:Invent 2017
Elastic Load Balancing Deep Dive and Best Practices - NET402 - re:Invent 2017Elastic Load Balancing Deep Dive and Best Practices - NET402 - re:Invent 2017
Elastic Load Balancing Deep Dive and Best Practices - NET402 - re:Invent 2017
 
Building a non-blocking REST API in less than 30 minutes
Building a non-blocking REST API in less than 30 minutesBuilding a non-blocking REST API in less than 30 minutes
Building a non-blocking REST API in less than 30 minutes
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & Spring
 
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
Network Performance: Making Every Packet Count - NET401 - re:Invent 2017
 

Viewers also liked

Inception powerpoint
Inception powerpointInception powerpoint
Inception powerpoint
csullivans05
 
Inception camera angles
Inception camera anglesInception camera angles
Inception camera angles
denzilbuck
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 

Viewers also liked (17)

Inception
InceptionInception
Inception
 
Inception
InceptionInception
Inception
 
Origen sueño y realidad, a propósito de una película
Origen sueño y realidad, a propósito de una películaOrigen sueño y realidad, a propósito de una película
Origen sueño y realidad, a propósito de una película
 
Inception powerpoint
Inception powerpointInception powerpoint
Inception powerpoint
 
Inception PowerPoint
Inception  PowerPointInception  PowerPoint
Inception PowerPoint
 
Inception
InceptionInception
Inception
 
Inception camera angles
Inception camera anglesInception camera angles
Inception camera angles
 
Inception
InceptionInception
Inception
 
Inception
Inception Inception
Inception
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 

Similar to Services inception in Ruby

Scripts Python Dbapi
Scripts Python DbapiScripts Python Dbapi
Scripts Python Dbapi
AkramWaseem
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
Steven Francia
 
Www Kitebird Com Articles Pydbapi Html Toc 1
Www Kitebird Com Articles Pydbapi Html Toc 1Www Kitebird Com Articles Pydbapi Html Toc 1
Www Kitebird Com Articles Pydbapi Html Toc 1
AkramWaseem
 
A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...
MongoDB
 

Similar to Services inception in Ruby (20)

TorqueBox
TorqueBoxTorqueBox
TorqueBox
 
NodeJS @ ACS
NodeJS @ ACSNodeJS @ ACS
NodeJS @ ACS
 
Serverless Architectures with AWS Lambda and MongoDB Atlas by Sig Narvaez
Serverless Architectures with AWS Lambda and MongoDB Atlas by Sig NarvaezServerless Architectures with AWS Lambda and MongoDB Atlas by Sig Narvaez
Serverless Architectures with AWS Lambda and MongoDB Atlas by Sig Narvaez
 
Interstella GTC: Monolith to Microservices with ECS
Interstella GTC: Monolith to Microservices with ECSInterstella GTC: Monolith to Microservices with ECS
Interstella GTC: Monolith to Microservices with ECS
 
A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)A Tale of a Server Architecture (Frozen Rails 2012)
A Tale of a Server Architecture (Frozen Rails 2012)
 
Dev streams2
Dev streams2Dev streams2
Dev streams2
 
What's Next Replay - SpringSource
What's Next Replay - SpringSourceWhat's Next Replay - SpringSource
What's Next Replay - SpringSource
 
Intro to Sails.js
Intro to Sails.jsIntro to Sails.js
Intro to Sails.js
 
Scripts Python Dbapi
Scripts Python DbapiScripts Python Dbapi
Scripts Python Dbapi
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
 
No SQL at The Guardian
No SQL at The GuardianNo SQL at The Guardian
No SQL at The Guardian
 
GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker GigaSpaces Cloudify - The PaaS Jailbreaker
GigaSpaces Cloudify - The PaaS Jailbreaker
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Merb For The Enterprise
Merb For The EnterpriseMerb For The Enterprise
Merb For The Enterprise
 
Hybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS ApplicationsHybrid MongoDB and RDBMS Applications
Hybrid MongoDB and RDBMS Applications
 
Get your Spatial on with MongoDB in the Cloud
Get your Spatial on with MongoDB in the CloudGet your Spatial on with MongoDB in the Cloud
Get your Spatial on with MongoDB in the Cloud
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
The DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetupThe DevOps PaaS Infusion - May meetup
The DevOps PaaS Infusion - May meetup
 
Www Kitebird Com Articles Pydbapi Html Toc 1
Www Kitebird Com Articles Pydbapi Html Toc 1Www Kitebird Com Articles Pydbapi Html Toc 1
Www Kitebird Com Articles Pydbapi Html Toc 1
 
A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...A flexible plugin like data layer - decouple your -_application logic from yo...
A flexible plugin like data layer - decouple your -_application logic from yo...
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Services inception in Ruby

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n