Problems in Adopting DevOps
By 2020 half of the CIOs who have not yet transformed their teams’ capabilities towards automation technologies will be replaced in their organizations’ digital leadership teams.
DevOps is already the key differentiator for organizations as the beneficial effects of DevOps go beyond mere financial results. There are, however, many challenges that companies need to face to fully embrace the benefits of DevOps.
A survey performed by sandbox specialist Quali indicates that the top obstacles to successful introduction of DevOps include the respondent’s company culture (14%), challenges of testing automation (13%), legacy systems (12%), application complexity (11%), and, among other things, budget constraints (11%).
5 Most Widely Discussed Challenges
Mentality & Culture
Historically, corporate lines of business acted as individual units and didn’t interact with each other unless absolutely necessary. The shipment usually looked like this:
The cliché is of each unit tossing code over an imaginary wall prioritizing their own goals. Developers try to introduce changes as quickly as possible; Operations, or server admins, try to maintain service levels at 100%. Marketing and Sales try to achieve designated goals without returning client feedback on the product. The main challenge is to make sure all these groups understand that their goals are shared, not conflicting.
Some organizations are already moving to cross-functional teams aligned to product instead of traditional project man-management projects. This means that testers and sales representatives also take part in the development team and collaborative process.
However, as Forrester analyst Robert Stroud says, many IT leaders underestimate the level of cultural and organizational change that is needed to introduce changes:
“It requires some fundamental rethinking. People feel comfortable in the way they’ve been working and not everyone is a change agent. So you’ll need to find them, bring them forward, and have them drive DevOps forward and articulate the value.”
The recommended environment for DevOps is the cloud. Cloud infrastructure gives organizations the optimal scale, flexibility and speed to build and test apps through highly automated services. There are lots of providers who offer a full range of DevOps-oriented services and take infrastructure management off the client. This includes load balancing, log and instance monitoring and automatic backup/failover.
Unfortunately, according to the Quali survey, over 44 percent of applications in traditional environments were considered too complex for the cloud. For companies used to hosting applications on bare-metal servers, moving and reproducing the intricate configurations in the cloud might seem a challenging if not impossible task. Moreover, companies with strict security and compliance requirements cannot use the benefits of the cloud as they require things to be kept on-premises. Running a DevOps infrastructure internally requires a great deal of configuration, maintenance and software, not to mention the staff to maintain it all.
Handling Legacy Infrastructure
Applying DevOps requires changes to application structures — mainly switching to microservices coupled with infrastructures as code, in place of a monolithic architecture.
In cases of older applications running on servers which sometimes
haven’t been touched in years, this may mean weeks of research just
to consider what needs to be updated and where — and no executive will ever agree to stop product development for that long, even if the changes are bound to succeed.
Evolution of Software Architecture
Moreover, the entry threshold for microservices is quite high and brings its own set of problems: it requires some foundations of delivery automation already in place in order to handle the increased operational workloads and configuration management.
Integration of Tools
It is calculated there are at least 1,500 DevOps tools available today, both open source and commercial. These tools serve every discrete need in the process: management requirements, test management, defect tracking, agile planning, source code management, build, deployment, monitoring and more.
Jason Anders, the technology director of Fannie Mae, admits that keeping up with the Joneses of IT is a difficult task:
“It’s a challenge to find the right tool sets, and the industry is changing so fast. There were times when we invested in something because we thought it was cutting edge at the time, but the tool set didn’t continue to innovate so we had to Evolution of Software Architecture Monolithic Looser coupling Cloud and SaaS Before SOA 1990s and earlier Microservices 2010s Traditional SOA 2000s 22 / 96 replace it. You learn those lessons along the way.”
He also says that he and his staff continue to evaluate available tools to determine which ones are the best choice — although most executives are reluctant to allow their teams to experiment with tools or products.
When adopting DevOps it is crucial not to neglect test automation while focusing on CI/CD deployments. This negligence may result from the number of elements that testing requires. For example, a company needs to:
- define the scope of tests
- allocate a CI server
- configure the testing environment
- automate the process
- decide who should be updated with the results
- define the way errors are handled
This is especially true for high-stakes applications, such as e-commerce web sites and mobile apps that need to be thoroughly tested on representative data before launch.
Another problem is handling CI on-premises. Depending on the infrastructure available, automated testing in the internal network can prove very time-intensive and it may be necessary to wait for the weekend to free up resources, given the number of hours required to complete the tasks. As a result, there are significant delays in testing and receiving code quality feedback