Building Bridges, Connecting Communities Paul Lieberman Non-Profit, Government, and Higher Education. May 21, 2013 How Oregon State University manages.

Slides:



Advertisements
Similar presentations
Implementing Tableau Server in an Enterprise Environment
Advertisements

Faith Allington Program Manager Microsoft Corporation WSV322.
Using Drupal for Your Organizational Website (or, how to use Drupal without cursing) Michelle Murrain Nonprofit Open Source Initiative MetaCentric Technology.
OpenAtrium A Drupal Distribution for Online Collaboration Bud Witney Systems Manager Horticulture & Crop Science Department.
Acquia Cloud Drupal Platform-as-a-Service. Market Size [1,00,000+ sites] Innovation [10,000+ modules] Community [500,000+ members] “… is as much a Social.
Everything is (or should be planned as) a distribution! Bryan
SOFTWARE PRESENTATION ODMS (OPEN SOURCE DOCUMENT MANAGEMENT SYSTEM)
Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
Sitefinity Performance and Architecture
NovaBACKUP 10 xSP Technical Training By: Nathan Fouarge
Automating Drupal Deployment Dominique De Cooman.
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
Website Administration Information Systems 337 Prof. Harry Plantinga.
Module 1: Installing Active Directory Domain Services
Best Practices in Moodle Administration Best Practices in Moodle Administration A variety of topics from technical to practical Jonathan Moore Vice President.
Maintaining a Microsoft SQL Server 2008 Database SQLServer-Training.com.
Drupal Training Syllabus Chaitanya Lakshmi
How to extend and configure Drupal without user interaction or database dump By Damien Snoeck for Switzerland Romandy Drupal Group January 27, 2010 Work.
INFM603 Project Presentation Jenny Wu Prachi Chhokar.
©Kwan Sai Kit, All Rights Reserved Windows Small Business Server 2003 Features.
Promoting Open Source Software Through Cloud Deployment: Library à la Carte, Heroku, and OSU Michael B. Klein Digital Applications Librarian
Successful Deployment and Solid Management … Close Relatives Tim Sinclair, General Manager, Windows Enterprise Management.
BZUPAGES.COM Presentation on Content Management System (CMS) Presented to. Sir Ahmad Kareem.
Drupal Jumpstart Information Systems 337 Prof. Harry Plantinga.
11 MANAGING AND DISTRIBUTING SOFTWARE BY USING GROUP POLICY Chapter 5.
XA R7.8 Link Manager Belinda Daub Sr. Technical Consultant 1.
Managing Drupal with Aegir Chris Burge Burge Consulting, LLC 30 June 2013 Dublin, Ireland Drupal Dev Days.
University of Illinois at Urbana-Champaign A Unified Platform for Archival Description and Access Christopher J. Prom, Christopher A. Rishel, Scott W.
Git (Get) it done right! Practical Applied Version Control for Drupal site developers Peter Chen - Stanford School of Engineering Technical Webmaster.
Version Control. How do you share code? Discussion.
We Know IT … IT’s What We Do! ® 2 Cyprien Mvuanda & Jonathan Davis Empire 2.0 Services October 1, 2010 Albany, NY Design, Development,Workflow and Implementation.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
Module 4 : Installation Jong S. Bok
Proposal for the new group web infrastructure SFT Group meeting 3/7/2009 Yves Perrin.
AEgir Maintain your Drupal sites. The name: AEgir “In Norse mythology, AEgir was the god of the oceans and if Drupal is a drop of water, AEgir is the.
ArcGIS Server for Administrators
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Website s Azure Websites is an enterprise class cloud solution for developing, testing and running web apps. Azure Websites allows you to focus on what.
Drush: The Drupal Shell Utility Trevor Mckeown Founder & Owner Sublime Technologies
Module 1: Implementing Active Directory ® Domain Services.
1 PUPPET AND DSC. INTRODUCTION AND USAGE IN CONTINUOUS DELIVERY PROCESS. VIKTAR VEDMICH PAVEL PESETSKIY AUGUST 1, 2015.
Wordpress with Mina Automated Deployment Solution Jonathan Gravato DIG 4104c.
Drupal Workshop Introduction to Drupal Part 2: User/role management, Choosing/installing contributed modules, Transferring a site between servers.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
System Center Lesson 4: Overview of System Center 2012 Components System Center 2012 Private Cloud Components VMM Overview App Controller Overview.
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Operating Systems & Information Services CERN IT Department CH-1211 Geneva 23 Switzerland t OIS Drupal at CERN Juraj Sucik Jarosław Polok.
(ITI310) By Eng. BASSEM ALSAID SESSIONS 10: Internet Information Services (IIS)
CERN - IT Department CH-1211 Genève 23 Switzerland t Operating systems and Information Services OIS Proposed Drupal Service Definition IT-OIS.
Productivity Architect Meet Chris Bortlik Author, Blogger, Speaker.
How to use Drupal Awdhesh Kumar (Team Leader) Presentation Topic.
Drupal Basics May 30, 2012 By Sean Fitzpatrick. Sean Fitzpatrick | Welcome We're going to talk about Drupal We're going to keep it pretty.
CERN IT Department CH-1211 Geneva 23 Switzerland t OIS Operating Systems & Information Services CERN IT Department CH-1211 Geneva 23 Switzerland.
Microsoft Dynamics NAV Microsoft Dynamics NAV managed service for partners, under the hood Dmitry Chadayev Corporate Vice President, Microsoft.
OIS Progress on Drupal pilot service ENTICE meeting, 30 th September 2010 Jarosław (Jarek) Polok IT-OIS Operating systems and Internet services.
Turning Open Source On Its Side Drupal From The Top Down
Pinterest Clone Features
Version Control.
VI-SEEM Data Discovery Service
Microsoft SharePoint Server 2016
PHP Training at GoLogica in Bangalore
Storing, Sending, and Tracking Files Recitation 2
Drupal VM and Docker4Drupal For Drupal Development Platform
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
Managing Clouds with VMM
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Version Control with Git and GitHub
Is a Content Management System in Your Future?
Presentation transcript:

Building Bridges, Connecting Communities Paul Lieberman Non-Profit, Government, and Higher Education. May 21, 2013 How Oregon State University manages Large Scale Drupal and how to learn from our mistakes

Oregon State University Corvallis, OR USA OSU Open Source Lab We host Drupal.org! Paul Lieberman Sher Fenn

Today’s Presentation How OSU was successful in deploying and maintaining a large Drupal installation. What we are working on currently. What we have in development for the future.

Drupal at OSU We’ve done a lot of things right that have allowed us to scale to over a thousand installed Drupal sites. We’ve been victims of our own success – we don’t need that many sites. Having to support our legacy environment is holding us back.

Drupal at OSU Sites Hosted by Central Web Services Some Colleges host their own Drupal Sites

Our homegrown WebManage Application What It manages: Site owners and authors Apache Virtual Hosts and configuration Drupal distribution directory File system permissions MySQL database creation and removal Drupal site installs Bulk site updates

Standard Drupal Multisite Directory Layout | | - drupal core files | - sites --- | --- all --- || - modules || - themes | | --- site1.college.edu || - modules || - themes | | --- site2.college.edu || - modules || - themes

OSU Drupal Directory Structure oregonstate.edu | | - drupal core files symlinks | | --- site1 || || - drupal core || --- sites | | | | - all | | - default | | - settings.php | --- site2 | - files || || - drupal core || --- sites | | | | - all | | - default | | - settings.php | | - files | - site x Drupal core files are symlinks to a common distribution directory. As is /sites/all including contributed modules, themes, and libraries. Each site is in it’s own /sites/default. Each site is in it’s own /sites/default.

OSU Drupal site directory showing symlinks Drupal Version_Build Number

Python Install Script Create directory for new site Symlink Drupal files Create sites directory Symlink sites/all Create sites/default and sites/default/files Copy in default.settings.php Set permissions on sites/default/files Run Drush to install the site

Drush Site Install Use “drush help site-install” to see all of the options

PHP Script to Add Users Use “drush help user-create” to see all of the options.

Install Profile Modular design Setup some default content Permissions come last Configuration in features/modules Roles Cache Editor defaults

Using Features for Configuration Use a feature to define a role Author role –Define text filter formats –Setup WYSIWYG editor –Define WYSIWYG profiles –Assign permissions

osu_author.info name = "osu_author" description = "Configure author role" core = "7.x" package = ”OSU Configuration” ; dependencies[] = "imce" dependencies[] = "imce_mkdir" dependencies[] = "imce_wysiwyg" dependencies[] = "wysiwyg" ; features[filter][] = "filtered_html" features[filter][] = "full_html" features[filter][] = "plain_text" ; features[user_role][] = "author" Required Modules Filter Formats User Role

Install Tasks

Bulk Updates Update in batches of sites at a time Update script –Backup database –Put site in maintenance mode –Symlink to new distribution directory –Run database update on site –Put site back online –Log progress and send

Drush Commands for Update

Running Cron with Cron Crontab on management server Runs twice a day for most sites Python script loops through all sites Uses Drush to run Cron See

Scaling and Caching Citrix NetScaler provides load balancing and front end cache Web servers run APC Search engine requests go to one server Dedicated memcache servers

Managing our distribution Drupal 6 still using SVN –Entire distribution in repository Drupal 7 using Drush Make and Git –Makefile updated for each release –Custom modules and themes in Git –Core and Contrib pulled from drupal.org –Local GitLab for custom projects

Drush Make File Specific version of core Specific versions of contributed modules Core and contrib pulled from drupal.org Local git repo for custom modules and themes Libraries pulled from respective repos with git, or get (for.zip,.tar.gz files).

Some of our weaknesses Shared infrastructure Administrative overhead Learning curve for site maintainers Manual clone dev to production Manual distribution maintenance Updates take a long time No automated site removal

Shared Infrastructure Web servers must be configured for lowest common denominator. Cannot be optimized for specific applications. One misbehaving site or application can affect everything else.

In Progress Site consolidation in Drupal 7 Dedicated infrastructure for Drupal Phase out WebManage in favor of Aegir Leverage Aegir backend (Provision)

Site Consolidation Too many Drupal sites leads to: –Unnecessary administrative overhead –Inability to share data between units –Disjointed navigation within large units With Drupal 7 we are using Organic Groups to enable us to consolidate large sites.

Too many Drupal Sites

Using Organic Groups

Dedicated Infrastructure Each service gets dedicated resources. Servers can be optimized specifically for each service. Services are isolated and protected from one another.

Future Environment with Aegir

Using Fabric to control Aegir Python scripts use SSH for remote commands Drush uses Provision (Aegir backend) to build Platforms and Sites Checkout work done by Mig5 See

Fabric – Drush - Provision Use “drush --filter=provision” to see all of the provision commands.

Puppet to Install Aegir Servers Server Base – OS and common utilities Aegir Base – Aegir user, Drush, and Provision Aegir WebServer – Apache for Aegir Aegir DBServer – MySQL server for Aegir Aegir Hostmaster – Aegir frontend Also Memcache and Varnish

Our Development Environment Most development in main web tree Central git server using GitLab Experimenting with CI using Jenkins

Development Environment

Continuous Integration update -n --pipe

Looking Ahead Self service site provisioning Auto expire/delete for training and dev sites Drupal site Control Panel Drupal systems dashboard

Self Service Site Provisioning Pilot using training sites Drupal form to request a site Drush Provision creates the site Site monitored for inactivity Warning sent to site owner for inactive sites If no activity after a set period sites are archived and deleted.

Auto site expire/delete provision-enable provision-disable provision-backup provision-delete provision-restore provision-backup_del

OSU Drupal Control Panel

Control Panel Backend Copy site to dev, staging, or production –Drush provision-clone Backup site –Drush provision-backup Restore site –Drush provision-restore

Drupal Site Provisioning Self-service provisioning for training sites Site requests for development sites User management –Site managers –Site architects –Site authors

Drupal Systems Dashboard Resource Management –Monitor resource usage –Adjust resource allocation Manage distributions Site backup and restore Initiate automated upgrades

What really makes us successful? All the great people working on Drupal at OSU. The Drupal community.

Resources Mig5’s Zero Touch Drupal Deployment – Code Driven Development – development-cheatsheethttp://nuvole.org/blog/2011/mar/25/code-driven- development-cheatsheet OSU code on Github – – – profilehttps://github.com/oregonstateuniv/drupal-install- profile

Questions?

Building Bridges, Connecting Communities Evaluate this session at: portland2013.drupal.org/schedule. Thank you! What did you think?