Demystifying Containers Part 1 – Microservices and DevOps

Created by: Delster Miguel Tanedo 5min read
Dec 5, 2022

Why is there a push for container technology?​

A lot of this happened between 2013 and today which container adoption rose dramatically. We will discuss some of the drivers that helped pushed container and container orchestration software to companies. Some of these are the following:​

  • Developer and Operations team deployment friction
  • Rise of Microservice Architecture over Monolithic​
  • DevOps Culture​

The problem of shipping applications to production​

It is a tale as old as time which developers & operations team are having a hard time shipping application that works properly in any environment. ​

Developer team argue that their code is working properly in their development environment or machine. Operations team gets the artifacts from the development environment and surprise surprise, it is not working anymore. ​

Docker meme

Docker meme

Virtualization technologies were created to reduce friction, but the battle continues to rage on.

Monolithic versus Microservice architecture

Before microservice architecture was popular, monolithic architecture is the go-to architecture pre-2013. A lot of people may have nostalgia of the LAMP stack (Linux, Apache, MySQL, PHP/Perl/Python) which is one of the quickest way to deploy applications in that era.​

Monolithic applications reside in single codebase and is designed to be self-contained. Multiple components are combined into a large application. They should not be confused with the “monorepo” where you develop multiple projects in the same repository.​

Simple monolithic architectur

Simple monolithic architecture

Advantages and Disadvantages of Monolithic Architecture

AdvantagesDisadvantages
Simple to develop over microservice architecture​It can grow over time; making it harder to maintain.​
Easier to deploy since only one artifact is used​Needs to redeploy the whole application instead of a module.​
Network latency problems are minimal in comparison to microserviceHorizontal scaling in monolithic applications is inefficient.

Microservice architecture is the style that breaks down an application into a collection of services with the following characteristics:​

  • Highly maintainable and testable
  • Loosely coupled​
  • Independently deployable​
  • Built around business capabilities​

Big bang releases (monoliths) are rarer because business today stress the importance of their product’s time to market and avoids the usual problems of a large release: slow, high degree of complexity and difficult to reproduce.​

​Advantages and Disadvantages of Microservice Architecture

Microservice in a nutshell

Simple Microservice architecture

AdvantagesDisadvantages
Relatively smaller footprint versus monolithic architecture​Much more complex that monolithic architecture​.
Services are independent of each other making scaling much easier​Network latency and issues are much more prevalent​.
Different technologies can be used for each service​Debugging is distributed across multiple services.

DevOps Era

DevOps is the desired fusion of Development (“Dev”) and Operations (”Ops”) into one single entity. They are no longer “siloed” and helped bridge the communication gap between the two entities. It is a culture that makes an organization deliver applications and services at a high velocity. ​

Microservice architecture break down services into smaller, more digestible parts which in turn can be divided to multiple groups. Development teams can tackle these services as separate entities; streamlining development, testing and deployment.​

Container technology complements the DevOps way and microservice architecture by packaging each service as an image which further reduces the complexity of deployment.​

Contributors

Delster Miguel Tanedo  💻🔧 DevSecOps Engineer at Maya Philippines

Learn more about Maya!