Platform.sh, a Platform as a Service aimed at bringing continuous delivery to Drupal, is not all things to all developers, says Nick Hardiman. Find out how this PaaS saves its target audience time.

Platform.sh is a new Platform as a Service (PaaS) from Commerce Guys, a software company with offices in London, Paris, and Michigan. Platform.sh's purpose is to bring continuous delivery to the open source CMS Drupal.

Commerce Guys launched Drupal Commerce in 2011; Drupal Commerce is a mass of modules to enable e-commerce in Drupal. Now Commerce Guys have built a PaaS to help developers working with Drupal Commerce. If you look hard, you can see a few Platform.sh site actions, like OAuth login and SSH key install, flick past the Commerce Guys site site.

Like all PaaS vendors, the Platform.sh team takes care of capacity, resilience, security, and all the rest of that operational malarkey for the developer. Platform.sh is new, and it's not even out of the beta test phase yet. Commerce Guys recently received buckets of cash to roll out its new Platform.sh service, but is it ready for prime time? And if so, who will feel more at home here than with other PaaS offerings?

Launch, branch, clone, merge

The first developmental stop on Platform.sh is to use the web UI to launch a new project. The launch initializes a new technical environment for a team to work in. Since Platform.sh users are agile teams, they get ready for a sprint like this:

Launch a new project. Create a master Drupal site for end users. Invite team members to sign in. Create branches for the team to work on.

Team members have different roles. A member may be a scrum master with the power to merge branches, a developer who makes code changes, or an external company with read-access only.

Platform.sh's environment branches are like source code branches. The live site is copied into a hierarchy the same way a source code control system branches code.

The master environment is branched to create a QA environment. QA is branched to create sprints. A sprint is branched into stories.

The team ends up with a hierarchy of site copies for developers to work on. Code, databases, search engine indexes, and other software can be shifted around in this hierarchy: branches are synchronized, projects are checked out, and environments are backed up.

Test sites

Each branch has its own public URL so changes can be viewed and tested. The master site has a URL along the lines of http://master-was5o4df4vg6o.eu.platform.sh/ and a story site http://story1-was5o4df4vg6o.eu.platform.sh/. This allows each developer to check their work as they progress.

The Platform.sh CLI

Platform.sh expects developers to use a Command Line Interface (CLI) for detailed work. A CLI tool called platform provides a domain-specific set of commands to speed up the developer's work.

$ platform Welcome to Commerce Platform!

Platform.sh expects the developer to have these specialist files and PHP helper applications already installed:

Drush (Drupal shell), another CLI popular with Drupal developers;

SSH keys, the de facto standard for authenticating to cloud machines; and

Composer, a packager that makes PHP dependency installs easier. The platform-cli application is PHP code wrapped in a Composer package.

The platform CLI provide lots of little shortcuts to speed up work. If a developer types in this command, he can check out code to a local project folder:

platform get was5o4df4vg6o

If a developer types this command within a project folder, he is logged in to the corresponding remote environment:

platform drush ssh

It's easier than typing this:

ssh -o PasswordAuthentication=no -t was5o4df4vg6o-story1@ssh.eu.platform.sh bash

As all lovers of auto-complete know, less is more when it comes to typing.

Platform.sh is for agile Drupal teams

Developers have been checking out code, building with make-files, and merging changes since the dawn of the Model M keyboard, but that does not mean all developers would be at home with Platform.sh. This PaaS is aimed at the modern breed of developer, used to cloud services, git pulls, and week-long sprints.

Platform.sh is not all things to all developers -- it is aimed at professional Drupal developers, who work in teams and are comfortable with agile methods of development. Those are the people who will save time using this PaaS.

Also see