DEVOPSdigest asked experts from across the IT industry for their opinions on what steps in the SDLC should be automated. Part 5, the final installment, covers deployment and production.
A common bottleneck in software development that I believe should receive higher priority for automation is deployment.
Director of DevOps Strategy and Delivery, CollabNet VersionOne
The deployment phase of the software development lifecycle (SDLC) is one that often happens in the background — most people have little or no visibility into its effectiveness until software is actually deployed and released to users. However, it's the phase with the largest impact on immediate usability, which requires it to be right from the moment of deployment. With an emphasis on powerful automation, companies can provide quality assurances for users and ensure an accelerated deployment process with the least amount of configuration errors, ultimately reducing costs for the business. Monitoring the effectiveness of automation at the deployment phase is one sure way to improve the final released product.
VP of Product Management for Software and Services, Ciena
One area of automation that is often overlooked is how do we automate the collection of error information in production and deliver it back to a developer so that they can troubleshoot root cause more effectively. The state of the art for this has traditionally been the less-than-optimal adding logging statements and sifting through log data. However, it makes more sense to gather this data automatically from the runtime execution point where the information already exists, and feed that back to development to speed up the process of troubleshooting.
CTO and Co-Founder, OverOps
Observability is key to accelerating the application lifecycle from DevOps through production but with so many specialized monitoring tools in the mix, there is lots of room to improve on automating the feedback loop with the performance analysis effort, from design through implementation and test. And don't neglect to use automation to create integrated workflows across your network, app, and log monitoring.
Product Management Director, Riverbed APM
Enterprises are leveraging complex cloud environments to build and deploy applications quickly and at scale, however doing this while trying to minimize performance issues has increasingly become an overwhelming task. As such, when it comes to the development process, automating continuous delivery and feedback has become necessary. By automating continuous delivery and feedback loops, teams can track all key technical metrics from each developer workstation all the way through CI/CD into Ops. Through fact-based feedback, such as memory consumption, CPU usage and response time, the team can stop faulty builds before they reach production and start deploying software faster and at a higher quality.
DevOps Activist, Dynatrace
Not many people think about the rollback part, as too many people want to make break-fix changes in production as opposed to rollback a deployment. But having an automated rollback is as necessary as the automated deployment.
Head Geek, SolarWinds
There's two quick heuristics I use for working out what to automate next. One, pick the items that are closest to production as the problems you're solving with automation tend to be visible, and solving visible problems increases trust across the organization. Second, focus on small, easily understood fundamental building blocks that most of your services rely upon such as time synchronization, DNS, authentication and authorization.
VP of Ecosystem Engineering, Puppet
Many organizations talk about DevOps, but actually only a very limited number of them focus on the Ops part. When doing DevOps, organizations should strive to fully automate Ops. They can start by automating the creation of change requests — removing manual approvals — and end with connecting and automatically trigggering their application monitoring tools when a new release is in the pipeline.
VP of Product Development, XebiaLabs
With the rise of cloud-native environments that include serverless computing, microservices and container-based development, it makes sense to automate event management for IT teams. Artificial intelligence has advanced alert correlation and escalation in such a way that it's now possible to reduce the number of alerts for a given IT ecosystem and automate their escalation to the right teams regardless of complexity. This reduces "firefighting," and keeps DevOps teams focused on what they do best.
Product Marketing Manager, OpsRamp
A process not often considered in these discussions may be event management. Since event management's purpose is to detect events, make sense of the events and determine the appropriate control action, this could potentially benefit every stage of the SDLC regardless of which development model was in use. The ability to quickly detect changes in state that impact a component or a service, whether that be a line of code or memory utilization in a server, is needed at multiple points in the SDLC. So, too, is the ability to automatically isolate and make sense of these events – the most important and challenging part of this process. Once we've detected and made sense of events, we can usually create the appropriate control actions that provide autonomous operations. Since monitoring is so closely related to event management, monitoring automation is critical to both accelerating flow and reducing defects.
Director, Product Marketing, eG Innovations
Consider automating and standardizing reporting for adherence with performance metrics for leaders in business and IT. Leaders that measure not only IT but Business metrics have less rework, surprises or discourse.
Author and Strategist, iSpeak Cloud
DevOps teams typically focus on one problem at a time, iterating until improvements slow down and moving on to another project. When you're automating the development process, keep project turnover in mind. Ensure that monitoring that is consistent with your corporate operations team is deployed at every step of the way. That doesn't have to be hard — expect to use open course components to push data directly into the IT tool chain. You'll be able to iterate at your speed and handle the turnover step with ease!
Alliance Strategist, Zenoss