“I don't get no respect”- Rodney Dangerfield.
Most DevOps automation engineers probably feel the same way Rodney Dangerfield did. While they work hard to make CI/CD frictionless and ship applications faster than ever before, other principles of DevOps like culture and collaboration get much more attention than automation. Organizations expect DevOps to help accelerate software releases and ship better quality products, but they often underestimate the time and investment that is needed to implement the automation that will get them close to the nirvana of Continuous Delivery.
There is a reason, however, why automation has failed to capture the attention of the DevOps community: relative to the other aspects like culture and collaboration, automation tooling is a laggard and hasn't matured to a point where it can help accelerate the evolution of the process of shipping software from craft to industry. Simply put, automation tools available today are too primitive and are on the lower end of the maturity curve.
So why has automation lagged behind? The first reason is that building automation tooling requires someone to implement the tooling, test it, release it to a targeted audience, and then refine it iteratively. This process takes time and DevOps vendors have started by targeting specific teams involved in the complicated process of shipping software, such as Dev, Test, Ops, DevOps, SecOps, Release Mgmt, etc. As a result, these teams have a variety of tools they can use to automate their activities, but the end to end connected CI/CD workflow across the organization has taken a backseat to silo-ed automation. Most organizations are thus left with "Islands of Automation".
Automation engineers work around this problem by building custom point-to-point integrations across the “Islands of Automation” for each application or service and handcrafting their CI/CD pipeline. This is a complicated process that creates the following problems:
- Implementing custom CI/CD pipelines for each application isn't scalable as the number of apps grow or you start moving towards microservices.
- Custom pipelines are difficult to standardize across all applications and teams. This leads to tribal knowledge which can prevents engineers from easily moving to different roles within the organization since their knowledge is critical for their current team.
- The lack of visibility and analytics across your CI/CD pipeline makes it difficult to identify bottlenecks or gather metrics.
That's the current state of the world of DevOps automation in most organizations today.
Some organizations, however, have leaped past this hurdle. Leading companies like Facebook, Google, Amazon, and Netflix realized early on that the craftsmanship of software delivery needed to evolve into a modern software factory, where the process of software delivery is standard and works like an "Assembly Line" for all applications and teams. This Assembly Line can take any application from source control to production deployment, irrespective of the nature of the application, or where it is deployed. The Assembly Line also provides visibility and analytics across all phases of DevOps workflows, which makes it easy to identify bottlenecks and understand how efficiency can be improved. Using this approach, these companies have managed to make CI/CD standard and frictionless, leading to multiple deploys to production on a daily basis.
To realize the full potential of DevOps, organizations need to align to the following principles:
- Breaking down internal functional silos and enabling greater visibility, communication, collaboration across all the CI/CD activities
- Eliminating inefficiencies involved due to human interaction and handoffs
- Strengthening CI/CD risk management capabilities, audits, rollbacks, and scale out
- Moving away from building homegrown solutions that solve a specific problem, instead leveraging a platform that is easy to learn, maintain and scale
- Thinking beyond an application: the role of a CI/CD workflow is about automating all your DevOps activities across all stages of development to production for all your applications, services, and microservices, with end-to-end manageability from a single pane.
To explore more about the concept behind DevOps Assembly Lines, you can download our whitepaper.