With so many industry buzzwords and “next big things,” it can be challenging to keep it all straight. We’re setting out to change that. In this and future articles, we’re going to describe what DevOps really is, what it's not and why it matters to more than just “hands-on-keyboard” contributors within your organization.
At WWT, we see DevOps as:
These practices—derived from lessons learned from agile software development and lean manufacturing methodologies—require an organizational change in the culture of software development and operations. In traditional software development, software engineering teams are isolated from the people responsible for testing, securing, deploying and operating the code they’ve written. DevOps practices break down these knowledge silos, encouraging teams to work closely together during all stages of the software development lifecycle.
We make an important distinction in the way we define DevOps; we explicitly avoid any mention of specific tools or platforms, focusing instead on the principles and practices those tools enable. There’s a myriad of technologies that are commonly given the label of DevOps tools: containers and container orchestration platforms, public clouds and tools to interact with them, continuous integration toolchains and deployment tools, tools for managing infrastructure and tools to manage server configurations.
These are all fantastic technologies that can provide an incredible value for developers in nearly any organization, and we’ve partnered with multiple companies providing solutions in this space. That said, we emphasize that taking advantage of all the benefits these tools and platforms can provide first requires an understanding of the practices they are designed to enable.
So, what are these principles and practices we're so focused on?
In the DevOps Practice at WWT, we’ve adopted author Gene Kim’s description of these principles called the Three Ways of DevOps. We will detail each of these practices at length in future articles, but at a high level, they can be grouped into just a few important points.
First, before any optimizations to a system are made, it is vital to have an understanding of the entire system, from idea to customer value. We call this “systems thinking,” and by understanding the process from start to finish we can identify bottlenecks and make changes to alleviate them. Understanding how work moves from idea to reality and making optimizations to that process is referred to as Flow and, along with other related practices, makes up the First Way of DevOps.
In addition to Flow, we focus on shortening the amount of time it takes for teams to receive information they can use to ensure they are building the right thing. Feedback, the Second Way of DevOps, has numerous avenues for improvement. As an example, within our Agile Software Delivery group, we embed Quality Advocates alongside each of our development teams.
By including and ensuring quality from day one, we ensure that teams are aware of potential bugs or missing requirements hours after they’ve finished writing that code, rather than weeks or even months later. By receiving this feedback immediately, teams are able to fix issues earlier in the development cycle, avoiding issues in the future where significant rework would have been necessary to fix these problems.
The Third Way of DevOps is Experimentation. By using practices such as automation and storing infrastructure and configuration as code, we can ensure deployments are safe, simple, repeatable and frequent. By storing those configurations in a version control system alongside our application code, we ensure we always have a known-good combination we can roll-back to.
Additionally, we can use these configurations to programmatically create both our end-user facing environment as well as any additional copies on-demand and as needed for development and testing. This gives engineers the security and freedom to test new ideas and explore alternative ways to solve problems, without having to worry about the “what-if’s” that typically accompany software deployments.
What’s more, since each of these environments are created from the exact same configuration code, we can be absolutely certain that the environments we are using to innovate and test new ideas are exact duplicates of our end-user environment. This helps us know for certain that what we created and tested will work exactly the same when it finally “goes live.”
Are these practices in place in your organization? Do you need help turning your team into one focused on continuous learning and improvement? Is a new tool looming over the horizon for your engineers, and you’re not sure where to begin?
These are all questions we can help answer. Our DevOps consultants and container platform engineers are available to partner with your organization as you navigate the DevOps ecosphere and become the next success story. Our offerings include DevOps assessments fine-tuned to the focus you feel your organization needs, accelerators in multiple areas to get you started in the right direction and workshops designed to help you build and maintain new ways of working.
- Infrastructure-as-Code Accelerator: We work with your engineering teams to create the culture needed to automate and treat your infrastructure as it is software. We'll help break down silos in your organization and create a shared code culture. On the technical side, we'll help your teams work with version control systems, configuration management tools and cloud management platforms. The end goal of this engagement is to have self-service in place and be automating routine tasks that create the frustration from passing tickets across multiple silos in an organization.
- DevOps Platform Accelerator: The DevOps Platform Accelerator gets you up and running on Kubernetes and teaches you how to treat your platform as a product. Managing Kubernetes is, in many ways, very different from traditional IT and we're here to help with that learning curve. Whether it's OpenShift, PKS, Rancher or cloud, we have the expertise to help you install it and manage day two and beyond activities. We'll cover all aspects of Kubernetes, including but not limited to: storage, security, networking, service mesh upgrades, maintenance and many other aspects unique to your organization.
- DevOps Workshop: The DevOps Workshop ties everything together. Our DevOps consultants work with your developer and operations teams and help break down the silos that exist. We'll work with your organization to find areas of improvement that need to be made within your culture, process and technical practices.
WWT offers several hands-on virtual labs for you to explore Kubernetes in a sandbox environment at your own pace. Check out our Red Hat Openshift 101 Lab or our OpenShift CI/CD Lab so you can ensure security, scalability and availability of containerized applications across your organization.