Versioning is eating the software architecture
When it comes to managing modern applications, a lot of evolution in recent years has been in creating fusion roles and fusion teams primarily between development and operations organizations in a company. In this blog, we are going to cover the key innovation which has enabled effective integration of the two organizations.
As software is eating the world, versioning is eating the modern application architecture. -Himanshu Shukla, ex-Head of AIOps, Nutanix
Version control systems for source code have existed longer than the majority of the programmers in the world including this author. Versioning has not been exclusive to source code control systems (SCCS) and was also implemented in other systems like webpages and documents. That being said the technology advancement in SCCS has been lightyears ahead of any other field.
Most of the version control systems used hub and spoke or client/server architecture. Every developer would use client software and issue commands to interact with the version control server.
The invention of git took a quantum leap in this space. Git was created to solve a unique problem faced by Linux developers. The number of Linux developers was large. In addition, every developer was a free agent and would contribute to features they like by contributing in their free time. A fully distributed version control system was needed to meet this need which also needed to be fast. Git solved this problem by providing each developer with their own full-scale repository and letting the best changes propagate to the trusted repositories. Git was partially inspired by BitKeeper architecture.
When versioning ate Infrastructure
The biggest disruption came when versioning was introduced in the infrastructure. It created a whole new industry called Infrastructure as Code.
IaC was also propelled by the tailwinds of cloud adoption. IaC was only possible because it was possible to create infrastructure programmatically.
Software versioning is a gift that keeps on giving as it’s applied to different parts of the software stack. Like application architects, infrastructure and cloudOps architects should pay special attention to the right versioning architecture and semantics.
This post was created with Typeshare