Infrastructure as Code, immutable infrastructure empower NetApp IT to meet changing business needs
By Ed Wang, Senior IT Manager
For modern enterprise IT organizations, it’s becoming crucial to automate the provisioning and management of infrastructure. With hundreds of deployments and changes, it is increasingly difficult to maintain a consistent infrastructure without variations across systems. Inevitably, trying to manage such an environment creates a massive burden on IT operation, and it is not reasonable to expect this work to be done using traditional methods.
That’s the basis for our approach to CloudOne DevOps, NetApp IT’s container based (Kubernetes), hybrid cloud platform for application development and operations. It’s a dynamic platform that requires us to adopt and embrace Infrastructure as Code (IaC).
IaC enables us to react quicker to changing needs by embracing automation. This approach enables us to take a more agile approach to meeting business needs while providing consistency across the board in the everchanging platform. For example, if we need to quickly deploy additional capacity for CloudOne, we can do so quickly. Adding a new compute blade, managing blade failures are all automated and can be done with the click of a button. Because it’s code-based and doesn’t require manual configuration, it minimizes human errors, and every new blade is configured identically to all the other blades. Since all the configuration is driven by version-controlled code, it can be easily rolled back to previous configurations if there are any issues.
Immutable infrastructure helps avoid unexpected alterations
With the IaC approach, we are also able to manage our Kubernetes platform with immutable infrastructure. The CloudOne servers are never edited or updated, they’re replaced with a completely new image. Immutable infrastructure ensures that all servers remain identical. When an update is needed across servers, there’s a chance of failure in the update process that could lead to a permanent alteration. The more the systems are patched after that, the higher the probability of the unexpected change impacting the system.
With an immutable infrastructure approach, this doesn’t happen. NetApp IT doesn’t patch CloudOne’s containerized platform. Instead, we create a new, updated image of the server, tests for quality, and then new systems with the updated image are created to replace the older servers. With this approach, the old images are never updated eliminating configuration drift. If there were any issues with the new image, we can easily roll back to an old image without disruptions.
How we use FlexPod
We manage our on-prem Kubernetes clusters running on NetApp’s own FlexPod in a “bare metal” configuration using Terraform by HashiCorp. Terraform uses providers as building blocks that makes its operation much simpler. In our jorney to IaC and immutable infrastructure, we developed a Terraform provider for Flexpod called “flexbot” which enabled our team to easily manage our own FlexPod infrastructure.
If you’re working in FlexPod as well, we’ve uploaded the provider to the Terraform providers registry. If you are interested in leveraging the automation we created for your FlexPod infrastructure, take a look at the provider and see if you can take advantage of it as well. The flexbot provider has eliminated a significant amount of manual work for us and may be able to do the same for you.