SlideShare a Scribd company logo
1 of 21
Automating Your Business
with the RightScale MultiCloud API
Self-Service Portals, One-Click SaaS, and More


Darryl Eaton, Director of Product Management
Josep Blanquer, Senior Systems Architect
2#



Agenda




   •   The Platform
   •   About the API
   •   Some Examples
   •   Customer Use Cases



Talk with the Experts.
3#



RightScale is a Cloud Platform…
What is a Server?
A blueprint of cloud services    POST /api/servers
                                 POST /api/servers/23409/launch
that make up what we typically
call a ‘server:’                 Create instance.
• A location…                    Launch.
                                 Attach IP.
• A certain size machine…
                                 Attach volumes.
• Some attached disks…
• Some networking config…
so you can just press play.




Talk with the Experts.
4#



… With Building Blocks for Automation
•   Server Configuration Blueprints (ServerTemplates)
•   Cross-Cloud Image Collections (MultiCloud Image)
•   Deployments and Servers
•   Server Arrays
•   Configuration Variables (Inputs)
•   Monitoring Alerts and Escalation Definitions (AlertSpecs)
•   Default Settings for Clouds, Servers
•   Volume and Snapshot Behavioral Definitions
•   Resource Tags
•   Users and Roles (Permissions)
•   Network Rules (Security Groups)

Talk with the Experts.
5#



About the MultiCloud API
            A Common Programmatic Interface Across Multiple Clouds


•   RESTful: Resource URLs, HTTP Verbs, Error Codes, …
•   Versioned: 1.5+ is our new MultiCloud API (1.0 is Legacy API for Ec2 Only)
•   Supports JSON and XML Response Formats
•   Flexible Authorization: Account (user/pass, OAuth2) or from Instance (token)
•   Simple resource queries through filters
•   Customer control of detail level through views
•   MediaTypes support and annotated responses
•   Extensive documentation, examples, and a Ruby client

Talk with the Experts.
6#



MediaTypes and Annotated Responses
• Each Resource has an associated MediaType that includes:
      • Attributes
      • Links (navigation hrefs to related resources)
      • Actions (possible actions to perform to the specific resource)
• Example response for an instance resource (simplified):
       Content-Type: application/vnd.rightscale.instance
       <instance>
         <name>name_361342744</name>
         <state>operational</state>
         <links>
           <link rel="self” href="/api/clouds/479517647/instances/ABC2383349127DEF”/>
           <link rel="deployment” href="/api/deployments/1181”/>
           <link rel="server_template” href="/api/server_templates/1223”/>
         </links>
         <actions>
           <action rel="terminate"/>
           <action rel="run_executable"/>
         </actions>
       </instance>


Talk with the Experts.
7#



Login into an Account Session
• POST /api/session
           curl -X POST https://my.rightscale.com/api/session
              -d email=’me@me.com' -d password=’pass' -d account_href=/api/accounts/11
              -H X_API_VERSION:1.5
              -c /tmp/cookie


           POST /api/session HTTP/1.1
 Request




           X_API_VERSION:1.5
           Content-Length: 78
           Content-Type: application/x-www-form-urlencoded

           email=me@me.com&password=pass&account_href=/api/accounts/11


           HTTP/1.1 204 No Content
Response




           Set-Cookie: rs_gbl=eNotkMtugkAUQP_lrpmEki4qbbUysO0VDYE78xQxJGqKKLx36tJ9…
                              domain=.rightscale.com; path=/; HttpOnly
           Set-Cookie: _session_id=34311a9f4178768dece0159…; path=/; Secure; HttpOnly




Talk with the Experts.
8#



Retrieving a Resource
• GET /api/servers/9999
     curl -X GET https://my.rightscale.com/api/servers/9999
        -H X_API_VERSION:1.5
        -b /tmp/cookie

     <server>
       <name>App Server1</name>
       <description>A PHP App server</description>
       <state>inactive</state>
       <updated_at>2012/05/24 19:35:58 +0000</updated_at>
       <created_at>2012/05/24 19:35:58 +0000</created_at>
       <links>
         <link rel="self" href="/api/servers/319715091"/>
         <link rel="deployment" href="/api/deployments/221556001"/>
         <link rel="next_instance" href="/api/clouds/2000/instances/AVPBOVP2TMTGB"/>
       </links>
       <actions>
         <action rel="launch"/>
       </actions>
     </server>




Talk with the Experts.
9#



Querying Resources: Optional Filters
• GET /api/servers
     curl -X GET https://my.rightscale.com/api/servers
        -H X_API_VERSION:1.5
        -b /tmp/cookie                            Note      Container for Possible Filter
     [ {"name":"PHP FrontEnd (Chef Alpha) -2",
        "description":”My super server”,
        "state":"inactive",
        "links":[
                   {"rel":"self","href":"/api/servers/710990"},
                   {"rel":"deployment","href":"/api/deployments/1111"},
                   ],
         "created_at":"2009/12/01 21:51:31 +0000",
     },
     …
       { "name":”Database Master",
         "description":”Data Vault server”,
         "state":”operational",
         "links":[
                      {"rel":"self","href":"/api/servers/84936"},
                      {"rel":"deployment","href":"/api/deployments/99999"},
                     ],
         "created_at":"2009/12/01 21:51:31 +0000”}]

Talk with the Experts.
10#



Querying resources: filters
• GET /api/servers?filter[]=“deployment_href==/api/deployments/1111”
     curl -X GET https://my.rightscale.com/api/servers
        -H X_API_VERSION:1.5
        -b /tmp/cookie

     [ {"name":"PHP FrontEnd (Chef Alpha) -2",
        "description":”My super server”,
        "state":"inactive",
        "links":[
                   {"rel":"self","href":"/api/servers/710990"},
                   {"rel":"deployment","href":"/api/deployments/1111"},
                   ],
         "created_at":"2009/12/01 21:51:31 +0000",
     },
     …
       { "name":”Database Master",
         "description":”Data Vault server”,
         "state":”operational",
         "links":[
                      {"rel":"self","href":"/api/servers/84936"},
                      {"rel":"deployment","href":"/api/deployments/99999"},
                     ],
         "created_at":"2009/12/01 21:51:31 +0000”}]

Talk with the Experts.
11#



Querying resources: filters (insights)
• Think bottom up: query the index URL of the MediaType
      • List Servers in a deployment
           •GET /api/servers? filter[]=“deployment_href==/api/deployments/1111”
             GET /api/servers? filter[]=“deployment_href==/api/deployments/1111”

      • List Snapshots taken from a Volume
           •GET /api/clouds/1/volume_snapshots? filter[]=“volume_href==/api/clouds/1/volumes/3”
             GET /api/clouds/1/volume_snapshots? filter[]=“volume_href==/api/clouds/1/volumes/22”

• Embrace 1-to-many relationship resources
      • Connecting two resources is achieved by creating a new middle resource
      • E.g.,: Attaching a Volume to an Instance -> create a VolumeAttachment
           •POST /clouds/1/volume_attachments (instance_href=X, volume_href=Y,
             POST /clouds/1/volume_attachments (instance_href=X, volume_href=Y, device=/dev/sdk)
            device=sdk)
• Some top-down options available for convenience
      • Simpler URLs but less powerful and generic
      • List all servers within a deployment
           •GET /api/deployments/1111/servers
             GET /api/deployments/1111/servers

      • Attach a volume to Instance 2222
           •POST /api/clouds/1/instances/2222 (volume_href=X, device=sdk)
             POST /api/clouds/1/instances/2222 (volume_href=X, device=/dev/sdk)


Talk with the Experts.
12#



Dialing in the Details: Views
• GET /api/clouds/99/security_groups                        No view = Default view!
     curl -X GET https://my.rightscale.com/api/clouds/99/security_groups
        -H X_API_VERSION:1.5
        -b /tmp/cookie

   [ {"resource_uid":"sg-aaaaaaaa",
      "name":"GOBBLEDEGOOK",
      "links":[
               {"rel":"self","href":"/api/clouds/99/security_groups/3UGV9J085F9XA”,
               {"rel":"cloud","href":"/api/clouds/99"},
               {"rel":"security_group_rules","href":"/api/clouds/99/security_groups/
                                                     3UGV9J085F9XA/security_group_rules"}
              ]},
   …
      {"resource_uid":"sg-bbbbbbbb",
       "name":”SomeotherSG",
       "links":[
                {"rel":"self","href":"/api/clouds/99/security_groups/2T1V9J08202NT”,
                {"rel":"cloud","href":"/api/clouds/99"},
                {"rel":"security_group_rules","href":"/api/clouds/99/security_groups/
                                                2T1V9J08202NT/security_group_rules"}
               ]},
   ]


Talk with the Experts.
13#



Dialing in the amount of details: views
• GET /api/clouds/99/security_groups?view=tiny
     curl -X GET https://my.rightscale.com/api/clouds/99/security_groups?view=tiny
        -H X_API_VERSION:1.5
        -b /tmp/cookie



     [ {"href":"/api/clouds/99/security_groups/3UGV9J085F9XA”}
     …
       {"href":"/api/clouds/99/security_groups/2T1V9J08202NT”}
     ]




Talk with the Experts.
14#



Performing Actions
• POST /api/servers/9999/terminate
     curl -X GET https://my.rightscale.com/api/servers/9999/terminate
        -H X_API_VERSION:1.5
        -b /tmp/cookie


     HTTP/1.1 204 No Content




  • Some long running actions return a task for tracking:
       • POST /api/servers/9999/terminate

     HTTP/1.1 202 Accepted

     Location: /api/clouds/9/instances/2T1V9J08202NT/live/tasks/ae-12345




Talk with the Experts.
15#



Example from the RightScale Ops Team
 • Rolling upgrade of your app servers:
    POST /api/tags/by_tag                     Get all servers by app tag
        (resource_type=instances,tags=[svc:app=true])

    foreach instance_href as i {                For each Server in result
        POST {i}/run_executable
                (recipe_name=pull_code)
                                                Get new code
        // get 202 & task-id
        do
          GET /…/task/{task-id}                 Wait for code to download
        until(status == completed)

          POST {i}/run_executable               Restart Web server
              (recipe_name=web_restart)
    }



Talk with the Experts.
16#



Same example using our right_api_client




                              Get all servers by tag

                         For each Server in result
                                     Get new code


                         Wait for code to download
                                        Restart
                                        Web

Talk with the Experts.
17#



Customer Use Case: One-Click SaaS
1. Provision a new RightScale account, assign cloud credentials
2. Add common IT administrators to account
3. Add first customer user
4. Import the necessary server configurations into the account
5. Create the client’s deployment
6. Create the servers within the deployment with the correct
   configurations
7. Start the servers with the appropriate parameters




Talk with the Experts.
18#




1. Display a list of approved configurations to users
2. User selects single configuration, provides inputs like
   username and password for application
3. Create a new server based off that configuration, launch it
4. Tag the server with the user’s department for reporting
5. Get the public URL/IP once it is operational, return to user
6. User logs into application with provided username/password
7. Pull report on a periodic basis to show department spend

Talk with the Experts.
19#



What’s coming…
• Executables
  (RightScripts, Chef Recipes)
      • Create, Read, Update, Delete
      • Maintain in external repository,
        push into RightScale via API
•   Cost Reporting
•   SAML User Provisioning
•   Retiring 1.0 (EC2 Only API)
•   1.5 will become 2.0 –
    feedback welcome now!




Talk with the Experts.
20#



Resources
• support.rightscale.com  References
      • http://support.rightscale.com/15-
        References/RightScale_API_Reference_Guide


• support.rightscale.com/api1.5 (MultiCloud API)
• support.rightscale.com/rdoc (API 1.0 EC2 Only)




Talk with the Experts.
Questions? Feedback?




Talk with the Experts.

More Related Content

More from RightScale

How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaRightScale
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...RightScale
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsRightScale
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceRightScale
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreRightScale
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesRightScale
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage CostsRightScale
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMRightScale
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessRightScale
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud ReportRightScale
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsRightScale
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaRightScale
 
Top 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take NowTop 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take NowRightScale
 
AWS re:Invent 2017 Recap
AWS re:Invent 2017 RecapAWS re:Invent 2017 Recap
AWS re:Invent 2017 RecapRightScale
 
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMCloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMRightScale
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkRightScale
 
How MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google CloudsHow MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google CloudsRightScale
 
Orchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScaleOrchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScaleRightScale
 
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScale
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScaleManaging Container-as-a-Service and Docker Clusters in the Cloud with RightScale
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScaleRightScale
 

More from RightScale (20)

How to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale OptimaHow to Allocate and Report Cloud Costs with RightScale Optima
How to Allocate and Report Cloud Costs with RightScale Optima
 
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
Should You Move Between AWS, Azure, or Google Clouds? Considerations, Pros an...
 
Using RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider ToolsUsing RightScale CMP with Cloud Provider Tools
Using RightScale CMP with Cloud Provider Tools
 
Best Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and ComplianceBest Practices for Multi-Cloud Security and Compliance
Best Practices for Multi-Cloud Security and Compliance
 
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and MoreAutomating Multi-Cloud Policies for AWS, Azure, Google, and More
Automating Multi-Cloud Policies for AWS, Azure, Google, and More
 
The 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for EnterprisesThe 5 Stages of Cloud Management for Enterprises
The 5 Stages of Cloud Management for Enterprises
 
9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs9 Ways to Reduce Cloud Storage Costs
9 Ways to Reduce Cloud Storage Costs
 
Serverless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBMServerless Comparison: AWS vs Azure vs Google vs IBM
Serverless Comparison: AWS vs Azure vs Google vs IBM
 
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP SuccessBest Practices for Cloud Managed Services Providers: The Path to CMP Success
Best Practices for Cloud Managed Services Providers: The Path to CMP Success
 
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMCloud Storage Comparison: AWS vs Azure vs Google vs IBM
Cloud Storage Comparison: AWS vs Azure vs Google vs IBM
 
2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report2018 Cloud Trends: RightScale State of the Cloud Report
2018 Cloud Trends: RightScale State of the Cloud Report
 
Got a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP HelpsGot a Multi-Cloud Strategy? How RightScale CMP Helps
Got a Multi-Cloud Strategy? How RightScale CMP Helps
 
How to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale OptimaHow to Manage Cloud Costs with RightScale Optima
How to Manage Cloud Costs with RightScale Optima
 
Top 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take NowTop 10 Cloud Trends for 2018 and Actions You Can Take Now
Top 10 Cloud Trends for 2018 and Actions You Can Take Now
 
AWS re:Invent 2017 Recap
AWS re:Invent 2017 RecapAWS re:Invent 2017 Recap
AWS re:Invent 2017 Recap
 
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBMCloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
Cloud Instances Price Comparison: AWS vs Azure vs Google vs IBM
 
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-ThinkEnterprise Cloud Strategy: 7 Areas You Need to Re-Think
Enterprise Cloud Strategy: 7 Areas You Need to Re-Think
 
How MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google CloudsHow MSPs Can Be Successful in AWS, Azure, and Google Clouds
How MSPs Can Be Successful in AWS, Azure, and Google Clouds
 
Orchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScaleOrchestrating PaaS and IaaS+ with RightScale
Orchestrating PaaS and IaaS+ with RightScale
 
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScale
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScaleManaging Container-as-a-Service and Docker Clusters in the Cloud with RightScale
Managing Container-as-a-Service and Docker Clusters in the Cloud with RightScale
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
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
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
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
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
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
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
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
 
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
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
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
 

Automating Your Business with the RightScale API: Self-Service Portals, One-Click-SaaS, and User Provisioning

  • 1. Automating Your Business with the RightScale MultiCloud API Self-Service Portals, One-Click SaaS, and More Darryl Eaton, Director of Product Management Josep Blanquer, Senior Systems Architect
  • 2. 2# Agenda • The Platform • About the API • Some Examples • Customer Use Cases Talk with the Experts.
  • 3. 3# RightScale is a Cloud Platform… What is a Server? A blueprint of cloud services POST /api/servers POST /api/servers/23409/launch that make up what we typically call a ‘server:’ Create instance. • A location… Launch. Attach IP. • A certain size machine… Attach volumes. • Some attached disks… • Some networking config… so you can just press play. Talk with the Experts.
  • 4. 4# … With Building Blocks for Automation • Server Configuration Blueprints (ServerTemplates) • Cross-Cloud Image Collections (MultiCloud Image) • Deployments and Servers • Server Arrays • Configuration Variables (Inputs) • Monitoring Alerts and Escalation Definitions (AlertSpecs) • Default Settings for Clouds, Servers • Volume and Snapshot Behavioral Definitions • Resource Tags • Users and Roles (Permissions) • Network Rules (Security Groups) Talk with the Experts.
  • 5. 5# About the MultiCloud API A Common Programmatic Interface Across Multiple Clouds • RESTful: Resource URLs, HTTP Verbs, Error Codes, … • Versioned: 1.5+ is our new MultiCloud API (1.0 is Legacy API for Ec2 Only) • Supports JSON and XML Response Formats • Flexible Authorization: Account (user/pass, OAuth2) or from Instance (token) • Simple resource queries through filters • Customer control of detail level through views • MediaTypes support and annotated responses • Extensive documentation, examples, and a Ruby client Talk with the Experts.
  • 6. 6# MediaTypes and Annotated Responses • Each Resource has an associated MediaType that includes: • Attributes • Links (navigation hrefs to related resources) • Actions (possible actions to perform to the specific resource) • Example response for an instance resource (simplified): Content-Type: application/vnd.rightscale.instance <instance> <name>name_361342744</name> <state>operational</state> <links> <link rel="self” href="/api/clouds/479517647/instances/ABC2383349127DEF”/> <link rel="deployment” href="/api/deployments/1181”/> <link rel="server_template” href="/api/server_templates/1223”/> </links> <actions> <action rel="terminate"/> <action rel="run_executable"/> </actions> </instance> Talk with the Experts.
  • 7. 7# Login into an Account Session • POST /api/session curl -X POST https://my.rightscale.com/api/session -d email=’me@me.com' -d password=’pass' -d account_href=/api/accounts/11 -H X_API_VERSION:1.5 -c /tmp/cookie POST /api/session HTTP/1.1 Request X_API_VERSION:1.5 Content-Length: 78 Content-Type: application/x-www-form-urlencoded email=me@me.com&password=pass&account_href=/api/accounts/11 HTTP/1.1 204 No Content Response Set-Cookie: rs_gbl=eNotkMtugkAUQP_lrpmEki4qbbUysO0VDYE78xQxJGqKKLx36tJ9… domain=.rightscale.com; path=/; HttpOnly Set-Cookie: _session_id=34311a9f4178768dece0159…; path=/; Secure; HttpOnly Talk with the Experts.
  • 8. 8# Retrieving a Resource • GET /api/servers/9999 curl -X GET https://my.rightscale.com/api/servers/9999 -H X_API_VERSION:1.5 -b /tmp/cookie <server> <name>App Server1</name> <description>A PHP App server</description> <state>inactive</state> <updated_at>2012/05/24 19:35:58 +0000</updated_at> <created_at>2012/05/24 19:35:58 +0000</created_at> <links> <link rel="self" href="/api/servers/319715091"/> <link rel="deployment" href="/api/deployments/221556001"/> <link rel="next_instance" href="/api/clouds/2000/instances/AVPBOVP2TMTGB"/> </links> <actions> <action rel="launch"/> </actions> </server> Talk with the Experts.
  • 9. 9# Querying Resources: Optional Filters • GET /api/servers curl -X GET https://my.rightscale.com/api/servers -H X_API_VERSION:1.5 -b /tmp/cookie Note Container for Possible Filter [ {"name":"PHP FrontEnd (Chef Alpha) -2", "description":”My super server”, "state":"inactive", "links":[ {"rel":"self","href":"/api/servers/710990"}, {"rel":"deployment","href":"/api/deployments/1111"}, ], "created_at":"2009/12/01 21:51:31 +0000", }, … { "name":”Database Master", "description":”Data Vault server”, "state":”operational", "links":[ {"rel":"self","href":"/api/servers/84936"}, {"rel":"deployment","href":"/api/deployments/99999"}, ], "created_at":"2009/12/01 21:51:31 +0000”}] Talk with the Experts.
  • 10. 10# Querying resources: filters • GET /api/servers?filter[]=“deployment_href==/api/deployments/1111” curl -X GET https://my.rightscale.com/api/servers -H X_API_VERSION:1.5 -b /tmp/cookie [ {"name":"PHP FrontEnd (Chef Alpha) -2", "description":”My super server”, "state":"inactive", "links":[ {"rel":"self","href":"/api/servers/710990"}, {"rel":"deployment","href":"/api/deployments/1111"}, ], "created_at":"2009/12/01 21:51:31 +0000", }, … { "name":”Database Master", "description":”Data Vault server”, "state":”operational", "links":[ {"rel":"self","href":"/api/servers/84936"}, {"rel":"deployment","href":"/api/deployments/99999"}, ], "created_at":"2009/12/01 21:51:31 +0000”}] Talk with the Experts.
  • 11. 11# Querying resources: filters (insights) • Think bottom up: query the index URL of the MediaType • List Servers in a deployment •GET /api/servers? filter[]=“deployment_href==/api/deployments/1111” GET /api/servers? filter[]=“deployment_href==/api/deployments/1111” • List Snapshots taken from a Volume •GET /api/clouds/1/volume_snapshots? filter[]=“volume_href==/api/clouds/1/volumes/3” GET /api/clouds/1/volume_snapshots? filter[]=“volume_href==/api/clouds/1/volumes/22” • Embrace 1-to-many relationship resources • Connecting two resources is achieved by creating a new middle resource • E.g.,: Attaching a Volume to an Instance -> create a VolumeAttachment •POST /clouds/1/volume_attachments (instance_href=X, volume_href=Y, POST /clouds/1/volume_attachments (instance_href=X, volume_href=Y, device=/dev/sdk) device=sdk) • Some top-down options available for convenience • Simpler URLs but less powerful and generic • List all servers within a deployment •GET /api/deployments/1111/servers GET /api/deployments/1111/servers • Attach a volume to Instance 2222 •POST /api/clouds/1/instances/2222 (volume_href=X, device=sdk) POST /api/clouds/1/instances/2222 (volume_href=X, device=/dev/sdk) Talk with the Experts.
  • 12. 12# Dialing in the Details: Views • GET /api/clouds/99/security_groups No view = Default view! curl -X GET https://my.rightscale.com/api/clouds/99/security_groups -H X_API_VERSION:1.5 -b /tmp/cookie [ {"resource_uid":"sg-aaaaaaaa", "name":"GOBBLEDEGOOK", "links":[ {"rel":"self","href":"/api/clouds/99/security_groups/3UGV9J085F9XA”, {"rel":"cloud","href":"/api/clouds/99"}, {"rel":"security_group_rules","href":"/api/clouds/99/security_groups/ 3UGV9J085F9XA/security_group_rules"} ]}, … {"resource_uid":"sg-bbbbbbbb", "name":”SomeotherSG", "links":[ {"rel":"self","href":"/api/clouds/99/security_groups/2T1V9J08202NT”, {"rel":"cloud","href":"/api/clouds/99"}, {"rel":"security_group_rules","href":"/api/clouds/99/security_groups/ 2T1V9J08202NT/security_group_rules"} ]}, ] Talk with the Experts.
  • 13. 13# Dialing in the amount of details: views • GET /api/clouds/99/security_groups?view=tiny curl -X GET https://my.rightscale.com/api/clouds/99/security_groups?view=tiny -H X_API_VERSION:1.5 -b /tmp/cookie [ {"href":"/api/clouds/99/security_groups/3UGV9J085F9XA”} … {"href":"/api/clouds/99/security_groups/2T1V9J08202NT”} ] Talk with the Experts.
  • 14. 14# Performing Actions • POST /api/servers/9999/terminate curl -X GET https://my.rightscale.com/api/servers/9999/terminate -H X_API_VERSION:1.5 -b /tmp/cookie HTTP/1.1 204 No Content • Some long running actions return a task for tracking: • POST /api/servers/9999/terminate HTTP/1.1 202 Accepted Location: /api/clouds/9/instances/2T1V9J08202NT/live/tasks/ae-12345 Talk with the Experts.
  • 15. 15# Example from the RightScale Ops Team • Rolling upgrade of your app servers: POST /api/tags/by_tag Get all servers by app tag (resource_type=instances,tags=[svc:app=true]) foreach instance_href as i { For each Server in result POST {i}/run_executable (recipe_name=pull_code) Get new code // get 202 & task-id do GET /…/task/{task-id} Wait for code to download until(status == completed) POST {i}/run_executable Restart Web server (recipe_name=web_restart) } Talk with the Experts.
  • 16. 16# Same example using our right_api_client Get all servers by tag For each Server in result Get new code Wait for code to download Restart Web Talk with the Experts.
  • 17. 17# Customer Use Case: One-Click SaaS 1. Provision a new RightScale account, assign cloud credentials 2. Add common IT administrators to account 3. Add first customer user 4. Import the necessary server configurations into the account 5. Create the client’s deployment 6. Create the servers within the deployment with the correct configurations 7. Start the servers with the appropriate parameters Talk with the Experts.
  • 18. 18# 1. Display a list of approved configurations to users 2. User selects single configuration, provides inputs like username and password for application 3. Create a new server based off that configuration, launch it 4. Tag the server with the user’s department for reporting 5. Get the public URL/IP once it is operational, return to user 6. User logs into application with provided username/password 7. Pull report on a periodic basis to show department spend Talk with the Experts.
  • 19. 19# What’s coming… • Executables (RightScripts, Chef Recipes) • Create, Read, Update, Delete • Maintain in external repository, push into RightScale via API • Cost Reporting • SAML User Provisioning • Retiring 1.0 (EC2 Only API) • 1.5 will become 2.0 – feedback welcome now! Talk with the Experts.
  • 20. 20# Resources • support.rightscale.com  References • http://support.rightscale.com/15- References/RightScale_API_Reference_Guide • support.rightscale.com/api1.5 (MultiCloud API) • support.rightscale.com/rdoc (API 1.0 EC2 Only) Talk with the Experts.

Editor's Notes

  1. Huge amount of tools. Create accounts to isolate departments and their associated users-       Assign granular permissions to users to say what they can and cannot do on the cloud-       Associate public and private clouds with each account-       Pre-load the account with tested and approved server configurations-       Launch servers and associate storage snapshots and volumes-       Monitor active servers-       Review the usage and cloud spend within the account-       And finally, audit changes made to the servers, deployments, and other entities within the account
  2. Import – private sharing of ServerTemplates via API was released in March of this year.
  3. Actually a customer use case.
  4. Create accounts to isolate departments and their associated users-       Assign granular permissions to users to say what they can and cannot do on the cloud-       Associate public and private clouds with each account-       Pre-load the account with tested and approved server configurations-       Launch servers and associate storage snapshots and volumes-       Monitor active servers-       Review the usage and cloud spend within the account-       And finally, audit changes made to the servers, deployments, and other entities within the account