So how much are you willing to wager on a Drupal DevOps Engineer?
Your answer a few years ago was zilch. Us too.
DevOps used to mean nothing to any of us, right? Well, at least, nothing quantifiable. Now Drupal DevOps is this big paradigm shift that’s evolved from niche to mainstream. In fact, it is projected to be soon employed by over 25% of Global 2000 organizations. But the whole thing used to be a super esoteric and, let’s face it, it’s still kind of a buzzword. Oh, how we love those.
What’s more, self-proclaimed Drupal DevOps wizards still argue today over what makes DevOps tick, how it’s used, who can use it, and what it even actually comprises of. The debate rages on despite thought leaders raising their voices to call it a “culture”. Some approach DevOps as a mindset while others say it’s the application of common sense.
In our view at Axelerant, we believe that DevOps is a mix of all of these. Regardless of how you approach defining DevOps for yourself, what’s for certain is this: DevOps is changing the Drupal ecosystem and has risen to prominence.
What about these Drupal DevOps Engineer skills?
Drupalers watched DevOps ascent in 2010, back when Drupal 5 was in style. Many saw what they thought would be a setting star; many saw nothing new or noteworthy in it at all. Today Drupal DevOps Engineer skills are highly coveted. What changed?
What took this “clipped compound” from IT trend to truism?
The simple answer: serious skills.
Skills are what make DevOps’s desired effects possible. If DevOps can be defined as a culture, then it’s application is only possible through skills. And when it comes to complex software projects with open source software technology like Drupal, DevOps Engineers need to wield six skills in particular.
1. Automation, automation, automation
This skill might not seem to be very particular to the Drupal context, but it’s key to enabling Drupal development teams. This helps them work at max Sprint velocity. In every development workflow, there are workflows that can be automated, which can give a huge boost to team productivity and lead to Software Engineering bliss.
To give the context in the Drupal ecosystem: if you consider certain tasks like deployments to a shared test server, automated build verification process using code linting, processes on the database front such as backups, restores, and refreshes, spinning up multi-dev instances (dev, QA, staging) on the fly... these are all traditionally time-consuming processes with lots of repetition.
To overcome these bottlenecks, in comes the Drupal DevOps wizard with his Bash scripting and automation skills. And with a healthy dose of Ansible, Bash scripts, Continuous Integration (CI) plans, they formulate a method for the team to work with to ease their day-to-day activities. Having the ability to use automation technologies the right way (things like Chef, Puppet, Ansible, Salt Stack etc.) is a baseline requirement. DevOps Engineers should have a solid grasp on Infrastructure as Code (IAS) too so they can sidestep manual processes.
2. Knowing the system so to refine the system
Every team is unique when it comes to the methodology and its manifestation being followed in the development cycle. Think along the terms of incremental, agile, iterative etc. Most teams nowadays use a modification of the coveted agile workflow. These workflows differ from each other in various methods and tooling; you might be wondering where DevOps fits in this picture.
Well, agile and DevOps go far back in the sense that the "need" for a DevOps mindset or role was ushered in due to the sudden shift towards agile development (and they both fall under the Lean development model). With agile methodology, teams started having rapid release cycles, daily deploys to production. Things like Continuous Integration and Continuous Delivery (CD) gained traction. And wham! The importance of a proper tooling chain was realized and as a result, the new and glorious era of the DevOps workflow came into the limelight.
“It’s not enough to do your best. First you need to know what to do.”
–William Edwards Deming, Engineer
Let’s get back to our Drupal DevOps context: all Drupal teams that were veering towards the agile workflow realized there was a requirement for this proper tooling and process workflows. Many Drupal teams began to appreciate the DevOps mindset, and as a result, the Drupal DevOps Engineer came into existence. This Drupal DevOps Engineer needs to understand the workflow practiced by the team and use their skills to create a leaner model of work. This model basically translates into creating hassle free stages in the software development workflow.
The Drupal DevOps Engineer needs to have the skills it takes to refine and continuously hone the system to be more efficient, enabling the dream of true agility—rapid release cycles and continuous delivery.
3. The Drupal DevOps Engineer has many hats
You might remember that back in the early days of software development, there were separate roles for several tasks that were focussed on their domain only and nothing beyond it. Do you remember this? Like when there existed roles like Site Reliability Engineer (SRE), Build Engineer (BE), System Operations Engineer (SOE), DataBase Administrators (DBA) etc. And this made sense for teams that worked on extremely complex and large enterprise systems.
However, in the Drupal context: It’s overkill to have these niche roles. In this regard, the Drupal DevOps Engineer made perfect sense—someone who has expertise in all of these roles. A good Drupal DevOps Engineer (or for that matter any DevOps Engineer) worth their salt will have the capability of handling tasks that were traditionally dealt with by an SRE, BE, SOE, DBA etc. Is it too much to ask? We don’t think so. In so many ways a DevOps Engineer has to be a jack of all trades and master of some. Likewise, any Drupal DevOps Engineer needs to understand the Drupal context in terms of Drupal System Administration and the way the architecture works.
4. Communication is key
What they say about communication is true, isn’t it? Communication has to be HOT… Honest, Open, and Two-way! I’m sure you’ll agree that applying the HOT principle in development teams isn’t really optional. It’s always been the traditional approach to have two separate teams be part of the full software delivery pipeline. The development team (developers, testers, etc.) and the operations team (system administrators). DevOps lies right in the middle of these two, and they often replace the system operations team entirely because they’re so close to the development effort. This ensures that there aren’t substantial communication gaps or “silos.” The end result is a team able to deliver on time with minimal hiccups from deployment to production.
"If you just communicate, you can get by. If you communicate skillfully, you can work miracles."
–Jim Rohn, Entrepreneur
When it comes to Drupal DevOps: Once the development team is done with their project and it’s time to go live, since the Drupal DevOps Engineer has already been closely working with the development team, they bring the project live. This is usually by client request because the Drupal DevOps Engineer knows the nitty gritty and can easily collaborate and communicate with the stakeholders aspects of the Software Development Life Cycle (SDLC).
5. Continuous learning
So we’re in an industry where things change—who knew, right? Continuous learning is the only way anyone technical can cope. Drupal DevOps is no exception. I mean, consider virtualization. Just a few years ago, VM’s were all the rage. People were going gaga over it.
Today it’s old hat. In fact, virtualization with plain old VM’s is going obsolete in favor of containers over Bare metal. Docker as a tool for building and managing containers is all over the place and for good reason. Out with the old and In with the new. It’s essential for an organization to make the best use of the latest in technology and evolve. We’ve seen some pretty extreme examples of companies going out of business because they were hesitant to change (*cough* Nokia and Android).
“Technology is not an event, it's just part of everyday learning.” –Anonymous
Drupal agencies that don’t make use of the latest trends in the Drupal marketplace are sticking to technologies that will go obsolete. The Drupal DevOps Engineer, with their focus on continuous learning, can help bring needed changes to agencies looking toward the future.
6. In Linux we trust, all users may use Windows
There is an interesting statistic that shows the power of Linux. 95.2% of the world’s supercomputers use some form of Linux. Now what this means for the DevOps world, or more specifically Drupal DevOps, is the fact that a DevOps Engineer can’t go about their work without encountering it.
Now for us DevOps Engineers at Axelerant, Linux is everywhere. A day doesn’t go by without managing tens of servers running some Linux variant. In fact, barring some applications that specifically run under Windows OS, all of our servers and applications run over the LAMP stack. In fact, the situation is even more enhanced for the Drupal ecosystem because the Drupal ecosystem is a LAMP stack application.
Any Drupal DevOps Engineer needs to be an expert in managing Linux servers and has to be highly proficient with internals and the working of the Linux kernel. Simply put, they need to be a Linux Ninja.
Drupal DevOps Engineers rock
In a few short years, Drupal DevOps skills and culture have moved from criticized fad jargon, slang without significant backing, to industrial prestige. These six skills are what took it there. And these are skills you can bring into your organization.
This post was originally published in January, 2016. It has since been updated.