It seems as though every component of business computing is being offered as a cloud-based service, including DevOps. The business advantages of using cloud services are obvious: You can rent computing resources rather than having to buy and manage them, and you can make changes faster since there is no on-site hardware to deal with. However, can you really outsource every aspect of business computing? Can DevOps as a Service really work? Does cloud collaboration between development and operations speed up projects, or does it mean companies lose control of business-critical applications?
There are arguments on both sides of the DevOps as a Service issue. Unlike Software as a Service (SaaS), Platform as a Service (PaaS), and even Disaster Recovery as a Service (DRaaS), some industry experts argue that DevOps is too strategic to be outsourced or hosted in the cloud. Since DevOps requires tight integration between complex entities, some say you can’t abstract it using hosted development services. In fact, some naysayers believe that if you think you can successfully package DevOps in the cloud, you may not truly understand or need DevOps in the first place. Others argue that the cloud is a natural fit for DevOps because it makes it easier to share tools and increases the frequency of software releases.
Before delving into the arguments for and against DevOps in the cloud, let’s define what we mean by DevOps as a Service.
What Is DevOps as a Service?
The term DevOps comes from the combination of development and operations, two distinctly different disciplines. In many companies, departmental silos make it hard for developers and IT professionals to collaborate in the design and development of business automation software. DevOps provides an environment for the rapid development and testing of custom business software. Creating a collaborative DevOps environment makes it easier for IT engineers, security specialists, QA engineers, and others to test software and ensure there is synergy, integration, and synchronization between workflows.
The debate over DevOps as a Service is more about DevOps philosophy than it is about capabilities. The common argument is that DevOps isn’t just a process but rather a philosophy that revolves around agile software development (as laid out in the Agile Manifesto). The purpose of DevOps is to facilitate change management, with an emphasis on people rather than process or tools.
Ensuring the success of DevOps means embrace agile software methodologies. The more complex the project, the more enterprise components you need to integrate and the more software iterations and testing you need to ensure they integrate flawlessly.
With DevOps as a Service, you are relocating some of those enterprise resources to the cloud. Rather than using discrete software development tools for development, DevOps as a Service collects the development tools into a single toolset that is hosted in the cloud. The objective is to ensure that developers use a common toolset and that every action is tracked to promote continuous delivery, continuous integration, and business value.
The Pros of DevOps as a Service
In addition to the benefits from any cloud deployment, there are advantages that are unique to DevOps as a Service:
- Cloud-based DevOps makes it easier to collaborate, putting all the tools in the cloud so they can be accessed by users anywhere.
- DevOps as a Service means faster testing and deployment. Generally, using cloud services enables increased release frequency. It also gives developers more computing power and data storage as they need it.
- Using DevOps as a Service hides the complexities of data and information flow, which means DevOps team members can focus on their specific tools without having to understand the entire tool chain. For example, a software developer can run tests using source code management tools, and an IT operations manager can make changes using configuration management tools.
- Using cloud services is a more data-driven process where everyone uses the same data set. This lends itself to better documentation and tighter quality control.
- DevOps as a Service does not have to function on its own; it can coexist with internal DevOps development and deployment processes. Using DevOps as a Service simply makes it easier to offload specific aspects of a project for better collaboration and faster turnaround.
The Cons of DevOps as a Service
Of course, DevOps as a Service is not a panacea for developing business applications. There are a number of disadvantages that have to be considered:
- Outsourcing a DevOps infrastructure requires a specific level of software development expertise, including an in-depth understanding of integration, infrastructure, and orchestrating workflow. You need the experts along with the tools for DevOps as a Service to succeed.
- Can you really clone a production environment in the cloud? Cloning an enterprise infrastructure for test purposes is complex and can lead to unforeseen compatibility problems. Of course, if your objective is to create a production environment, you can’t use the cloud to clone something you don’t have.
- Security is always a concern. The security team is usually not part of DevOps, and the DevOps team tends to choose speed over security when developing software. Using cloud services can create unnecessary risks and exposure, especially since it’s the transport layer that is usually left unsecured; cyber criminals tend to use the transport layer for spoofing and man-in-the-middle attacks.
However, when used appropriately, DevOps as a Service can give you the best of both worlds, making optimal use of your in-house resources while taking advantage of the collaborative environment and fast turnaround of the cloud. Partnering with the right DevOps as a Service provider can give you greater agility and access to more DevOps expertise without sacrificing your existing DevOps infrastructure. And if you are considering a new DevOps strategy, DevOps as a Service can shorten time to deployment and give you greater versatility as you develop new business process applications.