DevOps (Development + Operations) is defined by Wikipedia as a software method that emphasizes communication, collaboration, integration, automation, and measurement of cooperation between software developers and other IT professionals. In spirit, it is a new movement that seeks to integrate all parts of the software development cycle with actual operations, so they run as a team rather than dis-jointed or individual silos that don't communicate well with each other. It has recently taken off due to the rise of mobile applications, Software-as-a-Service, or any other online services that require constant production 24x7x365, versus the prior era of selling packaged software.
Why DevOps now?
With the massive growth in online services – whether it’s a website, mobile application, or Software-as-a-Service type product – they all share a common thread, which is that they require availability 24x7x365. This is very different from the prior era of selling packaged software, where often an integrator or VAR (Value-Added Reseller) would install, configure and maintain the software. At the same time, there has been an explosion in the use of open source software, which, by its very nature, has very little support. In fact, purchasing support for an open source product is the exception, versus the norm, in the days of packaged software. Because of this, development and operations have to work closer together to make sure that the software that is being implemented actually works in production.
In addition, it has to be able to be maintained without disrupting the service to end users, as well as upgraded in a logical fashion that not only doesn’t cause a disruption, but has the capability to ‘roll-back’ if new problems are introduced that aren’t easily contained. DevOps is the idea that software developers’ work flows through to operations, and they work together to make sure it works, with operations feeding back problems, challenges, and potential solutions, allowing both sides to work as a team rather than different groups.
How do you get started with DevOps?
It’s obviously far easier to start with a DevOps team than to try to integrate existing groups. However, in either case, a major tenet of DevOps is communications – why are you doing it, what are you hoping to accomplish, and what problems will you be solving? The nature of DevOps is collaborative, so rather than a pure top-down structure with managers directing developers, it’s more of a team exercise with, a focus on team leaders and the team suggestion solutions (basically, a more relaxed management structure). In either case, the best way to get started is to start integrating your teams and creating feedback loops so they have a way to communicate with each other.
In addition, there should be constant communication between different team members (ideally, in different groups) so that problems, solutions, and timelines are integrated between team members. A big part of the DevOps philosophy is that the team should be most aware of the subtleties and nuances of the underlying software infrastructure, and should be able to solve each problem more efficiently than isolated groups outside the actual production environment.
What tools do DevOps team use?
DevOps teams lean heavily on tools that allow for communication and collaboration. Atlassian makes tools like Confluence and JIRA, which are popular with DevOps teams. Slack is a growing newcomer, largely focusing on team chat and communication. Other tools such as Ansible, Puppet, and Chef allow developers to create playbooks for automating tedious or repetitive chores. Docker, a tool for managing containers (which themselves allow code to be shipped between servers in a simplified and elegant way) is taking off in a big way right now. If you get involved with any of these tools and their communities, you can usually find what others are doing or using to make their DevOps teams move faster and more efficiently. It is not uncommon to be adding and removing tools that other teams use, since the industry is moving so fast.
The DevOps method is new and here to stay, because it is tied to where IT is growing the fastest. While a DevOps culture can be demanding, if done correctly, it can be less stressful because it is done collaboratively. This means fewer errors, less re-coding, and faster code to production. Although it’s new and changing rapidly, DevOps can be fulfilling, fun, and a better fit for today’s technology environment.
Edited by Maurice Nagle