Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Unit 3 Devops

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

N.

NAGARAJU
Asst.Professor
DevOps
Unit-3
III B.TECH I SEM
DevOps Text Book
DevOps adoption in projects: Technology aspects
Growing consumer demand for more products and smart applications that ease
processes have really changed the pace of the IT industry. This resulted in
growing competition among firms in adopting the right technology solutions
that can offer them a competitive edge in the market.
Many such solutions have arrived over the years, but there is one such
technology trend that has turned into a buzzword across firms over a couple of
years. It’s none other than DevOps!
More than a technology, firms adopting that technology love to call it a culture as
it’s the trend that reinvented the collaboration between the two key teams of
any organization i.e. Developers (Dev) and Operations (Ops).
Moreover, technology has also been most sought as a one-stop solution for
achieving continuous and quality product delivery, faster recovery time and
innovation, and most importantly, all in a collaborative environment.
Four adoption paths best describe an organization’s path to success right from
being Inefficient to becoming Leaner in the second stage and Smarter finally:
1. Steer Inefficiency: This is the first stage of transition that defines companies’
success through DevOps adoption. At this stage, the organization gets
transformed from process-based to product-based and finally become smarter
enough to optimize its processes for further efficiency.
2. Develop/Test: The next stage after transformation to a product-based
approach would be pacing up accelerating the development process and
adopt agile methodologies to test. This forms the second stage of transition
after DevOps adoption.
3. Deploy: Once the pace in development is achieved, the next stage would be to
make it faster and smart, which is where Automation steps in, forming the
third stage on the path to success through DevOps adoption. Automate the
process for transparency, quick release and ease further deployment.
4. Operate: At this stage of DevOps, the organizations start moving away from
siloed to become collaborative
These four stages form the clear-cut DevOps strategy that made DevOps deployers
(organizations) stand smart enough in dealing with the entire software process
chain to gain a competitive edge over their competitors.
Mentioned below are the factors that influence DevOps
Adoption
Speed to Market – The world industries are running at mad speed to fulfill the needs
of customers alongside keeping their foot stable in the face of competition.
Resultant, business owners are looking at solutions that can help them do
both. Therefore, DevOps is turning out to be an efficient and reliable solution
for leveraging business operations while surpassing industry expectations.
Operational Efficiency – Organizations are beginning to see the speed at which
software is deployed and internal application errors are fixed. The enhanced
workflow has led business owners to believe in the potential of DevOps.
Lowering Costs – Companies have minimized wasteful expenditure on recruiting
people with limited or No DevOps knowledge and on maintaining
unnecessary tools and resources. This drives the ‘company spends’on the
most important things. The cost factor is the key influencer in the DevOps
adoption.
Better Quality – Bugs don’t disrupt occur, workflows generate the desired results and
applications respond in no time to fulfill your request. What more! The quality
of work and reliability of applications have made key business stakeholders to
realize the power of DevOps.
Employee Retention – With the dawn of the DevOps concept, employers have begun
to realize that they don’t require new staff or people with given knowledge
rather their existing workforce is enough to chalk out a successful DevOps
plan. This trend has made business owners retain their ‘cream of the crop’.
Technology Disruption – Technology malfunctioning can throw your business
prospects out of gear. With the DevOps system in place and the systematic
approach of coding, testing and deployment, you know that your technology
can never disappoint you. Not everyone is in to deal with downtime.
6 Steps to a Successful DevOps Adoption
1. Embrace a DevOps Mindset
2. Make the Most of Metrics
3. Understand and Address Your Unique Needs
4. Adopt Iteratively
5. Emphasize Quality Assurance Early
6. Take a Smart Approach to Automation
Note:
Is DevOps better than Agile?
The key difference between Agile versus DevOps is :
Agile is a philosophy about how to develop and deliver software, while
DevOps describes how to continuously deploy code through the use of modern tools
and automated processes.
DevOps focuses on uniting the Development and Operations teams in a continuous
development process.
Agile focuses on embracing mid-project changes. DevOps focuses on the end-to-end
software engineering process that embraces constant development and testing.
Is DevOps possible without Agile?
Agile Is Not Possible Without DevOps.
Agile capabilities in devops
In today’s fast-paced technological development and deliveries, companies
focus on accelerated deliveries while maintaining high customer value.
DevOps and Agile are two different technologies focused on delivering
the same output.
The primary function of the DevOps application is to reduce the number of
steps during the software development process for faster delivery of
the software into the market. Of course, the scalability of the software,
deployment of the software, and its monitoring and maintenance are
also kept in focus while its implementation. Simply put, software
development and IT operations work together to bring down the
software implementation delivery time.
On the other hand, Agile software development is more focused on software
development to increase the velocity of project delivery. As mentioned
earlier, the end goal is similar. Thus, combining the two, making it Agile
DevOps, will help overcome the challenges and shortcomings of each
other with benefits like faster delivery, and higher customer satisfaction
resulting in higher revenue and profit growth.
What is Agile DevOps?
 To bring two technologies together, we must understand both of them
individually, which in turn, will help us understand how well they can
gel with each other.
 Both DevOps and Agile are the modern software development practices that
are designed to produce a part of a product, launch, or release, the
approaches they follow are different. Let us try and compare the
approaches that the two practices follow:
DevOps vs Agile
DevOps vs Agile: Similarities and Differences
Now that we have understood What is DevOps methodology and Agile methodology,
understanding the similarities and differences will help us in understanding Agile
DevOps better.
Difference: The scheduling of the process followed is different from one another.
Agile employs weekly or monthly sprints to set features to be created during this
sprint.
DevOps sets multiple schedules for deployment to minimize the associated
business impact.
Similarities:
 Both, Agile and DevOps methodologies complement each other and thus can
work in tandem.
Agile rapidly adapts to changing requirements while collaborating better between
the smaller teams.
DevOps enables continuous automated integration and deployment to enable
frequent releases while collaborating better between the smaller teams.
When applied in tandem, Agile DevOps enables significantly faster development
and deployment while keeping the customer’s needs at the forefront. Continuous
feedback and integration become quicker and easier.
Having understood the benefits and similarities, it is advised to choose the
resources carefully as in larger organizations, the cultural work methodology
differences might create hindrances and friction amongst the teams.
What can be Achieved by Integrating DevOps and Agile?
Integrating DevOps and Agile will lead to greater business performance. The
organizations that are embracing Agile DevOps practices are seeing
approximately 60% growth in their revenue. It is almost 2.4 times more than
their counterparts that are growing at a rate of over 20%. The major benefits of
bringing two approaches together are listed below:
1. Process releases are simplified and product offerings are improved
2. Allows maximized collaboration
3. Implementation of continuous integration/delivery pipeline
4. More value and fewer risks in every release
5. Fewer bugs and faster fixes
6. Increased visibility
7. Higher customer satisfaction
rates
1. More qualitative products
Points to Consider when Integrating Agile and Devops
1. Seamless Teamwork Flow
2. Defining the Software Lifecycle
3. DevOps Adoption in Sprints
4. Quality Assurance
5. Implement Service Backlog Under DevOps
6. Leveraging the Right Tools
7. Automation
8. Documentation
9. Measurement and Analysis
5 Ways to Use DevOps and Agile Services Together
FAQs
Q. Are Agile and DevOps the same?
Agile and DevOps are two different approaches/methodologies used for project
deliveries. However, Agile can be used as a part of DevOps.
 Agile approach focuses on fulfilling the customers’ needs and requirements.
 DevOps approach focuses on ease of communication between the team to deliver the
projects with greater efficiency and speed.
Q. How do Agile and DevOps Interrelate?
DevOps brings together the two teams that used to work in their silos to increase the velocity
of software development and release. While the Agile team works in smaller groups so that
they can react quickly as per customer requirements.
In other words, DevOps creates the software, and the Agile team tests it and deploys it.
Q. What are the challenges in bringing the two approaches together?
1. The major difference between Agile and DevOps is the culture that they work in.
The Agile team works in small teams whereas DevOps, as the name suggests, is the
integration of development and operations teams.
2. To merge the two methodologies, the team and the leadership should be well prepared to
face the challenge in the way cross-functional teams will have to work together for
smooth and quick delivery of the projects.
Tool stack implementation in DevOps
What is tool stack?
 toolstack (plural toolstacks) (computing) A collection of software tools to work on
different parts of a related system, often used on information technology
infrastructure management.
How are DevOps tools implemented?
The DevOps Implementation Roadmap involves Six Steps:
1) Introduce DevOps Initiative: (a culture—or mindset—change that brings greater
collaboration between multiple teams—product, engineering, security..etc)
2) Develop DevOps Strategy: (Procedure : plan, build, deploy, maintenance)
3) Use Containerization: (a process of packaging your application together with its
dependencies into one package (a container)
4) Integrate Infrastructure with CI/CD Tools. ...
5) More Test Automation and QA-Dev Alignment. ...
6) Application Performance Monitoring.
what DevOps is not;
o DevOps is not a tool or software
o DevOps is not a separate team
o DevOps is not just blending Development & Operations teams
o But, DevOps is a never-ending process of continual improvement.
If you’re considering DevOps, you have many moving parts to consider. Core to this
structure are automated provisioning, automated testing, and automated build and
deployment. At the same time, you need to maintain continuous feedback, with information
continuously moving back and forth, as well as making sure that you log pretty much
everything.
Step 1: Understand the collaboration and shared tools strategy for the Dev, QA, and
infrastructure automation teams
DevOps teams need to come up with a common tools strategy that lets them
collaborate across development, testing, and deployment . This does not mean that you
should spend days arguing about tooling; it means you work on a common strategy that
includes DevOps...
1. Processes
2. Communications and collaboration planning
3. Continuous development tools
4. Continuous integration tools
5. Continuous testing tools
6. Continuous deployment tools
7. Continuous operations and CloudOps tools
Coming up with a common tools strategy does not drive tool selection — at least not at this
point. It means picking a common share strategy that all can agree upon and that is
reflective of your business objectives for DevOps.
Step 2: Use tools to capture every request
No ad hoc work or changes should occur outside of the DevOps process, and
DevOps tooling should capture every request for new or changed software. This is different
from logging the progress of software as it moves through the processes. DevOps provides
the ability to automate the acceptance of change requests that come in either from the
business or from other parts of the DevOps teams.
Examples include changing software to accommodate a new tax model for the business, or
changing the software to accommodate a request to improve performance of the database
access module.
Step 3: Use agile Kanban project management for automation and DevOps requests that
can be dealt with in the tooling
Kanban is a framework used to implement agile development that matches the
amount of work in progress to the team's capacity. It gives teams more flexible planning
options, faster output, clear focus, and transparency throughout the development cycle.
Step 4: Use tools to log metrics on both manual and automated processes
Select tools that can help you understand the productivity of your DevOps
processes, both automated and manual, and to determine if they are working in your favor.
You need to do two things with these tools.
First, define which metrics are relevant to the DevOps processes, such as speed to
deployment versus testing errors found.
Second, define automated processes to correct issues without human involvement. An
example would be dealing with software scaling problems automatically on cloud-based
platforms.
Step 5: Implement test automation and test data provisioning tooling
Test automation is more than just automated testing; it’s the ability to take code and data and run
standard testing routines to ensure the quality of the code, the data, and the overall solution.
With DevOps, testing must be continuous. The ability to toss code and data into the process
means you need to place the code into a sandbox, assign test data to the application, and run
hundreds — or thousands — of tests that, when completed, will automatically promote the code
down the DevOps process, or return it back to the developers for rework.
Step 6: Perform acceptance tests for each deployment tooling
Part of the testing process should define the acceptance tests that will be a part of
each deployment, including levels of acceptance for the infrastructure, applications, data, and
even the test suite that you’ll use. For the tool set selected, those charged with DevOps testing
processes should to spend time defining the acceptance tests, and ensuring that the tests meet
with the acceptance criteria selected.
These tests may be changed at any time by development or operations. And as applications
evolve over time, you'll need to bake new requirements into the software, which in turn should
be tested against these new requirements. For example, you might need to test changes to
compliance issues associated with protecting certain types of data, or performance issues to
ensure that the enterprise meets service-level agreements.
Step 7: Ensure continuous feedback between the teams to spot gaps, issues, and inefficiencies
Finally, you'll need feedback loops to automate communication between tests that spot
issues, and tests that process needs to be supported by your chosen tool. The right tool must
identify the issue using either manual or automated mechanisms, and tag the issue with the
artifact so the developers or operators understand what occurred, why it occurred, and where it
occurred.
People aspect & processes in DevOps
What is DevOps people process?
DevOps is the correlation of people, process, and products to enable continuous
delivery of value to end users. The outcomes are tightly connected to allow for frequent releases
and at the same time to keep the same level of quality.
DevOps: The Three Stage Conversation – People, Process and Products
1. DevOps is a methodology interacting between Development and Operations to improve
collaboration and the joint effort between both functions.
2. DevOps can also be referred to as a methodology that overcomes the gap between Agile
software development and operations, as it enables a fluent process for Continuous
Development and Continuous Integration.
3. It’s also very important to highlight that the usage of a DevOps methodology reduces the
stress in communication, helps to improve the communication between teams, collaboration
between all participants and integration between developers and operations teams.
4. In delivering valuable software to customers, too often development and operations are in
conflict with each other. When Development implements the changes, such as new features,
bugs or fixes, they want to quickly roll out these new changes into production. However, if
software has already been delivered, the operations department wants to avoid making
changes to the software. This is where DevOps can help to overcome the gap between both
teams.
5. initially, there was ‘Agile Development’, when the agility aspect was applied to operations
it became ‘Agile Administration’, thus DevOps was formed.
The Three Stage Conversation – People, Process, Products
DevOps is the correlation of people, process, and products to enable continuous
delivery of value to end users. The outcomes are tightly connected to allow for frequent
releases and at the same time to keep the same level of quality.
People:
Initially, stakeholders would need to be identified, ensuring that everybody
delivering value to the business are working tightly together on the common goal of adding
value to the customer.
The latest study by Gartner, which involved 367 leading companies, from which
113 companies were using DevOps. From this study we can deduce that the biggest concern
is ‘People’, with process and products being deemed less critical. From this, we can assume
that having highly motivated people with good collaboration is necessary.
Process:
1. Next – DevOps is about improving process because even if you have highly motivated people
that are working well together, you may still have several business processes which may get
in the way and this could really block innovation.
2. For instance, having to seek approval from long chain advisory boards before implementing
changes or being restricted to doing things in a certain way can impede innovation.
3. The process of designing, building and testing software should be well presented to each
individual team member, making them aware of all parts of the development process. The
implementation of DevOps can be hard work, as it completely changes the company’s structure
as a whole.
4. This is part of the bigger picture of DevOps. Enabling efficient flow of collaboration and
making sure that business structure and processes do not get in the way but instead have
processes and pr
Products:
1. You can’t buy DevOps, as DevOps is not a software, tool, process, company or person, it’s a
methodology used especially by IT professionals.
2. There are, however, products, tools and services that can help enable different DevOps
practices and different teams which can be used to make things easier.
3. From a very high level, these tools include Microsoft Azure, which is offering a lot of different
products and services, such as Microsoft Azure Stack and Microsoft Azure.
4. Besides Microsoft Azure there are also other products related to DevOps practices, such
as Team Foundation Server (TFS).pactices that help improve the value and delivery to your
customers.

You might also like