DevOps got the name over a decade ago, and what started as an acronym and a hashtag has evolved into a cultural movement in information technology. Its goal is to speed up application deployment through continuous testing as well as iteration.
Given the fast-paced tech world, ten years is a lot of time for DevOps to accrue varying definitions, interpretations, and general confusion. For instance, forty-three percent of respondents (in Gitlab's 2021 Global Survey) have been doing DevOps for 3-5 years. Despite being well-seasoned, their 3-5-year experience didn't keep them complacent. DevOps practitioners skipped subtle improvements and went for impact: test automation, continuous integration (CI), and continuous deployment (CD).
So, if you're wondering whether DevOps is a methodology, a collection of tools, or a cultural shift, we teamed up with Arrow to break down the definition of DevOps, the processes, trends, and how it impacts the channel.
What is DevOps?
DevOps is the merging of software development (Dev) and IT operations (Ops). It focuses on frictionless workflow and emphasizes efficiency, speed, and continued alteration. In broader terms, DevOps promotes better collaboration and communication between teams. When narrowed down, DevOps focuses on the adoption of iterative app development, automation, and maintenance. It also encompasses a cultural shift by building trust and cohesion between teams and aligning tech products to business objectives.
Why is DevOps Important, and Why Should I Care?
Software is a core part of modern businesses. Companies use applications to increase their operational efficiencies and interact with their customers. DevOps comes in to streamline software build and delivery processes. By simplifying the app development lifecycle, DevOps speeds up software releases while creating an efficient way of managing applications over time. In fact, sixty-three percent of developers are using DevOps to release code 2x faster.
The fast delivery and efficient software management enable organizations to serve their customers better and maintain a competitive edge. It's no wonder 86% of companies consider fast software deployment an essential aspect of their company. Ultimately, DevOps enables a better user experience. As people use the software, IT staff get more actionable insights on user behavior. They then tweak the applications accordingly to meet user requirements.
What are the Technologies that Support DevOps?
DevOps combine different processes, such as planning, building, deploying, and running – coupled with continuous feedback, testing, and iteration. Each DevOps phase depends on the other, and it's not role-specific. Thus, grounding the processes calls for effective communication.
Below are the major technologies in the DevOps pipeline. (Keep in mind DevOps is a continuous workflow. The phases are interdependent.)
Once a developer has completed their code, they commit it to a centralized code respiratory. They pull a request to merge their task with the shared codebase. A different developer then reviews the code, and once they're sure it's up-to-standard, they approve it. The approval triggers an automated process that's configured to build the codebase and run multiple end-to-end integrations. It also triggers a series of tests to counter-check regressions. If the build or subsequent tests fail, the developer is notified to make changes – or resolve the issue.
Once the build is successful, it's automatically deployed for deeper out-of-bound testing. Testing uses a staging environment that can either be an existing hosting service or a new environment (commonly referred to as infrastructure-as-a-code). Next, a series of manual or autotests are performed to identify any refinements or issues that need addressing before mass production. The type of testing done depends on the application and the organization. Regardless, testing shouldn't interfere with workflow or impact the production environment.
The DevOps team then releases the build into the production phase. DevOps practitioners use tools and processes to automate the deployment process – reducing any outage window. They can configure the same infrastructure-as-a-code (used in the testing phase) to build the production environment. Often, DevOps employ the blue/green tactic to switch production without outages. That is running new changes (blue) parallel to the existing environment (green) to ensure continuous production. Once the new environment (blue) is ready, the hosting service points new requests to it. In case of issues, you can instruct the hosting service to redirect production requests to the old environment.
With the deployment complete, the new release is up and ready for customers. That's where the operation team fully kicks in. The hosting service is configured to handle usage-related peaks and troughs. During this phase, DevOps can implement a feedback loop. The goal is to get customer insights to help inform future development.
Monitoring involves collecting data on performance errors, customer behavior, and more. It can also include some introspection on the DevOps pipeline. For example, are there bottlenecks impacting the productivity of the DevOps team?
The DevOps team feeds the resulting insights and customer feedback to the product manager. The manager will use these insights to build a product roadmap, a guide for future development.
What are the DevOps latest trends and disruptions?
DevOps is a fast-paced tech world, with practitioners aiming for more significant impact instead of subtle improvements. However, you can trace DevOps trends and disruptions to the following four drivers for change.
What does Shift Left Mean?
"Shift left" is a software development practice in which teams strive to prevent problems by adopting early testing – to deliver quality applications. Shifting left requires continuous testing and continuous deployment. The former involves running automated tests as early as possible. Often, DevOps teams run the tests along service virtualization to mimic unavailable systems. Continuous deployment automates the provisioning and release of new applications enabling quick and efficient continuous testing. For best results, shifting left requires i. collaboration between teams, ii. standard deployment procedures, and iii. use of cloud and pattern capabilities to ensure pipeline environments resemble those in the production as possible. The focus is on quality from the onset to prevent problems and wastes.
What is DevSecOps?
DevSecOps stands for development, security, and operations. Its goal is to implement software security decisions at a similar scale and pace as DevOps decisions. DevSecOps brings a high-security proficiency across DevOps teams by ensuring everyone is accountable for application security, from testing for potential security breaches to building data-driven security services. DevSecOps ensures security is built into the software rather than being an afterthought. That, in turn, speeds up software release and reduces compliance costs.
What Does Application Modernization Mean?
Application modernization refers to taking existing legacy software/applications and modernizing their features, infrastructure, and internal architecture. The focus is mainly on monolithic, on-premise applications, which employ waterfall development processes. Application modernization strives to bring such applications into cloud architecture and release patterns (commonly known as microservices.) The process boasts numerous benefits, but it's also costly and complex – you must factor in ROI. While at it, be strategic and select projects whose benefits (think of speed, scale, and performance) offer a clear path to ROI and improved customer experience.
Where Does Automation Fit In?
According to the referenced Gitlab survey, 56% of DevOps teams said they are mostly (or fully) automated. Nearly 25% of respondents have adopted full test automation. That shows an increasing number of companies employing technology to perform tasks with little to no human assistance. Automation relies on software tools, presetting configurations, and standardized workflows. It's mainly deployed in repetitive tasks to i. deploy iterative changes faster, ii. reduce human errors, iii. scale down DevOps team, and iv. increase team productivity.
Where are Companies Innovating Within DevOps?
DevOps is making inroads to IT departments in many organizations. And it's not just for the web-native "unicorns" like Facebook and Amazon. DevOps success stories are growing by the day. Some companies are taking their adoption to another level – by innovating within DevOps more so in the following areas.
According to Gitlab, 75% of DevOps teams use bots or AI/ML for code testing. The challenge lies in evaluating and selecting the right test automation tools, training, and acquiring skilled test automation engineers. Some companies like Mabl and Cypress.io are stepping up to help companies run repetitive and determinant tests, manage data and use the results to improve application quality.
Mabl, for example, provides Intelligent Test Automation for agile teams. By leveraging low code, SaaS, and data-driven auto-healing, Mabl lets you create reliable end-to-end tests designed to improve software quality without delaying the development process.
Cypress.io, on its end, is an easy-to-install test runner – eliminating the need for code changes, unnecessary downloads, and dependencies. With it, you get to watch the tests in real-time. Cypress.io leverages parallelization and load balancing to debug your tests, which eliminates false positives.
Feature flagging uses software development and delivery techniques to enable or disable parts of the codebase remotely. In simple terms, feature flagging is the use of the if/else controls on the code. They can be dynamic configurations, multi-variant, or simple on/off. Regardless, they help speed up the development process without compromising infrastructural reliability and quality. Companies acing the feature flagging game include Split and Launchdarkly.
Split provides DevOps teams with everything needed to create, manage, and target feature flags. It features the flags to your development and customer data and alerts you when a new update or feature "misbehaves." It also calculates the impact of any updates on customer outcomes, making app development safer and faster.
Launchdarkly gives you complete control over your software development, resulting in quicker and safer deployment. It excels at helping you learn from your users through data-driven insights.
Chaos engineering involves testing already distributed applications to determine whether they can withstand any disruptions. It's based on concepts that prioritize unpredictable behavior. Its goal is to identify weaknesses and resolve them before they worsen. Think of identifying vulnerabilities before a system failure or before the hacker can note and exploit them. Companies taking chaos engineering to another level include Gremlin and Steadybit.
Gremlin has a sole mission: to prevent expensive outages. They help proactively test for vulnerabilities and system failure. Their trick is the 3-step solution: identification, acceleration, and validation.
Steadybit, on its end, helps identify vulnerabilities that matter and deliver a preventive action regardless of how complex your system landscape is.
Site Reliability Engineering
Site Reliability Engineering (SRE) helps both solve problems and minimize the chances of recurrence. It seeks to eliminate silos between teams within the IT department; it relies on continuous improvement – and helps scale projects without scaling IT teams, as seen in Fire Hydrant and Blameless innovations.
Fire Hydrant, for example, monitors deployment to track and trace changes. It then points you to the root cause of the problem and automatically assigns roles as per FEMA's Incident Commander framework. The platform also provides data-driven analytics with an easy post-mortem process.
Blameless leverages SO manager, data insights, and other features to help turn retrospectives into unplanned investments.
What are CXO Priorities for DevOps?
At its core, DevOps is all about adding value to customers. DevOps teams base their value on customer experience and meeting business objectives. Understanding this, CXOs are focusing their efforts on more mature DevOps models – investing in the following technologies.
DevSecOps optimizes IT operations and customer experience. By introducing security into the app framework and operating model, DevSecOps helps protect customers from vulnerabilities and their aftermath. DevSecOps supports customer requirements in multiple ways, including fast and continuous delivery of quality computing systems and rapid security response.
Shifting to the Cloud
With the introduction of the cloud, developers can build and deploy applications at speeds that can keep up with the needs of customers and end-users faster than ever before. Not only does this reduce the time it takes to build applications, but it also dramatically reduces the cost. Now with software as a service platforms, developers can quickly utilize services such as source code repositories and version control in the cloud, which increases the collaboration between developers without the maintenance. Cloud also frees developers from the burden of maintaining hardware or physical environments, allowing them to experiment with different environments and rapidly build test, QA, and production environments at lower costs. Cloud technologies are critical for keeping up with the pace required by DevOps practices.
Business Objective Focus
As noted, the value of adopting DevOps must consider business objectives. By aligning DevOps around these objectives, CXOs can achieve business objectives in short release cycles – allowing for agile response to customer requirements and continuous learning through feedback. Business objective focus is taking center stage, with 53% of DevOps teams claiming to incorporate metrics relating to revenue, sales, customer retention, and satisfaction when determining DevOps value. The business objective focus requires modernized legacy applications, automated complex toolchains, and business-related metrics.
Automation of Manual Tasks
Automating repetitive tasks and operations is essential for quick and efficient deployment. For one, automation leaves more room for IT teams to focus on core activities relating to higher-level concepts instead of mundane, repetitive tasks. By focusing resources on the most challenging, complex tasks, productivity increases, and more applications can be deployed at scale. The goal of automation is not to reduce headcount but rather to raise the level of focus in the IT department to more highly skilled tasks.
Instead of restructuring business organizations during digital transformations, companies can hire dedicated managers to oversee customer engagement and treat it like a high-value product. In addition, DevOps brings more stakeholders (different teams with different expertise) into a project – which can help CXOs realize what customer experience has to offer. Adding diverse stakeholders across the business provides a holistic view of customer experience, security, operations, and financials.
Use of AI/ML
Gitlab Survey found that companies are shifting to AI/ML development at a fast pace. That is understandable as customer experience calls for adopting innovations to deploy updates quickly and consolidate reporting across multiple operations. Think of DevOps models designed to deliver value over time as opposed to a one-time trick. Models that get smarter with use are better poised to provide a faster and more accurate build. They also help CXOs leverage predictive analysis and real-time decisions to deliver hyper-personalized experiences
How is DevOps Impacting the Channel?
As IT and the application development process shifts left, so must the channel. Historically, in an on-premise, hardware-driven environment, solution providers would enter accounts through the "operations door." Their skills in assessing, designing, implementing, and managing IT infrastructures – and their relationships with the legacy OEM's, of course – were the primary value.
While this is still true today, as agile development takes hold and "shifts left," solution providers must find new account entry points and develop new skills to add value for their customers.
More and more, as companies look to increase their speed to market, their business agility, and their security, they are adopting new development and deployment models, models that are cloud-based and software-defined. This will require solutions providers to get outside their traditional sandbox and begin building new relationships with the development side of the house.
To do that, solution providers should consider building a DevOps practice with some of the following elements:
Development skills – Consider hiring or subcontracting on-site coders who can augment their customer's resources (or lack thereof).
Audits – Consider formalizing an application architecture and development process audit to help uncover the weak links in their customers' ability to quickly and securely deliver new capabilities to the business.
New Vendors – Evaluate and onboard new vendors in the DevOps space, as many of them start as open source.
Want to Stay on Top of DevOps Technologies? We Can Help
At Vation Ventures, we focus on innovations and trends in technologies on your behalf. We help offset the cost, effort, and time you spend identifying and comparing technologies to solve your organization's problems. Want to learn more? Get in touch or reserve a spot in our 2021 forum.