Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Iron.io Technical Overview

A high level technical overview of Iron.io's event-driven async developer platform.

  • Be the first to comment

  • Be the first to like this

Iron.io Technical Overview

  1. 1. Iron.io Technical Overview
  2. 2. Confidential & Proprietary - Iron.io Infrastructure Services for the Modern Cloud Reliable message queue service that lets you connect systems and decouple components. Multi-language worker platform that runs parallel tasks in the background at massive scale.
  3. 3. IronWorker Highly Scalable Event-Driven Async Processing
  4. 4. Confidential & Proprietary - Iron.io IronWorker is "serverless" to end user IronWorker is “serverless” to End User
  5. 5. Confidential & Proprietary - Iron.io IronWorker is Higher Abstraction Physical Infrastructure Virtualized IaaS Containerized Jobs / Tasks
  6. 6. Confidential & Proprietary - Iron.io IronWorker is "serverless" to end user IronWorker is Big Compute
  7. 7. Confidential & Proprietary - Iron.io IronWorker is Multi-Tenant API
  8. 8. Confidential & Proprietary - Iron.io IronWorker is Plain Ole’ Code
  9. 9. Confidential & Proprietary - Iron.io How It Works Write Your Worker: IronWorker's environment is a Docker container sandbox that your task is executed in. Anything you write that runs on your machine should be able to be run in IronWorker. Create Your Code Package: Package all your code and its dependencies together and upload it to IronWorker so your code can run entirely on IronWorker's servers. Upload Your Code Package: Once you've defined your worker and its dependencies with a .worker file, you can upload it using the command line tool for IronWorker. Queue or Schedule Your Task: You can either queue your tasks to run in parallel, or schedule them to run at specific times from the command line or directly from your application. Inspect Your Worker: To aid in debugging, everything that is printed to STDOUT in a worker is logged to your dashboard or you can hook up an external service to collect your logs.
  10. 10. IronWorker API RESTful Scheduling and Task Processing
  11. 11. Confidential & Proprietary - Iron.io Code API URL HTTP Verb Purpose /projects/{Project ID}/codes GET List Code Packages /projects/{Project ID}/codes POST Upload or Update a Code Package /projects/{Project ID}/codes/{Code ID} GET Get Info About a Code Package /projects/{Project ID}/codes/{Code ID} DELETE Delete a Code Package /projects/{Project ID}/codes/{Code ID}/download GET Download a Code Package /projects/{Project ID}/codes/{Code ID}/revisions GET List Code Package Revisions IronWorker makes it easy to write, package, and upload code to our system
  12. 12. Confidential & Proprietary - Iron.io Task API URL HTTP Verb Purpose /projects/{Project ID}/tasks GET List Tasks /projects/{Project ID}/tasks POST Queue a Task /projects/{Project ID}/tasks/webhook POST Queue a Task From a Webhook /projects/{Project ID}/tasks/{Task ID} GET Get Info About a Task /projects/{Project ID}/tasks/{Task ID}/log GET Get a Task's Log /projects/{Project ID}/tasks/{Task ID}/cancel POST Cancel a Task /projects/{Project ID}/tasks/{Task ID}/progress POST Set a Task's Progress /projects/{Project ID}/tasks/{Task ID}/retry POST Retry a Task IronWorker provides detailed insight into task state
  13. 13. Confidential & Proprietary - Iron.io Schedule API URL HTTP Verb Purpose /projects/{Project ID}/schedules GET List Scheduled Tasks /projects/{Project ID}/schedules POST Schedule a Task /projects/{Project ID}/schedules/{Schedule ID} GET Get Info About a Scheduled Task /projects/{Project ID}/schedules/{Schedule ID}/cancel POST Cancel a Scheduled Task IronWorker provides a scheduling service for managing CRON-like tasks
  14. 14. IronWorker Architecture Industrial-strength platform for massive scale
  15. 15. Confidential & Proprietary - Iron.io
  16. 16. IronWorker HUD Advanced Dashboard for Managing Tasks & Schedules
  17. 17. Confidential & Proprietary - Iron.io Tasks List
  18. 18. Confidential & Proprietary - Iron.io Scheduled Tasks
  19. 19. Confidential & Proprietary - Iron.io Task Details
  20. 20. Confidential & Proprietary - Iron.io Worker Analytics
  21. 21. Key Features & Benefits Advanced Feature Set for Flexible Capabilities
  22. 22. Confidential & Proprietary - Iron.io Task Priorities IronWorker includes a built-in priority manager, allowing users to specify the importance of specific tasks to be queued and run API P0: Low Priority P1: Medium Priority P2: High Priority
  23. 23. Confidential & Proprietary - Iron.io IronWorker Stacks Name Language/Tool Version OS Default Ruby-1.9.3p194, java-1.7, scala-2.9, mono- 2.10, php-5.3, node-0.8, python-2.7 Ubuntu 12.10 ruby-1.9 Ruby 1.9.3p194 Ubuntu 12.10 ruby-2.1 Ruby 2.1.0p0 Ubuntu 12.10 java-1.7 Java 1.7.0_51 OpenJDK Ubuntu 12.10 java-1.8 Java 1.8.0_20 Ubuntu 12.04.5 scala 2.9 Scala 2.92 Ubuntu 12.10 mono-2.10 Mono JIT 2.10.8.1 Ubuntu 12.10 mono-3.0 Mono JIT 3.0 Ubuntu 12.10 mono-3.6 Mono JIT 3.6 Ubuntu 12.10 ... ... ... IronWorker includes a number of base stacks to support multiple languages and libraries
  24. 24. Confidential & Proprietary - Iron.io Custom Stacks Developers can define runtime environments and write workers for specific language versions of Ruby, Python, PHP, Node, Java, Scala, and Go. Worker environments are built on Docker containers, allowing for ease of customization and configuration.
  25. 25. Confidential & Proprietary - Iron.io Webhooks Make the most of the evented web by hooking your workers up to an HTTP Post endpoint, another worker, or an IronMQ queue. The use of webhooks allows you to create a really powerful workflow across several distinct applications without the need of official integrations.
  26. 26. Confidential & Proprietary - Iron.io Logging Integrations To aid in debugging, everything that is printed to STDOUT in a worker is logged to your dashboard, and can be configured to log to an external service. We also offer integrations with popular monitoring and logging services such as PaperTrail, New Relic, DataDog, and StatHat.
  27. 27. Confidential & Proprietary - Iron.io Scheduling & Prioritization IronWorker tasks are flexible to either be run immediately or scheduled at a specific time via a client library, the CLI, or you directly within the IronWorker dashboard. Larger IronWorker plans also allow you to set your tasks to be run at a higher priority, to ensure it gets queued up within an acceptable timeframe within our cloud environment.
  28. 28. Confidential & Proprietary - Iron.io High Memory / CPU Instances For advanced users with heavy processing needs, we offer more robust machines for your workers to run, giving you maximum performance with the elastic provisioning benefits of a cloud service.
  29. 29. Confidential & Proprietary - Iron.io Dedicated Clusters For users with custom SLA requirements and high volume processing, we offer fully dedicated worker environments that provision resources for your tasks and your tasks only, providing you with your own virtual private cloud with all the benefits of IronWorker.
  30. 30. Iron.io 325 9th St San Francisco, CA 94103 1-888-939-4623 www.iron.io chad@iron.io Thank You Chad Arimura CEO, Iron.io Further Reading: http://dev.iron.io http://iron.io
  31. 31. APPENDIX
  32. 32. IronWorker Code Example
  33. 33. Confidential & Proprietary - Iron.io IronWorker - MasterMaster Worker
  34. 34. Confidential & Proprietary - Iron.io IronWorker - SlaveSlave Worker
  35. 35. Confidential & Proprietary - Iron.io IronWorker - SchedulingCreate Schedule
  36. 36. Confidential & Proprietary - Iron.io IronWorker - Upload Code PackageUpload Code Package

×