March Meeting: Reusable & Deployable Drupal Sites

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
dale42's picture
Start: 
2010-03-25 18:30 America/Vancouver
Organizers: 
Event type: 
User group meeting

Join us at 6:30pm on Thursday March 25, 2010 at Appnovation Technologies for the Vancouver League of Drupalers October meeting. This month's feature presentation: Reusable & Deployable Drupal Sites with Shawn Price. Shawn will show how some of the latest Drupal tools can improve workflow, solve problems once, and take the pain out of continuous deployment.

Date: Thursday March 25, 6:30pm
Location: Appnovation Technologies, L200-560 Beatty Street, Vancouver, BC [Map]
Cost: There is no charge and all are welcome

For those who don't need to leave right away there's typically a more social discussion at a local pub afterwards.

Agenda

Reusable & Deployable Drupal Sites using Install Profiles, Features and Drush

In this fast-paced and technical presentation Shawn Price from Affinity Bridge will use some of the latest Drupal tools to show how developers can improve workflow, solve problems once, and take the pain out of continuous deployment.

Shawn Price is a Drupal Developer at Affinity Bridge. He enjoys efficient processes and proximity to mean espresso.

Drupal Q&A

Bring your questions on anything related to Drupal from how to do something technical in PHP to what modules are needed to implement a feature you want.

Mini Case Study/Lightning Talk

There are spaces open for short case studies and lightning talks.

Our Thanks

We wish to thank Appnovation Technologies for hosting this month's meeting.

Comments

Need more info on this topic, please

katy5289's picture

Could you explain more what this talk is about? I'm a web designer so I'm not sure what you mean by the terms reusable and deployable. Can someone explain in plain English? I'm also interested to know what modules Shawn will be talking about so I can read up on them.

Thanks in advance,

Katy :-)

www.seascapewebdesign.com

What I understand when we say

bmx269's picture

What I understand when we say "Reusable & Deployable Drupal Sites", I think of efficient ways to make building and transferring a site to a clients server, faster and in turn able to make better use of time. In the case of Drupal, I have a set of modules and themes that I start with for all sites, that for most cases will allow me to build just about any site. From there I start by always using a drupal multisite install of the new site, that way I am using the same base modules and base themes for all the sites. When I transfer the site to the clients server, I continue that same structure, that way, I can install the site to their server with the ability to add subdomains like say mobile.example.com easily. I use the Site Directory Migrate http://drupal.org/project/sitedir_migrate module to change the linking for a site move. That is just a start for me.

Thanks, bmx269, that helps a

katy5289's picture

Thanks, bmx269, that helps a lot. I'm looking into setting up a multi-site installation on shared hosting. Andrew Tuline of www.tuline.com has done this and he says it works well.

A. Here's some info on the Features module:
1. Blog post by Ariane dated Sept 2009: http://affinitybridge.com/blog/drupal-features-module-abridged

  1. The Features module page on drupal.org: http://drupal.org/project/features

  2. Blog Post and Screencast: http://developmentseed.org/blog/2009/may/29/making-and-using-features-dr...

  3. There's a group: http://groups.drupal.org/packaging-deployment

B. About Installation Profiles:
1. http://drupal.org/project/installation+profiles

C. Drush is a command line interface to help with using Drupal.
http://drupal.org/project/drush
Drush is a command line shell and Unix scripting interface for Drupal, a veritable Swiss Army knife designed to make life easier for those of us who spend some of our working hours hacking away at the command prompt.
- I was glad to leave DOS and the C:/ command prompt behind years ago!

My comments:
I don't use Install Profiles. I use Base Installs. I have a group of modules and themes that I use to start each website. I also use the Acquia Drupal - it's a bundle of modules tested to work together and Acquia updates all these modules regularly. See www.acquia.com

What do you use? Add your comments ...

Thanks for the questions.

langworthy's picture

Thanks for the questions Katy,

Quick answers:

Reusable: A set of commonly used functionality placed in code that can be implemented on multiple projects. (Think of a blog which could have a content type with fields and comment configuration, a view, pathauto settings, and user permissions).
Deployable: The ability to deploy new feature requests to production sites in as few steps as possible.

Longer answers:

Quite often during the development of a Drupal website there is repetition of effort, especially once a site has launched and updates need to be made. Think about manually making a set of changes to a production server after making and testing those same changes on the development server, and after initially making the changes on your local environment.

Though Drupal is built this way by design (placing both content and configuration in the database), this practice of development breaks one of the first rules of programming which is Don't Repeat Yourself (http://en.wikipedia.org/wiki/Don't_repeat_yourself).

There are some exciting Drupal projects underway that address this, namely Features, Exportables, Install Profiles and Drush doing some of the heavy lifting along the way.

I'll be talking about using these tools to increase the efficiency of website development, deployment, and maintenance.

just a ps. to shawn's

arianek's picture

just a ps. to shawn's response re: katy's questions - the approaches shawn's talk focuses on involve both code and configuration.

whereas a base install might have all the modules and themes you typically use, you still don't want to have to configure everything every time you start on a new site. install profiles are a way of automating all this configuration. features also allow you to bundle configuration and module dependencies on a per-feature (eg. blog, calendar, recipe book, image gallery, etc.) basis.

features are particularly good when it comes to adding new functionality to existing sites, as they allow you to deploy work done on a dev site without having to overwrite an entire db to migrate config.

I forgot to mention that with

katy5289's picture

I forgot to mention that with my base install is a database with all the basic setup and configuration saved in it. So every time I create a new website, I import my starter database and I have CKeditor all setup, some user roles all set up. some blocks and it saves me a lot of configuration time.

The Features Module does sound great for adding new features to existing websites. Are people using it in production or live sites?

Yay - looking forward to

katbailey's picture

Yay - looking forward to this! I'm starting work on a monster deployment/workflow solution for a large client, based on deploy module but tying in code / assets deployment as well. I've started a discussion thread about enhancements to deploy module here: http://groups.drupal.org/node/56833
Anyway, will be great to exchange ideas - see y'all this evening :-)

Kat

Thanks Appnovation, Shawn and everyone involved

tomho's picture

I was surprised so many people showed up, but i felt there were an incredible amount of smart people in the office.

As a full-time web developer specializing in Drupal, i never found it too difficult setting up dev environment, installing drupal and the same contrib modules. I usually have all the contrib modules and latest drupal pretty handy and it isn't really taxing on your brain when you upload or extract modules.

To look at it at a high level, i didn't feel making the "easy steps" easier too valuable. I did however like some elements, such as downloading latest modules automatically. Drush is super cool as well!

Also Shawn did a great job, I haven't had much experience with drush(super cool), features or installation profiles. I liked the idea of showing things on the spot, but i thought it would be better with more of a powerpoint format with keynotes and key take-aways from each slide. Just like many of you, I learn better researching, testing and playing around a new module/tool on my own, coming to a gathering like this, i much rather prefer something more on a higher level, such as, the features of a module, how this can be used, and what problems you have came across, and maybe a few configuration example. Or maybe it was just because it was hard to see near the back, it was probably just me =).

I learned a lot from how advance developers push items to production, the way i like to use drupal is to leverage the content management nature of the technology and make it as easy as possible for clients to update their own site. So whenever i am creating websites for clients, i would put that as #1, how easy is it to update the site? With the features module, and version control, it does seem to make it a lot tougher to achieve. I would love to see an elegant solution/balance to this.

Thanks everyone again,

Tom

Thanks for the feedback Tom.

langworthy's picture

Thanks for the feedback Tom. It's appreciated.

I was unsure of how the structure of the presentation would go over; slides first, followed by a demonstration including some time on the command line. I had thought of just keeping to slides but I also wanted to show the power of drush especially when using make files and some of the features commands. I remember the first time I saw drush running a make file, going and grabbing all the contrib and taking about 20 seconds to do what would take me maybe 5 or 30 minutes, depending on the case.

Something I don't understand is how using features and version control would make updating websites tougher to achieve. Could you explain this further?

Hey Shawn, Yup, after

tomho's picture

Hey Shawn,

Yup, after thinking and playing it myself, i agree what you showed does increase efficiency of installing/downloading modules/core.

I have trouble imagining what happens if a client changes something small on a view, (sorting) on the live site or changing where block shows up.
How do you deal with that? Do you get the latest copy of the codebase+database from live server back to development?
Sorry i am not familar with working with source control + drupal.

Thanks,
Tom

Thanks for the followup

langworthy's picture

Thanks for the followup Tom,

This might sound like a radical idea to some, but I'll drop it anyways. Turn off views_ui.module on production sites.

I believe both clients and developers should not make config changes on production. As an alternative to something like Features, what many developers/shops have been doing is using hook_update_N() functions in .install files to place all config changes in code and then move those from dev->stage->production. This way it's possible to audit changes.

Nice one Shawn! That was an

katbailey's picture

Nice one Shawn! That was an awesome presentation and finally gave me the impetus I needed to start seriously looking at Features module. For production pushes, what we've been doing is coding everything in update functions, usually using the various helper functions provided by the Install Profile API, along with things like CCK Sync, and putting all our views in a .views_default.inc file in a utilities module. But it sounds like features can replace all of that and is way faster.
Thanks again and great to see everyone last night,

Katherine

Thanks Katherine, We've used

langworthy's picture

Thanks Katherine,

We've used hook_update_N() quite extensively and it's served us well. We would often have a custom module that included the install file, helper_module file as well as exported views, panels, etc. One of the interesting things I discovered after beginning to play with features was the similarity between these two, only that features was much more nicely packaged.

Was March meeting recorded?

eft's picture

I was sorry to miss this presentation. It sounded excellent. Is there any video or other record of the meeting that those of us who were unable to attend can access?

Thanks

sorry no video

langworthy's picture

I'm sorry to report that there was no video recording of this event.

Vancouver

Group organizers

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: