How Your DevOps Can Build Confidence
Harness sponsored this post.
The main purpose of software development life cycles (SDLCs) is to instill confidence that the features match the expectations as we move forward — regardless of methodology. This can be in the form of requirements and feedback, all the way through to the goodness that gets deployed and shipped.
There are many tactics that we take to instill confidence, from making smaller changes — such as adding features and sprints — to using tools and methodologies to validate and verify that what we are doing is on par. By leveraging convention and innovation, we can build more confidence in our pipelines. Automating that convention and innovation is the purpose of continuous delivery (CD). As technology moves forward, we are given a lot more choice and sometimes convention can get clouded.
Lots of Layers
The amount of platforms that we have to interface with is growing. The number of purpose-built pieces is also increasing. An explosion of available tools in the Cloud Native Computing Foundation Landscape also reflect the year-over-year growth in these purpose-built pieces of infrastructure. Complexity is also increasing for getting our software into production and implementing the methodologies and platforms in order to build confidence.
Effectively, the “book” or convention is getting longer and longer. We experience more fine-grained areas in which to build confidence. These range from the more granular and purpose-built application infrastructure to the methodologies used to test and validate. Convention would say that we need to validate. Innovation would be areas to validate that moves the needle for confidence.
Solutions and organizations, such as the CD Foundation, help orchestrate these pieces. With any new piece of application functionality or infrastructure, we are headed back to see how confident we are. As new artifacts come onboard, CD solutions will be at the forefront to orchestrate building confidence.
There are also several disciplines that might come together in your pipeline to build confidence with convention. However, “conventional thinking” dictates that you rollback. Innovation is when you need to roll back. In this way, innovation is creative ways to make sure features match the expectation.
Pick and Choose Convention
The CD space is moving quickly. Like any technology that is imperative to the lifeblood of our organizations, projects will move fast. With each one of these strategies/methodologies, they are helping us build incremental confidence. Even the smallest change in the application or infrastructure can trigger one or more of these validation and verification methods. Here are a few of the main processes you will need in place in order to achieve SDLC confidence:
Development Stage: Code Coverage
Typically, this is done before the final binary artifact is created, which is also as pretty far left as you can go. This gives developers feedback — for example in their IDE — and is commonly integrated into their source code management tool of choice as a pre- or post-commit hook. Confidence is built before a commit is ever made.
QA Stage: Smoke/Regression Testing and Performance Management
Another set of eyes and tests enter the QA phase. Testing the new features in a different environment and making sure that the new features do not break existing functionality go a long way in building confidence. The ability to move environments answers packaging and environmental questions that the features are now portable.
Production Stage: Monitoring/Verification
Monitoring can span log analysis to application performance management solutions. Observability also falls into this category. Indeed, what better way to validate what an application is doing than from the application itself?
The verification arena can be a wide one, from monitoring for drift/compliance to events that violate service-level agreements (SLAs). With the monitoring and verification pieces, machine learning is being introduced to anticipate when an SLA is trending towards violation, and then finding potential root causes.
Learn When to Fold (or Break) Your Pipeline
The act of folding when playing some card games, such as poker, happens when you have opted to no longer remain in the game and will wait for the next hand. In the CD world, folding would be analogous to breaking or failing your pipeline. As we go through the SDLC, this might be counterintuitive, but we want to fail (fold) early so we can make corrections and continue to build confidence.
So when is it best to fold, or in this case break or fail the pipeline? The earlier and more often it occurs in the SDLC really makes sense. By building incremental confidence in each step and as we reach the end, we can be very certain of a positive outcome. Automating how this confidence is consistently achieved is the pillar of innovation in your pipeline.
Automate Convention Equals Innovation
What we have seen at Harness is that our customers execute a pipeline during the QA phase/stage the majority of the time. The build or CI portion of the pipeline executes quickly. Anytime we introduce more humans into the mix, development and deployments can start to take longer — and as we humans are so fallible, minutes can turn into hours or days. This could be a hard problem to combat as multiple areas of convention requires automation.
Introducing automation at the different stages of convention and having a pipeline that supports that is crucial. As humans, we can only take in so much data. Making sense of multiple events that are related or potentially unrelated is not our forte. With the advent of machine learning in our pipelines, we now have the ability to verify in ways human operators could not do before.
We can certainly be innovative experimenting with machine learning coverage and varying levels of convention to create a robust pipeline to get your applications deployed quicker than your competitors. The beauty of a robust CD pipeline is that with wisely chosen automation, can delegate lengthy manual steps to convention that has been automated; delegating the manual process to a shorter time.
CNCF is a sponsor of The New Stack.
Feature image from Pixabay.