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.
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.
In addition to the benefits from any cloud deployment, there are advantages that are unique to 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:
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.