Software release cycles are highly dependent on the specifics of your business. Whether it’s rapidly changing customer expectations in your industry, logistical challenges, or even security and compliance requirements, there are many factors you need to consider when identifying how frequently you want to release updates.
DevOps isn’t a silver bullet — it’s not going to eliminate these challenges, but it can heavily degrade their ability to negatively impact your business. By breaking the software update process up into smaller chunks through CI/CD, you reduce risk. Then, by automating how those updates are staged and deployed at scale via pipelines — a way to systematically and repeatedly deliver new software versions by utilizing automated testing — you can deploy software faster to more devices and make your customers happier.
This is an excerpt from my book “DevOps for Devices: The Innovator’s Guide to Enterprise Fleet Transformation,” available now on Amazon. Buy your copy today!
Continuous integration / Continuous delivery (CI/CD)
Since virtually all modern software is cloud-first, software development has moved to smaller, more frequent releases via the process of continuous integration and continuous delivery, or CI/CD. In the context of devices, CI/CD is a key element of the infrastructure that allows you to manage the business apps running on dedicated devices.
CI/CD covers the steps in the modern software development and release process:
- Continuous integration (CI): Comprises four phases: Plan, Code, Build, Test. The next phase, Release, is the transition from CI to CD.
- Continuous delivery (CD): CD starts with Release, and then comprises the next three phases: Deploy, Operate, and Monitor.
Release/Deploy/Operate/MonitorWhat is it?DevOps phases of software development DevOps phases of software operationsWho owns it?Dev teamIT/Ops team
In terms of team ownership, developers own the integration phases, and IT operations own the delivery phases. The transition phase, Release, is supposed to be collaborative. But in reality, it often becomes a wall. Developers toss their code over the wall to the IT operations team, who are then expected to release that code into production. DevOps is the paradigm shift that smashes this wall and aligns the two sides.
As the complexity of your software and device fleet grows, so too will your need for complex tools to enable efficient and effective deployment of that software in the field through each of the phases. When applied properly, CI/CD gives you the confidence and control you need to continuously innovate — another CI!
CI/CD: The fleet management game changer you didn’t know you needed
How often you release updates is a result of multiple competing business, technical, and logistical factors. The product team (including developers and engineers) wants to release as fast as they have created meaningfully better experiences for the customer. The operations team balances that with logistical concerns (e.g. is the device currently in use?) and risk factors (e.g. will the update affect 10 customers or 10 million customers? If issues arise, will this just slow the customer experience or break it completely?). Higher risk leads to less frequent updates, and fewer updates means customers wait longer to receive new experiences.
As your software deployment footprint grows, the complexity of those deployments will grow in equal or greater measure. Without proper CI/CD, you could find yourself with a lot of angry customers, a stale product, and a fleet that’s constantly trying to catch up to your missteps by rushing out the product before it’s ready.
Introducing the hardware component into your DevOps practice adds new wrinkles. Since DevOps is a framework for delivering quality software experiences quickly, DevOps practices — breaking things into smaller components, reducing risk, adding confidence to deploy faster, monitoring, etc. — can certainly be applied to devices.
In the CI/CD framework, this involves another CD: continuous deployment. You write the code, which is automatically integrated into the codebase and then automatically delivered to the testing or production environment. Continuous deployment takes the process further by automatically releasing a tested-and-proven update to your customers and devices in the field — whether all of them or a chosen group.
For apps, DevOps gives you ways to manage versions and constantly roll out new functionality. For devices, DevOps gives you ways to manage configurations at scale, ensuring your devices are ready to run your apps, including all the benefits of continuous building, testing, and deploying.
Breaking down silos and increasing innovation
CI/CD pipelines give you flexibility that isn’t possible with traditional siloed development and operations — you can adjust for variability across devices and simultaneously enforce consistency when and where you need it. Examples here include customer experience segmentation and regional version control. CI/CD pipelines built to account for such complexity let you release faster through simultaneous testing and deployment.
This helps you manage multiple teams pushing updates to the same devices. When your teams are innovating and pushing updates frequently (which is good!), you can sometimes end up with unintended issues. Fortunately, DevOps practices can solve those, too.
I once worked on a project where we built, thoroughly tested, and rolled out a custom update. Soon after the update went out, another team pushed their update, which was also thoroughly tested on its own. But together there were issues and the resolution required working with individual devices one by one. A mature DevOps culture and tool set doesn’t just break down silos between developers and operations, it also breaks down silos between engineering pods or teams. With CI/CD pipelines that can be shared between teams, the consequences from subsequent interactions can be identified and solved earlier in the development cycle.
But CI/CD pipelines is just one step in the process. If you want to learn more about how DevOps practices and improve innovation, software delivery time, and scalability in your device fleet, read my book DevOps for Devices: The Innovator’s Guide to Enterprise Fleet Transformation. It’s available now on Amazon!