This blog post is an excerpt from GovLoop’s recent guide, “Make DevOps a Reality at Your Agency.”
Government knows that DevOps isn’t just about the tools, and that it’s not only limited to developers and operations. At its core, DevOps is a culture of collaboration and communication among parties involved in the creation and delivery of software applications and services. What many agency leaders are now discovering, however, is the correlation between DevOps and tools like microservices and containers.
In an interview with GovLoop, Richard Lucente, Middleware and PaaS Solutions Architect at Red Hat, discussed how government can best harness microservices and containers for their DevOps implementation. Red Hat is a leading provider of open source solutions and DevOps tools and processes.
What exactly do microservices and containers have to do with DevOps? Microservices are small, single-purpose applications that collaborate using application programming interfaces (APIs) to deliver services. Containers are closely allied with microservices and are separate entities that use the same server resources to run applications. Combined together, microservices and containers can allow government to build more complex applications that can better integrate with other applications.
Lucente pointed out that containers and microservices can be helpful in an agency’s DevOp’s journey because they promote small, incremental change as well as minimal differences between development and test environments and the final production environment. For government agencies, deployment to production can be a long, painful process where constrained budgets and public scrutiny make failure anything but an option.
“Deployments tend to be traumatic events involving many folks and long hours to complete,” Lucente said. “Organizations tend to combine many features and capabilities into larger and larger deployments to minimize the frequency that the deployments occur.”
But what microservices do is flip that approach by encouraging smaller and more frequent changes to the production environment. “Microservices provide a way to deploy capabilities behind well-defined and managed interfaces where each service is free to evolve on its own without impacting other services,” Lucente said.
When agencies adopt microservices and containers, they can expect several benefits. In addition to easier deployment cycles with microservices, containers also offer faster deployments with fewer defects. “Containers enable more strategic focus for IT staff rather than the care of individual and often problematic legacy applications,” Lucente said.
Additionally, containers are efficient in their use of memory and storage since each container is typically a single process within the computing environment. Rather than install and boot an entire operating system, as is the case with virtual machines, containers simply start a process on the host machine. Because start up and shut down times are so quick, this also leads more readily to self- healing architectures and rapid provisioning of new capabilities.
Knowing these benefits, how can agencies get started with microservices and containers? A container development toolkit is helpful. Red Hat offers OpenShift Container Platform, a full-stack container development, hosting, management, and orchestration platform. For those looking to get started quickly, Red Hat also provides a pre-built Container Development Kit based on Red Hat Enterprise Linux to help develop container-based applications quickly. These containers can then be deployed on any Red Hat container host or platform, including Red Hat Enterprise Linux or OpenShift Container Platform 3.
Rather than assembling a container development environment from scratch, Red Hat’s Container Development Kit delivers container tools in a Red Hat Enterprise Linux virtual machine that can be used on familiar enterprises, like Apple macOS, Microsoft Windows or Red Hat Enterprise Linux system. Additionally, your IT team doesn’t have to worry about configuration, as those details can be handled by Vagrant, an open-source tool for creating and distributing portable, reproducible development environments.
In addition to such tools, Lucente advised that agencies encourage open discussion as a key component to successful DevOps implementation. “Avoid a culture of fear at all costs,” he added. “Instead of retribution and judgment, encourage innovation.”
From Lucente’s experience, agencies are most successful with DevOps when they are realistic about their goals. He suggested that high-achieving organizations create small, focused teams for a specific achievable goal. Then, build a limited set of applications or services leveraging DevOps and supporting technologies like containers. Once other groups in the organization see the faster delivery of high-quality features and capabilities, they’ll want to share in that success.
“That’s how adoption grows from a small seed outward,” Lucente concluded. “These initiatives also enjoy the support of management, so the culture becomes more open and willing to embrace change.”