Attend QCon San Francisco (Oct 24-28) and find practical inspiration from software leaders. Register
Facilitating the Spread of Knowledge and Innovation in Professional Software Development
The 2022 QCon London and QCon Plus tracks featured in-depth technical talks from senior software practitioners covering developer enablement, resilient architectures, modern Java, Machine Learning, WebAssembley, modern data pipelines, the emerging Staff-Plus engineer path, and more.
Software frameworks greatly amplify a team’s productivity, but also make implicit decisions. The benefits and limitations must be understood because of the impact on the resulting system architecture.
APIs can tell you everything about your cloud infrastructure, but they're hard to use and work in different ways. What if you could write simple SQL queries that call APIs for you and put results into a database? Steampipe, an open-source project that maps APIs to Postgres foreign tables, makes that dream come true. It's hard enough to reason over data. Acquiring it should be easy, and now it is.
Nora Jones discusses the context around PRRs and provides takeaways on how one can improve production reliability.
OpenEBS provides storage for stateful applications running on Kubernetes; including dynamic local persistent volumes or replicated volumes using various "data engines". OpenEBS can address a wide range of applications, from casual testing and experimentation to high-performance production workloads
Learn how cloud architectures help organizations take care of application and cloud security, observability, availability and elasticity. Register Now.
Understand the emerging software trends you should pay attention to. Attend in-person on Oct 24-28, 2022.
Make the right decisions by uncovering how senior software developers at early adopter companies are adopting emerging trends. Register Now.
InfoQ Homepage Articles Using DevOps Automation to Combat DevOps Workforce Shortages
The well-documented demand for (and shortage of) DevOps engineers is a persistent itch that has remained unscratched for tech leaders worldwide. And it’s easy to see why.
DevOps is the elixir of the software development lifecycle that intersects development (Dev) and operations (Ops). This skill set helps organizations build better products, ship faster, and implement customer feedback more efficiently - and is therefore in great demand.
A recent DevOps Institute report predicted that 60% of organizations are either hiring or are likely to hire for DevOps roles in the future. The number of open DevOps jobs grew by 443% in 3 years, but DevOps Institute’s 2021 report also showed that 64% of DevOps leaders found it difficult to recruit for DevOps roles. This outsized DevOps demand against the supply of DevOps engineers drives the prediction that 75% of DevOps initiatives will not meet expectations.
The industry’s only comprehensive Cloud Native Security Platform. Get a free trial now.
So how can companies combat this Devops workforce shortage to reliably and predictably meet their business objectives? There are several options available for scratching the DevOps engineer shortage itch.
Experts propose both preventative and responsive solutions to tackling the DevOps workforce shortage. The compassion camp takes the preventive view that organizations can retain strong DevOps engineers through a supportive, stimulating environment that values employees and nurtures their desires. Others propose upskilling junior developers or creating internal training programs that provide growth pathways within organizations rather than outside them. Yet, some responsively insist that nearshoring - hiring DevOps engineers from nearshore locations such as South America - holds the key.
While these are valid solutions, they only address the part of the equation outside our direct control - supply. Focusing on the supply part of the DevOps engineers shortage equation alone has several downsides. In understaffed organizations with overworked engineers, compassionate policies are like band-aids to a bleeding wound - they don’t work.
Genuine compassion should incorporate measures that ease the workload burden. Similarly, upskilling does not reduce the immediate burden of DevOps engineer shortage. Instead, it adds to junior developers' existing responsibilities and takes resources away from critical tasks. A successful nearshoring initiative depends on the competence of chosen vendors and the employer's diligence in anticipating legal and team integration challenges.
Without optimizing operations on the demand side, organizations are left exposed to a critical level of inconsistency (can nearshore employees overcome communication barriers, if any?) and uncertainty (will employees leave regardless - after investing resources in compassionate policies and training?).
Especially with ‘the great resignation’ taking root after the pandemic, it is impossible to guarantee employee loyalty even with the best staff retention initiatives.
Automation is a better solution because it focuses on the demand-side factors within our control. Leaders should leverage DevOps automation-first solutions to optimize operations and focus on 'demand-side' factors within their control.
For example, optimizing infrastructure management helps reduce the number of engineers required for repetitive tasks. Automated processes require fewer DevOps engineers to oversee, reducing dependence on the limited pool of technical talent and relieving teams from the headache of manual DevOps fulfillment.
A well-optimized DevOps process replaces slow, repetitive processes with effective automation.
One significant benefit of this exchange is that automation introduces greater efficiency and speed into the SDLC (Software Development Lifecycle) in a way that humans can oversee but not replicate. This is because using technology (usually a PaaS) to execute DevOps tasks automatically enables rapid feedback loops between development and operations teams, allowing iterative updates to be deployed more rapidly.
This new paradigm substantially shortens the SDLC and increases the deployment rate of software applications, as Codelitt (a remotely-distributed software development agency) recently discovered. By automating deployments with Convox’s infrastructure, Codelitt reduced its DevOps engineer requirements to just one DevOps engineer who spent a few hours each month on maintenance and other small tasks when needed.
Automation reduces dependence on access to a large DevOps workforce while accelerating the SLDC through improved collaboration between existing teams.
The last decade has ushered unprecedented transformation in the IT infrastructure landscape, including agile computing platforms, remote working, and shared data. This transformation has also generated an increased spate of cyberattacks. In response, experts advocate for integrating security operations into the software development cycle rather than adding it on as an afterthought. As Brian Galura describes:
"DevSecOps is a culture and tooling change that places responsibility for security at the build stage before the product is shipped to customers. This evolution has become necessary because of the sustained widespread increase in cyber attacks on many applications.”
Automating security operations conserves limited DevOps engineer resources while streamlining security operations with programmable defense systems. This approach allows for the fulfillment of critical security operations with the minimum number of DevOps staffing possible. It removes engineers' dependency on manual intervention (which can prove cumbersome).
Because speed is critical to the success of any successful DevOps strategy, security operations need to match the pace of continuous integration and continuous deployment.
Using automated tools to handle security operations allows teams to detect security threats immediately and rapidly deploy responsive counteractions. This significantly reduces the workload of security analysts, allowing them to focus on building better automation tools than manually dealing with security threats that are repetitive and easily detectable.
On the other hand, automation can also constitute a burden if executed poorly. Cost inefficiencies and over-automation are some consequences of poorly-executed automation initiatives. This comes especially when updates and maintenance commitments are not adequately catered for. To ensure that automation efforts generate a high ROI, leaders must thoroughly vet internal processes to qualify processes that should be automated. In addition, automation tools should be selected carefully and matched directly to the business objectives to avoid selecting tools that might end up cluttering the process.
Automating deployments is a necessary step in the DevOps protocol. Automated deployments accelerate the transition of development projects from creation to testing to production stages with minimal friction - so that teams can deploy applications more rapidly.
To align with CI/CD best practices, experts recommend frequent, early deployments as a means to reduce downtime, find bugs more quickly, and collect feedback from end-users more rapidly. By automating deployments, teams can significantly reduce the lengthy “manual clutter'' that constitutes communication, which can often become a primary impeding mechanism for the smooth running of the process.
Automation tools help development teams automate their application deployment and management across clouds with zero downtime.
Software development teams that practice continuous integration regularly commit their code to a repository for development, then testing to combat pre-deployment integration challenges. For this to be effective, testing automation is key to ensuring that applications are kept intact whenever new commits are integrated into the main branch.
QA testing simply ensures that the software being developed undergoes stringent testing before deployment. However, continuous testing is sometimes filled with regressive tests that can be cumbersome for manual testing.
Therefore, it makes sense to automate this process - to liberate manual testers and focus on building effective frameworks for QA testing automation tools.
Automation for repetitive QA processes means that testing tools adopt the mammoth task of going through several different debugging cycles without getting strained as a manual tester would. The automation process cuts down unnecessary workloads for developers and facilitates continuous integration.
DevOps tools can help significantly reduce developer workloads by executing cumbersome and regressive tasks on their behalf. Here’s a helpful framework to keep in mind when using DevOps automation tools to improve efficiency.
To get maximum efficiency out of your selected DevOps automation tool, you must understand how each of your collaborating teams contributes to the deployment process.
Team leaders must be on top of team dynamics such as shared tools strategies, effective contributions, and work-sharing between developers, QA testers, and the architecture automation team.
For example, before their automation journey, Codelitt’s team dynamics included tutoring junior developers to run multiple automation scripts for application deployment. Understanding the place of this task in the SDLC helped to identify the potential cut in production time that automation could deliver.
As a team leader, you must outline the automation tools used for every process, from the design and architecture to the deployment and production of the software. Teams can easily get confused by the sheer quantity of specialized tools available. Do your due diligence and ensure that your selected tools fit your DevOps pipeline perfectly. The best DevOps tool for automating DevOps processes should aim to eliminate (or reduce to a bare minimum) human interventions, making the entire process as autonomous as possible.
Next, you must ensure that the framework of tools used for the whole of the DevOps lifecycle must incorporate every detail without any tasks being unaccounted for. This implies that any process change that demands a software change must be included within the DevOps pipeline and not performed outside it.
To do this efficiently, engineering team leaders should employ robust change management tools to aid faster adoption, more control over the change implementation and representation. As common practice, a series of steps are often used to standardize the process:
As with every type of change, resistance is to be expected. Unforeseen circumstances such as budget drops or dependencies may threaten the process. Good leadership and dedicated tools, however, can mitigate these risks. This way, every change is tracked with no room for uncertainty - if there’s a need to backtrack the process.
There is a need to maximize the use of automation tools, logging each step within the process for manual and automated actions. Logging the automation process allows for an efficient, future-proof operation as mistakes can be corrected for future operations. Because a key component of DevOps relies on experimentation and real-time observation, development teams are kept at an advantage if each operation is logged and studied within the framework.
Finally, continuous evaluation and feedback from each member in the DevOps process are critical to DevOps automation success.
While it is essential to implement a continuous feedback loop within the process (rather than at the end), feedback can - especially when unstructured - can become distracting, time-consuming, and difficult to act upon. For continuous feedback to be effective, it must provide actionable information that integrates well within the teams’ workflow.
To achieve this, organizations should adopt CI/CD tools that integrate well with real-time chat clients for more dynamic messaging. Teams should be encouraged to adopt a transparent, concise, and actionable messaging culture that invests time into focusing on the message to determine the focus of a feedback message and how quickly it can be actioned.
Teams should also expand to other feedback routes such as e-mails, user feedback from app marketplaces, etc. Valuable information is not restricted to feedback within the CI/CD pipeline alone, so teams should seek to extract data from other sources and incorporate it into the development process.
This practice significantly increases the efficiency of a DevOps process by highlighting every possible mistake and flaw in the process design. It reduces the error margin for future tasks and makes planning more efficient and failproof.
In conclusion, DevOps automation best practices can help teams achieve significant progress in optimizing the process of DevOps automation.
While industry leaders have lauded DevOps automation, automation still has its downsides - especially for organizations not well suited for the automation framework.
DevOps automation demands a significant culture shift, and not all companies can approach this transition with the speed and dedication required. Some companies may only require minor software changes every few months, making DevOps automation an unsuitable and unnecessary framework to adapt.
In addition to this, automation does not absolve teams from the need to prioritize maintenance activities which in themselves can be time-consuming. Teams need to create time for maintenance - maintenance operations need to be scheduled alongside release cycles, and releases need to be coordinated with updates to avoid clashes. As demonstrated below, there comes the point where more time is spent increasing efficiency through automation than the time saved by the efficiency - rendering the efforts futile.
DevOps automation is a means to accelerate processes that were slowed down by inefficient loops and human errors. But automation is only efficient when the cost of implementing it is low compared to the volume of the company’s output. Therefore, before embarking on a DevOps automation journey, it is wise to discuss the organization's suitability for automation with an expert or DevOps consultant.
Because DevOps is more of a ‘culture’ than a specific tool or framework for every problem, best practices vary significantly by the project’s requirements. DevOps automation best practices are essential for team leaders looking to automate their DevOps processes. These best practices include:
Automating DevOps is the way forward for teams struggling to maintain a critical mass of engineers to attend to necessary DevOps tasks. Automation does little to address the supply-side of the DevOps engineer workforce shortage and is almost futile against solutions like culture change when organizations cannot hire. When used correctly, however, it does help organizations optimize their limited engineer resources and reduce the dependency on more DevOps engineers.
By transitioning to efficient automation tools, teams can scale efficiently by rapidly accelerating the rate at which their applications are deployed. As mentioned earlier, DevOps automation isn’t the perfect solution for every team. Smaller teams with limited capabilities that are yet to scale may not benefit from a decision to automate processes. Team leaders may benefit from consulting with an expert to see if their teams are ripe to reap the rewards that DevOps automation promises.
Becoming an editor for InfoQ was one of the best decisions of my career. It has challenged me and helped me grow in so many ways. We'd love to have more people join our team.
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
You need to Register an InfoQ account or Login or login to post comments. But there's so much more behind being registered.
Get the most out of the InfoQ experience.
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p
A round-up of last week’s content on InfoQ sent out every Tuesday. Join a community of over 250,000 senior developers. View an example
Real-world technical talks. No product pitches. Practical ideas to inspire you and your team. QCon San Francisco - Oct 24-28, In-person. QCon San Francisco brings together the world's most innovative senior software engineers across multiple domains to share their real-world implementation of emerging trends and practices. Uncover emerging software trends and practices to solve your complex engineering challenges, without the product pitches.Save your spot now
InfoQ.com and all content copyright © 2006-2022 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with. Privacy Notice, Terms And Conditions, Cookie Policy