Information for: DEVELOPERS   PARTNERS

Key concepts in Cloud Platform

Cloud Platform is a cloud-based hosting platform tuned for Drupal performance and scalability. Acquia manages your servers and provides an easy-to-use workflow for developing, staging, and publishing your Drupal applications. Acquia designed the Cloud Platform workflow to support the best practices identified by the Drupal community for managing a Drupal application. You should understand the following key concepts to make the most of Cloud Platform.

Comparing Cloud Platform to virtual private servers

Cloud Platform is more than a virtual private server. It is a carefully selected, configured, tested, deployed, and crafted open-source platform optimized to run highly available Drupal applications.

Your Cloud Platform interface may consist of a single shared server or one or more dedicated servers. Each Cloud Platform server runs the same versions of each element of the platform:

  • Linux operating system
  • Apache web server
  • MySQL database
  • nginx reverse proxy load balancing server
  • Varnish® cache

This standardization enables Acquia to efficiently provision, test, manage, monitor, and upgrade the platform. As a result, you cannot select and install your own versions of the operating system, web server, or other platform software your application runs on. For more information about what is installed on Cloud Platform and what software is and is not supported, see Cloud Platform technology platform and supported software.

With Cloud Platform, you have the following permissions:

  • Non-privileged access to your servers using SSH, using a public key you register with your Cloud Platform account.
  • No root or sudo permissions.
  • Full control over the Drupal docroot, including Drupal core, contributed and custom modules, and the web servers’ .htaccess files.
  • No write permissions for php.ini,my.cnf, or Apache configuration files.

Code, databases, and files

The key components of a Drupal application are the code, databases, and files.

  • The code is your Drupal core installation, any contributed or custom Drupal modules you have installed, and themes.
  • The databases store your application’s content, configuration, and other information, including Drupal nodes, user information and log information.
  • The files store user-uploaded objects, such as pictures and PDF files.

The Cloud Platform workflow enables you to manage your application’s code, database, and files separately in your development, staging, and production environments. For more information, see the following pages:

Multiple environments: Local, development, staging, and production

Each Cloud Platform application has four (or more) environments to optimize your application development and publishing workflow:

  • Local - In the local environment, you develop your application locally, and see the effects of your changes immediately. With version control, multiple web developers can work simultaneously on different parts of the application.
  • Development - When you have multiple developers working on an application, the Development environment is for initial integration testing. The developers commit their changes to the version control system (VCS), Cloud Platform deploys the changes in the Development environment so that everyone can see them. Alternatively, you can enable the Live Development feature, and edit your code directly in your development or staging environment.
  • Staging - In the staging environment, you can test changes to your application before deploying them to Production.
  • Production - Your end users see only your Production environment. You can pull your application’s database and files from your production environment to your non-production environments, so you can work with the current state and content of your application as you test and develop it.

Cloud Platform provides a separate instance of your databases and file directories for each of your application’s environments. The Cloud Platform include file for your application configures your settings.php file to connect each application to its correct database instance and files directory.

Cloud Platform Enterprise subscribers can set up additional environments. Additional environments are useful for integration or load testing, and may also enable Cloud Platform to fit better with your development workflow.

Developing code locally or in the Development environment

Cloud Platform supports two models for developing code: local development and live development.

  • Using local development, you develop your application locally, using a local checkout of your Cloud Platform repository, and then commit to your codebase. Acquia Dev Desktop is a free tool you can use to accelerate your local development and sync your changes with your Cloud Platform environments.
  • Using live development, you develop your application on your Cloud Platform non-production environments.

Version control and multiple environments

Cloud Platform enforces the use of a VCS to efficiently manage your codebase. Acquia supports the Git VCS. When developing locally, you send changes to your application’s code on Cloud Platform using version control software, instead of copying the files directly using file upload tools, such as FTP. Following these best practices leads to more efficient, more flexible, and less error-prone development and deployment.

Any environment can deploy any branch or tag from your code repository. An environment deploying a branch immediately receives any code committed to that branch. When committing your code to your branch (for example, master), your changes deploy immediately.

Debugging your application

If your application is on Cloud Platform Professional, you are responsible for managing your application, while Acquia manages your servers. Successful application management requires you to perform the following basic debugging tasks:

  • Viewing the Apache error logs to review PHP errors
  • Running basic Drush commands from the command line, such as drush status, to retrieve error messages for debugging applications that may be offline

Load balancing

Cloud Platform uses nginx for HTTP and HTTPS load balancing. When the load balancer detects a web server failure, it stops sending web requests to the failed server. To guard against load balancer failures, Acquia uses a redundant load balancer configuration, with an active load balancer backed up by a passive load balancer. If the active load balancer fails, the passive load balancer is available to take over.

Acquia’s operational infrastructure constantly monitors all load balancers (and the websites behind those balancers) to ensure they are accessible, reliable, and reachable. When Acquia’s monitoring system detects an error, it immediately alerts Acquia’s 24x7 operations staff. Acquia will then determine the reason for the failure, which can include high website traffic, a denial-of-service attack, or hardware failure. Depending on the type of failure, the passive balancer is brought online within seconds.