Professional Documents
Culture Documents
PM Unit-3 Introduction To Dev
PM Unit-3 Introduction To Dev
Introduction to Devops:
While the visualization helps us understand how DevOps works. The following are
DevOps tools, and how they help an organization.
1. BUILD AUTOMATION – An automated code is prepared to be deployed in a
live environment where the tool used is tied to the programming language
chosen. This makes the whole process faster, consistent and more
repeatable. Further, it also ensures that your process is more reliable than
any manual build.
2. CI/ CD – Continuous Integration and Continuous Deployment deal with
frequent merging of codes and unit testing. Further, the deployment of small
code changes in a routine and frequent process is also a part of this method.
CI/CD helps massively as it helps you detect bugs early and maintains the
use of modular code with minimal effort. It also reduces the time to market
and introduces reliable rollbacks.
3. INFRASTRUCTURE AS CODE – This is usually to manage and provision IT
infrastructure through code and automation. This is reusable, and helps in
consistent resource creation and management. Furthermore, the
infrastructure is self-documenting and simplifies complex material like
authentication and application servers.
4. CONFIGURATION MANAGEMENT – This is the process where you can manage
and change the state of infrastructure in constant and maintainable ways.
This way, we end up saving a lot of time while also minimizing configuration
drift, especially in large server environments. Configuration Management also
helps provide insight documentation on infrastructure.
5. ORCHESTRATION – Orchestration is nothing but an automation that supports
processes and workflows, like Resource Planning. It not only helps us, save
time, but you also achieve stability, especially with an automatic response to
detection of various problems.
6. MONITORING – By this method, you collect and present data about the
performance and stability of services and infrastructure, while also detecting
problems. This enables faster recovery, helps with cross-team visibility,
provides more data to analyze for better root-cause analysis and also
generates an automated response.
7. MICROSERVICES – It is basically an architecture that breaks an application
into many small and loosely collected services. This way, we end up reducing
complexity and increase flexibility in choice of technology.
Once we start following DevOps methodologies, it finds one way or the other to
make the software act in a similar way right from development to production, via
testing. It deploys changes individually, thus making bugs easily visible. These,
once discovered, lead to code improvements through investigations and constant
feedback channels. While developers run live software and IT Ops are involved in
design meetings – both of them, along with other specialists, can contribute to
investigations and feedback channels, which help foster a DevOps culture.
Evolution of DevOps
Originally coined by Patrick Debois, DevOps has become a critical discipline for
realizing the benefits of Agile that ensures that rapid, iterative code development
results in rapd, iterative code deployment! , DevOps resonated with both sides.
Organizations that have adopted ITIL can also implement DevOps, especially for
Cloud-based applications.
Starting with The Phoenix Project, by Gene Kim, DevOps has steadily gained
popularity and supporters, and is seen today as a crucial element of any Agile
technology organization. Consequently, large corporations and all sorts of
technology vendors now support DevOps. With the emergence of AI and ML in all
aspects of the software lifecycle, AI for DevOps is starting to make DevOps even
more smart, fast.
Cloud platform vendors such as Amazon AWS, Microsoft Azure and Google provide
a large range of such tools on their PaaS (Platform as a Service) offerings.
Finally, you need to have some of the key skills in the organization, with roles such
as DevOps engineers, full-stack developers and automation specialists.
Principles of Devops:
1. Collaboration
6. Automation
1. Collaboration
DevOps in its purest form is the integration of the development (Dev) and
operations (Ops) teams. This means that collaboration is central to the foundation
of DevOps. By working together, development can better configure the software for
the operations phase and operations can test the software earlier to ensure it will
meet requirements.
In the same vein, feedback should also be shared across the team. Positive
feedback bolsters morale and reminds the team why its work is important. Negative
feedback is even more important to continuously improving software deliveries.
For example, a key performance indicator (KPI) for many teams is the time it takes
to resolve an issue. The longer a defect exists, the more damage it can cause.
Knowing your average resolution time will help us make informed decisions when
introducing new tools or procedures to your pipeline. You can compare their results
against your benchmark average and get a good idea of whether or not the new
addition will ultimately help or hurt your team.
3. Customer-Centric Decision Making
DevOps teams also use live monitoring strategies to address problems before they
become an issue for the customer. Other tools allow the team to measure how end
users interact with the application in real time to see if they are encountering areas
of friction. The speed of the DevOps lifecycle then allows the team to push out
updates aimed at removing these pain points.
4. Constant Improvement
DevOps focuses on constant improvement, or the idea that the team should
continuously focus on new features and upgrades. Another key idea follows
the Agile methodology of incremental releases.
Once the MVP has been delivered, the team then shifts to producing features to add
additional value to the product and works their way toward the ideal software. In
the meantime, the customer can benefit from the tool sooner and learn the new
features as they're released as opposed to having to learn the entire platform at the
end of a waterfall delivery cycle.
Those most familiar with the source code are the same developers now working to
improve it and add new features. This places a new emphasis on producing quality
code and proactively rooting out bugs, which leads to better outcomes for the
customer.
6. Automation
A key benefit of the DevOps approach is speed: speed of software delivery, speed
of updates, speed of patches. This momentum is achieved with automation.
DevOps teams aim to automate every single phase of the process, from code
reviews to handoffs to provisioning and deployment.
Not only does this allow the pipeline to move faster, but it also leads to higher job
satisfaction among team members. They no longer have to perform manual and
tedious tasks. Instead, they can focus on higher-order tasks like planning future
improvements and researching new technologies to implement in the software.
Risks come with the possibility of failure, but they also can lead to success. No
matter how an experiment goes, you will better understand what does and doesn't
work. This experience will help you plan future strategies and act as another data
point for your decision-making.
Of course, early testing will enable you to fail fast where the failure isn't impacting
the customer. This is the ideal time to encounter issues versus failing after
deployment. This strategy is part of a concept known as "shifting left," which we'll
examine next.
Why does DevOps recommend shift left testing principles?
Testing while still in the development side of the DevOps lifecycle offers notable
benefits. First, it's easier, faster, and cheaper to uncover defects early in the
process before more code has been written on top of it. More dependencies mean
more complexity, and this increases the chance that fixing one part of the code will
lead to something else breaking.
Another benefit of a shift left testing approach is that the emphasis for the
development team is now on producing quality code from the start instead of
waiting until a later stage to find defects. The product is delivered to the customer
faster and with fewer (if any) bugs. Everyone gains from this approach.
Automation :
Need of Automation:
Advantages
Greater productivity. Your staff can spend more time making a bigger
impact on your business. Leave the repetition to software.
Better reliability. By reducing the amount of human intervention, you run
into less oversights and issues. All of the same things happen the same way
—every time. That way you know exactly when processes, tests, updates,
workflows, etc. are going to happen, how long they’ll take, and that you can
trust the outcomes.
Easier governance. More people means more potential for knowledge gaps.
More knowledge gaps means one side of your business might not know what,
or who, is involved on the other side. Codifying everything means better
control.
Challenges
Cost. Building an effective automation solution takes time and energy. Work
with a trusted partner like Red Hat—who is able to handle the heavy lifting
for you—to help you save and get running faster.
Scope. Automation doesn’t mean intelligence. Depending on what’s
automated and how it’s constructed, some parts may be vulnerable outside
of that scope. Limiting automation in some aspects or functions can mitigate
this concern. Your automation is only as smart and safe as how it’s
implemented, so keep that in mind.
Types of Automation:
IT automation
A system of instructions that carry out a repeated set of processes to replace
manual work done to IT systems, such as automating provisioning using a standard
operating environment (SOE).
Business automation
The alignment of business process management (BPM), business process
automation (BPA), business rules management (BRM), and business
optimization with modern application development to respond to market changes.
Industrial automation
The reduction of human labor in manufacturing processes as part of factory
automation efforts, usually to the point where human workers simply provide
oversight at a control panel or other human-machine interface (HMI).
Artificial intelligence
Rules-based software that performs tasks typically accomplished with human
intervention.
A guide to AI
Machine learning
Adaptive algorithms that use predictive models to perform tasks without explicit
instructions—automatically modifying algorithms with each completed task
Deep learning
Multiple adaptive algorithms, automation software, and programs that perform a
fixed repetitive task—such as extracting small details from raw images.
DevOps Metrics and Key Performance Indicators
1. Deployment Frequency
Deployment frequency denotes how often new features or capabilities are
launched. Frequency can be measured on a daily or weekly basis. Many
organizations prefer to track deployments daily, especially as they improve
efficiency.
Ideally, frequency metrics will either remain stable over time or see slight and
steady increases. Any sudden decrease in deployment frequency could indicate
bottlenecks within the existing workflow.
More deployments are typically better, but only up to a point. If high frequency
results in increased deployment time or a higher failure rate, it may be worth
holding off on deployment increases until existing issues can be resolved.
2. Change Volume
Deployment frequency means little if the majority of deployments are of little
consequence.
The actual value of deployments may be better reflected by change volume.
This DevOps KPI determines the extent to which code is changed versus
remaining static. Improvements in deployment frequency should not have a
significant impact on change volume.
3. Deployment Time
How long does it take to roll out deployments once they’ve been approved?
Naturally, deployments can occur with greater frequency if they’re quick to
implement. Dramatic increases in deployment time warrant further investigation,
especially if they are accompanied by reduced deployment volume. While short
deployment time is essential, it shouldn’t come at the cost of accuracy. Increased
error rates may suggest that deployments occur too quickly.
4. Failed Deployment Rate
Sometimes referred to as the mean time to failure, this metric determines how
often deployments prompt outages or other issues.
This number should be as low as possible. The failed deployment rate is often
referenced alongside the change volume. A low change volume alongside an
increasing failed deployment rate may suggest dysfunction somewhere in the
workflow.
5. Change Failure Rate
The change failure rate refers to the extent to which releases lead to unexpected
outages or other unplanned failures. A low change failure rate suggests that
deployments occur quickly and regularly. Conversely, a high change failure rate
suggests poor application stability, which can lead to negative end-user outcomes.
6. Time to Detection
A low change failure rate doesn’t always indicate that all is well with your
application.
While the ideal solution is to minimize or even eradicate failed changes, it’s
essential to catch failures quickly if they do occur. Time to detection KPIs can
determine whether current response efforts are adequate. High time to detection
could prompt bottlenecks capable of interrupting the entire workflow.
7. Mean Time to Recovery
Once failed deployments or changes are detected, how long does it take actually to
address the problem and get back on track?
Mean time to recovery (MTTR) is an essential metric that indicates your ability to
respond appropriately to identified issues. Prompt detection means little if it’s not
followed by an equally rapid recovery effort. MTTR is one of the best known and
commonly cited DevOps key performance indicator metrics.
8. Lead Time
Lead time measures how long it takes for a change to occur.
This metric may be tracked beginning with idea initiation and continuing through
deployment and production. Lead time offers valuable insight into the efficiency of
the entire development process. It also indicates the current ability to meet the
user base’s evolving demands. Long lead times suggest harmful bottlenecks, while
short lead times indicate that feedback is addressed promptly.
9. Defect Escape Rate
Every software deployment runs the risk of sparking new defects. These might not
be discovered until acceptance testing is completed. Worse yet, they could be found
by the end user.
Errors are a natural part of the development process and should be planned for
accordingly. The defect escape rate reflects this reality by acknowledging that
issues will arise and that they should be discovered as early as possible.
The defect escape rate tracks how often defects are uncovered in pre-production
versus during the production process. This figure can provide a valuable gauge of
the overarching quality of software releases.
10. Defect Volume
This metric relates to the escape rate highlighted above, but instead focuses on the
actual volume of defects. While some defects are to be expected, sudden increases
should spark concern. A high volume of defects for a particular application may
indicate issues with development or test data management.
11. Availability
Availability highlights the extent of downtime for a given application.
This can be measured as complete (read/write) or partial (read-only) availability.
Less downtime is nearly always better. That being said, some lapses in availability
may be required for scheduled maintenance. Track both planned downtime and
unplanned outages closely, keeping in mind that 100 percent availability might not
be realistic.
12. Service Level Agreement Compliance
To increase transparency, most companies operate according to service level
agreements. These highlight commitments between providers and clients. SLA
compliance KPIs provide the necessary accountability to ensure that SLAs or other
expectations are met.
13. Unplanned Work
How much time is dedicated to unexpected efforts? The unplanned work rate
(UWR) tracks this in relation to time spent on planned work. Ideally, the
unplanned work rate (UWR) will not exceed 25 percent.
A high UWR may reveal efforts wasted on unexpected errors that were likely not
detected early in the workflow. The UWR is sometimes examined alongside the
rework rate (RWR), which relates to the effort to address issues brought up in
tickets.
14. Customer Ticket Volume
As the defect escape rate KPI suggests, not all defects are disastrous. Ideally,
however, they will be caught early. This concept is best reflected in customer ticket
volume, which indicates how many alerts end users generate. Stable user volume
alongside increased ticket volume suggests issues in production or testing.
15. Cycle Time
Cycle time metrics provide a broad overview of application deployment.
This KPI tracks the entirety of the process, beginning with ideation and ending with
user feedback. Shorter cycles are generally preferable, but not at the expense of
discovering defects or abiding by SLAs.
DevOps vs Agile
DevOps and Agile are the two software development methodologies with similar
aims, getting the end-product as quickly and efficiently as possible. While many
organizations are hoping to employ these practices, there is often some confusion
between both methodologies.
Below are some essential differences between the DevOps and Agile:
Agile Infrastructure:
An Agile IT infrastructure is one that is designed to support rapid deployment
and provisioning, and incremental upgrades and improvements. It takes its
name from the development methodology made famous in the 2001 Manifesto for
Agile Software Development.
Need of Agile Infrastructure:
• Faster Deployment: Unlike the traditional way of project management, where a
sign-off on the project was only given when the project was nearly complete, agile
methodology starts rolling out the end product to the end user, stage by stage as
and when it is ready. Thus achieving faster deployment and continuous delivery,
feedback and improvement.
• Increased Flexibility: IT infrastructure is known for its conservative behavior
when it comes to change. With Agile Infrastructure, organisations get room to
makes changes and amendments as and when required, anytime during the project
tenure or even after it is over.
• Continuous Feedback: In the traditional ways of project management,
feedbacks use to roll in only after the project was rolled out, this would take
months and years to shape up a project to perfection. In fact, the feedbacks used
to come so late that the system had no more space to make any improvements,
thus making it a very rigid and time taking process. With Agile Infrastructure, the
implementation team is provided with feedbacks from the end user during the
project tenure which is very valuable in shaping the final product to perfection.
• Continuous Improvement: The faster Deployments in the method of agile
infrastructure allows the end user to use and review the product in phases, thus
they feed the implementation team with continuous feedback, which allows the
team to improve the product so that it meet the need of the end user.
• It is a tedious task to estimate efforts for bigger and complex projects right at the
beginning of the implementation.
• The clients are not always very clear about the final product that they expect out
of the exercise, which becomes a hindrance in the path of agility of the project.
Traditional IT infrastructure processes made sense in the past. But now that the
latest technology advances have eliminated the need for manual configuration work
and consumers expect to interact with companies digitally, it has become essential
for companies to modernize their IT infrastructure organizations, thereby
accelerating IT deployments and shortening time to market for technology projects.
Four shifts can enable IT infrastructure organizations to operate in a more agile and
efficient manner. The first of these shifts involves managing infrastructure much as
application developers manage code, by using software to configure environments
in a swift, reliable way. The other three are organizational: forming cross-functional
teams (or “squads”) of well-rounded infrastructure engineers that work using agile
methods, simplifying processes for delivering infrastructure service offerings, and
improving how infrastructure teams and development teams work together.
CIOs and technology leaders should bear in mind that engineers in agile
infrastructure organizations typically need more diverse skill sets than application
developers do. For infrastructure, that makes agile transformations more
challenging. The infrastructure organization at the European financial-services
company found some of the well-rounded infrastructure engineers it needed by
carefully screening existing employees. The most capable ones were offered roles
on infrastructure squads charged with building the highly automated self-service
solutions described above.
Team size It has a large team size as it involves all It has a small team size. As smaller
the stack holders. is the team, the fewer people work
on it so that they can move faster.
Team skillset The DevOps divides and spreads the skill The Agile development emphasizes
set between development and the training all team members to have
operation team. a wide variety of similar and equal
skills.
Duration The ideal goal is to deliver the code to Agile development is managed in
production daily or every few hours. units of sprints. So this time is
much less than a month for each
sprint.
Target areas End to End business solution and fast Software development.
delivery.
Feedback Feedback comes from the internal team. In Agile, feedback is coming from
the customer.
Shift left It supports both variations left and right. It supports only shift left.
principle
Tools Puppet, Chef, AWS, Ansible, and team Bugzilla, Kanboard, JIRA are
City OpenStack are popular DevOps some popular Agile tools.
tools.
Automation Automation is the primary goal of Agile does not emphasize on the
DevOps. It works on the principle of automation.
Velocity :
Velocity is a metric for work done, which is often used in agile software
development.[1]
Measuring velocity is sometimes called velocity tracking. The velocity metric is used
for planning sprints and measuring team performance. The main idea behind
velocity is to help teams estimate how much work they can complete in a given
time period based on how quickly similar work was previously completed. Velocity is
relative measure.
One of the biggest advantages to DevOps is what is often called velocity: working
with both speed and direction. By breaking down barriers between IT and business,
this close and speedy collaboration can provide
When people can directly collaborate, they tend to hash out any potential issues
with a project much more quickly. Organizations the are separated by function may
find that development on a project moves much more slowly than hoped.
For example, selected business team members might meet with selected IT
members at the beginning of a project. They then each go their own way with
expectations that may change before their next meeting, which could be after
several weeks, months, or longer have passed.
On the other hand, employing DevOps allows for more collaborative functions
between teams. There can be employees from each group that meets daily or team
members from one group embedded within one or more other groups so that the
different functional groups are all working directly with one another each and every
day.
This allows for communication of any new needs or issues to happen right away,
where differences can be hashed out immediately, rather than waiting for a meeting
that could be derailed by one issue like this for the entire meeting duration and
being unable to address other needs and concerns during that precious time.
Development With Velocity
DevOps is often implemented when an organization uses the Agile method of
software development, which often leads to the need for the actual organizational
changes that lead to beginning to use DevOps practices.
The speed of Agile typically requires a toolset that allows for the automation of
certain processes so that speed is not hindered by processes that need to be
performed manually over and over again. Not only can that be tedious, but it can
use up the valuable time your developers or other IT staff could be using to further
enhance the product and deliver further releases. Automation allows for many of
the processes to be free of manual involvement, which frees up your staff for other
work.
When DevOps is employed alongside Agile development to support it, your velocity
will be increased even further and allow you to make your customers happier and
do so more quickly!
Total Velocity
While DevOps can be a challenge to get going as it requires a number of
organizational changes tailored to your specific business needs, it can be well worth
the effort needed to reorganize and regroup. The increased speed of delivery of
your products and updates can really help you, especially if it helps you to be first
to market on a new idea.
Not only will you get improved speed, but it can help your staff feel more like they
are getting along and are contributing to projects that make it to completion.
Seeing something they contributed to in action can be helpful in motivating staff to
find ways to streamline processes even further and thus enhance your velocity that
much more.
LEAN STARTUP:
Lean startup is a methodology for developing businesses and products that aims to
shorten product development cycles and rapidly discover if a proposed business
model is viable; this is achieved by adopting a combination of business-hypothesis-
driven experimentation, iterative product releases, and validated learning. Lean
startup emphasizes customer feedback over intuition and flexibility over planning.
This methodology enables recovery from failures more often than traditional ways
of product development
Lean manufacturing
Lean manufacturing systems consider as waste the expenditure of resources for any
goal other than the creation of value for the end customer, and continually seek
ways to eliminate such waste. In particular, such systems focus on:
minimizing inventory throughout the assembly line,
using Kanban cards to signal only when the necessary inputs to production are
needed, and in so doing, reduce assembly waste (inventory) and increase
productivity,
identifying mistakes or imperfections during assembly as early as possible at
immediate quality control checkpoints to ensure that the least amount of time is
expended developing a faulty product,and
maintaining close connections with suppliers in order to understand their
customers' desires.
Lean manufacturing was later applied to software as lean software development.
Customer development
The lean startup methodology is based on the customer
development methodology.Steve, Blank pointed out the pitfalls of a narrow
emphasis on product development; instead he argued that startups should focus on
what he called "customer development", which emphasizes "learning about
customers and their problems as early in the development process as possible".
Blank's customer development methodology proposed four steps:
1. Customer discovery tests hypotheses about the nature of the problem,
interest in the product or service solution, and business viability.
2. Customer validation tests the business viability through customer purchases
and in the process creates a "sales road map", a proven and repeatable sales
process. Customer discovery and customer validation corroborate the
business model.
3. Customer creation executes the business plan by scaling through customer
acquisition, creating user demand and directing it toward the company's
sales channels.
4. Company building formalizes and standardizes company departments and
operations.
Principles:
Minimum viable product:
A minimum viable product (MVP) is the "version of a new product which allows a
team to collect the maximum amount of validated learning about customers with
the least effort" (similar to a pilot experiment). The goal of an MVP is to test
fundamental business hypotheses (or leap-of-faith assumptions) and to help
entrepreneurs begin the learning process as quickly as possible
As an example, Ries noted that Zappos founder Nick Swinmurn wanted to test the
hypothesis that customers were ready and willing to buy shoes online. Instead of
building a website and a large database of footwear, Swinmurn approached local
shoe stores, took pictures of their inventory, posted the pictures online, bought the
shoes from the stores at full price after he'd made a sale, and then shipped them
directly to customers. Swinmurn deduced that customer demand was present, and
Zappos would eventually grow into a billion dollar business based on the model of
selling shoes online.
Continuous deployment (only for software development)
Continuous deployment, similar to continuous delivery, is a process "whereby all
code that is written for an application is immediately deployed into production,"
which results in a reduction of cycle times. Ries stated that some of the companies
he's worked with deploy new code into production as often as 50 times a day. The
phrase was coined by Timothy Fitz, one of Ries's colleagues and an early engineer
at IMVU.
Split testing
A split or A/B test is an experiment in which "different versions of a product are
offered to customers at the same time.The goal of a split test is to observe
differences in behavior between the two groups and to measure the impact of each
version on an actionable metric.
A/B testing is sometimes incorrectly performed in serial fashion, where a group of
users one week may see one version of the product while the next week users see
another. This undermines the statistical validity of the results, since external events
may influence user behavior in one time period but not the other. For example, a
split test of two ice cream flavors performed in serial during the summer and winter
would see a marked decrease in demand during the winter where that decrease is
mostly related to the weather and not to the flavor offer.
Another way to incorrectly A/B test is to assign users to one or another A/B version
of the product using any non-random method.
Actionable metrics
Actionable metrics can lead to informed business decisions and subsequent
action. These are in contrast to vanity metrics—measurements that give "the
rosiest picture possible" but do not accurately reflect the key drivers of a business.
Vanity metrics for one company may be actionable metrics for another. For
example, a company specializing in creating web based dashboards for financial
markets might view the number of web page views[ per person as a vanity metric
as their revenue is not based on number of page views. However, an online
magazine with advertising would view web page views as a key metric as page
views are directly correlated to revenue.
A typical example of a vanity metric is "the number of new users gained per day".
While a high number of users gained per day seems beneficial to any company, if
the cost of acquiring each user through expensive advertising campaigns is
significantly higher than the revenue gained per user, then gaining more users
could quickly lead to bankruptcy.
Pivot
A pivot is a "structured course correction designed to test a new fundamental
hypothesis about the product, strategy, and engine of growth. A notable example of
a company employing the pivot is Groupon; when the company first started, it was
an online activism platform called The Point. After receiving almost no traction, the
founders opened a WordPress blog and launched their first coupon promotion for a
pizzeria located in their building lobby. Although they only received 20 redemptions,
the founders realized that their idea was significant, and had successfully
empowered people to coordinate group action. Three years later, Group on would
grow into a billion dollar business.
Innovation accounting:
This topic focuses on how entrepreneurs can maintain accountability and maximize
outcomes by measuring progress, planning milestones, and prioritizing. The topic
was later expanded upon to include three levels of innovation accounting related to
Build-Measure-Learn
The Build–Measure–Learn loop emphasizes speed as a critical ingredient to
customer development. A team or company's effectiveness is determined by its
ability to ideate, quickly build a minimum viable product of that idea, measure its
effectiveness in the market, and learn from that experiment. In other words, it is
a learning cycle of turning ideas into products, measuring customers' reactions and
behaviors against built products, and then deciding whether to persevere or pivot
the idea; this process repeats as many times as necessary. The process can also be
viewed as a test of hypotheses.
The phases of the loop are:
Ideas → Build → Product → Measure → Data → Learn.