Cloud hosting platforms. Part two: Acquia Cloud

Introduction

A basic web hosting stores code and a database of a site and makes it accessible for internet users. However, modern hosting platforms do more than that - they act as a tool of the development process. Acquia Cloud is one of such modern hosting platforms that can enhance your work in a number of ways. Here are some of them:

  • isolated environments for dev, stage, and prod;
  • workflow and git support;
  • basic configuration controllable from a dashboard;
  • extensive documentation;
  • Acquia Insight and Acquia Search.

Let’s look at them in detail.

Isolated environments

Acquia Cloud provides 3 isolated environments out of the box: dev, stage, and prod. Each of them is used for different purposes: a common approach is to test changes on dev, move them to stage to show to a client, and deploy to prod once the client approves them. Each environment has its own code instance, a database, and files. For an initial site import, you can upload a database backup and files to the environment using the ssh connection. Later, the database and the files can be moved between environments by using drag-and-drop in a dashboard. Code can be switched between dev, stage, and prod, too. And that’s the next point.

Acquia Cloud isolated environments
Acquia Cloud isolated environments

Workflow and git support

Acquia Cloud provides a git repository per site (aka application) with different branches or tags being deployed on different environments. As a developer, you are free to use whatever git workflow suits you and a project better, so code moves from one environment to another the way you want. Combine this with the ease of moving a database and files around - and the overall workflow between dev, stage, and prod becomes fully controlled by you, the developer! If you are familiar with the workflow of Pantheon, you already see how flexible workflow on Acquia Cloud is. Of course, you can work in the way Pantheon suggests, you just don’t have to. Acquia provides the workflow recommendations but it’s up to you whether to use them or not.

For current projects, we use this workflow.

There are 3 main branches - master, dev, and stage (the last two are created from the master). The dev branch is deployed on the dev environment, the stage branch is deployed on the stage environment, and a relevant tag created from the master branch is deployed on the production one. Tags are used on the prod to prevent recent master branch code updates from appearing on the live site until we want that explicitly. Also, it’s easy to switch tags around if any fixes should be applied. We create a feature branch from master to add new features to the site, and later merge the results to the dev and then to the stage branch. Once changes are checked and approved we merge the feature-branch back to the master, create a new tag and deploy it on the prod environment.

Dashboard Interface

There are more dashboard interface options available than just switching branches around environments. Here some actions available via the interface.

  • Control the workflow of code, files, a DB.
  • Create and download database backups.
  • Clear a varnish cache.
  • Set up cron jobs (you can set up a time frame, a command to run or an url to visit).
  • Add a ssl certificate, enable an https access.
  • Watch log records appearing in real time. Multiple kinds of logs can be watched: list of requests to a web server (access.log), normal drupal watchdog, a list of php errors.
  • Download most recent logs.
Acquia Dashboard Interface
Acquia Dashboard Interface

The interface also reminds you how to access a git repository and how to connect to a server via ssh. There you can download backups of older logs, upload files via rsync.

Scheduled jobs Acquia
Acquia Dashboard Interface

Documentation

Each category inside of a dashboard contains references to the documentation. Acquia provides extensive documentation and a number of articles about working with Cloud and Drupal, writing modules, working with drush aliases, ssh, cron, rsync, etc. - lots of useful things for the development process.

Acquia provides services that can be integrated into a site hosted on Cloud.

Acquia insight

Acquia Insight is a tool that looks through a site, evaluates its performance and security, and gives out Acquia Insight Score. A higher score means that fewer issues have been found. If you have ever struggled to explain to a client some technical problem the site has (e.g. why PHP code should be removed from blocks and panels), Insight may help you by highlighting these problems in a report and lowering the overall Acquia Insight score. Clients would like to see a nice green mark of “100%” there instead, so Acquia Insight can help you convince them to approve tasks on refactoring and optimization.

Acquia Search

Another service that works with Cloud is Acquia Search. It replaces a default site’s search through a database so it works faster. Acquia Search is a combination of Drupal module and software configuration on a server and it is based on Apache Solr and Facet API. However, you should be careful with the configuration of search indexes on different environments when using this module, otherwise, nodes from a dev site (or even a local machine) can make their way to search results on a live site. To prevent that, search indexes should be set in the read-only mode on all environments besides prod.

Conclusion

To sum up, Acquia Cloud is a hosting platform that integrates with a development workflow to help you spend time efficiently. By providing developers with isolated environments for different purposes, centralizing deployment in one interface and giving tools and documentation on how to use them, Acquia Cloud saves you time and effort.

Now you know some ways how cloud hosting can improve your work process, so you can test them yourself with a 30-day trial application on Acquia Cloud Free.

P.S.: In case you have missed part one of this series of articles - check out what benefits you can get from another cloud platform - Pantheon.

You might also like