0% found this document useful (0 votes)
53 views13 pages

DevOps Activities

The document outlines an individual's 11 years of IT experience, focusing on the last five years in DevOps and automation, utilizing tools like Git, Jenkins, Docker, and Kubernetes. It details daily activities, CI/CD processes, and the principles of DevOps, including its lifecycle and benefits. Additionally, it contrasts DevOps with Agile methodologies and explains various deployment strategies and infrastructure management practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
53 views13 pages

DevOps Activities

The document outlines an individual's 11 years of IT experience, focusing on the last five years in DevOps and automation, utilizing tools like Git, Jenkins, Docker, and Kubernetes. It details daily activities, CI/CD processes, and the principles of DevOps, including its lifecycle and benefits. Additionally, it contrasts DevOps with Agile methodologies and explains various deployment strategies and infrastructure management practices.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

 Let me start with my present and prior experience, I hv overall 11 years of experience in IT

industry.
 From past five years I have been working on Automations and DevOps activities
 During these five years I majorly worked on all Devops tools like Git as a version control
system, maven as a build tool, sonarqube as code coverage, Jfrog and nexus as artifactoty
repository manager, Jenkins as CI/CD tool, Docker as containerization tool and Kubernetes
as container orchestration tool, Ansible as configuration management tool, Terraform as
infrastructure automation tool.
 Apart from this I also worked on cloud service providers like Azure and AWS.

Git

 Coming to my day-to-day activities, as I said eelier, we are using Git hub as a version control
system. My team has complete ownership of that environment starting from infra structure
provisioning and maintaining the repos/security etc
 I have implemented development and feature-based workflows using GitHub

Jenkins

 In Jenkins, using Groovy script, I have created multi-stage pipeline so our build will be
deployed into different stages like Dev, QA, pre-production and production.

 I have implemented master/slave architecture in Jenkins for load distribution and parallel
execution.

 I handled Jenkins security using authentication, authorization, plugin management, backup


and recovery.

Docker & Kubernetes

 Coming to containerization and container orchestration tools, I worked on both docker and
Kubernetes where I have Designed, deployed, and managed Kubernetes clusters in
dev/QA/production to ensure high availability and scalability of applications

 I also implemented monitoring, logging, and alerting solutions to maintain cluster health and
performance.

 Configured and managed security measures within Kubernetes clusters, including Role-
Based Access Control (RBAC) and network policies, to protect against unauthorized access
and threats.

YAML

 I have good experience in wring YAML scripts. Using YAML, I have created azure DevOps
CI/CD multi stage pipeline to deploy our application to different environment.

 I also developed ansible playbooks using YAML to automate configurations across the
environments.
Typical day:
1. Morning System Checks and Monitoring
The day often begins with reviewing system dashboards, logs, and alerts to assess the health
and performance of applications and infrastructure. Tools like Grafana, Prometheus, or
Datadog are commonly used for this purpose. Immediate attention is given to any critical
issues that arose overnight to ensure system stability.
2. Addressing CI/CD Pipeline Integrity
Maintaining the integrity of Continuous Integration and Continuous Deployment (CI/CD)
pipelines is paramount. DevOps engineers prioritize resolving any failures or malfunctions
within these pipelines, dedicating time to debugging and rectifying issues to facilitate
smooth code integration and deployment.
3. Continuous Monitoring and Troubleshooting
Throughout the day, DevOps engineers monitor the health of applications and
infrastructure, proactively identifying and addressing potential issues before they impact
end-users. This includes analyzing performance metrics, responding to alerts, and
coordinating with relevant teams to implement fixes or improvements.
4. Documentation
Maintaining accurate and up-to-date documentation is vital. Engineers document
infrastructure configurations, deployment procedures, and system changes to ensure
knowledge sharing and facilitate troubleshooting

 I have 4 and half years of experience with build and DevOps activities
 I usually build the infrastructure using AWS services and I have created VPC, auto scaling and
elastic load balancing.
 I also worked on different AWS services like EC2, S3, EBS, Glacior and IAM
 I have good experience in build tool like Maven and Ant. I have used nexus repository to
store the artifacts.
 Coming to CI/CD, we are using Jenkins as continues integration tool where I have installed
Jenkins from scratch and configured as per the requirement.
 I also have created various jobs in Jenkins based on the customer requirement.
 I have exposure on Groovy script where I wrote Jenkins file where we have different stages
so that our build will be deployed on the target server based on the stages.
 We are using Git hub as a version control system. My team has complete ownership of that
environment starting from infra structure provisioning and maintaining the repos/security
etc
 Coming to containerization, we are using Docker as containerization tool.
 I have good exposure on creating Docker containers and manage them.
 I have good knowledge on Ansible where I have written play books to automate the
deployment process.
 Currently I have limited experience on Kubernetes.
 I knew few things like Kubernetes architecture, installation and cluster set up.
 Coming to scripting part, I have good experience in Bash and VB scripting.
 This is all about my previous and current experience.

Utilize Git for version control and implement development and feature-based workflows using
GitHub

 Design, implement, and manage Azure cloud-based solutions with a focus on scalability,
security, and performance.

 Develop and maintain CI/CD pipelines using Azure DevOps for seamless production
deployments.

 Expertise in Jenkins, including Groovy scripting to create and optimize complex, multi-stage
pipelines for deployment automation
 Configuration Management & Automation: Proficient with Ansible for
automating server provisioning, configuration, and deployments.
 Work with containers and container orchestration tools such as Docker and Kubernetes

What is DevOps?

DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It
aims to shorten the systems development life cycle and provide continuous delivery with high
software quality.

Why DevOps or Benefits of DevOps

Reduce cost

Improved speed

Better collaboration between teams

Continuous delivery of software

Easy deployment

Better efficiency and scalability


Errors are fixed at the initial stage

More security

Less manual intervention (which means fewer chances of error)

Phases in DevOps:

1. Plan
2. Code
3. Build
4. Test
5. Release
6. Deploy
7. Operate
8. Monitor

DevOps Lifecycle

Now that you know why DevOps and what is it exactly, we will learn all about the DevOps Lifecycle
which will give you a clarity on why DevOps, that is divided into six different phases which will give a
clear idea on why DevOps:
 Source Code Management - In this phase, the business owners and software development team
discuss project goals and create a plan. Programmers then design and code the application, using
tools like Git to store the application code.

 Continuous Build and Test - This phase deals with building tools, like Maven and Gradle, then
taking code from different repositories and combining them to build the complete application.
The application is then tested using automation testing tools, like Selenium and JUnit, to ensure
software quality.

 Continuous Integration - When the testing is complete, new features are integrated automatically
to the existing codebase.

 Continuous Deployment - Here, the application is packaged after being released and deployed
from the development server to the production server. Once the software is deployed,
operations teams perform tasks, such as configuring servers and provisioning them with the
required resources.

 Continuous Monitoring - Monitoring allows IT organizations to identify issues of specific releases


and understand the impact on end-users.

 Software Released - After all the phases are completed and the software meets the user’s
requirement, it is released into the market.

Agile Vs. DevOps: What’s the difference?

What is DevOps?

DevOps is a software development method which focuses on communication, integration, and


collaboration among IT professionals to enables rapid deployment of products.

DevOps is a culture that promotes collaboration between Development and Operations Team. This
allows deploying code to production faster and in an automated way. It helps to increases an
organization’s speed to deliver application and services. It can be defined as an alignment of
development and IT operation.

What is Agile?

Agile Methodology involves continuous iteration of development and testing in the SDLC process.
This software development method emphasizes on iterative, incremental, and evolutionary
development.
Agile development process breaks the product into smaller pieces and integrates them for final
testing. It can be implemented in many ways, including scrum, kanban, scrum, XP, etc.

Agile Vs. DevOps

Stakeholders and communication chain in a typical IT process.

Agile addresses gaps in Customer and Developer communications

DevOps addresses gaps in Developer and IT Operations communications


KEY DIFFERENCE

DevOps is a practice of bringing development and operations teams together whereas Agile is an
iterative approach that focuses on collaboration, customer feedback and small rapid releases.

DevOps focuses on constant testing and delivery while the Agile process focuses on constant
changes.

DevOps requires relatively a large team while Agile requires a small team.

DevOps leverages both shifts left and right principles, on the other hand, Agile leverage shift-left
principle.

The target area of Agile is Software development whereas the Target area of DevOps is to give end-
to-end business solutions and fast delivery.

DevOps focuses more on operational and business readiness whereas Agile focuses on functional
and non-function readiness.

SDLC Models

These models are also called "Software Development Process Models."


WHAT IS SCRUM?

Scrum is a subset of Agile. It is a framework for agile development, and the most widely-used one.

WHAT IS SPRINT?

With scrum, a product is built in a series of iterations called sprints that break down big, complex
projects into bite-sized pieces.

What is Microservices

The microservices architecture is a design approach to build a single application as a set of small
services. Each service runs in its own process and communicates with other services through a well-
defined interface using a lightweight mechanism, typically an HTTP-based application programming
interface (API). Microservices are built around business capabilities; each service is scoped to a single
purpose. You can use different frameworks or programming languages to write microservices and
deploy them independently, as a single service, or as a group of services

What is Infrastructure as Code

Infrastructure as code is a practice in which infrastructure is provisioned and managed using code
and software development techniques, such as version control and continuous integration. The
cloud’s API-driven model enables developers and system administrators to interact with
infrastructure programmatically, and at scale, instead of needing to manually set up and configure
resources. Thus, engineers can interface with infrastructure using code-based tools and treat
infrastructure in a manner similar to how they treat application code. Because they are defined by
code, infrastructure and servers can quickly be deployed using standardized patterns, updated with
the latest patches and versions, or duplicated in repeatable ways.

Deployment types:

1. Blue-Green deployment (Blue- Primary DB--Green: Secondary Database)


2. Canary Deployment (Application will be deployed to minimal users)

Difference between continues Delivery and Deployment:

Continues Integration (Jenkins)  Continues Delivery (moved still staging) Continues Deployment
(moved to production)

What is Continues integration?


Continuous integration (CI) is the practice of automating the integration of code changes from
multiple contributors into a single software project.

As we know git is distributed version control system it allows multiple contributors work on the
some specific branch. As soon as developer or contributor checks in the code,

What is Ansible?

1. Ansible is an open source configuration management and deployment tool, which is used to
automate complex multi-tier IT application environments.
2. It is uses agentless communication
3. It uses push approach to automate the configurations and deployments.

Playbooks:

Playbooks are access points to

https://dev.to/mostlyjason/intro-to-deployment-strategies-blue-green-canary-and-more-3a3

 I have 4 and ½ years of experience with build and DevOps activities


 I usually build the infrastructure using AWS services and I have created VPC, auto scaling and
elastic load balancing.
 I also worked on different AWS services like EC2, S3, EBS, Glacior and IAM
 I have good experience in build tool like Maven and Ant. I have used nexus repository to
store the artifacts.
 Coming to CI/CD part, we are using Jenkins as continues integration tool where I have
installed Jenkins from scratch and configured as per the requirement.
 I also have created various jobs in Jenkins based on the customer requirement.
 I have exposure on Groovy script where I wrote Jenkins file where we have different stages
so that our build will be deployed on the target server based on the stages.
 We are using Git hub as a version control system. My team has the complete ownership of
that environment starting from infra structure provisioning and maintaining the repos and
giving access to dev team.
 Coming to containerization, we are using Docker as containerization tool.
 I have good exposure on creating Docker containers and manage them.
 I have good knowledge on Ansible where I have written play books to automate the
deployment process.
 Currently I have limited experience on Kubernetes.
 I knew few things like Kubernetes architecture, installation and cluster set up.
 If I get a chance to work on Kubernetes, I will be glad to explore more of this container
orchestration tool.
 Coming to scripting part, I have good experience in Bash and VB scripting.
 This is all about my previous and current experience.

CI/CD process

The CI/CD will be accomplished using integration tool Jenkins where

 Currently we are using Git as version control system.


 Once developers check-in the code, maven will come into the picture and create the atifacts
based on POM.XMl and store the artifacts into nexus repository.
 Coming to post build actions, we have configure our email server with Jenkins so as soon
build completes, the concerned team will be notified via email.

Git:

1. Difference between git and github?


Ans: Git is a revision control system, a tool to manage your source code history.

GitHub is a hosting service for Git repositories.

So they are not the same thing: Git is the tool, GitHub is the service for projects that use Git.

2. Difference between git and svn?


Cron Job Time Format

The first five fields in the command represent numbers that define when and how often the
command runs. A space separates each position, which represents a specific value.

The table below summarizes possible values for the fields and the example syntax:
Strings in Crontab
Strings are among the developer’s favorite things because they help to save
time by eliminating repetitive writing. Cron has specific strings you can use to
create commands quicker:

1. @hourly: Run once every hour i.e. “0 * * * *“


2. @midnight: Run once every day i.e. “0 0 * * *“
3. @daily: same as midnight
4. @weekly: Run once every week, i.e. “0 0 * * 0“
5. @monthly: Run once every month i.e. “0 0 1 * *“
6. @annually: Run once every year i.e. “0 0 1 1 *“
7. @yearly: same as @annually
8. @reboot: Run once at every start-up

You might also like