By Joan Wrabetz, CTO of Quali
If we apply the definition of organic and free range to DevOps, what does that mean? Well, Wikipedia defines “organic” to mean…….. DevOps is a practice or methodology that is successful when the entire organization is infused with it. Certainly all DevOps should be organic. Wikipedia defines “Free Range” to mean that the entity is free to get its nutrients from wherever it wants. Should DevOps be Free Range? In order to answer this question, let’s examine the types of software development environments where DevOps could grow and thrive.
Greenfield vs Brownfield
If DevOps were bovine, where would it graze? Probably, it would prefer greenfield datacenter environments because the infrastructure could be selected to work optimally with new DevOps friendly coding practices like mico-service architectures and light weight containers. Greenfield infrastructure might all be in the cloud, or might employ new operating systems designed for containers like CoreOS or Docker Enterprise.
On the other hand, Brownfield datacenters might be more fertile ground in many companies because the majority of the applications run on existing infrastructure using existing virtualization systems like Vmware and Openstack. If DevOps were looking for the most food, it might find that in Brownfield datacenters.
Sandboxes for Free Range DevOps
The perfect DevOps feeding ground would be the big existing Brownfield datacenters, but with the simplicity and uniformity of Greenfield environments. Sandboxes can make that possible by replicating the often complex brownfield datacenter infrastructure – from networks and servers to virtual environments and cloud interfaces – and making the replica available to every developer as part of their greenfield DevOps environment.
When implementing DevOps practices, the following three capabilities can be combined to implement Organic Free Range DevOps:
- Containerize applications
- Implement Devops tools to enable a continuous DevOps lifecycle, and
- Use Sandboxes throughout the DevOps lifecycle.
Think of these 3 steps as addressing the “what”, “how” and “where” elements of the enterprise DevOps challenge:
Containers (the “what”) – Putting your applications into containers allows them to look uniform as they cross between non-production and production environments and between on premise and cloud.
Devops Tools (the “how”) – Using Devops tools that automate the steps from programming to testing to production deployment is designed to address the “how” part of the challenge.
Sandboxes (the “where”) address the real question of “where” do I develop my containerized application so that the environment and infrastructure that it runs on look the same from the development lab to the test lab to the production datacenter or cloud.
Sandboxes are self contained infrastructure environments that can be configured to look exactly like the final target deployment environment, whether Brownfield or Greenfield, but can be created and run anywhere. For example, developers can create a sandbox that looks like the production environment – from network and hardware to OS versions and software to cloud APIs. They dotheir development in that sandbox for a short period of time and when they are done they tear down the sandbox. Testers can do the same thing, and in addition, they can run a bunch of tests with the sandbox configured to look like their internal IT environment and then automatically re-configure the sandbox on the fly to look like the external cloud environment and run more tests. This allows them to test all of the possible environments that the application could run in without disrupting the actual production infrastructure.
Applications need to be deployable on both Greenfield and Brownfield infrastructure. Containerizing applications alone will not guarantee this. The addition of Sandboxes allow developers to mimic both environments and define applications that can run successfully in both types of infrastructure. The sandbox can be used to test in both types of infrastructure.
Of course, in the perfect world, Containers, Devops tools and Sandboxes can be combined to enable Organic Free Range DevOps.