How To Manage A Multi Site In Drupal

Similar documents
Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Four Reasons Your Technical Team Will Love Acquia Cloud Site Factory

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

Improving your Drupal Development workflow with Continuous Integration

Virginia, United States Zurich, Switzerland Cape Town, South Africa. Hosted at the data center of VSHN, DIN-ISO/ IEC and Finma 2008/7 certified

TEST AUTOMATION FRAMEWORK

A new era of PaaS. ericsson White paper Uen February 2015

Zero-Touch Drupal Deployment

Mobile Application Platform

Global Software Change Management for PVCS Version Manager

Building Success on Acquia Cloud:

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Migrating to Cloud Best Practices and Strategies. Srinivasa Raghavan, CTO Office

Achieving Continuous Integration with Drupal

Preparing Your Business for Magento 2.0

Windows Server 2003 Migration Guide: Nutanix Webscale Converged Infrastructure Eases Migration

Web project proposal. European e-skills Association

Assembling a Next Generation Enterprise Web Infrastructure with Drupal and Acquia

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process

Hail or Fail: The Right Way. to Override Core. Mark Shust ecommerce Developer Metrics Marketing

Drupal Development and Consultancy

Putting It All Together. Vagrant Drush Version Control

A telecom use case with Cloud Foundry deployment

Picasso Recommendation

Azure Day Application Development

Achieve Automated, End-to-End Firmware Management with Cisco UCS Manager

The State of Application Delivery in 2015

The process of. The Software-as-a- Cloud-Based Software Model. Service Model

Streamline your drupal development workflow in a 3-tier-environment - A story about drush make and drush aliases

dxw s WordPress Platform

Continuous Integration and Delivery. manage development build deploy / release

Continuous Integration and Delivery at NSIDC

The Incremental Advantage:

systems WHITE PAPER Automating Continuous Integration over Complex IT Infrastructure

How the Cloud Works

Jenkins World Tour 2015 Santa Clara, CA, September 2-3

DIGITAL MARKETPLACE (G-CLOUD 7) OFFERING. Sopra Steria OneMobile SaaS Service. Introduction. Service Definition. Sopra Steria in the public sector

Goldseek + Silverseek Website Redesign & Migration

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Cloud Computing with Azure PaaS for Educational Institutions

What can the. SaaS Whitepaper. Cloud do for You?

Flexibility in Services. Simplicity in Implementation. Lintasarta Managed WAN Optimizer

Armedia. Drupal and PhoneGap Building Mobile Apps

MERAKI WHITE PAPER Cloud + Wireless LAN = Easier + Affordable

Unleash Competitive Advantage through Software Lifecycle Integration

Cloud Computing Safe Harbor or Wild West?

Everything You Need To Know About Cloud Computing

Creative Shorts: Twelve lifecycle management principles for world-class cloud development

Practical Guide to Platform as a Service.

Hosted CRM Software Benefits and Advantages

Platform as a Service: The IBM point of view

Vodafone Total Managed Mobility

How SITEFORUM provides you with main components to build and run an innovative cloud computing service for an industry or special interest group

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

Building a Continuous Integration Pipeline with Docker

Automation & Open Source. How to tame the Cloud?

vision realize your software-defined with the Digital Data Center from Atos Whitepaper

Virtualization, SDN and NFV

Business Values of Network and Security Virtualization

SDN CENTRALIZED NETWORK COMMAND AND CONTROL

A (Web) Face for Radio. NPR and Drupal7 David Moore

Deploy Your First CF App on Azure with Template and Service Broker. Thomas Shao, Rita Zhang, Bin Xia Microsoft Azure Team

How To Run A Drupal Website Without A Server Or A Server

Software as a Service (SaaS)

from programmer s point of view

Load and Performance Load Testing. RadView Software October

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

thoughtonomy Virtual Workforce for Service Automation

Session 11 : (additional) Cloud Computing Advantages and Disadvantages

Logging and Alerting for the Cloud

How To Achieve Continuous Delivery

STRATEGIC WHITE PAPER. The next step in server virtualization: How containers are changing the cloud and application landscape

Windows 10 Impact on IT departments and how to eliminate costly migration issues for Enterprises

EZ PLATFORM DESIGN AND DEVELOP CONTENT-DRIVEN WEBSITES AND APPLICATIONS

Continuous integration End of the big bang integration era

White Paper: Nasuni Cloud NAS. Nasuni Cloud NAS. Combining the Best of Cloud and On-premises Storage

Why SAAS makes sense: The benefits of Cloud Computing for Archiving

STREAMLINING COMPUTER DELIVERY PROCESSES USING 1E SHOPPING AND SCCM

Web applications today are part of every IT operation within an organization.

Preparing for Drupal 8

Migration and Building of Data Centers in IBM SoftLayer with the RackWare Management Module

Matrix the essence. five degrees Markt AB Breukelen The Netherlands. T:

Now that you have a Microsoft private cloud, what the heck are you going to do with it?

Terrace Consulting Services

WHITE PAPER Redefining Monitoring for Today s Modern IT Infrastructures

White. Paper. Benefiting from Server Virtualization. Beyond Initial Workload Consolidation. June, 2010

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

PROJECT HOSTING 3.0 LANCE ALBERTSON

Hydrant E-Learning Management System (HELMS)

Google. Iustin Pop, <iustin@google.com> Google Switzerland. Sponsored by:

GOVERNMENT SERVICES. Open Source Software Development Web Content Management Mobile + Web Apps

CLOUD APPLICATION INTEGRATION AND DEPLOYMENT MADE SIMPLE

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

DevOps and SUSE From check-in to deployment

Network Virtualization Solutions - A Practical Solution

Building Docker Cloud Services with Virtuozzo

VERITAS Business Solutions. for DB2

Transcription:

http://platform.sh sales@platform.sh MODERNISING DRUPAL MULTI-SITE IMPLEMENTATIONS Drupal multi-site is easily re-architected to run each site in its own containerised environment. It s better and it costs less! Drupal multi-site is no longer the most cost effective way to implement and manage large numbers of similar sites. In fact there are many disadvantages to the multi-site approach, some of which disappear when using containers. But when Platform.sh is the PaaS running those containers, the rest of those problems go away and at the same time you gain a whole load of new advantages. We have experience doing this for 100+ site implementations onto Platform.sh in our own private cloud, and the value obtained is huge - Mike Carter, Technical Director, Ixis Drupal multi-site was a clever idea about 15 years ago, and it allowed many sites to run off a single code base. The problem it solved at the time was finding a way to easily manage many similar sites without running many separate expensive infrastructures. So let s take a closer look at multi-site, containers, and the migration of one to the other. MULTI-SITE DISADVANTAGES There are many cost, performance and management constraints to a multi-site implementation, as follows: 1. Deploying multi-site is cumbersome The fact that all sites in multi-site deployments share one physical codebase means that all sites get deployed - at the code level - simultaneously. A deployment, however, is never just code, it is also the scripts that run after the code, most notably feature reverting, cache clearing, and database schema updates. It is typical to need 2-3 expensive and sometimes long-running Drush commands per deploy. These have to be executed on every site, and sequentially, otherwise you inadvertently DoS your own infrastructure. Deploying multi-site is dangerous Botching a code deployment to a single site is bad; if you have a code condition that breaks your site in some way, and it makes it through your testing to deployment, you will have the problem of a broken or offline site. With multi-site, the same code problem would take all of your sites offline, not just one. Multi-site multiplies the risk of any single deployment by the number of sites that you re running.

Deploying multi-site is not agile Deployment is not just a technical problem, it s a stakeholder problem. Every site owner and editor needs to know when you re deploying, and you may possibly have to coordinate downtime windows with them. This is an organisational and logistical problem that is multiplied beyond manageable control when running multi-site. Multi-site forces you to coordinate logistically across potentially unrelated teams to agree on deployment windows, and customer support to deal with change management or problem resolution that results from deployment. Multi-site is the opposite of agile. 4. Shared hardware means noisy neighbours You re locked in, all the sites are subject to the same capacity and release level limitations imposed by the common server architecture. If one site experiences a spike in traffic then all the other sites have less resources to draw upon and might be negatively affected. This noisy neighbour syndrome frequently happens and sometimes for less predictable reasons such as a DDOS attack or site-specific caching, code or theme-related issues. Requirements dependencies require all sites move in lockstep Multi-site takes away the choice to improve site usability with various PHP versions and extensions at the per-site level. Multi-site prevents you from upgrading any component or any site without affecting all sites equally. The cost and complexity some of our multi-site customers are experiencing has become overwhelming SPLITTING MULTI-SITE INTO SINGLE-SITE ENVIRONMENTS Separating multi-sites into individual environments is easy to do, and it brings many advantages. The basic requirements to make this happen are Git, drush make and Platform.sh. Git on its own is enough to solve the core problem that Drupal Multi-site previously attempted to solve: sharing a common Drupal codebase across many sites. With modern deployment tools, such as Platform.sh, it is sufficient to maintain Drupal code, such as a Drupal distribution or install profile, in a Git repository that is accessible over the internet. Services such as Drupal.org, Github, and Bitbucket fulfill this need perfectly. Deploying a Git branch or tag to many sites is not only easy, it guarantees that the sites will be running the same code, which is everything that Multi-site ever offered. With Git + Platform.sh, there are even more possibilities, as developers can choose a layered approach to code management, differentiating between a base distribution, sets of common modules or features, and site-specific components such as integrations, customisations, or themes, and manage each one in an organised and repeatable fashion. For example, changes that are meant to affect all sites equally can be implemented at the distribution level, whereas changes that only affect one feature can be implemented in a separate Git repository at the feature or common module level, and changes that affect only specific sites can be implemented directly in the Platform.sh Git repository for those specific sites.

Figure 1: How a containerised distribution works on Platform.sh. In this example the output is a single project with multiple environments; in practice the same model is being used to manage dozens or even hundreds of websites. The entire planning, architecture design and migration phase for our first large project (100+ sites) took less than 3 months. Platform.sh allowed us to hugely improve many aspects of the development and deployment process IS MY SITE READY FOR THE PLATFORM.SH ROACH? If you re running multi-site then the answer is: yes. Moving to a distribution-based setup should be straightforward and the preceding steps will have simplified and strengthened your architecture. Once you ve made the initial migration to containers, you are able to: 1. Use multiple Git repositories to manage the separate interdependent layers of the site build. Eg. you may use Drupal.org Git repositories to manage Drupal core, a base distribution, modules and themes. On top of that, a private Git repository might be used to define the build process (eg. Drush Make, Composer), and a number of other Git repositories might be used to manage specific custom modules or themes that are to be used in building the sites. Finally, Platform.sh provides a Git repository for every site, and that can be used for the code that is specific only to an individual site. Deploy many sites in parallel, or sequentially, but in any case all independently of each other. Assuming no problems with the distribution itself, there is no longer any risk of changes to one site breaking another. You don t need to coordinate between stakeholders on separate sites to plan deployment. Now your deployments are agile. Customise individual sites easily with targeted changes to the right component at the right layer in the right Git repository.

4. Mix up your technical requirements, running different backend services, components and release levels across different sites as required. One or more sites can try out the latest PHP version, or HipHop VM, without forcing all sites to do the same. Not worry about noisy neighbour syndrome, as performance issues are restricted to the container the site is running in. For example, a DDOS attack on one site can t affect the rest of the estate because there are no shared services such as memory/compute resources. 6. Scale resources for individual sites to deal with unexpected peaks. 7. Leave the management of every aspect of the hosting stack to Platform.sh but still keep enough flexibility to make your own decisions about the infrastructure without opening tickets. Deployments, feature changes and general operational management has become so much easier PLATFORM.SH SITE FACTORY: CREATING & MANAGING LARGE NUMBERS OF SITES Using the Platform.sh site provisioning API, you can quickly create new sites based on a specific starting point that you define. This allows you to churn out sites, on demand, and manage them centrally from common upstream Git repositories. You also retain the ability to heavily customise each individual site and incorporate bespoke components, without losing the upstream connection. This allows customers to: ARCHITECTURE OF A TYPICAL ENVIRONMENT 1. Easily create new sites, make changes and maintain them as well as decommission old sites, all without any dependence on the hosting provider; no support ticket required! SHARED EDGE LAYER Manage resource allocation for sites independently, eg. upsize, downsize, add storage etc. DEDICATED HTTP ROUTER Gain volume discounting on large numbers of sites 4. Provide each client their own dedicated infrastructure (ie. private cloud) Gain geographical independence for private regions CACHE DATABASE SEARCH Environments are completely self-contained and can be easily branched, which makes testing, evaluation, and on-boarding fast and safe.

Platform.sh has turned the previously onerous task of managing multiple sites into a highly streamlined production line CONTINUOUS DELIVERY (CD) AND CONTINUOUS INTEGRATION (CI) BENEFITS USING PLATFORM.SH MANAGED DISTRIBUTION FOR A MULTITUDE OF SIMILAR BUT DISTINCT SITES Currently achieved through a combination of the Platform.sh CLI, and integration of other CI and testing tools through the API. Better bulk-management features are on the roadmap. 1. 4. 6. 7. Easy maintenance of distributions that can be used as the basis for site deploys Automated deployments based on the distribution Retain ability to customise and write bespoke code per site Full testing and QA workflows available Granular access (per site) to specialist teams Broad access to programme management Ease of bulk administrative operations (user management, reporting, maintenance) Platform.sh is a Git-driven PaaS that hosts multiple applications on multiple technology stacks, while removing DevOps from your continuous delivery workflow. Learn more at https://platform.sh