Warning: You are viewing old, legacy content. Kept for posterity. Information is out of date. Code samples probably don't work. My opinions have probably changed. Browse at your own risk.
Mar 5, 2014
Last weekend I was back at City University for the second Drupal Camp London. This year even bigger than the last, with over 600 attendees!
I reviewed my post from last year and it seems that I attended a lot fewer sessions this time around. That could be because I hadn’t been to a Drupal event for a while, so I spent more time catching up with old friends and talking about the future of Drupal. I also ran two Bird of a Feather sessions on Atomic Design, Design Patterns, Death of the Themer, automated theme building, and general issues around bringing design into the development workflow, in particular for agile projects.
Before the main Camp starts on Saturday there is the Business and Training day. The main CxO event is happening in another building, and has a strong line up of speakers. While this is going on I’m down in the basement of City University with Ronald Ashri giving an “Introduction to Drupal” training.
We’ve actually got a large group with mixed abilities so we’ve prepared a flexible training that covers a lot of material. Ronald prepared a comprehensive overview for the morning session. We went off-piste a few times, including some interesting discussions around configuration management and best practises. In the afternoon I prepared several demonstrations around an example site with content I had automatically imported from DBpedia. This covered content type configuration, simple Views configurations, some more advanced Views, and we even touched on creating custom workflows with Rules module. We had lots of good feedback about the training so I think this day was a success! A highlight was seeing how well my demo of the Rules Link module was received. Since I discovered this module I’ve used it on every project, so it was good to share this with others.
On to the main Drupal Camp…
###Breakfast and chatting
After getting directions from the very hospitable Alex Elkins from City University, I arrive in time to find breakfast being delivered. There are several familiar faces around, so I take the time to catch up with people I haven’t seen for a while.
After leaving the canteen and heading out towards the rooms where the sessions are taking place, I made a stop in the “sponsors room”. This room seemed a bit strange to me. Why would sponsors pay a premium to be hidden away in a room off to the side? Last year you couldn’t move for sponsors, they were all over the place! But I guess this is a side effect of the growth of the camp, and needing more space. Anyway, I decide to pop my head in to see who’s around.
I had a great chat with the guys from Pulsant about their various options. At first I was surprised that they hadn’t heard of Docker, but then perhaps not everyone is as excited about this as me. I’m using Docker extensively now in Apiary and I do believe it will revolutionise our industry. Anyway, I quickly realised that this wasn’t Pulsant’s thing anyway, they are focused on the actually boxes and wires that run this stuff, and they seem to really care about getting that right. I’ve seen them supporting lots of UK Drupal community events, so it was great to finally speak to them.
I then got talking to iKos about the work they are doing with Drupal Commerce and SagePay. This is something I’m probably going to be making extensive use of on a couple of projects, so I’ll plug their free ebook Integrating Drupal, Commerce and Sage Pay. Well worth a read.
All this chatting means I miss most of the first session and just make it in time for the end of Joachim’s presentation of entity operations. I bump into an old colleague on the way out who’s excited about going away and building some custom entities so I guess Joachim must have given a persuasive demo!
Another coffee break, more chatting and I almost miss the next session, but determined to actually see something I rush off to find Annika’s session on the Demo Framework. I hadn’t seen the Demo Framework before, but essentially, it looks like a distribution of Drupal with EVERYTHING in it, pre-configured to show off some of Drupal’s sexiest features.
From a technical point of view I really liked the combination of features and migrate module to create demo scenarios. With Features packaging up the functionality, and Migrate module used to package demo content.
There was an amusing question from someone after this presentation who asked if it was dangerous to show clients all this functionality up front. They seemed concerned that it would then be hard to justify high prices after the client had seen all that Drupal could do. I think perhaps this person should attend one of Jeffrey McGuire’s sessions on selling the benefits of Drupal and open-source. My own opinion is that that you should always be providing value, and that when you provide value to a customer, it should not be hard to justify your price when it’s based on the value you provide.
Doesn’t feel like I’ve been here 5 mins and already I’m eating lunch? It’s no break from the Drupal action though, as Daniel from Kendra Initiative has got a few people together to show off the mockup I made for a collaborative rights management tool for musicians. This is the start of a Technology Strategy Board funded project to develop an application to manage collaboration, metadata and rights, so I may well be blogging about this again in the near future.
###Rules Rule Commerce
This session was pitched as an intermediate session, so I took along Alice, who is a relative newcomer to Drupal, but has been picking it up really quickly. Unfortunately, Sven’s session was more of an introduction so there wasn’t anything new here.
After leaving the Rules session I bumped into some people who had just come from a session around the corner on Harmony Forum that sounded excellent. Drupal is lacking a good Forum option, so I was interested to hear what this was about.
The most exciting thing in the open-source forum world at the moment is Discourse. I had looked at integrating Discourse with Drupal a while ago but not got very far with it. There’s an existing Drupal module, but it proxies all requests via Drupal (which seemed like a bad idea from a performance and maintenance point of view) and it works against an old version of Discourse. I strongly believe in using the right tool for the job, and that not everything has to happen in Drupal, but this “integration” seems far too tightly coupled.
I’m undecided if integrating with Discourse, or building a modern forum solution natively in Drupal would be the best course of action. I think the answer will depend on the scale of the site in question. On smaller sites it makes sense to have everything under one roof, but I think for larger sites a separation of concerns offers extra scalability options that may be worth the overhead of supporting two systems. It’s good that we potentially have both options.
###Next Generation DevOps
Barney Hanlon gave us a tour of state-of-the-art DevOps in what he called the “Five Stars of DevOps”. Namely: Monitoring, Security, Performance, Automation and Scalability.
As I tweeted at the time, this was a real highlight of the Camp. I’ve been doing a lot of DevOps stuff recently, it’s a really exciting area to be working and it’s advancing quickly, so it’s always good to hear what other people are up to. Barney presented this stuff really clearly and obviously knows his stuff. The slides from his presentation are available here.
In large-scale Drupal deployments I always encourage scaling out over scaling up. With effective DevOps automation, the pain of maintaining multiple systems is reduced, so you can benefit from using the most appropriate technology for each task. Barney summarised this with the question:
Am I doing something in my application that is done better by the infrastructure or an external service?
- Barney Hanlon
I’ve been making extensive use of Puppet throughout my DevOps work. It’s based on Ruby, and I found the Puppet configuration files easy to work with. Barney highlighted something that had been bothering me about the Puppet approach, in that you need to have the Puppet Agent on the machine before you can provision it via Puppet. Not quite a chicken and egg style paradox, but it does mean you need someone other mechanism to first bootstap the machine and get the Puppet Agent on to it. Barney, instead recommends the use of Anisble. This is a pure SSH-based approach so needs no extra software on the machine to get started. I plan to move Apiary’s initial bootstraping process to Ansible and still make use of Puppet, but then probably soon move all the configuration into Ansible.
Barney presented an interesting stack he called the “SPDY sandwich”. It had multiple instances of Nginx with different responsibilities. I’ve done this before for various reasons including load balancing and SSL termination, but Barney is using two layers of SPDY/Page speed optimisations. Perhap’s now it’s time to go and look again at supporting SPDY! This blog post seems like a good place to start, any pointers welcome!
Barney re-iterates his point about not doing things in the application that can be done better by infrastructure, and he demonstrates this point using an example where he configures OpenResty to manage CSRF tokens. OpenResty is a web application server built on Nginx making use of the Lua scripting language. This opens up a whole new world of possibilities!
And of course no presentation on DevOps would be complete without some talk of Docker. I think I’ve said this before, but Docker is going to revolutionise our industry. Barney explained some of the current limitations (runs as root!) but Docker is still not ready for production and in heavy development. I did like the example scenario he gave where PECL dependencies could be installed in a Docker container and shared.
###BoF - Death of the Themer
I finished the day with some impromptu BoF action. I was keen to get James Panton and Jamie into a room to discuss some of the ideas I’ve been having recently around challenges of bringing design activities into a development workflow (in particular Agile).
Last year James had presented on the Death of the Themer, and Jamie has been doing a lot of work with atomic design and live style guides. Unfortunately, they were coming to the Camp on different days, so I had to run two separate BoFs.
I’m going to write up the BoF notes and post them here separately. If you’re at all curious about atomic design, style-guides, or automated Theme generation drop me a line, or look out for an announcement on Twitter.
###Measuring Success (Piwik)
My training partner from Friday, Ronald, starts Sunday with a discussion of analytics. A lot of what he says applies to any website and analytics software combination, but I’m particularly interested in the fact he’s using Piwik. I’ve been hearing a lot about Piwik recently, and I’ve been meaning to check it out. You may remember I mentioned it on a post in my “Cloud Survivalist” series, as Google Analytics is the only Google service I have not yet found a replacement for.
I’d already decided, after talking to Ronald on Friday, that I was going to start using Piwik, but it was good to see it in operation. Ronald gave some good examples, including tracking content items wherever they appear, not just looking at page views. He did this by showing how to add tracking codes to content items in any view mode, so they are tracked in lists and views as well as full page view.
Ronald shared a couple of tricks they have implemented to use learnings from analytics to drive content placement. He showed how you could use activity to automatically optimise content placement by doing things like moving items in a nodequeue on CRON based on reading data from the analytics API.
Paul Reeves gave an in-depth look into the guts of the new Drupal 7 powered platform at MTV. I’d been involved in the architecture and development of this, but it was good to hear Paul explain the wider impact of the work we did.
The BoF continues from yesterday. As I said before, I’ll post my notes up as a separate post, probably some time next week.
I might have attended fewer sessions than the previous year, but I left Drupal Camp feeling like the weekend had been a success. The sessions were just a small part of what Drupal Camp is about. It was more about the conversations, meeting up with old friends, making new connections, and throughout all this seeing common threads of conversation, perhaps indicating the current Drupal zeitgeist, namely…
(or maybe that’s just me).
Finally, a big thank you to all the organisers: Tim Deeson, Hedley Smith, George Hazletood, Leon Tong, Ben Wilding, Alex Burrows, Della Deme, Farez Rahman, John Kennedy, (did I miss anyone?).
Oh, and of course City University!