The Daily DevOps — Author’s Preface
By: Durgasuresh Kagitha
Tags: Jenkins, Kubernetes, Cloud, Docker, DevOps

Introduction

Un-learn

— There are some presumptions that this is just another fad tool or skill to hone which could be added to your profile . Nah !

Rewinding the clock to roughly a little over 2 years ago when I started my slow transition into DevOps, I quickly realised I had to unlearn that this is not a tool or skill which I could be proficient at, but rather it is a practice or principle which needs to be imbibed into my way of work.

So what’s DevOps all about ?

One can google for all the definitions and explanations, but I would like to put forward my line of thought that arose from this intriguing ongoing journey..

An amalgamation of Dev & Operations processes coated with robust automation and faster deployment strategies to deliver a secure product with utmost quality.

Yes, I just spoke my mind, that’s my definition !

In more general terms, we can build, test and deploy features much faster than before, while still adhering to all of the SDLC norms.

Now I leave it you to go through all the definitions available and pick one that makes sense and more importantly ideate around this thought of DevOps.

Re-learn

— So let’s start to snorkel the ocean of DevOps via this series, which would provide the basic essentials and enable one to dive much deeper into the depths and be adept at the various practices of DevOps at a later stage.

The word embark mentioned in an earlier context was carefully chosen as learning is the only constant and it rings so true as this space evolves way quicker than expected, thus always demanding constant learning.

Here is the roadmap I have laid out for myself .Obviously this roadmap not setting stone, but more or less aligns to the majority consensus in this space.

Note: I will try to adopt the VARK model of learning where we have visuals (images & diagrams ), auditory content(videos — audio within), reading (text — similar to this very content ) & kinaesthetic (hands-on — via the Chapter projects), as most learners generally gravitate towards any/all of these four.

Foundation

— Let us consider the different facets of the foundation. I will try to illustrate the same with an image of a tetrahedron puzzle commonly known as a Pyraminx (you can blame my latest obsession with solving rubik’s puzzles for this illustration) which has 4 faces . The 3 faces(top view) seen in the image can be imagined as :

Tetrahedron puzzle or Pyraminx — 4 Faces

Red — Linux

Green — Python

Blue — Cloud (be it any)

Yellow — Security & Networking (the often ignored and not to be seen here too)

Linux — most, if not every server runs on linux ! Having a good and clear understanding of the OS and the use of shell is vital if one needs to excel in this space. Mastering Linux would take years, however we all have to start somewhere.

Python — kind of a “must have” knowledge now in this data world. Community support and ease of learning has made this programming language the new buzz and it is perfectly married into the DevOps ecosystem.

Cloud — it is again imperative to know one , be it AWS , Azure, GCP , Oracle Cloud Infrastructure(OCI) or any public cloud of your choice. Understanding the intricacies of Cloud Computing is an absolute essential. Pick any cloud of your choice and start understanding the basics or probably get the Associate certifications to start with and later move on to Advanced/Speciality. However we will be covering a little part of this in one of our upcoming Chapters .

Security & Networking — be exposed to some of the basic networking and security concepts like DNS, OSI Model, HTTP, HTTPS, FTP, SSL, TLS, etc.

Next

— Yet again I will pick another puzzle to illustrate the next steps of the DevOps practices across the development life cycle.

Note: We will be covering each of these in detail in one or more chapters (within a project).

Rubik’s Cube — 6 Faces

Yellow — Infrastructure as Code

Blue —Version Control

Orange —Containerization

Green — Deploy (CI-CD)

Red — Container Orchestration

White — Monitoring & Alerting

Infrastructure as Code (IaC)

is the process of managing and provisioning computer data centers through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools.

— where to deploy : Terraform (infra provisioning) — more

— rules to deploy : Ansible (configuration management) — more

Version Control

also known as source control that help software teams manage changes to source code over time and help software teams work faster and smarter. Useful for DevOps teams to reduce development time and increase successful deployments.

— where is the code: Git (version/source control) — more

Packaging or Containerization

is the packaging of software code with just the operating system (OS) libraries and dependencies required to run the code to create a single lightweight executable — called a container — that runs consistently on any infrastructure.

— how to package code: Docker (Containerization) — more

Continuous Integration & Continuous Deploy

CI — new code changes are regularly built, tested, merged to a shared repository CD — can refer to automatically releasing changes from repository to target env.

— build, deploy & repeat :Jenkins — more

Container Orchestration

is a process of automating deployment, scaling, and management of containerized (uses container runtime) applications

— run, manage & scale :Kubernetes aka k8's — more

Monitoring & Alerting

does the surveillance duty — observes, tracks operations & activities of users, applications & network services . It reports and alerts.

— how is the app doing :Prometheus — more