Career Plan - DevOps Engineer
DevOps is a series of practices and processes that are intended to speed up and automate aspects of the processes of developing, testing, and releasing software, allowing for the continuous delivery of software and software updates. Whereas previously software would be developed by developers and then passed onto testers to test and go back and forth between them, DevOps practices aim to simplify this by integrating these previously separate teams. DevOps engineers are responsible for facilitating this.
The role of a DevOps engineer combines aspects of a technical role and an IT operations role. While engineers are likely to be involved with coding, and a knowledge of coding languages and principles is required to find problems and build solutions, this is not the primary role of a DevOps engineer. More senior engineers are likely to be more involved in the project management and planning side of development.
1. Excellent team working and communication skills 2. Knowledge of programming languages and scripting 3. Good attention to detail 4. Excellent organizational & time management skills, the ability to work on multiple projects at the same time 5. Awareness of DevOps and Agile principles.
1. Building and setting up new development tools and infrastructure
2. Understanding the needs of stakeholders and conveying this to developers
3. Working on ways to automate and improve development and release processes
4. Testing and examining code written by others and analyzing results
5. Ensuring that systems are safe and secure against cybersecurity threats
6. dentifying technical problems and developing software updates & ‘fixes’
7. Working with software developers and software engineers to ensure that development follows established processes and works as intended
8. Planning out projects and being involved in project management decisions.
1. Develop & apply CI/CD approach and tools
2. Write infrastructure code and automation
3. Using the DevOps approach collaborate with developers, build & operate critical, highly loaded systems
4. Support and operate highly available systems
5. Monitoring and support for servers and clients
6. Maintenance, support, and monitoring of distributed environments
7. Working on different types of remote projects. That covers different types of tasks
1. Experience in cloud architectures design and deployment on AWS
2. Deep understanding of CI/CD (Jenkins/Gitlab/etc.) and project life-cycle principles
3. Experience with Docker or/and Kubernetes
4. Experience with MySQL Percona, Sonarqube, Bamboo
5. Experience in using auto-configuration systems: Chef, Ansible
6. Good knowledge of Scripting: Bash/Ruby/Python/Powershell
Linux, Git, Cloud Computing(at least AWS deep understanding), MySQL Percona, Bamboo, Ansible, Tomcat,
Apache, Scripting skills (Bash, Python), Azure DevOps, Any knowledge related to Salesforce/Adobe Experience Manager/Drupal will be added advantage.
1.Explain DevOps Process?
2.How DevOps different from Agile process?
3.what are the tools used in DevOps?
4.Explain different phases of DevOps?
5.Benefits of DevOps?
6.How do approach to install DevOps?
7.What is the difference between continuous delivery and continuous deployment?
8.What is the role of configuration management in DevOps?
9.How does continuous monitoring help you maintain the entire architecture of the system?
10.What are the benefits of using version control?
11. Explain the difference between a centralized and distributed version control system (VCS)
12.What is the git command that downloads any repository from GitHub to your computer?
13.How do you push a file from your local system to the GitHub repository using Git?
14.Explain the difference between git fetch and git pull.
15.What is Git stash?
16. Explain the concept of branching in Git.
17.What is the difference between Git Merge and Git Rebase?
18.What is a merge conflict in Git, and how can it be resolved?
19.Explain the master-slave architecture of Jenkins.
20.Which of the following commands runs Jenkins from the command line?
21.What concepts are key aspects of the Jenkins pipeline?
22.How do you create a backup and copy files in Jenkins?
23.What are the ways in which a build can be scheduled/run in Jenkins?
24.Why are SSL certificates?
25.Which of these commands would you use to stop or disable the 'httpd' service when the system boots?
26.What is an Ansible role?
27.Explain the architecture of Docker.
28.What are the advantages of Docker over virtual machines?
29.What is a Dockerfile used for?
30.Explain the differences between Docker images and Docker containers.
31.How do you create a Docker container?
32.What is Kubernetes?
33.What are K8s?
34.How are Kubernetes and Docker related?
35.What are the main differences between the Docker Swarm and Kubernetes?
36.What are the features of Kubernetes?
37.What is a pod in Kubernetes?
38.What is a cluster of containers in Kubernetes?
39.What is ‘Heapster’ in Kubernetes?
40.What are the different services within Kubernetes?
41.What is Kubelet?
42.What do you mean by Linux? Explain its features
43.What are basic elements or components of Linux?
44.What is Kernel? Explain its functions.
45.What is Linux Shell? What types of Shells are there in Linux?
46.How Do I Manage Passwords On Red Hat Enterprise Linux, Centos, And Fedora Core?
| Modules | Topics |
|---|---|
| Module 00 | Linux Basic(Pre-Requiste) |
| Linux OS Introduction | |
| Importance of Linux in Devops | |
| Shell scripting -variables, loops, functions, maniputlating strings | |
| Reading and Writing files | |
| Importance of Linux in Devops | |
| Module 01 | Introduction to DevOps |
| What is Software Development? | |
| Software Development Life Cycle | |
| Traditional Models for SDLC | |
| Why DevOps? | |
| What is DevOps? | |
| DevOps Lifecycle | |
| DevOps Tools | |
| Module 02 | Version Control with Git |
| What is Version Control? | |
| Types of Version Control System | |
| Introduction to SVN | |
| Introduction to Git | |
| Git Lifecycle | |
| Common Git Commands | |
| Working with Branches in Git | |
| Merging Branches | |
| Resolving Merge Conflicts | |
| Git Workflow | |
| Demonstraton | |
| Module 03 | Introduction to Cloud Computing & AWS |
| What is Cloud Computing | |
| Evolution of cloud computing | |
| IAAS(Infra structure as a service) | |
| SAAS(Software as service) | |
| PAAS(Platform as a service) | |
| How AWS is the leader in the cloud domain | |
| Various cloud computing products offered by AWS | |
| Introduction to AWS S3, EC2, VPC, EBS, ELB, AMI | |
| Getting a detailed understanding of the AWS architecture & the AWS Management Console | |
| Introduction to AWS EC2 | |
| Comparing Public IP and Elastic IP | |
| Demonstrating how to launch an AWS EC2 instance | |
| What is auto scaling | |
| AWS EC2 best practices and cost involved | |
| Understanding various concepts of backup services in AWS | |
| Demonstraton | |
| Database services | |
| Elastic Block Storage (EBS) for block level persistent storage | |
| Volumes with S3 buckets | |
| Understanding Amazon RDS and Amazon Aurora which are relational databases | |
| Amazon DynamoDB which is a NoSQL database | |
| Understanding Amazon Redshift which is a data warehousing product | |
| Amazon Elastic Cache which is an in-memory data store | |
| Deploying AWS database migration service | |
| Demonstraton | |
| Object Storage | |
| Introduction to AWS storage | |
| AWS S3 (Simple Storage Service) | |
| Creating an AWS S3 bucket | |
| AWS Storage Gateway | |
| Understanding the Command Line Interface (CLI) | |
| Hosting a static website using Amazon S3 | |
| Amazon Glacier storage for long-term data backup & archiving | |
| Amazon Snowball for data import/export | |
| Demonstraton | |
| Autoscaling and load balancing | |
| Understanding Fault Tolerance in AWS | |
| In-depth study of Elastic Load Balancing | |
| The types of Load Balancers viz. Classic and App | |
| AWS Auto Scaling mechanism | |
| Understanding AWS Management Console | |
| How to access the Elastic Load Balancing | |
| Studying AWS SDK, AWS CLI and Https Query API | |
| Demonstraton | |
| Virtual Private Cloud | |
| What is Amazon VPC | |
| VPC as a networking layer for EC2 | |
| Getting started with VPC | |
| Examples | |
| VPC and Subnets | |
| Default and non-default VPCs | |
| Components of VPC networking | |
| IP addressing | |
| Security | |
| VPN connections | |
| Accessing the internet | |
| Using AWS PrivateLink to access the services | |
| VPC supported platforms | |
| Demonstraton | |
| IAM and monitoring | |
| Authentication (who can use) and Authorization (level of access) | |
| IAM Policies JSON structure, users, groups and their Roles | |
| IAM HTTPS API | |
| Logging IAM events with AWS CloudTrail | |
| Monitoring and managing AWS resources using CloudWatch | |
| Deploying configuration alerts and notifications with CloudWatch | |
| Billing for CloudWatch | |
| Demonstraton | |
| Module 04 | Ansibile |
| Introduction to Ansible | |
| Ansible Server Configuration | |
| Infrastructure Management | |
| SSH Connection in Ansible Master | |
| YAML Scripts | |
| Host Inventory | |
| Hosts and Groups | |
| Host Variables | |
| Group Variables | |
| Host and Group Specific Data | |
| Ad-hoc Commands | |
| Playbooks,Variables,Conditionals,Loops, Blocks | |
| Handlers, Templates, Modules -Core Modules , Extra Modules, Ansible Roles | |
| Module 05 | Containerization Using Docker |
| Introduction to Docker | |
| Understanding Docker Lifecycle | |
| Components of Docker Ecosystem | |
| Common Docker Operations | |
| Creating a DockerHub Account | |
| Committing changes in a Container | |
| Pushing a Container Image to DockerHub | |
| Creating Custom Docker Images using Dockerfile | |
| Demonstraton | |
| Module 06 | Continuous Integration with Jenkins |
| Introduction to Continuous Integration | |
| Jenkins Master Slave Architecture | |
| Understanding CI/CD Pipelines | |
| Creating an end to end automated CI/CD Pipeline | |
| Demonstraton | |
| Module 07 | Introduction to Kubernetes |
| Introduction | |
| Docker Swarm vs Kubernetes | |
| Kubernetes Architecture | |
| Deploying Kubernetes using Kubeadms | |
| Alternate ways of deploying Kubernetes | |
| YAML Files | |
| Creating a Deployment in Kubernetes using YAML | |
| Services in Kubernetes | |
| Ingress in Kubernetes | |
| Demonstraton | |
| Module 08 | Agile Methodology |
| Introduction to the process | |
| Scrum process | |
| sprint planning | |
| Planning Poker Estimation | |
| Velocity | |
| Burndown Chart | |
| JIRA tool | |
| Module 09 | Build tool- Maven |
| Maven Installation | |
| Maven Build requirements | |
| Maven POM Builds (pom.xml) | |
| Maven Build Life Cycle | |
| Maven Local Repository (.m2) | |
| Maven Global Repository | |
| Group ID, Artifact ID, Snapshot , Maven Dependencies |
Note: Involve in DevOps Engineer in live project (3 Months)
Example code block:
map_roles=local.map_roles
base_domain =local.base_domain
repo_url =local.repo_url
target_revision =local.target_revision