Better DevOps

Durgadas K  math

Senior Architect @ Persistent Systems Ltd.

linkedin.com/in/kamathdurgadas/

 

Opensource, Solution Architect, Serverless, Speaker

My Videos and Blogs:

Monoliths

Microservices

Microservices Orchestration

Traditional DevOps

Slow Development Process

Development and Operations

Dev doesn't know the tools used by Ops and Vice Versa

Environment Disparity

Long time to Market

Different working Style and Process

Dev != Stage != Prod

Modern DevOps

Environment Parity

Dev and Ops use same tool (Docker)

Same Docker file for different stages of Delivery

High Level of Control over all changes

Immutable Docker images and Containers

Easy Rollbacks to any versions

Introduction

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support.

DevOps Path

Dev

Ops

Configuration As Code

Is a set of processes and practices that will save you time, increase your flexibility, and improve your system uptime

Ansible Playbooks

Infrastructure As Code

Is the management of infrastructure (networks, virtual machines, load balancers, and connection topology) in a descriptive model.

GitOps

Requires us to describe and observe systems with declarative specifications that eventually form the basis of continuous everything

Monitoring

Getting a global visibility of your server including :

  1. Running Containers
  2. Containers CPU
  3. Containers RAM 
  4. Containers I/O 

Tools: Prometheus,docker,cAdvisor,Grafana

CI workflow

Push Code => Test code => Build conatiner => Tag with Commit ID => push to registry => update container version on Git

Merge Code => Release => Build container => Tag with SemVer => push to registry => update container version on Git.     

CD workflow

Gitlab webhook informs Argocd about the changes => Argocd sync and deploy manifests to the cluster

Q/A