As anyone who has ventured into managing multiple drupal sites and platforms with Aegir knows, its an incredibly powerful tool that comes with a learning curve to use effectively.
On top of that it has a very active contrib ecosystem that can extend its capabilities in powerful new ways
This session aims to connect a few of the existing dots by covering topics such as
*The different flavours of Aegir - BOA, Devshop, Valkyrie
*Getting up and running with Aegir in the cloud.
*Local development environments using Vagrant.
*Remote importing production sites
*Different approaches to building sites under version control to use as platforms within Aegir
*Workflows for Dev/Stage/Prod using Aegir.
*Building SaaS Drupal products using Aegir.
This is intended to be a roundup of the various projects and advanced techniques surrounding working with Aegir to evaluate where its at, what we can do with whats out there already and what still needs to be done to make it even better.
It will not be a code heavy session although some familiarity with what Aegir does beforehand may be helpful as we will be covering more advanced usage topics.
The dev/stage/prod workflow demonstration video used in the presentation is at https://vimeo.com/76546448
2. What does Aegir do?
Aegir allows you to deploy and manage many Drupal
sites, and can scale across multiple server clusters.
Aegir makes it easy to install, upgrade, and backup an
entire network of Drupal sites.
Enforces best practices site building using drush make,
features and install profiles
https://drupal.org/project/hostmaster
http://community.aegirproject.org/
3. Git Strategy: Minimal
■ No contrib in version control
■ Only custom themes, modules & features
■ Drupal core not included
■ Deploy platforms with Aegir direct from .build
■ Is lightweight and makes platforms portable
■ Patches applied from the make file
■ Treats a site like a product
■ Is suited to multiple sites/multiple environments
per platform model
■ Is a distribution
■ Aegir/BOA works well with this method.
■ Devshop does not work with this yet.
4. Git Strategy: Full
■ Full codebase in git repository
■ Includes all contrib modules, themes & features
■ Includes Drupal core code
■ Integrates very well with Devshop
■ Can work fine with Aegir/BOA too.
■ Is suited to one site/multiple environments per
platform model
■ Has benefits in that platforms do not rely to
drupal.org to be built
■ Is less flexible and re-usable
■ Is a larger codebase to move around with all
libraries modules etc
5. Switching to Install Profiles
These modules help to move sites from a full
codebase to minimal install profile based codebase
■ https://drupal.org/project/profiler
Profiler allows you to quickly and easily create new
install profiles
■ https://drupal.org/project/profiler_builder
Profiler Builder is a module for automating the
creation of installation profiles and distributions.
■ https://drupal.org/project/profile_switcher
Used to switch between install profiles found in
/profile directory. This module is useful for moving
an existing site to distribution.
6. Vagrant
Development environments made easy.
Create and configure lightweight, reproducible,
and portable development environments.
Live in contained “boxes”
http://www.vagrantup.com/
https://drupal.org/project/vagrant
7. Drush Vagrant
Drush Vagrant Integration provides Drush
commands to accomplish common Vagrant
tasks, and provides a powerful templating
framework ('blueprints').
It also has tools to implement Drush aliases
for Vagrant projects and VMs, thus allowing
simpler remote control of Vagrant projects.
https://drupal.org/project/drush-vagrant
http://drupal.org/project/drupal-up
https://drupal.org/project/aegir-up
8. Barracuda Octopus Aegir
• Barracuda: Barracuda is a bash script to install and/or
upgrade, tuned for high performance Aegir Master
Instance with all related system services.
• Octopus: Octopus is a bash script to install and/or
upgrade, tuned for high performance, Aegir Satellite
Instances, compatible with Barracuda
• High performance LEMP Aegir stack
https://drupal.org/project/boa
9. Barracuda
Barracuda is the main script for the base/core
Aegir Hosting System install and upgrades,
including OS environment, main Aegir instance,
but no platforms will be added there to keep it
compatible with all existing and future installs
Tuner script available for easy system tuning
https://drupal.org/project/barracuda
10. Octopus
Octopus is an Aegir + Platforms installer and updater
It allows to install new versions of platforms with clean
directory structure, with code shared between all
created instances, so one vanilla Octopus instance is
using only ~18 MB, while most of the code, which is
over 1700 MB total, is shared.
Sharing the code between instances is of critical
importance, because it allows you to dramatically lower
RAM and CPU usage, because most of the actively
used code is opcode cached with APC.
https://drupal.org/project/octopus
11. Local BOA
https://github.com/iaminawe/boa-vagrant
• An unofficial vagrant/chef installer to easily set
up a local BOA development environment
• Full setup in about 45 mins
• Includes patches for hosting import module
and updates for Virtualbox
• Mounts platforms folder transparently to your
file system to work on it locally in the guest OS
• Fork and update user & build info in
cookbooks
13. Managed Hosted BOA
https://omega8.cc/
• Created by the talented team behind the
Barracuda/Octopus projects
• Is the exact same stack you are already using
• Blazingly fast with core based pricing model
• Highly optimized Aegir environments in the
cloud
• Amazing technical support on many levels
15. Devshop: Drupal Devops in a
box
• Host all of your Drupal projects, with unlimited
environments each, on one or many servers.
• Use the git host of your choice and follow your own
branching strategy.
• Web UI for Pulling Code, Copying Data, Committing
Features, Running Tests, and Forking Environments.
• Set of modules that add to an existing Aegir install
https://drupal.org/project/devshop
16. 1. to simplify management of multiple
environments for multiple Drupal projects.
2. to provide web-based tools that streamline the
Drupal site building workflow.
3. to provide a common, open-source
infrastructure for Drupal development shops.
Devshop Goals
https://drupal.org/project/devshop
18. DevOps for Drupal
■ Valkyrie is a Drupal development and hosting system built on
Aegir and DevShop. Among Aegir's many powerful features is
making it easy to keep a large number of sites up-to-date
using a common platform defined by a Drush makefile.
■ While DevShop introduces several components crucial to
development such as projects and environments, but
prioritizes flexibility over maintainability by putting the entire
platform under Git.
■ Valkyrie strives for the best of both worlds, leveraging
DevShop's developer-focused innovations, while maintaining
Aegir's sysadmin focus on the security and on-going support
that production sites require.
http://drupal.org/project/valkyrie
19. Convergence
■ Devshop + BOA together?
https://drupal.org/node/1935810
■ Currently Aegir is D6 and stable release is at 1.1
■ 2.x branch is in testing at 2.0-rc4
■ Upgrading Aegir to D7 has begun
https://drupal.org/node/1261030
■ Skynet takes over
http://www.youtube.com/watch?v=_Wlsd9mljiU