DaaS – that’s DevOps as a service, not desktop, for the purposes of this article – is one of the latest entrants in the as-a-service trend. But what is it? And what does it mean for the world of tech.
In this piece we’re going to be analysing the impact of DaaS and comparing it to traditional DevOps.
To do this, we’ll first offer up two working definitions of DaaS and DevOps before jumping into a DevOps deep dive, emerging on the other side with everything we need to understand DevOps, DaaS, DaaS’s impact on the world of tech, and how DaaS and DevOps stack up.
Working definition of DevOps
DevOps has a complex history which we’ll cover later on. In the meantime, the definition of DevOps we’ll use to understand DaaS is “The practice of integrating the work of the software development and IT operations teams within an organization for the purpose of decreasing time-to-market.”
Working definition of DaaS
Given the above definition, DaaS is simply the term used to describe hiring a third party to implement the integration of the two teams.
Although what it really means to integrate these two teams, why it’s done, how it’s done, and how it differs in DevOps and DaaS is a different story.
DevOps deep dive: when, why, how?
When – a brief history
Contrary to our opening definition, DevOps is actually ‘The practice of integrating the work of the software development and IT operations teams…’ plus agile development practices.
Although the relationship between the two is not as simple as integration + agile = DevOps.
A set of practices aimed at accelerating the production of software, agile predates the idea of integrating development and operations, and, depending on what you read, this integration can be seen as an extension of agile or a response to it.
To put it another way, in the race to find ways of reducing time-to-market, people first developed agile practices, then went further by integrating development and operations, and have now bundled the two together and called it DevOps.
Why – the challenges it solves
DevOps was really developed to combat the problems caused by the artificial separation of the dev, operations and other teams (like Q&A). Before DevOps, the relationship between these teams was often antagonistic, with differing priorities and processes creating unnecessary friction.
A pre-DevOps tale
Let’s say we have an app company whose app shows users street food in their area. The dev team’s goal is to ‘finish’ new features as fast as possible. So when they send an update that pulls in menus to Q&A, they’ve hit a target. Time to celebrate.
However, Q&A’s job is simply to find as many bugs as possible and then send the code back to the devs. So that’s what they do.
The devs then insist the problem is to do with Q&A’s environment, but the two teams eventually produce something they can send to Ops, after kicking the code back and forth for a while, although by this point, the finished product is something neither team feels responsible for.
When they do hand it over to Ops, the updates crash the staging environment, but knowing how much fuss either team will make if they’re asked to take a look at the code again, Ops tries to fix the problem themselves.
They can’t. And eventually, they have to send the code back, where it has to run the whole gauntlet all over again – whew.
So, now we can see how integrating those teams would be beneficial, but how is it actually done?
How – what does DevOps look like?
You could say DevOps has two main facets, the technical and the cultural.
The technical facet is the tools used to integrate the teams and the practices those tools enable.
The cultural facet – a little more complicated – is both the cultural practices that arise around those tools, and the new attitudes and values they foster, as well as cultural practices that seek to integrate the two teams independent of those tools (or at least somewhat independently).
As an interesting aside, this is why some struggle to define DevOps, with some seeing it as a tool-based practice and others as a coding/development philosophy. It is generally both, though there is differing thought on which is more fundamental.
The technical: DevOps tools & the stages of DevOps
Broadly speaking, DevOps tools fall into six main categories.
Tools like Bitbucket, GitHub and GitLab act as code repositories allowing users to easily manage versions. Version control isn’t new per se, but it’s integral to CI/CD, which we’ll get to below.
Tools like Octopus Deploy, Jenkins and GitLab automate the process of sending code to the appropriate repository.
Tools like Puppet, Chef and Ansible, help manage the configuration of tools and environments, adding what’s necessary to work on a particular aspect of the project with ease.
Tools like Selenium and InfoSpec, automate code testing.
Public cloud / IaaS
Tools from companies like AWS and Azure make the provisioning of infrastructure automatable, spinning up the required servers at the push of a button or in response to another automatable queue.
Pipeline automation / orchestration
Pipeline orchestration tools are used to achieve the final stage in DevOps: continuous deployment, in which everything that happens after the developer finishes the code is automatic.
The three stages of DevOps
Generally speaking, the above tools are geared towards taking an organization through these three stages of DevOps, with the final stage being the desired destination where possible.
Stage One – Continuous integration
In this stage, we’re mostly talking about the automatic adding of code to repositories, and the testing of that code.
Stage Two – Continuous delivery
Quite a way on from stage one, Continuous Delivery sees releases occurring at the push of a button, with environments being spun up with a single command.
Stage Three – Continuous deployment
DevOps’ ‘final form’, continuous deployment means that once the code is finished, every step up to the final release is automatic.
The organisational: DevOps values and culture
As stated above, the cultural element of DevOps is varyingly influenced by the tools used.
As an example practice, we might have a weekly skill-sharing lunch in which Ops takes Dev through the issues they frequently face once the code is in the staging environment. Consequently, the Devs might a) cause this problem less often b) teach Ops how to fix the problem so that the code doesn’t need to come all the way back to them every time.
The above is a cultural practice, not dependent on DevOps tooling, in which the two teams are integrated.
Alternately – but similarly – the same team might use DevOps tools to identify and analyse these same issues, ultimately automating a response to fix the issue.
A post-DevOps tale
Our same lucky team of street food app developers have taken the time and money to invest in DevOps. They’ve researched common DevOps practices and invested in a few DevOps tools.
Now, when Dev wants to launch a new feature, they first add it to GitHub, via Octopus deploy, where it’s tested automatically by Selenium. This picks out 8 of the 10 issues before it’s passed on to Q&A.
Q&A and Dev now share the same goals and have a great working relationship, so the two teams work on the 9th issue together, eventually figuring out a way of automatically testing for it using Selenium.
When Ops get the code, they find and fix issue 10 with ease, having been trained by dev the week before.
All in all, a much quicker process with a much better result.
Closing thoughts on DevOps culture, values and proliferation
From the above example, you can see that DevOps culture and values can be varied, however, they tend to be in the general area of cooperation, skill-sharing, horizontal responsibility and an emphasis on automation (at least where tools are used).
With the advantages to DevOps being what they are, it’s no wonder it’s increasingly becoming a norm across the industry. However, as you may have gleaned from the above, DevOps is not such a simple thing to implement. Enter DaaS.
So what is DaaS and how does it change all this?
Now that we really understand DevOps, we can begin to really understand DaaS, and thus, we begin to understand its impacts.
What is DaaS?
As we said right at the beginning, DaaS is when you hire a third party to implement DevOps. DaaS providers have typically mastered the DevOps process, and work toward an automation pipeline with the client, with the tools used being hosted on the cloud.
DaaS can involve mentorship and skill sharing, but there is somewhat more of a focus on tool-based solutions. So, what are the impacts?
The impacts of DaaS on the tech industry
Daas is likely to nudge DevOps in the tool-based direction
Few DaaS providers are managerial experts who go into an organization aiming to bring teams together through the process. Generally, DaaS providers use tools to achieve DevOps, meaning that those who view DevOps as fundamentally defined by culture are unlikely to see things going their way.
Daas Feeds Into Broader Trends
The as-a-Service trend is furthered by DaaS. More and more being done by third parties. More and more being done on cloud. More and more management overhead.
This bolsters the role of the support partner
As we’ve written elsewhere, the atomisation of technical services and the consequent explosion of management overheads has given rise to a new type of business, the support partner.
The support partner holds the disparate skills needed to manage your many services effectively.
This role is increasingly being held by MSPs.
So… DaaS is good, ya? Pros of DaaS
Save on costs
When you opt for DaaS over developing your own DevOps practices, you obviously offload a huge cost. The training required to master the tools; the hundreds of hours your DaaS provider has spent learning what works and what doesn’t that don’t have to accrue; the difficulty in restructuring your entire operation and, of course, the cost of hiring.
Obviously, the above varies, but generally speaking, the cost of getting to DevOps is of course vastly reduced by obtaining it as a prepackaged service.
The benefits of cloud
Having your entire pipeline on the cloud is a huge help. It helps your team standardise and, if you need access to additional compute, it’s readily available.
Daas can be graphed on to any existing cloud DevOps process you do have
DaaS providers are able to slot themselves into your existing setup, meaning if there’s just one element of your development you’d like to automate, you can do so. This means you don’t have to take on the burden of developing a DevOps culture for a small part of your overall project.
Cons of DaaS
Miss out on professional development
The obvious mirror to cost-saving is all the professional development you won’t get to do yourself. For some businesses, slowly and painfully acquiring a full, ground-up DevOps culture is highly attractive, though this is mostly an option reserved for those with ample resources and specific requirements.
Moreover, there’s always the option of finding a DaaS provider who’s able to accommodate the growth you’d like to see in your organization.
As always, taking things online can make you more vulnerable to attack, although this is something of a truism, and is often not the case when the right precautions are taken. As with the previous point, finding the right DaaS provider is key to avoiding this issue.
DaaS isn’t plug and play
Even on the more tools-based end of things, some expertise is required to make use of a DaaS provider’s services. This means you can’t access the benefits of DevOps with zero knowledge of its practices.
- DevOps is the coming together of agile practices and the integration of Dev and Ops
- DaaS – DevOps as a service – is the practice of a third party providing that integration for you
- There are cultural and technical aspects to DevOps, and there is differing thought on which defines it
- DaaS makes use of DevOps tools, and is part of a broader trend towards the outsourcing of technical services
- There are pros and cons to DaaS, what you save on costs you pay in your own org’s development, although, as in the case of many of the other cons, finding the right DaaS provider can help offset the issue
To find out more about DaaS or to inquire about our DaaS services, click here.