On the surface, “DevOps” is an easy concept to break down — it’s the combination of development and operations. Beyond the etymology, however, it’s a little (okay, a lot) more complex.
The definition of DevOps
DevOps is about aligning teams to deliver quality software experiences in an agile way. Traditional DevOps is defined as “a set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production,” per Len Bass of IEEE. It’s better thought of as a cultural shift within organizations, evolving previously siloed teams for a much more seamless workflow.
Previously, development and operations teams would work independently of one another — engineering would plan, develop, and test applications, then toss the “finished” product over to operations. Operations was then left to deploy this software, document breakage, and then “toss” the resulting debug work back over the wall to development. There was little in the way of process or systems to encourage the two teams to cooperate beyond the bare minimum necessary to achieve product delivery.
With DevOps, engineering and operations are in constant communication, allowing both teams to iterate faster and more efficiently, greatly reducing the time between new code being written and that same code being deployed in production. Development teams deliver new code to operations constantly – in many cases, as soon as commits are integrated (this is continuous integration) – and operations can then move to deploy that code immediately as a series of smaller, incremental updates to systems instead of quarterly or even annual releases. Many sophisticated DevOps organizations deploy new code daily, or even hourly. Allowing organizations to move quickly and update (and thus, innovate) more often is the whole point of DevOps.
Automation is also a crucial part of a functioning DevOps model. The proper technology stack and tools allow teams to automate previously manual tasks like testing and deployment staging, freeing up precious time to allow further innovation
DevOps for devices is a new way to extend these larger DevOps principles to end hardware. End devices are often overlooked as part of an overall DevOps strategy, but if you have devices in the field (a device “fleet”) that require updates and support, you can benefit from a DevOps approach.
What is DevOps for devices?
DevOps for devices isn’t strictly about DevOps culture or specific cloud platform features. At its core, it’s still all about automating agile software development processes to enable frequent software delivery cycles to end devices by leveraging the power and versatility of Android. As part of this chain, hardware must become more than just hardware that needs to be managed — fleet devices can almost be thought of as software containers designed for constant iteration and automation.
How does DevOps for devices work?
CI/CD plays a crucial role in DevOps principles. CI stands for “continuous integration,” but what the “D” actually stands for can be a source of confusion — it could be “continuous delivery” or “continuous deployment,” depending on who you ask.
For us, CI/CD is better described as CI/CD/CD — continuous integration, continuous delivery, and continuous deployment. You write the code, which is automatically integrated into the codebase and then automatically delivered to the testing or production environment. This is traditional DevOps, and where most teams tend to stop. Continuous deployment takes the process further by automatically releasing a tested-and-proven update to all your customers and directly to devices in the field.
There’s no prerequisite human element here past the code creation — the testing, build, and re-testing phases can all be automated. If an exception does occur during testing, you can use telemetry and remote tools to diagnose and address failed deployments, all the way down to the individual device.
Where does traditional Mobile Device Management (MDM) fit into DevOps?
Using MDM (mobile device management) or EMM (enterprise mobility management) solutions to deploy your software is not practicing DevOps. While traditional MDM and EMM solutions offer some tools for software deployment, they lack the granular telemetry, sophisticated cloud delivery infrastructure, CI/CD integration, and testing tools that are crucial to a DevOps strategy.
In other words: they’re not the right tool for the job — and they were never meant to be. Frequently, organizations turn to traditional MDM solutions for non-MDM problems because they lack a better option. To circumvent the shortcomings of MDM, many organizations end up building their own management solution. In a recent survey conducted by 451 Research (and commissioned by us), 84% of respondents said they were using a commercial MDM solution, and three-quarters of them are facing challenges with the existing tools.
The shift from MDM to DevOps is the missing piece of the device management puzzle that many organizations lack. Leveraging Android and implementing DevOps in your organization allows you to go beyond mere device management by giving you control of the entire toolchain from start (hardware, firmware) to finish (interface and UX). In turn, that allows for more agile management of your device fleet, as well as faster, more consistent, and reliable updates.
How to go beyond MDM to DevOps for devices
DevOps for devices aligns people and practices around agile product innovation end to end. Going beyond MDM to DevOps can improve real-time response to changes in your device fleet makeup, OS version, apps, configurations, or user behavior. Advanced telemetry metrics and real-time monitoring are essential aspects of the DevOps principle of observability.
If you need a modern solution for not just managing a device fleet, but innovating and deploying software and products at scale, DevOps for devices is where you go. And if you’re not set up as a DevOps organization yet, don’t fret — our platform makes it incredibly straightforward to get started, and you can integrate our tech stack at your own pace to get immediate value with your current organization and continue to build it as your evolve toward a true DevOps implementation.
When it comes to DevOps for devices, we’re the specialists. No one does it better than we do, so let us help you shift your organization to a DevOps platform — regardless of whether you’re already using Android or not.
To learn more about how Esper can help you transition to Android DevOps, request a demo today.
Featured image source: Shutterstock.com/ZinetroN