Modern DevOps versus traditional DevOps
DevOps’ traditional approach involved establishing a DevOps team consisting of Dev, QA, and Ops members and working toward creating better software faster. However, while there would be a focus on automating software delivery, automation tools such as Jenkins, Git, and others were installed and maintained manually. This led to another problem as we now had to manage another set of IT infrastructure. It finally boiled down to infrastructure and configuration, and the focus was to automate the automation process.
With the advent of containers and the recent boom in the public cloud landscape, DevOps’ modern approach came into the picture, which involved automating everything. From provisioning infrastructure to configuring tools and processes, there is code for everything. So, now, we have IaC, CaC, immutable infrastructure, and containers. I call this approach to DevOps modern DevOps, and it will be the focus of this book.
The following table describes some of the key similarities and differences between modern DevOps and traditional DevOps:
Aspect |
Modern DevOps |
Traditional DevOps |
Software Delivery |
Emphasis on CI/CD pipelines, automated testing, and deployment automation. |
Emphasis on CI/CD pipelines, automated testing, and deployment automation. |
Infrastructure management |
IaC is commonly used to provision and manage infrastructure resources. Cloud platforms and containerization technologies are often utilized. |
Manual provisioning and configuration of infrastructure is done, often relying on traditional data centers and limited automation. |
Application deployment |
Containerization and container orchestration technologies, such as Docker and Kubernetes, are widely adopted to ensure application portability and scalability. |
Traditional deployment methods are used, such as deploying applications directly on virtual machines or physical servers without containerization. |
Scalability and resilience |
Utilizes the auto-scaling capabilities of cloud platforms and container orchestration to handle varying workloads. Focuses on high availability and fault tolerance. |
Scalability is achieved through vertical scaling (adding resources to existing servers) or manual capacity planning. High availability is achieved by adding redundant servers manually. Elasticity is non-existent, and fault tolerance is not a focus. |
Monitoring and logging |
Extensive use of monitoring tools, log aggregation, and real-time analytics to gain insights into application and infrastructure performance. |
Limited monitoring and logging practices, with fewer tools and analytics available. |
Collaboration and culture |
Emphasizes collaboration, communication, and shared ownership between development and operations teams (DevOps culture). |
Emphasizes collaboration, communication, and shared ownership between development and operations teams (DevOps culture). |
Security |
Security is integrated into the development process with the use of DevSecOps practices. Security testing and vulnerability scanning are automated. |
Security measures are often applied manually and managed by a separate security team. There is limited automated security testing in the SDLC. |
Speed of deployment |
Rapid and frequent deployment of software updates through automated pipelines, enabling faster time-to-market. |
Rapid application deployments, but automated infrastructure deployments are often lacking. |
Table 1.1 – Key similarities and differences between modern DevOps and traditional DevOps
It’s important to note that the distinction between modern DevOps and traditional DevOps is not strictly binary as organizations can adopt various practices and technologies along a spectrum. The modern DevOps approach generally focuses on leveraging cloud technologies, automation, containerization, and DevSecOps principles to enhance collaboration, agility, and software development and deployment efficiency.
As we discussed previously, containers help implement modern DevOps and form the core of the practice. We’ll have a look at containers in the next section.