Digitalization of the global business world has introduced powerful modern technologies like artificial intelligence; predictive analytics; big data; cloud computing; machine learning, Internet of Things (IoT); and mobile customer engagement to name a few. However, the advent of our digital first world is not without its challenges. For instance, data models like NoSQL, Big Data (HDFS) and Graph have arisen in response to new types of applications requiring the storage of different types of data and managing huge volumes of it: it’s been a learning curve for both developers and operations professionals. Fortunately, the adoption of a DevOps culture has proven to be the common language to help us understand and address these challenges together.
Digital transformation is about much more than just technology. It requires a dramatic shift from developing single applications in a traditional waterfall methodology to working together in an agile environment to deploy updates and new features continuously. There is no better way to meet our end users’ rapacious demands for the latest and most beautiful designs and functionalities.
In our post-digitalization era, a “separate, but equal” relationship between Development and Operations simply doesn’t work, at least not if your business wants to remain competitive.
DevOps has changed workplace demographics by enabling the movement of resources from Operations towards Development, and vice versa. The result has not only improved the interaction between Development and Operations, but also our ability to work more effectively in the cloud, employing Agile to develop and deploy applications faster and more efficiently. It’s also resulted in increasing demand for a wide variety of DevOps skills. According to its 2018 salary guide for technology professionals, staffing firm Robert Half expects DevOps engineers to be one of the most in-demand roles among North American employers next year.
So, what makes Dev and Ops so good together?
The SLA (Service Level Agreement)
An SLA at its most basic specifies the minimum common denominator target in a business relationship between client and provider, e.g. 99% uptime but with a reasonable usage clause. While this is a fairly typical and reasonable contract, in practice it essentially fostered an “us versus them” relationship. Internally, a similar brick wall was being erected between Operations and Development teams.
The problem was that Operations and Development traditionally had very different SLAs. For instance, while Operations were measured on how stabile / available systems were, Development teams were measured on how much new code they could deploy. So, when it came to deploying new code to achieve Development SLA objectives – something usually dependent on system downtime - Operations would then have to schedule system downtime, thus affecting their SLA negatively. Not surprisingly, both teams were secretly more concerned about their SLAs – think bonuses and pay raises - than deploying applications.
With DevOps came the common SLA; both teams are now on the same side working towards the same goals.
DevOps is a marriage, not a date
In a DevOps framework, Development and Operations work together as one team. Figures show that high-performing DevOps organizations see 200X more frequent deploys, 2,400% improved recovery times and 300% lower change failure rates.
It’s important to note here that building a new DevOps culture across an entire IT organization is not quite as easy as implementing a few best practices or following a new standard procedure or process. DevOps requires comprehensive and long-term buy-in and collaboration for all stakeholders throughout the company ecosystem. However, it can be done. Here are some best practices:
- Communicate with employees to motivate them and encourage knowledge sharing
- Give staff time to adopt the new mindset along with the training and tools they need
- Employ an “improve locally, transform globally” approach; as a business strategy, DevOps should include support, enterprise architecture, data management and release management across the board.
- Involve all relevant stakeholders in key decisions and implementation processes to achieve maximum buy-in and support.
DevOps is generally agreed to be mainly about processes and process improvement, whereas cloud computing is about technology and services. Are these ideas mutually exclusive? Well, we talked earlier about DevOps as a marriage. To take the analogy a step further, it is here that Development can teach Operations about code and Operations can teach Development about infrastructure and security. They can also learn new technologies together. The result: cultural integration and the automation of new processes by virtue of the exchange of information and skills in order to achieve the common goals of a shared SLA.
Boaz Lev is the Principal DevOps Lead at Innofactor. He has accumulated more than 10 years at Microsoft, where he developed software for millions of users.