Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 23

Devops

1.INTRODUCTION
DevOps is basically a combination of two words- Development and Operations. DevOps is
a culture that implements the technology in order to promote collaboration between the
developer team and the operations team to deploy code to production faster in an automated
and repeatable way. 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 is a software development approach emphasizing collaboration, automation, and


continuous delivery to provide high-quality products to customers quickly and efficiently.
DevOps breaks down silos between development and operations teams to enable seamless
communication, faster time-to-market, and improved customer satisfaction. It allows a team
to handle the complete application lifecycle, from development to testing, operations, and
deployment. It shows cooperation between Development and Operations groups to deploy
code to production quickly in an automated and repeatable manner.

Every phase of the software development lifecycle, including planning, coding, testing,
deployment, and monitoring, is heavily automated in DevOps. This improves productivity,
ensures consistency, and lowers error rates in the development process. A culture of
continuous improvement is also promoted by DevOps, where feedback loops are
incorporated into the procedure to facilitate quicker iteration and better decision-making.
Organizations can increase their agility, lower costs, and speed up innovation by adopting
DevOps.

1
Department of Computer Science and Engineering
Devops

2. DevOps History
o In 2009, the first conference named DevOpsdays was held in Ghent Belgium. Belgian
consultant and Patrick Debois founded the conference.
o In 2012, the state of DevOps report was launched and conceived by Alanna Brown at
Puppet.
o 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.
o In 2015, Nicole Forsgren, Gene Kim, and Jez Humble founded DORA (DevOps
Research and Assignment).
o In 2017, Nicole Forsgren, Gene Kim, and Jez Humble published "Accelerate:
Building and Scaling High Performing Technology Organizations".

2
Department of Computer Science and Engineering
Devops

3.DevOps Architecture

Development and operations both play essential roles in order to deliver applications. 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.

3
Department of Computer Science and Engineering
Devops

Below are the various components that are used in the DevOps architecture:

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
Department of Computer Science and Engineering
Devops

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.

5
Department of Computer Science and Engineering
Devops

4. Key Principles of DevOps:

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.

6
Department of Computer Science and Engineering
Devops

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.

7
Department of Computer Science and Engineering
Devops

5. DevOps Lifecycle
DevOps is a practice that enables a single team to handle the whole application lifecycle,
including development, testing, release, deployment, operation, display, and planning. It is
a mix of the terms “Dev” (for development) and “Ops” (for operations). We can speed up
the delivery of applications and services by a business with the aid of DevOps. Amazon,
Netflix, and other businesses have all effectively embraced DevOps to improve their
customer experience.

DevOps Lifecycle is the set of phases that includes DevOps for taking part
in Development and Operation group duties for quicker software program delivery. DevOps
follows positive techniques that consist of code, building, testing, releasing, deploying,
operating, displaying, and planning. DevOps lifecycle follows a range of phases such as
non-stop development, non-stop integration, non-stop testing, non-stop monitoring, and
non-stop feedback. Each segment of the DevOps lifecycle is related to some equipment and
applied sciences to obtain the process. Some of the frequently used tools are open source
and are carried out primarily based on commercial enterprise requirements. DevOps
lifecycle is effortless to manipulate and it helps satisfactory delivery.
7 Cs of DevOps
1. Continuous Development

8
Department of Computer Science and Engineering
Devops

2. Continuous Integration
3. Continuous Testing
4. Continuous Deployment/Continuous Delivery
5. Continuous Monitoring
6. Continuous Feedback
7. Continuous Operations

1. Continuous Development
In Continuous Development code is written in small, continuous bits rather than all at once,
Continuous Development is important in DevOps because this improves efficiency every
time a piece of code is created, it is tested, built, and deployed into production. Continuous
Development raises the standard of the code and streamlines the process of repairing flaws,
vulnerabilities, and defects. It facilitates developers’ ability to concentrate on creating high-
quality code.

9
Department of Computer Science and Engineering
Devops

2. Continuous Integration :

Continuous Integration can be explained mainly in 4 stages in DevOps. They are as


follows:

1. Getting the SourceCode from SCM


2. Building the code
3. Code quality review
4. Storing the build artifacts
The stages mentioned above are the flow of Continuous Integration and we can use any of
the tools that suit our requirement in each stage and of the most popular tools
are GitHub for source code management(SCM) when the developer develops the code on
his local machine he pushes it to the remote repository which is GitHub from here who is
having the access can Pull, clone and can make required changes to the code. From there by
using Maven we can build them into the required package (war, jar, ear) and can test the
Junit cases. SonarQube performs code quality reviews where it will measure the quality
of source code and generates a report in the form of HTML or PDF format. Nexus for
storing the build artifacts will help us to store the artifacts that are build by using Maven
and this whole process is achieved by using a Continuous Integration tool Jenkins.

3. Continuous Testing:

10
Department of Computer Science and Engineering
Devops

Any firm can deploy continuous testing with the use of the agile and DevOps
methodologies. Depending on our needs, we can perform continuous testing using
automation testing tools such as Testsigma, Selenium, LambdaTest, etc. With these tools,
we can test our code and prevent problems and code smells, as well as test more quickly
and intelligently. With the aid of a continuous integration platform like Jenkins, the entire
process can be automated, which is another added benefit.

4. Continuous Monitoring
DevOps lifecycle is incomplete if there was no Continuous Monitoring. Continuous
Monitoring can be achieved with the help of Prometheus and Grafana we can continuously
monitor and can get notified before anything goes wrong with the help of Prometheus we
can gather many performance measures, including CPU and memory utilization, network
traffic, application response times, error rates, and others. Grafana makes it possible to
visually represent and keep track of data from time series, such as CPU and memory
utilization.

5. Continuous Feedback
Once the application is released into the market the end users will use the application and
they will give us feedback about the performance of the application and any glitches
affecting the user experience after getting multiple feedback from the end users’ the
DevOps team will analyze the feedbacks given by end users and they will reach out to the
developer team tries to rectify the mistakes they are performed in that piece of code by this

11
Department of Computer Science and Engineering
Devops

we can reduce the errors or bugs that which we are currently developing and can produce
much more effective results for the end users also we reduce any unnecessary steps to
deploy the application. Continuous Feedback can increase the performance of the
application and reduce bugs in the code making it smooth for end users to use the
application.

6. Continuous Deployment/ Continuous Delivery


Continuous Deployment: Continuous Deployment is the process of automatically deploying
an application into the production environment when it has completed testing and the build
stages. Here, we’ll automate everything from obtaining the application’s source code to
deploying it.

Continuous Delivery:

Continuous Delivery is the process of deploying an application into production servers


manually when it has completed testing and the build stages. Here, we’ll automate the
continuous integration processes, however, manual involvement is still required for
deploying it to the production environment.

12
Department of Computer Science and Engineering
Devops

7. Continuous Operations

We will sustain the higher application uptime by implementing continuous operation,


which will assist us to cut down on the maintenance downtime that will negatively impact
end users’ experiences. More output, lower manufacturing costs, and better quality control
are benefits of continuous operations.

6.The Evolution of DevOps – 3 Major Trends for Future


DevOps is a software engineering culture and practice that aims to unify software
development and operations.
DevOps originated in the mid-2000s when organizations started to recognize the need for a
more efficient and effective way of delivering software. The traditional approach to

13
Department of Computer Science and Engineering
Devops

software development, where development and operations were separate departments, was
proving to be too slow and cumbersome. The siloed nature of this approach led to poor
communication and collaboration, resulting in long lead times, slow feedback cycles, and
low-quality software.

One of the first organizations to embrace DevOps was Amazon, which implemented the
approach in the early 2000s. Amazon’s DevOps team was responsible for automating
manual processes and reducing the lead time for software delivery. This resulted in faster
feedback cycles and improved software quality, which helped Amazon stay ahead of the
competition.

In the early 2010s, DevOps started to gain mainstream popularity, and its adoption
accelerated. The rise of DevOps was also driven by the increasing importance of software
in all aspects of business, from product development to customer engagement.
Organizations realized that they needed to adopt DevOps to remain competitive, and the
demand for DevOps skills and expertise skyrocketed.

Over recent years, the DevOps wave has swept through the entire software development
world unhindered. This revolutionary approach has proved itself what is indeed needed for
businesses to scale development faster and more efficiently. The year 2020, with its main
feature being a global pandemic, has appeared to be a turning point for DevOps, one that
will determine the trajectory of software development for years to come, beginning from
the next, 2021.

This article explores how COVID-19, the shift to the cloud, and its implications for security
are driving a new wave of demands for software development in the near future, from a
DevOps perspective.

1. Cloud-Native Technology in Production


2. Integration of DevOps and Security

3. Testing Shifts Further Left

8.Challenges of DevOps:
1. Environmental Challenges in Devops
During DevOps the ownership of the codebase changes from one team to another; from
development to testing, to deployment and production. During such transitions there is a

14
Department of Computer Science and Engineering
Devops

general waste of time and effort as the environments used by these teams are separately
configured and the codebase must be modified to work smoothly on all these environments.
This sometimes causes teams to also waste time trying to investigate for problems in the code
rather than in the environment on which it is run.
Solutions
Creating infrastructural blueprints for Continuous Delivery enablement and making sure that
all environments are identical. This usually requires all teams to get together and plan the
Continuous Delivery process to ensure smooth transition.
A good solution to enable this is to adopt a cloud-based infrastructure for
DevOps enablement. The different parts of the DevOps pipeline, viz. coding, builds, testing,
deployment, and post-production monitoring require different tools to enable and are hosted
on different environments.
Hosting these pipelines on the cloud helps to create a centralised architecture that helps
different teams to access the codebase and continue to develop the pipeline as the cloud
environment manages the environment transition.
2. Challenges with Team Maturity and Competence
The level of maturity and competence a software engineering team has with the Software
Development Life Cycle is directly related to their ability to be able to adapt to the DevOps
transformation of these processes.
One of the key reasons behind the adoption of DevOps is the need to deliver quality software
in shorter deadlines in a more reliable fashion. The DevOps process seeks to transform the
conventional Software Development process by creating a continuous cycle of Code-Build-
Test and to better integrate the development and operations processes to be able to achieve its
goal of quality software delivered on time.
Solutions
Organisations adopting DevOps need to adopt the correct tools and technologies and should
be able to invest in the correct training and upskilling for their employees. A robust devops
culture requires the following steps :

 Building new interactions points to increase inter-organization communication


 Constant feedback gathering from stakeholders to improve pipelines and processes
 Prevent teams from working in silos
 Use relevant metrics to guide DevOps adaptation and improvement

15
Department of Computer Science and Engineering
Devops

3. Challenges with Monitoring the overall DevOps process


One of the most common problems with DevOps is the challenge in holistically monitoring
the entire process. DevOps consists of several moving parts and each of these have different
metrics to judge their effectiveness.
For example a metric like number of code branches or deployment frequency might deal with
the CI/CD process; whereas something like Defect Escape Rate is a part of the Continuous
Testing pipeline.
Often there is lack of clear visibility over the entire process and that often leads to finger-
pointing and delays in production. Any manual processes made to envisage this leads to
extensive labour and risks incorrect updates due to human error.
Solutions
Continuous Monitoring tools like Nagios Core can allow the continuous overview of
applications, metrics, services, network components, etc. It allows users to have a birds eye
view of the infrastructure and detect critical issues. It also offers useful altering services to
resolve these issues and provides a great degree of scalability and flexibility. It also provides
up to date logs of any DevOps events, failures, code crashes, and system outages.
This automated viewport allows teams to exactly know what has gone wrong and where and
subsequently make the changes required to correct it.
4. CI/CD Performance Issues
A suboptimal implementation of the CI/CD pipeline leads to recurring issues such as slow
page loads for websites, delayed responses from servers, and poor memory optimization that
hampers the overall performance of the application.
A Deloitte study indicates that suboptimal website performance increases the bounce rate and
decreases overall time on the site. A mere 1 second delay can result in

 Page views reducing by 11%


 Customer satisfaction dropping by 16%
 Conversions decreasing by 7%
Solutions
Automated testing principles can be extended by the QA team to check for performance using
tools like Apache JMeter.
Security Issues
Security vulnerabilities in the DevOps pipeline make it susceptible to cyber-attacks and can
lead to sensitive information being compromised.

16
Department of Computer Science and Engineering
Devops

Solutions
Some potential solutions are:

 Locking parts of the pipeline where irregularities are detected


 Having an effective monitoring system to detect and resolve threats quickly
 Mitigate risks by limiting the amount of sensitive information in the code and
addressing vulnerable code using Code Analysis tools.
5. Scalability of Test Infrastructure
One of the major challenges in Continuous Testing is to be able to scale the operations and
the test capabilities at the same time to handle increased volumes of data, devices, etc
Solutions
Choosing a Selenium based test infrastructure that flexibility handles version updates,
increased device load, and manages data capacity in a stable manner.

9.Advantages:
1. Faster Delivery: DevOps enables organizations to release new products and
updates faster and more frequently, which can lead to a competitive advantage.
2. Improved Collaboration: DevOps promotes collaboration between development
and operations teams, resulting in better communication, increased efficiency,
and reduced friction.

17
Department of Computer Science and Engineering
Devops

3. Improved Quality: DevOps emphasizes automated testing and continuous


integration, which helps to catch bugs early in the development process and
improve the overall quality of software.
4. Increased Automation: DevOps enables organizations to automate many manual
processes, freeing up time for more strategic work and reducing the risk of
human error.
5. Better Scalability: DevOps enables organizations to quickly and efficiently scale
their infrastructure to meet changing demands, improving the ability to respond
to business needs.
6. Increased Customer Satisfaction: DevOps helps organizations to deliver new
features and updates more quickly, which can result in increased customer
satisfaction and loyalty.
7. Improved Security: DevOps promotes security best practices, such as continuous
testing and monitoring, which can help to reduce the risk of security breaches
and improve the overall security of an organization’s systems.
8. Better Resource Utilization: DevOps enables organizations to optimize their use
of resources, including hardware, software, and personnel, which can result in
cost savings and improved efficiency.

10.DevOps Future Scope

The future of DevOps is very optimistic and more organizations are going to adopt this
technology soon. DevOps processes are evolving as new technologies and tools are
introduced.

18
Department of Computer Science and Engineering
Devops

In the domain of software development, the additional operating costs and times will continue
if the development processes aren’t optimized or are ineffective.

DevOps helps to reduce redundancy in development processes by forming a single line of


communication between developers and the operations team. This essentially establishes a
continuous feedback loop, making it easy to find bugs and quickly fix them.

The demand for DevOps will get at its peak as companies are including DevOps in their
company processes. With this, they will have more control over the whole pipeline, which
will allow the teams to operate more efficiently with less repetition.

The DevOps future scope will be extremely competitive and growing rapidly, with
organizations that range from large businesses to startups enjoying the advantages.

Furthermore, many reports predict that DevOps industry trends will continue to rise, as
companies in the software development sector focus more on obtaining advanced DevOps
services and tools to optimize specific functions of management and software deployment
processes.

11.The Future of DevOps Engineers

DevOps jobs has a great and promising future. It is considered one of the best fields in the IT
industry. So, let’s uncover the reasons that support DevOps as an exciting field in the future.

19
Department of Computer Science and Engineering
Devops

 A DevOps Engineer with less than three years of experience can expect to earn an
average salary of 3,35,100 LPA.
 DevOps Engineers with 4 to 8 years of experience earn an average gross salary of
6,45,100 LPA, while senior DevOps engineers with more than 8 years of experience
earn an average of 9,25,100 LPA.
 A senior-level DevOps Engineer earns an average of 12,90,100 LPA.

Although this is the average salary of a DevOps professional, the salary offered by an
organization also depends heavily on his experience.

The main reason for looking into the experience is because, the organization runs more
smoothly, making the operations more efficient and they can use their experience in any sort
of difficulties during the development and operational works.

Apart from experience, the position also determines professional salary.

Of course, there are many factors that affect salaries, such as location, skill, company, and
many more, so this may vary according to it. As more companies adopt DevOps, the demand
will increase.

Hence, the demand for DevOps Engineers gets automatically increased and after all these, we
can say, the future is very promising for this role. DevOps Engineers lead the list of in-
demand positions, with more than 60% of organizations hiring DevOps Engineers.

The following are the most important skills required for a DevOps Engineer:

 Soft skills
 Operational skills
 Coding and Scripting
 Understanding of relevant DevOps tools
 Security skills
 Automation skills
 Communication and collaboration skills
 Cloud skills
 Testing skills

20
Department of Computer Science and Engineering
Devops

12.Conclusion

DevOps is a constantly evolving set of practices and structures designed to promote faster,
more efficient software and app development as well as other IT operations. DevOps is

21
Department of Computer Science and Engineering
Devops

rapidly growing, and its future will be very different from what it is now. It is the future of
technology, and every company that produces software will undoubtedly use the DevOps
concept for sure.

So, mate! As there is such demand in the future of DevOps, and companies offering good
pay-scale, you should go for DevOps as a career option without any doubts and we wish you
the best in your future endeavors.

13. References
[1] Pritibha Jha and Rizwan Khan. DevOps: Beginning and more to Know, June 2018

22
Department of Computer Science and Engineering
Devops

[2] Anna wiedemann, Nicole Forsgren, Manuel Wiesche, Heiko Gewald and Helmut krcmar.
The DevOps Phenomenon, December 2019

[3] David Chapman, ―Introduction to DevOps on AWS‖ in


Amazon Web Services, December 2014, pp.no 1-20.
[4] S.W.Ambler. ―Disciplined agile delivery and
collaborative DevOps‖ in Cutter IT Journal 24.12(2011),
pp. no.- 18-23.
[5] SAUGATUK TECHNOLOGY, ―Why DevOps Matters:
practical insight on managing complex& continuous
change‖ in Microsoft, October 2014 Pages 1-8.
[6] Mohamed Khaled Aljundi, ―Tools and Practices to
Enhance DevOps Core Values‖, 2016 pages 32-45.
[7] Rico de Feijter ―Towards the adoption of DevOps in
software product organization: A maturity model
approach‖,May 23 ,2017, pp. 36-51‖
[8] Leah Riungu-Kallosaari, ‖DevOps BENEFITS AND
CHALLENGES IN PRACTICE‖, NOV 2016

23
Department of Computer Science and Engineering

You might also like