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.
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.
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. 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. 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
21. Key Features & Benefits
Advanced Feature Set for Flexible Capabilities
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. 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. 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. 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. 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. 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. 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. 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. 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