Is DevOps for you?
Why aren't more companies implementing DevOps?
Ten years after the phrase 'DevOps' was first coined, too many companies are either not using DevOps at all, or are implementing it incorrectly. However, says Lee Jenkins, Head of Technology at ETS Innovations, those companies that have adopted DevOps are outperforming their peers.
He goes on to list a few of the big-name companies that have been following DevOps practices since 2010, including Amazon, Microsoft, Twitter, Netflix, Google, Target, Walmart, Itsy and Facebook.
What is DevOps?
DevOps is more of a company cultural and mindset change than a single process or tangible asset. It encourages a working relationship between software developers, IT operations and the business to increase both the speed and quality at which applications are delivered.
Traditional software development uses a well-defined waterfall life cycle, whereby a large number of features or bug fixes are developed, tested and finally put into production. However, this approach was slow to market, couldn't respond quickly to changes and often resulted in long application outages.
To alleviate some of these pitfalls, agile development was introduced. Jenkins explains: "As business requirements often change, software must be developed at an ever-increasing rate to allow business differentiation."
In order to achieve the required level of agility, IT leaders need to transform their teams' ability to delivery well architected code into production. These teams need to implement technologies and automate processes in order to reduce code deployment times.
Underlining the importance that business is placing on IT's ability to shorten development cycles in the interests of releasing new iterations quickly, the Puppetlabs 2017 State of the DevOps report states: "By 2020, half of the CIOs who have not transformed their teams' capabilities will be displaced from their organisations' digital leadership teams."
Why is DevOps so important?
Teams that have transformed and adopted DevOps culture and practices deploy more frequently, recover from failures quicker and introduce less bugs into production.
In 2011, Amazon was performing approximately seven thousand deploys per day. By 2015, it was performing 130 000 deploys per day (across all business areas).
Automation is the key
Continuous integration and continuous delivery are key elements of DevOps and are essential approaches for teams doing iterative and incremental software delivery.
The underlying idea is to automate the secure delivery of code into production, to support ever-changing business needs.
These workflows are triggered by the software developer checking code into a source control repository, which performs automated tests via a release pipeline. Continuous delivery is be a lean practice that minimises time to deploy new features or bug fixes and reduces time to remediate production incidents.
How to transition to a DevOps culture
Jenkins explains: "DevOps implementation requires both a change of culture and a shift in traditional roles and mindsets. No longer will software developers throw code over the fence, expecting operations to implement and troubleshoot when incidents occur."
Jenkins advises: "It's never too late to start your DevOps journey."
Below are a few key points on how an organisation can implement DevOps:
* Start small: Start a DevOps change with a small team. A good rule of thumb is that you should be able to feed the team with one pizza (Jeff Bezos has two-pizza teams)
* Eliminate traditional silo thinking: DevOps environments thrive on collaboration between developers and operations. Removing the silo mentality improves communication and enables teams to all work towards common goals.
* Utilise open source tooling: There's a plethora of open source tools available to automate many DevOps practices. The best known CI/CD tool is Jenkins (formerly Hudson).
* Educate stakeholders: It's crucially important to get executive buy-in to the project. Without support, priorities will fall back to previous practices.