Part 1 – Docker Management

Loading

Introduction to App Modernization

Traditional Applications are less agile as services and all their features are packaged into a single exe file making it harder to scale and perform maintenance on them as years go by. 

Microservices

The microservices architecture breaks a bulky app into a small set of decentralised, discrete apps that are loosely coupled and can be deployed as individual services that can managed independently.  Developers can quickly change, replace and scale applications quickly without taking down the entire service when individual functionalities (eg: payment gateway) are individually deployed as containers.

In short, the term Microservices simply means an application that was once bulky is split and now comprised of several small, independent components or services managed separately.

What are Monolithic Apps 

These are the apps that we know today that all services and features are packaged into a single executable file.

The testing of such apps is very complicated as the entire service needs to be taken down so the maintenance becomes hard in the long run.

It’s also quite inefficient to scale these services beyond a certain limit.

What are Modern Apps 

In the modern application deployment model, as apps are deployed as microservices it offers these advantages

  1.  New releases can be developed and tested much faster
  2. Scale apps easily
  3. Management and maintenance are easy as the entire service doesn’t need to be taken offline.

Application Modernization Techniques

  1. Cloud – Deploying Apps in Cloud ( AWS, GCP)
  2. Containers –  Apps are always suitable for multi and hybrid cloud.
  3. Microservices – Apps aren’t built as a single application file. Services are decoupled into smaller units and managed independently.
  4. Orchestration and Automation

Containers 

It’s a ready-to-run software package containing everything needed to run an application. All the elements that are required to perform a particular process in an app are packaged into a file called Docker file which is code that can be deployed anywhere so it’s a cloud-centric method. A container thus offers an isolated context in which the app and its environment can be run.

Kubernetes Architecture

More the containers, the more difficult its to manage them and hence we use Kubernetes as one such tool to manage containers. Similar to Docker Swarm, Kubernetes is an orchestration solution that helps in the deployment, life cycle management, maintaining the desired state of deployed containers and scaling of containerized applications from a central UI ( much like a vCenter). Kubernetes is responsible for spinning up the containers we need. Like Docker needs a file called Docker file, Kubernetes relies on a YAML file ( ie: manifest ) which is a configuration file that needs to be run to deploy containers.

Kubernetes Pod

All containers sit inside a pod which are self-managed unit having their own IP address, config data, storage resources etc are all configured in pods. Apps are deployed across pods.

Kubernetes Node

Pods run on the usual virtual machines and its also known as nodes in Kubernetes.

Kubernetes Cluster

Few Kubernetes node forms a Kubernetes cluster

Kubernetes Control Plane

This is the brain of Kubernetes that’s responsible for acting as a manager controlling all the pods, workers, nodes etc.

Docker Process
—————————-

# To start the docker daemon:
docker -d

# Login to docker hub
docker login

# **Version of docker**:
docker version

# Info of docker**:
docker info

# Docker Main File**:
sudo /usr/lib/systemd/system/docker.service

# Docker storage use
docker system df -v

# Docker Service Status:
systemctl deamon-reload
systemctl restart docker

(Visited 84 times, 1 visits today)

By C A Thomas

Chinchu A. Thomas is an Infrastructure Analyst specializing in Microsoft Azure, the Microsoft 365 suite, AWS, and Windows infrastructure management products.

Leave a Reply