My Review of Drupal Camp London 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.
Friday
Training day
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.
Saturday
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.
Entity operations
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!
Demo Framework
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.
Lunch
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.
Harmony Forum
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.
Sunday
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.
MTV
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.
More BoF...
The BoF continues from yesterday. As I said before, I'll post my notes up
as a separate post, probably some time next week.
Wrap up
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...
- Drupal 8 is not going to be ready this year.
- Drupal 7 is the best it's going to be. D7 is a solid robust platform for
developing on, and deserves a life beyond D8, a Drupal 7 LTS perhaps? - Rules Link is an awesome module
- DevOps!
- Atomic design is more than a current trend, and there's an opportunity for
design to become a more integral part of the development workflow.
(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!