Table of contents
What is DevOps?
Dev (Development) and Ops (Operations). DevOps is a methodology that is used to fill the gap between developers and System Administrators. It can bring everyone together and help to complete the task within less time.
Why DevOps is used?
DevOps is used to create a more efficient, reliable, and collaborative software development and deployment process. It brings together people, processes, and tools to enable continuous integration, continuous delivery, and continuous improvement throughout the software development lifecycle.
Road Map for DevOps
If You are willing to learn DevOps then these are a few steps or roadmaps to follow.
Linux & Shell Scripting: - Gain Hands-on Experience with any Linux Distribution (Cent OS, Ubuntu, Debian etc ). Automate the tasks using shell scripting as Bash or Python.
Version Control System: - Good Knowledge of Versioning and auditing using distributed version control systems like git. Good Knowledge of Git and its command is important for every DevOps Engineer.
Microservice Architecture: - As a DevOps Engineer one should understand the concept of Microservices and help the organization to move towards architecture.
Basic Understanding of Networking: - Every DevOps Engineer should understand the Concept of the OSI Model which starts from L1 to L7 Layers and what is the Significance of each layer.
Without a Proper Knowledge of Networking, it is nearly impossible to understand the concept of Public/Private Cloud, SSL/TLS, Docker and Kubernetes.
Continuous Integration and Continuous Delivery: - CICD brings a lot of efficiency to any organization. Developers write code and commit it to a version control system. When code is committed, an automated build process is triggered. The build process compiles the code, runs automated tests, and performs static code analysis to identify potential issues. Continuous Delivery automates the process of deploying code changes to production-like environments, making them ready for release at any time.
Cloud: - There are a few cloud Providers like AWS, AZURE and GCP. But I am learning with AWS. There are a few concepts you have to learn and these are EC2, VPC, EBS, S3, RDS, Cloud Watch, Cloud Trail, ELK, Lambda, Fargate, EKS, ECS, Billing, System Manager, KMS, IAM, and AWS Config.
API, API Security and App Reliability: - Good Knowledge of REST Architecture. If possible, build simple REST Applications using simple frameworks like Python, Django and Flask.API Security using API Gateway, Load Balancer, and VPC.
Configuration Management: - Every Organization runs 100 or 1000s of Server in production environments for patching those servers, we need patch management. Ansible is widely used for this solution.
Infrastructure Management: - In the world of Hybrid cloud, A DevOps engineer should learn about tools to automate their cloud Infrastructure. Terraform is the most stable and widely used tool today.
The World of Containers: - Containers are efficient in reducing the costs of computing, Memory and Processors. Docker, Buildah and Podman are the tools leading this space.
Container Orchestration: - Every DevOps Engineer should have hands-on Experience with Kubernetes or its distribution such as Openshit.
Monitoring: - When we have run so many servers in Production Environment for Monitoring Compute, Storage, Memory and Network, we need a few tools for Monitoring this service so these are tools used in Production Environment Prometheus, Grafana, ELK Stack, Nagios, Datadog, and Zabbix.
Coding: - Most people are said that for DevOps you do not need to learn code but I am learning Programming languages like Python and Golang.
Thanks and Keep Learning