Platform Overview
drush.io is a continuous delivery platform that lets you encapsulate Pantheon workflow operations into self-service jobs. You can run these jobs at the push of a button or an HTTP request.
Use drush.io to increase collaboration and transparency in your DevOps practices.
There are three basic components to the drush.io platform:
- The user interface: for writing, collaborating on, and executing jobs,
- The runtime matrix: which manages job queueing and execution,
- The API: which you can use to run jobs from your own systems.
drush.io is complementary to cloud continuous integration services like Circle CI or Travis CI. Use those tools to automate your site build and test process. Use drush.io as the glue for all of the continuous delivery and operations processes around the build.
Concepts
Accounts: When you sign up for drush.io, you’re signing up for an account representing you as an individual. You and only you have access to this account.
Credentials: In addition to basic information about who you are, your account also has a credential tied to it; a credential consists of a Pantheon machine token (that you must provide) and an SSH key pair (that we generate for you). These values are encrypted on the platform.
Projects: Your account can be a member of one or more projects. Each project consists of a unique library of jobs and collaborators. Think of projects as a way to group jobs around a business or organization.
Jobs: On drush.io, a job is a logical operation that may consist of one or more CLI commands, similar to a shell script. Jobs live under projects and can be edited or executed by any project member.
When you run a job, the job uses your account credential to authenticate with Pantheon. This ensures audit-ability and keeps access control centralized on Pantheon.
Job Runs: When you execute a job, you’re creating a job run, which can be in one of several states:
queued
: indicating the job execution request has been received, but has not been assigned to a runtime environment,running
: indicating the job is in the process of executing,complete
: indicating, the job run finished successfully and without error,error
: indicating the job run finished, but one or more underlying commands resulted in an error.
Once a job run has finished, you can view its log output and the duration of the run.
Teammates: Any number of accounts can be linked to a project. All project members can write and execute jobs. Administrators can additionally invite/remove teammates from a project and connect the project with a Slack workspace.
Integrations: You can generate an API token to run jobs via the drush.io API. Like credentials, API tokens are tied to your individual account, not a project. You can generate as many API tokens for your account as you wish. You may also revoke API tokens at any time.
Frequently Asked Questions
Is there a limit to the number of jobs I can run concurrently?
Yes. Jobs are dynamically allocated to run against a distributed (but finite) matrix of runtimes. During the beta, each project is allocated 2 concurrent job runs; any additional run requests will be queued and run as soon as an existing run completes.
If you need more concurrent runs, contact us!
Why are you called drush.io?
This service was originally envisaged as a way to run Drupal’s drush command line interface from anywhere. Although you can still run remote drush commands on drush.io, we’ve evolved the platform to serve even more DevOps needs.
We still like the name though, so we coined a backronym to describe what we do now: distributed runtime utility shell.