How to Migrate, Manage and Centralize your Web Infrastructure with Drupal
Jim KellerPrincipal, Context
9-person Drupal team based just Outside of Philadelphia
Background in Software Development
Extensive server management & website deployment experience
http://thisiscontext.com
A common problem
- Different departments within an organization create, manage, and maintain their own website
- No thought given to scalability, centralization, or ongoing viability
- No consistency in approach
In the end, organizations are left with a tangled mess of different platforms, different development techniques, and proprietary components
A plan
AssessWhat do we have now, and who is it important to?
Migrate & IntegrateTransferring data from one platform to another, or sharing data between systems
ManageKeeping everything running
MaintainPreventing the mess from happening again
Drupal
What is Drupal?
A content management system
An application development framework
A multi-site management platform
Who uses Drupal?
Who uses Drupal?
The Plan
Migration to Drupal
Assess
Before making any kind of platform decision, take an inventory of your current web properties
Start slow and break the process into manageable chunks
Collaborate with stakeholders to identify priorities
Take extra time assessing integrations / data sharing components
Migrate
Entities provide a single building block for all types of data stored in Drupal
Entities can be blog posts, news entries, users, taxonomy terms, comments – any piece of data is considered an entity
Entities have fields, not unlike tables in a database
Drupal modules act on entities using the entity API. Once a piece of data has been imported into Drupal as an entity, it can be manipulated, displayed, aggregated, or referenced by other entities.
Drupal 7 Entities
Migrate
One-off imports and periodic aggregation of content
Import or aggregate RSS/Atom feeds
Import or aggregate CSV files
Import or aggregate OPML files
PubSubHubbub support
The Feeds Module: Your friend in migration
Create nodes, users, taxonomy terms or simple database records from import
Extensible to import any other kind of content
Granular mapping of input elements to Drupal content elements
Exportable configurations
Batched import for large files
...Combine with the Feeds Tamper module for custom pre-processing of incoming data
Migrate
You may have to write some custom code to massage your data into place, but Drupal can make this process approachable
Learn more about feeds:
The developer's guide to feeds: https://drupal.org/node/622700
Contributed Plugin modules for feeds: https://drupal.org/node/856644
Integrate
Drupal provides almost limitless opportunity to integrate outside systems, but there areSome important decisions to be made before beginning the technical aspects of integration:
1. Does the cost (both time, money, and opportunity) of performing the integration outweigh the benefit of actually having the systems integrated?
2. Can the existing system and the new system live harmoniously, but still remain separate, without compromising user experience or internal workflows?
3. Does the existing system provide strong integration opportunities, without the need to rebuild a significant portion of the application’s business logic?
Integrate
Some help with your integration, courtesy of Drupal:
The services module – http://drupal.org/project/services“A standardized solution of integrating external applications with Drupal.
Servicecallbacks may be used with multiple interfaces like REST, XMLRPC, JSON, JSON
RPC, SOAP, AMF, etc.”
Custom Drupal modulesYou probably won’t come away with a successful integration without building a few of these. Don’t be afraid to build custom where needed, but remember to search first so you don’t reinvent the wheel.
Feeds, Again Feeds can be your friend here as well. For integrations that don’t require realtime communication, a custom feeds plugin running on a set interval is a practical way to import and export data.
Manage
Multi-site capabilities are built into Drupal core
A single Drupal core installation can drive dozens of sites
Module installations can be shared across multiple sites, creating a centralized hub for management &updates
Drupal Multi-Site
Manage
Module installations can be shared across multiple sites, creating a centralized hub for management & updates
Drupal Multi-Site
Manage
Drupal can run on Linux or Windows, and supports a number of database engines including mySQL and MS-SQL
Drupal has a 40-person security team
Drupal has been combat tested on high-profile, high traffic sites
Enterprise hosting platform and 24/7 support through Acquia
Enterprise Hosting
Manage
Provides traffic & bandwidth reports, server performance & resource usage data, downtime alerts
New Relic Integration
Maintain
Create standards and best practice recommendations for your organization
Having clear, written policies and procedures for change management is critical to ensuring that
Make sure stakeholders are aware of the procedures and have adequate time to account for them in planning
Policies and Procedures
Maintain
Policies and Procedures
Provide a list of the approved, activated modules developers will have access to in your multi-site environment
Maintain
Policies and Procedures
Provide documentation on how to properly structure sites for deployment
Maintain
Policies and Procedures
Provide documentation for change management
Other Considerations
AdoptionHelping people understand the benefits of change
TrainingCentralizing helps makes training efforts much more practical
Ongoing SupportKeeping your users happy and productive
For another time...
Thank You