PERSPECTIVES

Overcoming DevOps Challenges by Shifting to Cloud Practices

2021-01-22


Working remotely amid the prolonged pandemic has raised the stakes for IT teams seeking to streamline and accelerate the continuous innovation and delivery of digital services. Moving to the cloud can help unlock many of the inherent strengths offered by DevOps across the entire software development lifetime cycle.

As a pandemic-wrought remote working world tries to ensure business continuity, only the nimblest organizations are destined to survive and thrive. The onus falls on leaders to digitize their organizations, with cloud as the backbone and DevOps as the mechanism of automation that enables continuous integration, continuous test and continuous delivery to customers. This transformation built on cloud is at the heart of the journey to becoming a modern business.

DevOps helps organizations advance their digital initiatives and ensure more collaborative practices that align teams behind ideal outcomes. Amid the pandemic, organizations are under pressure to accelerate digital initiatives to emerge stronger and more competitive, by adding new capabilities that increase agility and resilience. Since most DevOps teams now work remotely, the cloud plays an even more central role in ensuring smooth, seamless software development.

Without the cloud, there will always be a trade-off between speed and effectiveness for DevOps processes on-premises. To minimize risks and maximize operational efficiency, IT operations must transform from tortoise to hare, relying on speed and risk-taking to achieve necessary outcomes.

In a legacy environment, setting up or upgrading an application remains a considerable undertaking. For example, in Apache Subversion, time required from code check-in phase to the build phase and testing is several days — or even months.

In our experience working with large businesses, such efforts always involve a varied set of people: developers; testers; security and infrastructure personnel; business stakeholders; and users, all distributed across the globe. With a model like this, up to half the project lifecycle is consumed in project overhead (governance and coordination meetings, authoring and reviewing functional specs, code inspections, and signoffs).

With the advent of cloud and cloud tools (Infrastructure as Code, continuous innovation/continuous delivery, or CI/CD, secure collaboration, container-based microservices), the DevOps process has smoothed, accelerating time to market, enhancing customer experience and fostering innovation and scalability.

DevOps Imperatives Post-COVID

Since the beginning of the pandemic, we have held extensive conversations with customers that are yet to unleash the full potential of their on-premises DevOps processes. As a result of these conversations, we have created a list of DevOps challenges that cloud can help overcome — and ways for businesses to surmount those challenges.

1    Prioritize work culture

According to a 2019 report in the Harvard Business Review, digital change is more about people than technology. DevOps is essentially a cultural shift that tries to bring in a new way of thinking about solutions. In a recent Cognizant study, 95% of respondents said such digital transitions are culturally challenging. The challenges they face are around standardization, team structure, collaboration and shift in mindset.

Cloud can overcome these challenges the following ways:

  • Ensure people, process and platform standardization. What does a successful DevOps culture look like? Witness the seamless intersection of people, process and tools at a global investment company we worked with recently.

    New cloud engineers at the company start their first day with a laptop and a development virtual machine (VM) already set up with the appropriate accounts for access and authorization; the most common GitHub repositories cloned; aliases and shortcuts to relevant tools pre-created; and a guide with new hire information and links to other company resources on their desktop. (See following figure.) Standardization of tools and practices between teams makes it easier for new people to get up to speed regardless of what team they are joining; cloud aids this standardization.
  • Improve collaborative workflows. Public clouds can help teams better manage shared work. Previous drafts and current work can be simultaneously stored and shared via Microsoft Sharepoint, Office 365 or Teams — or services from other cloud vendors. Dedicated CI/CD pipelines like Azure are useful in collaborative scenarios. Version control on GitHub is now far more efficient than it was on older tools.
  • Fail fast, fail safe. The agility that cloud provides can help businesses pivot. This helps limit the costs of failures in a DevOps setup that is inherently costlier than a silos-based setup. In our experience, creating a culture of continual experimentation — in which people take risks and learn from failure — is a core facet of adaptive high-performance IT. In order to keep pushing limits and driving improvements, people need space to try things that might seem a bit risky. Many such endeavors won’t work, but those that do will provide big returns.
2    Integrate DevOps tools across different domains

In our experience, major DevOps challenges revolve around continuous stages: integration, testing and deployment. People from different departments using different types of applications working with different technologies find it difficult to assimilate in DevOps culture. To overcome this challenge, forward-looking enterprises should consider the following:

  • Embrace a cloud-based solution that delivers on the promise of standardization, built-in DevOps tools, integration and real-time collaboration.
  • Ensure that each tool brought on board is accepted and adopted by the entire IT organization.
  • Consolidate different departmental processes into one, streamlining the entire production lifecycle.
  • Foster enhanced communication and mutually beneficial sharing of knowledge. A cloud-based collaborative tool environment provides complete visibility into the software development lifecycle and eliminates any latency and confusion between teams caused by non-integrated tools.
3    Fully embrace DevOps automation

Automation aims to program everything. This includes Infrastructure as Code scripts (ARM templates, Terraform, Chef, Puppet, Cloudformation, etc.) to automate provisioning of resources. To illuminates why cloud scripts are so important, consider that developers typically spend a staggering 75% of their time manually searching for errors.

With cloud scripts, this effort can be automated, allowing humans to focus on more critical tasks. Repetitive provisioning, automated testing, and simultaneous deployment in multiple environments can in our experience be completed more quickly and accurately through automation scripts.

  • QUICK TAKE

    Taking DevOps to the Cloud Can Be Rewarding

    A Middle East-based leisure and theme park had an automation challenge around its business operations. Deployments were handled manually with heavy data transactions, and there was no modularization, which resulted in high-cost consumption.

    We helped this client adopt DevOps end-to-end enablement on Microsoft Azure cloud infrastructure. Platform-as-a-service-based API management, infrastructure-as-a-code scripts, and digital engineering services through a CI/CD pipeline reduced costs by a reported 30%; automated data ingestion and testing was said to reduce provisioning and configuration time to less than two hours; and custom code deployment declined to under 20 minutes in an automated pipeline, the client told us.

4    Reduce complexity via lean approaches

Increased complexity can be overcome by following a lean approach. Our experience has been about keeping everything at a minimum — tools, teams, meetings, sprints, etc. For odd scenarios wherein larger teams are required for cloud migration of complex applications, we advise creating smaller subgroups of teams.

To reduce complexity and go lean, teams must:

  • Interlink traditional silos by reviewing, challenging and optimizing processes in the demand-to-deploy cycle.
  • Upskill the cloud skills of the organization.
  • For continuous content creation, use a cloud-based shared single repository to act as a single source of truth.
5    Enable secured sharing

DevOps in principle is about increased collaboration between the development and operations teams — more so during the prolonged pandemic, when IT operations are more distributed than ever. Collaboration is therefore vital. An important criterion for collaboration is security, whether while sharing documents, accessing desktop-as-a-service, or setting up video conferences.

To ensure secured sharing and collaboration, we recommend the following:

  • Static application security analysis. Examine all code/binaries. Tools such as SonarQube and Jfrog Xray are integrated into the build process to perform static code analysis.
  • Dynamic application security analysis. Examine all procedures during runtime. Anchore Engine and Fortify WebInspect detect vulnerabilities in running web applications and services by simulating comprehensive attack scenarios.
  • Security testing. We implement dynamic application security testing (or black box testing) to detect security vulnerabilities in an application in its running state, and static application security testing for conditions that indicate a security vulnerability might be present.
  • Information security configuration management. Businesses should integrate secured configuration management procedures into their configuration management processes (e.g., applications, products and information systems).
  • Open-source management. It’s important to provide security procedures and guidelines regarding the use of open-source software and third-party libraries.

This article was written by Rohit Kumar Sharma, Lead Infra Architect, Cognizant Infrastructure Services, and Vidit Rathi, Business Development Analyst, Cognizant Infrastructure Services.

For more insights, visit the Cloud Enablement or Digital Systems & Technology sections of our website or contact us.