Immutable infrastructure involves servers, network appliances, and other devices which are never updated or changed. In part 1 of our blog series, we discussed the most inherent challenges with the immutable infrastructure paradigm. This post will cover immutable infrastructure best practices that you should follow to overcome these challenges and fully embrace immutable principles in your enterprise.
Immutable infrastructure best practices for network professionals
Infrastructure as Code (IaC)
Infrastructure as code, or IaC, uses software abstraction to separate infrastructure configurations from the underlying hardware, allowing you to write configurations as repeatable scripts that you can deploy to many different devices. It also facilitates automation and orchestration through tools like RedHat Ansible, which stores and automatically executes configuration scripts according to predefined playbooks.
IaC is used traditionally for physical and virtual server configurations, but you can also use it to create and maintain virtualized network device configurations. This is sometimes called network infrastructure as code or software-defined networking (SDN). SDN goes beyond just abstracting configurations from the underlying networking hardware. It virtualizes your entire network, creating an overlay for managing and optimizing network routing, load balancing, segmentation, and more.
IaC is an immutable infrastructure best practice because it allows you to create and deploy configurations quickly and at scale. It enables truly immutable infrastructure that you can copy, delete, and replace at will. Without IaC, you must provision each new and updated instance manually. Even with a large team of engineers, updates could take a long time, and intermediate periods during which different versions of the same server or network configuration were active simultaneously will appear. Plus, manual configurations are error-prone, and mistakes could create vulnerabilities in your network.
Infrastructure as code and network infrastructure as code allow you to deploy virtual configurations programmatically and automatically. For immutable infrastructure, IaC is frequently used to deploy and configure images for containers and other virtualized environments.
A golden image is a standardized template for physical or virtualized infrastructure. You start with a base image with only the software and settings required universally across all instances of that device. Then, you install any agents or services needed for monitoring, threat detection, analysis, etc. Finally, you harden the image with security policies and tools, and patch any known security vulnerabilities. Once the golden image is complete, you freeze it so no further changes can be made.
Best practices for creating, securing, and updating golden images for immutable infrastructure include:
- Incorporate as many dependencies and settings as possible in your golden image to reduce the amount of configuration that needs to happen at deployment. This will ensure that the golden image you’ve tested and validated is as close as possible to the final production configuration. It will also make it faster and easier to scale.
- Continuously scan and analyze golden images for new security vulnerabilities. That way, you can create and deploy patched versions as soon as possible, hopefully before a malicious actor has time to exploit those vulnerabilities.
- Fully decommission old images once they’ve been replaced with newer, more secure versions. This will ensure a consistent and secure environment, and decrease the risk of accidentally spinning up new instances with old images.
- Store golden images in multiple locations on a micro-segmented network. Use zero trust security to create granular policies and build customized micro-perimeters around your golden images. This will protect your images from exfiltration or unauthorized modifications. It will also ensure access to golden images for recovery purposes even if you must isolate particular micro-segments during a breach.
Golden images for virtualized servers and network devices can be deployed, modified, and updated through IaC orchestration platforms—Like AWS, Azure, etc. This further streamlines the provisioning of immutable infrastructure, ensures consistent configurations across instances, and facilitates fast and easy scaling.
Stateful and persistent data
You should strive to make infrastructure and data as ephemeral as possible. Still, there are cases where you’ll need data to persist as you’re creating, deleting, and copying immutable resources. For stateful and persistent data, you should use mountable storage attachable to new instances when old ones are terminated.
Make sure you separate the ephemeral data from stateful/persistent data, so you only keep what you absolutely need to. This will help you reduce storage costs and simplify your overall operations. In addition, you should ship log files off immutable instances and send them to a centralized monitoring server as frequently as possible to ensure they persist.
Implementing immutable infrastructure best practices in your enterprise
Many of these immutable infrastructure best practices rely on modern, software-defined technology stacks, making it challenging to apply them to legacy infrastructure. You also need clear, centralized orchestration to see and control every piece of your immutable infrastructure, even across highly distributed networks with remote branch and edge locations. Finally, all of your immutable infrastructure solutions must work together seamlessly regardless of vendor or ecosystem.
ZPE Systems can solve all these challenges with the Nodegrid network orchestration solution. Nodegrid supports network functions virtualization (NFV), which turns your physical networking appliances into virtualized solutions you can configure and manage through IaC and SDN. Nodegrid’s vendor-neutral serial console servers also support legacy pinouts, so you can bring your legacy physical infrastructure under your immutable orchestration umbrella.
The ZPE Cloud network orchestration platform can also control remote data center, branch, and edge infrastructure. You can host your choice of SD-WAN (software-defined wide area networking) solution on your Nodegrid devices or use ZPE Cloud’s SD-WAN app. This technology allows you to extend the reach of your virtualized network orchestration to your WAN architecture. To dig even deeper, you can use the SD-Branch app to control branch and edge LANs as well.
The ZPE Cloud platform and all Nodegrid devices are truly vendor-neutral, allowing integrations with leading third-party IaC, SDN, and security providers. Nodegrid empowers you to create a tightly-integrated, seamless immutable infrastructure solution for total network control.
See how Nodegrid can help you implement immutable infrastructure best practices in your enterprise.
Call 1-844-4ZPE-SYS to view a free demo.