0% found this document useful (0 votes)
2 views22 pages

Unit 1.1 - Introduction to DevOps

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1/ 22

Introduction to

Devops
DevOps

 The DevOps is the


combination of two words, one
is Development and other
is Operations..
 The DevOps will help you to
learn the basics and provide
depth knowledge of various
DevOps tools such as Git,
Ansible, Docker, Puppet,
Jenkins, Chef, Nagios,
and Kubernetes.
What is DevOps?
 The DevOps is a combination of two words, one is software Development, and second
is Operations.
 This allows a single team to handle the entire application lifecycle, from development
to testing, deployment, and operations.
 DevOps helps you to reduce the disconnection between software developers, quality
assurance (QA) engineers, and system administrators.
 DevOps promotes collaboration between Development and Operations team to deploy
code to production faster in an automated & repeatable way.
 DevOps helps to increase organization speed to deliver applications and services. It
also allows organizations to serve their customers better and compete more strongly
in the market.
 DevOps can also be defined as a sequence of development and IT operations with
better communication and collaboration.
 With the help of DevOps, quality, and speed of the application delivery has improved
to a great extent.
 DevOps is nothing but a practice or methodology of making "Developers" and
"Operations" folks work together. DevOps represents a change in the IT culture with
a complete focus on rapid IT service delivery through the adoption of agile practices in
the context of a system-oriented approach.
 DevOps is all about the integration of the operations and development process.
Organizations that have adopted DevOps noticed a 22% improvement in software
quality and a 17% improvement in application deployment frequency and achieve a
22% hike in customer satisfaction. 19% of revenue hikes as a result of the successful
DevOps implementation.
Why DevOps?

 The operation and development team worked in complete isolation.


 After the design-build, the testing and deployment are performed
respectively. That's why they consumed more time than actual build
cycles.
 Without the use of DevOps, the team members are spending a large
amount of time on designing, testing, and deploying instead of
building the project.
 Manual code deployment leads to human errors in production.
 Coding and operation teams have their separate timelines and are
not in synch, causing further delays.
DevOps History

 In 2009, the first conference named DevOpsdays was held in Ghent


Belgium. Belgian consultant and Patrick Debois founded the conference.
 In 2012, the state of DevOps report was launched and conceived by Alanna
Brown at Puppet.
 In 2014, the annual State of DevOps report was published by Nicole
Forsgren, Jez Humble, Gene Kim, and others. They found DevOps adoption
was accelerating in 2014 also.
 In 2015, Nicole Forsgren, Gene Kim, and Jez Humble founded DORA (DevOps
Research and Assignment).
 In 2017, Nicole Forsgren, Gene Kim, and Jez Humble published "Accelerate:
Building and Scaling High Performing Technology Organizations".
DevOps Architecture Features
1) Automation
 Automation can reduce time consumption, especially during the testing and
deployment phase. The productivity increases, and releases are made quicker by
automation. This will lead in catching bugs quickly so that it can be fixed easily. For
contiguous delivery, each code is defined through automated tests, cloud-based
services, and builds. This promotes production using automated deploys.
2) Collaboration
 The Development and Operations team collaborates as a DevOps team, which
improves the cultural model as the teams become more productive with their
productivity, which strengthens accountability and ownership. The teams share their
responsibilities and work closely in sync, which in turn makes the deployment to
production faster.
3) Integration
 Applications need to be integrated with other components in the environment. The
integration phase is where the existing code is combined with new functionality and
then tested. Continuous integration and testing enable continuous development. The
frequency in the releases and micro-services leads to significant operational
challenges. To overcome such problems, continuous integration and delivery are
implemented to deliver in a quicker, safer, and reliable manner.
4) Configuration management
 It ensures the application to interact with only those resources that are concerned with
the environment in which it runs. The configuration files are not created where the
external configuration to the application is separated from the source code. The
configuration file can be written during deployment, or they can be loaded at the run
time, depending on the environment in which it is running.
DevOps Architecture
 The deployment comprises analyzing the requirements, designing, developing,
and testing of the software components or frameworks.
 The operation consists of the administrative processes, services, and support for the
software.
 When both the development and operations are combined with collaborating, then the
DevOps architecture is the solution to fix the gap between deployment and operation
terms; therefore, delivery can be faster.
 DevOps architecture is used for the applications hosted on the cloud platform and
large distributed applications.
 Agile Development is used in the DevOps architecture so that integration and delivery
can be contiguous.
 When the development and operations team works separately from each other, then it
is time-consuming to design, test, and deploy.
 And if the terms are not in sync with each other, then it may cause a delay in the
delivery. So DevOps enables the teams to change their shortcomings and increases
productivity.
1) Build
 Without DevOps, the cost of the consumption of the resources was evaluated based
on the pre-defined individual usage with fixed hardware allocation. And with DevOps,
the usage of cloud, sharing of resources comes into the picture, and the build is
dependent upon the user's need, which is a mechanism to control the usage of
resources or capacity.
2) Code
 Many good practices such as Git enables the code to be used, which ensures writing
the code for business, helps to track changes, getting notified about the reason
behind the difference in the actual and the expected output, and if necessary
reverting to the original code developed. The code can be appropriately arranged
in files, folders, etc. And they can be reused.
3) Test
 The application will be ready for production after testing. In the case of manual
testing, it consumes more time in testing and moving the code to the output. The
testing can be automated, which decreases the time for testing so that the time to
deploy the code to production can be reduced as automating the running of the scripts
will remove many manual steps.
4) Plan
 DevOps use Agile methodology to plan the development. With the operations and development
team in sync, it helps in organizing the work to plan accordingly to increase productivity.
5) Monitor
 Continuous monitoring is used to identify any risk of failure. Also, it helps in tracking the system
accurately so that the health of the application can be checked. The monitoring becomes more
comfortable with services where the log data may get monitored through many third-party tools
such as Splunk.
6) Deploy
 Many systems can support the scheduler for automated deployment. The cloud management
platform enables users to capture accurate insights and view the optimization scenario, analytics on
trends by the deployment of dashboards.
7) Operate
 DevOps changes the way traditional approach of developing and testing separately. The teams
operate in a collaborative way where both the teams actively participate throughout the service
lifecycle. The operation team interacts with developers, and they come up with a monitoring plan
which serves the IT and business requirements.
8) Release
 Deployment to an environment can be done by automation. But when the deployment is made to
the production environment, it is done by manual triggering. Many processes involved in release
management commonly used to do the deployment in the production environment manually to
lessen the impact on the customers.
Waterfall model
 It is one of the easiest and traditional model to manage. Because of
its traditional development nature, each phase has specific
deliverables and a review process. The waterfall model works well in
smaller size projects where requirements are easily understandable.
 The waterfall model is a universally accepted SDLC model. In this
method, the whole process of software development is divided into
various phases. The development in the waterfall model is seen as
flowing steadily downwards (like a waterfall) as it is a continuous
software development model. This model is named "Waterfall Model",
because its diagrammatic representation resembles a cascade of
waterfalls. Some important points related to the waterfall model are
listed as follows –
 Waterfall model is not an ideal model to develop a large scale project size.
 The requirements in the waterfall model should be clear cut at the
beginning time; otherwise, it may lead to a less effective method.
 In the waterfall model, it is hard to move back in order to make changes in
the previous phase.
 The testing process in the waterfall model starts after the completion of
development. So, there is a high chance of bugs to be found later in the
project development.
Agile Model
 The Agile methodology promotes the continuous interaction of the development
and testing during the SDLC process of any project. Unlike the waterfall model,
the development and testing activities in the agile model are simultaneous. Agile
methodology allows much communication between the customers, developers,
testers, and managers.
 In the Agile method, the entire project is divided into small incremental builds. All
of these builds are provided in iterations, and each iteration lasts from one to
three weeks.
 Agile development methodology and testing practices have worked wonders for
several organizations with positive aspects. The positive aspects of agile are not
hidden. They are very much visible in organizations. There are some of the
important points related to the agile model listed as follows –
 Agile focuses on customer feedback, collaboration, small and rapid releases.
 Its purpose is to manage complex projects.
 The Agile produces better application suites with the desired requirements. Moreover,
it can quickly adapt according to the changes made on time during the project life.
 It has a small team size. Therefore, fewer people work on it so that they can move
faster.
 The agile model is not a suitable model for small projects. The expenses of developing
the small projects using agile are more than compared to other models.
 In agile methodology, the interaction of customers is very high, as after each iteration
an incremental model is deployed to customers.
DevOps Lifecycle
 DevOps defines an agile relationship between operations and Development. It is a
process that is practiced by the development team and operational engineers
together from beginning to the final stage of the product.
1) Continuous Development
 This phase involves the planning and coding of the software. The vision of the project is decided
during the planning phase. And the developers begin developing the code for the application. There
are no DevOps tools that are required for planning, but there are several tools for maintaining the code.
2) Continuous Integration
 This stage is the heart of the entire DevOps lifecycle.
 It is a software development practice in which the developers require to commit changes to the source
code more frequently. This may be on a daily or weekly basis.
 Then every commit is built, and this allows early detection of problems if they are present.
 Building code is not only involved compilation, but it also includes unit testing, integration testing, code
review, and packaging.
 The code supporting new functionality is continuously integrated with the existing code. Therefore,
there is continuous development of software.
 The updated code needs to be integrated continuously and smoothly with the systems to reflect
changes to the end-users.
 Jenkins is a popular tool used in this phase.
 Whenever there is a change in the Git repository, then Jenkins fetches the updated code and prepares
a build of that code, which is an executable file in the form of war or jar.
 Then this build is forwarded to the test server or the production server.
3) Continuous Testing
 This phase, where the developed software is continuously testing for
bugs. For constant testing, automation testing tools such as TestNG,
JUnit, Selenium, etc are used.
 These tools allow QAs to test multiple code-bases thoroughly in
parallel to ensure that there is no flaw in the functionality. In this
phase, Docker Containers can be used for simulating the test
environment.
 Selenium does the automation testing, and TestNG generates the
reports. This entire testing phase can automate with the help of a
Continuous Integration tool called Jenkins.
 Automation testing saves a lot of time and effort for executing the tests
instead of doing this manually. Apart from that, report generation is a big
plus. The task of evaluating the test cases that failed in a test suite gets
simpler. Also, we can schedule the execution of the test cases at
predefined times. After testing, the code is continuously integrated with
the existing code.
4) Continuous Monitoring
 Monitoring is a phase that involves all the operational factors of the
entire DevOps process, where important information about the use of
the software is recorded and carefully processed to find out trends and
identify problem areas. Usually, the monitoring is integrated within the
operational capabilities of the software application.
 It may occur in the form of documentation files or maybe produce large-
scale data about the application parameters when it is in a continuous
use position. The system errors such as server not reachable, low
memory, etc are resolved in this phase. It maintains the security and
availability of the service.
 5) Continuous Feedback
 The application development is consistently improved by analyzing
the results from the operations of the software. This is carried out by
placing the critical phase of constant feedback between the
operations and the development of the next version of the current
software application.
 The continuity is the essential factor in the DevOps as it removes the
unnecessary steps which are required to take a software application
from development, using it to find out its issues and then producing a
better version. It kills the efficiency that may be possible with the app
and reduce the number of interested customers.
 6) Continuous Deployment
 In this phase, the code is deployed to the production servers. Also, it
is essential to ensure that the code is correctly used on all the
servers.
 The new code is deployed continuously, and configuration management tools
play an essential role in executing tasks frequently and quickly. Here are some
popular tools which are used in this phase, such as Chef, Puppet, Ansible,
and SaltStack.
 Containerization tools are also playing an essential role in the deployment
phase. Vagrant and Docker are popular tools that are used for this purpose.
These tools help to produce consistency across development, staging, testing,
and production environment. They also help in scaling up and scaling down
instances softly.
 Containerization tools help to maintain consistency across the environments
where the application is tested, developed, and deployed. There is no chance of
errors or failure in the production environment as they package and replicate the
same dependencies and packages used in the testing, development, and staging
environment. It makes the application easy to run on different computers.
7) Continuous Operations
 All DevOps operations are based on the continuity with complete automation of
the release process and allow the organization to accelerate the overall time to
market continuingly.
 It is clear from the discussion that continuity is the critical factor in the DevOps
in removing steps that often distract the development, take it longer to detect
issues and produce a better version of the product after several months. With
DevOps, we can make any software product more efficient and increase the
overall count of interested customers in your product.

You might also like