What's in a name? wrote the greatest Bard that ever lived.
He was wrong. If someone ever asked me a hypothetical question about which dead person I'd want to have a conversation with, it'll definitely be Shakespeare. Let me explain why.
When we launched Shippable Pipelines last year, we wanted to highlight the difference between plain vanilla CI and the capability to put together a deployment "pipeline" that spans orchestration across multiple environments and supports all tasks involved in software delivery like CI, infrastructure provisioning, test automation, deployments, security patching, release management, config mgmt, service discovery, etc.
However, shortly after we launched, other CI providers launched their own interpretations of "pipelines"! For example,
How did everyone come to the same exact place so rapidly? As we found out, they didn't. Pipelines was being used as a fancy name for CI, with features that Shippable had supported for over two years, like Matrix builds for splitting tests or testing against multiple environments for example.
We needed a way to explain why Shippable is different. This blog explains why we landed on DevOps Assembly Lines as the perfect way to describe our approach to DevOps and CI/CD.
[This article was originally published on SDTimes as a contributed article.]
The main goal of DevOps is simple: ship software updates frequently, reliably, and with better quality. This goal is somewhat 'motherhood and apple pie', and every organization will agree that they want to get there. Many will tell you they've already embarked on the DevOps journey by following some commonly followed frameworks, such as CALMS.
However, very few will express satisfaction with the results. After speaking to 200+ DevOps professionals at various stages of the adoption lifecycle, we found that organizations generally fall in one of 3 categories:
We were most interested in groups 2 and 3 since they were actually in the middle of their DevOps journey. When asked to better explain the challenges and roadblocks, here is what we found:
- 68% said the lack of connectivity between the various DevOps tools in their toolchain was a very frustrating aspect.
- 52% said a large portion of their testing was still manual, slowing them down
- 38% had a mix of legacy and modern applications, i.e. brownfield environments. This created complexity in terms of deployment strategies and endpoints, toolchain, etc.
- 27% were still struggling with silo'ed teams that could not collaborate as expected
- 23% had limited access to self-service infrastructure.
- Other notable pain points included finding the right DevOps skillset, difficulty managing the complexity of multiple services and environments, lack of urgency/budget, and limited support from executive leadership.
Let us look at each of these challenges in greater detail.
There has been a tectonic shift in the way we build, deploy and run applications. What started with cloud infrastructure has now created a revolution in IT organizations. As organizations realized the importance of continuous feedback loops, it created a need to ship software updates as fast as possible and brought in a culture of collaboration where everyone works as a team and not as a member of a silo.
This is fundamentally due to the DevOps movement. The word itself derives from “Development” and “Operations” and is all about removing barriers between Software Developers and Operations engineers and enabling better collaboration between the two. It also focuses on automation as the primary way to make software delivery lean and measurable.
DevOps is gaining rapid adoption due to some macro trends in the software universe:
- Software Defined Hybrid Cloud
- Web-scale Requirements
- Modern application architectures (micro services, functions)