DevOps, which originated in the late 2000s, is by now a mature and established discipline. It’s no longer evolving as rapidly as it did in its early years. Yet there is one force that is likely to drive a new round of innovation among DevOps practitioners: The need to provide IT support and servers to remote workers.
As the work-from-home trend continues indefinitely (due not just to the pandemic, but also to a longstanding trend toward increased rates of remote work), DevOps teams will find themselves having to devise new strategies and adopt new tools to provide a seamless experience for remote workers.
To illustrate some of these changes, let’s take a look at five ways in which DevOps is likely to evolve over the coming years in response to the need to support remote workers--including employees in IT roles who are part of the DevOps process, as well as non-technical users who need an easy and secure way to access IT resources while working from outside the office.
1. Greater reliance on virtual DevOps collaboration tools
One of the central roles of the DevOps team is to serve as a communications bridge between development and IT teams, ensuring that these two departments keep each other’s needs in mind when building, deploying and managing code. In some cases, DevOps also requires bringing other groups of stakeholders, like HR and legal departments, into conversations about software design and deployment.\
This is difficult work to do under any circumstances, but it becomes even harder when the various teams and team members are geographically dispersed. I suspect that this challenge will drive greater interest in virtual collaboration and communication tools.
Organizations that in the past used tech-oriented communication tools like Slack or Trello only for technical teams may find that it makes sense to adopt them for broader groups of employees to keep communication about software delivery flowing when it’s impossible for everyone to sit down in the same room. And technical teams that used these types of tools internally are likely to begin leaning on them more extensively as a way to interface with external teams, too.
2. Support a broader range of end user environments
When all of your users are working in the same physical office, it’s relatively easy to ensure that the hardware and software configurations on their devices do not vary too much. As a result, the number of environment variables you have to test for and address is limited.
Things become more difficult when more employees work remotely, often using personal devices that they configure themselves. With remote workers, there is much less predictability about which hardware and software employees will be using to connect to the line-of-business apps that they use to do their jobs. Local network configurations may vary from those of the office, too, creating another potential layer of compatibility problems.
These challenges are likely to drive increased use of automated testing by DevOps teams who need an efficient way of ensuring that the business apps they deploy and manage will work as required, no matter which types of devices, operating systems or special configurations employees are using.
3. Shift to cloud-based secrets management
It’s hard enough to ensure that users follow best practices for securing passwords, encryption keys and other digital “secrets” when all applications and data remain within the local office. It becomes even more difficult with remote workers. When users are working remotely, DevOps teams need to manage additional risks, such as the chance that employees might try to download secrets to local personal devices, and establish secure ways for remote users to log into secrets databases.
These needs are likely to push more organizations toward a cloud-based secrets management architecture, wherein they discard on-premises password managers in favor of solutions such as AWS Secrets Manager or Azure Key Vault to secure sensitive authentication and authorization information.
This means that DevOps teams that are not yet up-to-speed with the so-called cloud-native approach to secrets management will need to get there. Modernizing the way you manage passwords and keys might not be the most exciting task for the typical DevOps engineer, but it has become all the more important in the age of remote work.
4. More agile CI/CD
CI/CD, the software delivery strategy closely associated with DevOps, has always been about adding flexibility to the process of writing, building and deploying software. But in a remote-work-centric world, CI/CD will need to be even more agile.
The main reason why is that supporting remote users requires the ability to quickly roll out changes to line-of-business apps. This is especially true in situations where users have to shift to remote work suddenly, as they have during the pandemic and may have to do again if future waves of contagion cause reopened offices to reclose.
In these circumstances, software delivery teams may need to deploy new features (such as an authentication service that works with users connecting from external networks, or data-compression features that improve app performance when users are connecting from remote locations with slower Internet connections than they would have in the office) that were not part of an application’s original functionality but are crucial for supporting remote users.
In other words, the conditions under which remote work is currently occurring are somewhat unpredictable. This reality renders even more important the ability to modify software quickly through a flexible, agile CI/CD process.
5. More cloud-based dev/test environments
Even in organizations already running production applications in the cloud, dev/test environments sometimes remain on-premises, where it is easier to redeploy code or upload data quickly.
But when developers, IT operations engineers and other stakeholders work remotely, on-premises dev/test environments are more difficult to access. In this respect, the increase in remote work is poised to accelerate the adoption of cloud IDEs and other cloud-based platforms for writing and testing code.
There might also be greater interest in hybrid cloud platforms that include PaaS solutions, which would offer DevOps teams the flexibility of hosting dev/test environments in an on-premises data center while still accessing it as a public cloud service. That way, they can take advantage of the performance benefits of a local dev/test environment when they’re in the office, but still enjoy the accessibility of a cloud-based service when they are remote.
As companies continue to prioritize strategies that offer the flexibility for employees to work remotely, the strategies and tools that drive DevOps will need to adapt. Forward-thinking DevOps engineers should be exploring new opportunities for leveraging the cloud to support remote workers and workflows, while also addressing challenges like the need for more thorough testing of line-of-business apps and ways to collaborate effectively when employees are out of the office.