Devops Roadmap - phase 1

Devops Roadmap - phase 1

What is Devops

Devops is not a technology. It's a culture between development and operation teams to deliver the applications faster and efficient. This is a simple definition.

It takes time to understand the meaning of devops.

This article talks about the initial steps for getting into devops. It might look unconventional approach.

Well, few questions comes up immediately.

  • I am a fresher. I am interested to learn Devops.

  • What are the basic tools I need to learn for getting Devops ?

  • I am from Testing/DBA/BI background. How can I switch to Devops ?

  • I am learning Devops tools currently. But need guidance how to learn step by step.

Well, I am not going to suggest Devops ( as a specalisation) for Freshers. I suggest them to focus on Full stack/Development side.

However, Cloud and CICD would be helpful for deployment knowledge for fullstack engineers.

Linux

Linux is basic building block to get into devops.

Why Linux, why not windows ?

Linux is open source, secure and most reliable operating system.

Make sure to cover this topics initially.

  • Linux kernel

  • Shells in linux - bash, ksh

  • Users Management

  • Package management - apt/yum

  • Service management

  • File management

  • Find, grep, head, tail.

  • SSH, SCP

  • iptables, firewall.

  • basic shell scripting

Understand the purpose of linux.

  • Different flavors of linux

  • Difference between linux and windows.

  • Open source - GNU license

Tools: Virtualbox, Oracle vmware, WSL - Ubuntu flavour suggested.

GIT

Git is source code management tool.

It enables multiple teams to write code, fix the code and distribute code easily.

It also provides security and review(approval) system.

It provides flexibility to revert any mistakes. Can maintain different branches and different versions of code.

  • Git commit, git push, git pull, origin and remote.

  • Branching and merging. Pull requests.

  • Git revert, git restore using commit ID.

Tools: Github, Bitbucket, Gitlab.

Database basics

Pick database of your choice and complete below steps.

  • Database creation, schemas

  • Create a table,Select,Insert, Delete, Update queries.

  • DML, DCL, DDL

  • How to connect local and remote to database using database client ?

Tools: mysql, oracledb, sqllite, sqlserver, mongodb.

Task: Create a simple table with student or employees or inventory details

Sample Web Application

In this section, try to understand what is front end and what is backend.

  • What is static web page and dynamic web page.

  • Setup a basic hello world web page in plain html

  • Pick a programming language of your choice from below and write a hello world web page. Python flask, Spring boot, Django, Golang

  • Write a simple webapp to pull entries from a table in database.

Static web app

Host a static hello world html web page using Nginx. Perform this operation in linux operating system.

Tools: Linux, Apache or Nginx.

Dynamic web app:

Install relative programming language(python) in a EC2 VM.

Write a simple web app to read the student records from database tables.

A Crud app also can be created here and commit the code to git repo.

sample repo: https://github.com/sasidatta/democrudapp/tree/main

Cloud

Cloud provides enormous advantage over onpremise systems

Host the web server in EC2 instance

In next step, setup the database (e.g. mysql) in Relational database service(RDS)

Also setup static webpage in another Ec2 instance.

Connect the both of these services and Setup loadbalancer in front and route the traffic respectively.

If cost isn't a problem, Domain name can be registered and connected via DNS(Route53).

Tools: AWS, GCP, Azure, Digital ocean, IBM cloud.

CI/CD

Continuous integration and continous deployment is core part of devops helps deploy web app in multiple Delivery points( such as EC2)

Task:

  • Pick up linux and Setup jenkins master and 2 linux agents.

  • Setup a jenkins pipeline to update the git code in target agent vms

  • Update git code and check if pipeline success and whether changes are reflecting in target nodes.

Stop here

Stop here for a moment and understand what are all steps you have performed.

Understand the purpose of each step and look for improvements in possible areas.

Take a look at definition of Devops again and introspect.

Tools from below phases can be picked/swapped based on own choice or job profile.

Phase 2

Topics: Docker, Cloud operations, Ansible

  • Here dockerise application and push to container image library.

  • Cover Docker-compose. Optionally can cover docker swarm

  • Pick Cloud of your choice - Cover Cloud basics - Storage S3, EFS,IAM,VPC, Domain registry, Auto Scaling, memcache, Database service.

  • Monitoring tool - Newrelic or any other basic monitoring tool.

  • Terraform basic level.

  • Ansible playbooks

Phase3:

  • Elastic Container service , Cloud Functions (Lambda )

  • Kubernetes - Stateful and stateless application deployment.

  • Fluentd, ELK, Splunk - Logging tool

  • Prometheus - Monitoring tool.

  • Terraform cloud, Pipeline.

  • System Designing.

  • continuous learning.

Did you find this article valuable?

Support Sasi Datta by becoming a sponsor. Any amount is appreciated!