1 / 37

Aegir Hosting System One Drupal to Rule Them All

COLLEGE OF ENGINEERING. Aegir Hosting System One Drupal to Rule Them All. Agenda: Aegir Hosting System. Introduction Challenges maintaining sites How Aegir can help Using Aegir Core components Servers, sites, and platforms Live demo Advanced Topics Details Gotchas Awesomeness

yan
Download Presentation

Aegir Hosting System One Drupal to Rule Them All

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COLLEGE OF ENGINEERING Aegir Hosting System One Drupal to Rule Them All

  2. Agenda: Aegir Hosting System • Introduction • Challenges maintaining sites • How Aegir can help • Using Aegir • Core components • Servers, sites, and platforms • Live demo • Advanced Topics • Details • Gotchas • Awesomeness • References

  3. Intro: Aegir Hosting System Aegir @ Ohio State University • 3-4 known Aegir instances • 300+ sites in Aegir and rapidly growing. My Experience • Almost 2 years starting with 0.4 • Written some internal extensions. • 100+ sites Why Aegir? • Encourages some best practices. • Order of magnitude efficiency savings with high volumes of sites. • Works for few or many sites (once you understand it).

  4. Intro| Challenges: Create a Site from Scratch • Create a database • Create a database user • Copy Drupal files out to a web server • Set appropriate file permissions • Configure Apache • Run Drupal installer

  5. Intro | Challenges: Upgrade a Site • Take site offline (maintenance mode) • Make a backup • Update files • Run update.php • Apply any manual configuration changes. • Take site out of maintenance mode.

  6. Intro | Challenges: Other Concerns • Software audits • Repeatable deployments • General administration • Testing changes • Staging environments • Regular backups

  7. Intro | Challenges: Options • Maintain by hand • You manage everything • Easy to start out • Doesn’t scale well • Become a Drush ninja • You manage everythingNow with scripts! • Scales as well as you • Use Aegir • Setup requires knowledge • Novice can manage sites • Expert can use Drush-fu • Encourages best practices

  8. Intro | Challenges: #Drupal Sites vs Cost to Sanity

  9. Intro | Aegir: One Drupal to Rule Them All Aegir can manage • Apache, Nginx • MySQL • Drupal sites & platforms • Upgrades • Backups But wait, there’s more! • Free Drush CLI! • Learn best practices! • So easy, anyone can use! • Now midi-chlorian free!

  10. Intro | Aegir: Hosting - awebsite to manage websites

  11. Intro | Aegir: Provision - Drushextension backend Sh-3.2$ drush | grep provision provision-backup Generate a back up for the site. provision-backup_delDelete a backup file. provision-clone Clone a site between platforms. provision-delete Delete a site. provision-deploy Deploy an existing backup to a new url. provision-disable Disable a site. provision-enable Enable a disabled site. provision-import Import site to provision provision-install Provision a new site using the provided data. provision-lock Lock a platform from having any other sites. provision-login_reseGenerate a one-time login reset URL. provision-migrate Migrate a site between platforms. provision-restore Restore the site to a previous backup. provision-save Save Drush alias provision-unlock Unlock a platform provision-verify Verify the framework is correctly installed. provision-zone Manipulate a zonefile

  12. Using Aegir | Servers: Web or Database • Web Servers • Apache • Nginx • Database • MySQL • Servers have: • IP Address(es) • Port(s) • Credentials • Etc

  13. Using Aegir | Servers: Web or Database

  14. Using Aegir | Platforms: Root of a Multi-Site Install • OpenAtrium-rc1 • puppies.com • kittens.org • OpenPublic-beta1 • billthecat4pres.com • toonces4gov.com • A platform can have multiple sites but can reside only on one web server.

  15. Using Aegir | Platforms: Create a Platform http://www.youtube.com/watch?v=A_QIvMLoouI

  16. Using Aegir | Sites: Your Websites • OpenAtrium-rc1 @ server1 • puppies.com • kittens.org • OpenPublic-beta1 @ server2 • billthecat4pres.com • toonces4gov.com • Sites are tied to a DB server and platform. The platform determines which web server the site runs on.

  17. Using Aegir | Sites: Create a Site http://www.youtube.com/watch?v=jbJefaWUE-0

  18. Using Aegir | Migrations: Upgrade One or Many Sites • Site 1 Create a new platform with the upgraded code. Migrate sites (or entire platforms) to the new platform. • Site 2 • Site 3

  19. Using Aegir | Upgrades: Upgrade One or Many Sites http://www.youtube.com/watch?v=KD5KQTkj4Lk

  20. Using Aegir | Backups: Manual and Automatic • Upgrades and other actions automatically create backups. • You can manually create/restore backups from web ui. • Backups are stored locally (/var/aegir/backup) • You can restore backups to another Aegir instance (with a little work)

  21. Using Aegir | Backups: How to Backup / Restore a Site http://www.youtube.com/watch?v=YCIRmtf_RV4

  22. Using Aegir | Cloning: Make a copy of your site • Works just like an upgrade/migration. • Great way to test a migration. • Can be a way to get a test copy of a site.

  23. Advanced | Migrate+Rename/Cloning: Under the Hood When we migrated/cloned from puppies.com to the-puppy.com… How did this… <imgsrc=“/sites/puppies.com/files/vienna-sausages.png”> Get changed to this… <imgsrc=“/sites/the-puppy.com/files/vienna-sausages.png”> Aegir fixes some content programmatically. It also adds this alias /files/vienna-sausages.png

  24. Advanced | Hooking In: vhost configuration Aegir regenerates your vhost configuration (all the time). /var/aegir/.drush/<whatever>.drush.inc <?php  function <whatever>_provision_apache_vhost_config($uri, $data) {    if ($uri == “abc.com") {      return array("php_valueupload_max_filesize 100M", "php_valuepost_max_size 200M");    }  }?> See also pre.d and post.dvhost configurationhttp://community.aegirproject.org/node/341

  25. Advanced | Hooking In: settings.php Aegir regenerates your settings.php file (all the time). This file is included at the end of your Aegir controlled settings.php /var/aegir/platforms/sites/<yoursite>/local.settings.php For example, you might want to configure a maintenance theme. <?php $conf['maintenance_theme'] = 'themeName'; ?>

  26. Advanced | Installation: Easy or Hard • Vanilla Aegir • If you use Ubuntu/Debian, you can use apt-get.http://community.aegirproject.org/node/400 • If you use RHEL/Centos/etc, you can use the manual instructions.It’s pretty well documented, but budget a couple hours.http://community.aegirproject.org/installing/manual • Omega8cc Alternatives to Vanilla (on d.org/projects) • BarracudaBarracuda 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

  27. Advanced | Gotchas: Multi-Server Architecture • Hub Spoke Model • Master Server • Has a copy of everything (sort of). • Migrations go through it. • Web Server 1 • Platform A • Site 1 • Web Server 2 • Platform B

  28. Advanced | Gotchas: Multi-Server $#@! Data Loss Why! Why was I programmed to feel pain? There is a long standing data loss bug in which the files directory on the hub sometimes overwrites data on the spoke. There are various patches in the issue queue none of which quite work. We solved it by hacking our Aegir instance to rsync files from the spoke to hub prior to many other actions. Bug Reporthttp://drupal.org/node/1083366

  29. Advanced | Gotchas: Site Specific Modules/Themes Site-specific modules/themes not super well supported in multi-server. The original recommendation was to make a site specific install profile and put them there. At some point they made the hub the authority but this doesn’t work with things like apps so it’s still debated. Bug Report http://drupal.org/node/1561102

  30. Advanced | Gotchas: Multi-Server Cron Runs Where? • Cron can run two ways: • Wget (on spoke) • Drush (on hub) • If your cron works with files (creating, updating, reading), you can’t use drush via Aegir in a Multi-Site environment. • Feature Request Aegir 2.0 • http://drupal.org/node/1080758

  31. Advanced | Gotchas: Security • Traditional mod_php issues apply. • In addition… • Aegir user has access to all sites/dbs/web-roots/servers. • Site X’s code can run as Aegir user • hook_init • drush.inc • etc • Bug Report • http://drupal.org/node/762138 • Provision ACL helps • http://drupal.org/project/provisionacl

  32. Advanced | Awesomeness: SaaS Business Models Couples buy a wedding website. Order page is an Aegir signup form. Purchase immediately provisions a new site. Blog post on it. http://scotthadfield.ca/2010/06/15/overview-site-building-wedful-drupal-install-profiles-aegir-and-features Clients purchase subscriptions to Open Atrium instances which are deployed through Aegir. DrupalCon London Talk http://london2011.drupal.org/conference/sessions/aegir-based-business-models Writeup: http://community.openatria.com/team/saas-business-model

  33. Advanced | Awesomeness: Continuous Integration Mig5 (an Aegir developer) has a wonderful tutorial on continuous integration with Jenkins and Aegir. Also, Mike Butsko (OSU ASC tech) presenting on Jenkins later today and he uses Aegir too. http://mig5.net/content/zero-touch-drupal-deployment-jenkins-aegir-git-fabric-and-drush.html

  34. Advanced | References: Aegir Vendors All vendors on this page are core Aegir developers. Koumbit provides upper end Aegir IaaS and SaaS solutions (in addition to development and traditional web hosting. Omega8.cc specializes more in Aegir. Their offering is very slick and arguably the cheapest/fastest way to get into Aegir. Mig5 offers consulting services. He’s probably the best company in Aegir consulting and can help with things like dev-ops workflows.

  35. Advanced | References: Other Aegir Tricks Clients http://community.aegirproject.org/node/28 SSL keys and certificates http://community.aegirproject.org/content/content/administrator/post-install-configuration/using-ssl Aegir can manage DNS zonefiles http://community.aegirproject.org/administrator/dns Aegir notes on Varnish and Memcache http://community.aegirproject.org/node/388

  36. Advanced | References: Extensions Ubercart (w\quotas) HTTP basic auth HTTP basic LDAP Feeds Rules Git Subfolders Backup Garbage Collection Services Puppet Remote Import Varnish Boost ACLs CivilCRM Koumbit Platforms CDN New Relic Etc… More here…. http://community.aegirproject.org/contrib-modules

  37. Questions: What questions do you have?

More Related