You are on page 1of 1

Software Testing Help Custom Search SEARCH

Home Resources FREE EBooks QA Testing  Courses  Automation  Types Of Testing  Tutorials 

DevOps Tutorial: The Ultimate Guide To DevOps (25+


Tutorials)
Last Updated: April 23, 2019 Join Over 200,000+ Testers
Get premium ebooks and testing tips.
This is a complete DevOps tutorial series of 25+ text and video tutorials covering all the aspects of the
DevOps like What is DevOps, DevOps principles, and its Architect.
Enter your email here...
********************************************************
SUBSCRIBE NOW!
List of Tutorials in DevOps Training Series:

#1) Introduction to DevOps (This Tutorial)

#2) DevOps and Software Testing Join Over 300000+ Followers!

DevOps VIDEO Tutorials:


     
#3) Video Tutorial 1: DevOps background, definition, value, benefits, habits and best practices

Part 1 Block 1 – Demystifying DevOps

Top FREE Training Tutorials


#4) Video tutorial 2: DevOps practices based on the Agile Principles, source control, and DevOps Automation

Load Testing Buyer’s Guide


This video tutorial is divided into 6 blocks:
Free QA Training
Part 2 Block 1 – DevOps Practice based on Agile Manifesto Selenium Tutorials
Part 2 Block 2 – Source and Version Control in DevOps QTP/UFT Tutorials
Part 2 Block 3 – Automation in DevOps
ISTQB Free Study Guide
Part 2 Block 4 – Small increments of Deliveries in DevOps
ISTQB Premium Study Guide
Part 2 Block 5 – Collaboration in DevOps Teams
Part 2 Block 6 – How to Develop Collaboration in DevOps Teams Quality Center Tutorials
LoadRunner Tutorials
#5) Video tutorial 3: DevOps processes Continuous Integration, Continuous testing, and Continuous Delivery JMeter Tutorials
JIRA Tutorials
This video tutorial is divided into 4 blocks:
VBScript Tutorials
Part 3 Block 1 – Continuous Integration in DevOps Best Test Management Tools
Part 3 Block 2 – Continuous Delivery in DevOps Appium Studio Tutorials
Part 3 Block 3 – Continuous Deployment in DevOps
Unix Tutorials
Part 3 Block 4 – Continuous Testing in DevOps
Free DevOps Training
#6) Video tutorial 4: DevOps Configuration Management and live application performance monitoring Free JAVA Tutorials
Free Python Tutorials
This video tutorial is divided into 3 blocks:
101+ Interview Questions

Part 4 Block 1 – Configuration Management in DevOps Practices


Part 4 Block 2 – Release Management in DevOps
Part 4 Block 3 – Application Performance Monitoring in DevOps
Adv
#7) Video tutorial 5: Recap of the entire course.

Part 5 Block 1 – Recap of DevOps Video Tutorials

Text Tutorials:

#8) Shift Left Testing


#9) How to Improve Software Quality Using Continuous Integration
#10) Continuous Delivery Process

DevOps Tools:

#11) DevOps Tools


#12) Installation and configuration of commonly used open source DevOps tools
#13) Best Continuous Integration Tools
#14) Top Continuous Delivery Tools

Microsoft VSTS Tutorial:

#15) Microsoft VSTS part 1


#16) Microsoft VSTS part 2

AWS DevOps Tools:

#17) AWS DevOps Tools Part 1 (CodeCommit)


#18) AWS DevOps Tools Part 2 (CodeBuild)
#19) AWS DevOps Tools part 3 (CodeDeploy)

#20) .NET Web application deployment using AWS Elastic Beanstalk

Ansible for DevOps:

#21) Ansible Part 1: Installation and Configuration


#22) Ansible Part 2: Task Automation Using Playbooks
#23) Ansible Part 3: Ansible Roles and Integration with Jenkins

#24) Integration of Jenkins with Selenium


#25) Hudson Continuous Integration Tool

#26) DevOps Service Provider Companies


#27) DevOps Interview Questions

**************************************************

Let's start with the first tutorial in this series.

What You Will Learn: [show]

Introduction To DevOps
DevOps is not just about tools but it also includes a set of best practices which enables to bridge the gap between
the development and operations teams in the areas of continuous integration and deployment by using an
integrated set of tools to automate the software delivery.

It is imperative that the developers understand the operations side and vice versa. So the goal of DevOps is
simply to help any organization in the speed of delivering applications to the end users and enabling faster end-
user feedback which is the need for any business today.

Overview Of Agile And DevOps


There is no difference between Agile and DevOps. Instead, they complement each other. Let’s start by looking at
the Waterfall model where all the requirements are frozen, and design & development are done one after the other
until a stable product is available.

So the issue here is that if there is a change in the customer's need at this stage then there is no way to include
and deliver the changed need.

In order to address the issue of adapting to the needs of the customer changes better than in the waterfall method
was Agile adoption. The idea here was to develop a software in smaller sprints or iteration say around 2 to 3
weeks which helped the development teams to work on the end-user feedback and incorporate the changes in the
newer releases.

Hence development and operation teams must have agile in their areas of work and DevOps was born to enable
better collaboration between them.

Agile brings in processes like XP, SCRUM etc. and DevOps brings in practices like Continuous Integration,
Continuous Delivery, Continuous Testing and Continuous Monitoring which we will see in detail as we move
further in this tutorial.

Is DevOps Only About Tools?


In a way, you may argue that to implement DevOps you need tools. It is true but tools are only accelerators.

But actually, it is about the following 3 aspects:

People: It is very important to train and have a highly motivated team of people to be able to effectively
communicate and collaborate through this entire journey of cultural change.

Process: As we are talking about cultural change for DevOps implementation it is very much a necessity to have
practices and strategies which provide value to the customer. A proper way of doing it would be to do an AS-IS
maturity assessment, look at gaps and propose a roadmap for implementation of giving appropriate
recommendations.

I will not be talking in-depth about how I have got about doing these assessments but I will be glad to share any
inputs on the same.

Tools: Finally, it is about using the accelerators by automating the process using standard DevOps tools that are
available today. It could be Open-Source (Jenkins, Git etc.), Commercial (Microsoft TFS, VSTS, IBM Rational, Jira
etc.) or a mix of both.

Components Of DevOps
I hope by now you would have got an idea of what is DevOps.

Let’s now look at the following 4 components of DevOps which form the core from an implementation point of view
and also the organizations have developed good automation frameworks around the same offering it as a service
to their clients.

Continuous Integration
Continuous Testing
Continuous Delivery
Continuous Monitoring

I have truly believed that if a developer has to work in this mode then there should be an execution item like a
Task or a Defect (In Agile it can be a part of User Story) assigned to him to enable him to deliver the work within
the sprint timeframe.

So even before the above-listed steps can be implemented these developer Tasks or Defects should be planned
in a Sprint. So tools like JIRA, IBM Rational Team Concert, Microsoft TFS/VSTS etc. helps to create the Agile
Release / Sprint Plans.

Let’s now take a look at each of these components in detail.

#1) Continuous Integration

As a developer, you work on the tasks or defects assigned to and check-in the code to a shared repository
multiple times in a day. Similarly the other members of the team also check-in the code to the shared repository.

You will then actually integrate all the work done by the team members in a common build server and perform an
automated build. Doing these integrations and automated builds on a regular basis is called Continuous
Integration.

This practice helps to detect issues very early and also ensures that all the modules which are integrated work as
required. So if you do not follow this approach then the integration of the team's work may happen once in a
month which may be late to find and fix any integration issues.

Sample Continuous Integration workflow:

#2) Continuous Delivery

Continuous Delivery is the next step after Continuous integration. The goal of Continuous Delivery is to push the
application built into production as quickly as possible. During this process, it goes through various stages in the
lifecycle of delivery i.e. QA, Staging, Production environments etc.

This process of regularly delivering the applications built into various stages is known as Continuous Delivery.

Continuous delivery helps in quicker time to market when compared to traditional methods, lesser risk, lowering
the cost by encouraging more automation in the release process and most importantly getting faster feedback
from the end users to produce a quality product.

From my experience, I have seen that this process works fine for any kind of web application development.

I have also done a fair amount of assessments on DevOps implementations for organizations in the
semiconductor business area but due to their existing release cycle this area of Continuous Delivery does not
seem to fit it as it is more of a waterfall process that is being followed and deployments are done as and when
requested for in a customer environment.

Sample Continuous Delivery Workflow:

In the above diagram, you can look at different environments available and so this provisioning of the
infrastructure for the environments can also be automated during this continuous delivery process.

#3) Continuous Testing

From the above 2 practices, we came to know that CI and CD help to deploy the application or changes to the
production. This whole process involves proper validation of code and its integration with all the components
involved in it to ensure that the application works as envisaged and is free of bugs or defects.

So Continuous Testing is the process of running various types of automated tests starting with CI process till the
time the application is finally deployed to production.

You can see from the previous diagram that in the Continuous Integration step we integrate all of the developers
work into a common build server and also during this stage the developers would run a certain amount of unit
tests.

Once these integration and tests work without any errors, only then the application or changes are deployed to the
QA environment after applying for these quality gates and approvals.

In the QA environment, the functional tests are run and again based on the approvals it would be deployed to
staging environment which would be on parity like the production systems and acceptance tests run. Once this
activity is completed the application or the changes are finally deployed into the production systems.

So one can note here that continuous testing as an activity starts from the CI stage itself and is a very mandatory
step throughout the continuous delivery process.

Sample Testing workflow in the continuous delivery process:

#4) Continuous Monitoring

As the application or changes are deployed to the production environment the operations team will look to monitor
the application and environment from an up-time, stability, availability point of view. This process is known as
Continuous monitoring.

The operations teams will have their own software’s to monitor the environment but will also need to play their part
to monitor the applications deployed for any issues. For this, they would need to work with the development teams
in order to build certain tools for analyzing the application issues.

So infrastructure, environment, and applications issues are all that monitored in the process of continuous
monitoring.

Summary
In this tutorial, we came to know what exactly the DevOps process is all about including the various components
involved in it. These components help to speed up the application delivery and also save the time to market, which
is the need of business today from a competitive point of view.

In the upcoming series of tutorials in the DevOps segment, you will have a look at the different videos/probable
DevOps tools that the teams can use and also the implementation of DevOps using certain tools for on-premise
and cloud.

And as said and done I have found DevOps implementation as an exciting one, in the way of looking from an
organizational change.

Our upcoming tutorial will explain you all about DevOps and Software Testing.

NEXT Tutorial

Recommended Reading
Eclipse Tutorial
Continuous Delivery in DevOps
Continuous Deployment in DevOps
Continuous Integration in DevOps
Continuous Testing in DevOps
Recap of DevOps Video Tutorials
DevOps Testing Tutorial: How DevOps will Impact QA Testing?
AWS CodeCommit Tutorial for DevOps Implementation in Cloud

ABOUT US | CONTACT US | ADVERTISE | TESTING SERVICES


ALL ARTICLES ARE COPYRIGHTED AND CAN NOT BE REPRODUCED WITHOUT PERMISSION.
© COPYRIGHT SOFTWARETESTINGHELP 2019 — READ OUR COPYRIGHT POLICY | PRIVACY POLICY | TERMS | COOKIE POLICY | LINK TO US

You might also like