The Future of DevOps and the Importance of Right-to-Left Thinking
Ten years into the DevOps revolution, many organizations have embraced and adopted the key principles, such as collaboration, containerization, infrastructure as code, automation of build, test, review, and deployment, and -- perhaps most importantly -- culture shift.
But many challenges lie ahead, including:
- All companies are software companies. Companies in a variety of industries are investing increasing amounts in proprietary software technology as a way of gaining a competitive edge, thereby adopting software development principles such as Agile, Lean, and DevOps.
- Speed is more critical than ever. Software is being developed and released faster and faster, so customers and users have expectations of new features and bug fixes more frequently; increasing speed is necessary to stay ahead of competition.
- Security matters more than ever too. Vulnerabilities can be introduced at any stage, and at any layer in the stack, and breaches can result in catastrophic PR. The threats are huge and ever-changing; they must be identified and handled quickly.
- Silos still exist. Despite all the attempts to bring teams together into cross-functional collaborative units, many organizations are still early on their devops culture transformation journey, and all of us have some way to go.
In the next 5-10 years, successful organizations will be those who advance quickly into advanced DevOps techniques:
- Measure everything. Many organizations talk about metrics, but few of them are measuring, tracking, and reporting on all the data that can help drive quality decisionmaking. As tools become more powerful and integrated, end-to-end observability of all stages of the process becomes key to staying ahead.
- Treat applications as many-headed beasts. Using canary deployments, feature flags, and personalization, applications no longer have just one version, but rather might look very different to different users, providing both challenges and opportunities to DevOps processes,
- Iterate, iterate, iterate. Always ask whether there is a smaller change that can be made successfully, then make that change, empowering individual developers to make judgement calls and move projects forward continuously with effective feedback loops.
- Get serious about failure. Follow up every failure -- no matter how big or small -- with a disciplined review process so the organization is continuously learning.
- Adopt Right-to-Left Thinking. Data collected in the production application must be applied in the development process in a fast, continuous way.
Consider an illustration of Right-to-Left Thinking. Once organizations adopt feature flags as a mechanism for release of new features, their applications will start to take on different forms for different users. Some users have feature A, other users have feature B, and others have both A and B. Applications will have built-in feedback mechanisms -- both subjective and objective -- providing data to the planning and development process. In addition, incidents that happen in production -- whether technical, such as a memory leak, or business, such as a product selling too quickly, need to be handled in realtime.
To succeed, organizations must have a mechanism to harness data from production and flow it leftward through the toolchain, which needs to support the leftward flow of information and change to drive a rapid, ever-improving application.
This talk will look at real-world examples of companies working to advance the state of their DevOps practice through the five practices described above.