NetApp and DevOps: How We Did It
NetApp and DevOps: How We Did It
Let's look at the tools one company used, from Ansible to Kubernetes, and the lessons and best practices they learned when implementing DevOps.
Join the DZone community and get the full member experience.Join For Free
For the last several years, NetApp has been on our own DevOps journey. We made the decision to adopt DevOps methodologies and technologies into our own systems. Led by our internal IT team, we've taken the steps to a software-defined, cloud-based data center with end-to-end DevOps workflow automation. So, how is it going and what can you learn from our experience?
Want your team to stay focused through your own DevOps journey? Check out Best Practices for Adopting a DevOps Culture.
Find Your Balance
Implementing DevOps is a balancing act.
The Dev side thrives on fast changes and delivery, new features, new technology, and innovation. The Ops side? They live for stability, control, and non-disruptive operations. Both sides are right. DevOps means finding a way to get developers and ops staff to work together from start to finish. We're doing it by building a platform with an infinite set of developer tools, platform software, and infrastructure. It's a work in progress, and it's working.
Three Lessons Learned About DevOps
On our NetApp journey, we discovered three important challenges. Here's how to prepare for them.
- Build a base environment — we realized early on that it would be a year-long effort from vision to first release because of the complexity of getting DevOps workflows automated. Taking advantage of the tools available to automate routine tasks, such as provisioning environments, frees up resources to engage in more high value work. With software defined storage becoming de-facto it provided an opportunity to enable our team with new skills throughout the course of the transformation. The goal for NetApp was to transition from a storage led view of the world to a fully cloud-native environment that relies on a vertically integrated platform as a service supporting modern application development.
- Educate app development teams — it's vital to educate your teams on cloud-aware apps and DevOps. Ensure your developers that you are committed to enabling a fully cloud-native development environment. Our dev team uses Kubernetes and we made it clear that we would support persistent volumes for containers. Establishing this shared commitment builds trust between your Dev and Ops teams.
- Keeping key engineers focused — DevOps is an on-going process. Engineers have to stay engaged. Our operating model leans on agile practices and frequent releases to foster engagement. Collaborate with your Scrum Master to highlight wins along the way to demonstrate the connection between platform enhancements and reduction of blocks and stop-work issues.
DevOps: Using Our Own Products
As our own DevOps customer, we were committed to using our own products and services. We collaborated with our product teams, giving continuous feedback to improve NetApp's customer experience.
We intend to implement ONTAP Ansible playbooks for infrastructure automation and the NetApp Trident plug-in for volume creation in OpenShift.
Our in-house technologies include:
- Hyper-Converged Infrastructure (HCI) for computing, memory and local storage for containerized application components.
- All-Flash FAS (AFF) for the stateful (NFS, iSCSI) storage platform for databases and high-performance workloads.
- StorageGrid is the repository for heavy object storage usage, since cloud-aware apps are inherently stateless.
There is no single approach to effectively execute on a DevOps strategy. We certainly didn’t find a silver bullet product or tool. The key is to get clear on the direction that you want to go and identify the gaps and barriers within your organization that need to be overcome before you get started. For NetApp, our starting point was infrastructure automation. It’s also wise to ensure that your base platform is open and flexible enough to fully support the modern application development that exists in your organization today as well as the future state.
Opinions expressed by DZone contributors are their own.