making sense of devops

25
Making Sense of DevOps Your Executive Roadmap to the New Era of Software Development ebook

Upload: others

Post on 27-Oct-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Making Sense of DevOps

Making Sense of DevOpsYour Executive Roadmap to the New Era of Software Development

ebook

Page 2: Making Sense of DevOps

2

Introduction

What is DevOps?

How DevOps Works

6 DevOps Best Practices

The Business Value of DevOps

How to Transition to DevOps

Draw Your Current Value Chain and Flow

Make Sense of the Key Metrics

Look Into a New Toolkit

How to Assess Your DevOps Performance

Moving Forward With DevOps

About Infopulse

3

4

5

8

14

16

17

18

19

21

24

25

Contents

Page 3: Making Sense of DevOps

3

Amazon could deploy new software to production every 11.6 seconds in 2011 1. Today, their deployment frequency is even higher and has nothing to do with the company’s size or budgets.

Amazon has been among the early adepts and eager supporters of the DevOps movement – the new reality of software development.

Like Ford’s assembly line propelled the manufacturing industry into the new era, DevOps culture is changing the speed, quality and agility of technological production.

1 Velocity 2011: Jon Jenkins, “Velocity Culture”

Page 4: Making Sense of DevOps

4

What is DevOps? DevOps is a set of practices that promote better collaboration and

higher automatization of the processes between operational and

development teams. Though, the practices can be extended to other

business units.

“Dev” is an abbreviation for developers, QA, Product and other teams

involved in shipping the product. “Ops” is a blanket term for operational

professionals – system engineers, administrators, release and network

engineers, security staff and other job titles.

DevOps essential practices are geared towards eliminating the “ping-pong”

between these two departments through establishing new communication

processes, fostering tighter collaboration, smoother integration and

automation of low-value processes. It’s a shift in mindset aimed at breaking

the “silo” between the two teams and merging them in one, effective unit that

can ship new products faster with fewer people involved and less hours spent.

• DevOps is a cultural philosophy that assumes new methods of collaboration between different departments.

• DevOps is a set of best practices that help teams build, test and deploy new software faster and with less bugs.

• DevOps assumes using new tools for automating zero-value business processes and eliminating ineffective, manual routines.

DevOps stimulates the adoption of new practices that are continuous in nature and enable flow, small batch size deliverables and continuous improvement to software development process and ultimately, the product itself.

Embracing DevOps means that your organization is ready to create an ongoing, cross-department conversation about strengthening the current business processes, introducing new practices and actively preaching increased collaboration, knowledge sharing and experimentation.

“DevOps is a culture, a movement, a philosophy”.

Page 5: Making Sense of DevOps

5

How DevOps Works

“Individuals and interactions over processes over tools. Working systems over comprehensive documentation. Customer and developer collaboration over contract negotiation. Responding to change over following a plan”.

DevOps Manifesto by Ernest Muelle

Learn More

Page 6: Making Sense of DevOps

6How DevOps Works

The DevOps movement is deeply rooted with two approaches –

Agile and Lean.

Originally, development teams were strictly responsible for

building the product only, while the “Ops” personnel was in charge

of dealing with “whatever will happen next”. Agile software

development practices were geared towards reducing this gap

and introduced an incremental approach to project planning.

Work became prioritized based on business and customer value.

Development teams were encouraged to closely collaborate with

the customers and other teams. Cross-functional teams became

in charge of working over a certain product feature over a fixed

period of time.

DevOps movement pushed agile practices one step further – and

extended the usage of Agile principles beyond “the coding” to the

entire delivery lifecycle.

Under the DevOps philosophy teams:

• embrace new approaches to automating low-value, slow and

manual processes whenever possible;

• aim to release early and often;

• have a set of specific KPIs and carefully measure the success of

each new change;

• operate under the principle of “Quality is not something you tack

on the end.”

The goal of DevOps is to increase the teams’ velocity, acceptance

and rapid response to change and a help them develop a razor-

sharp focus on the value generated by each action.

DevOps is based on the concept of a value stream. It represents

for all the steps required to create and deliver something of value

(feature, product) to the consumer.

Within traditional companies all the value streams are usually

fragmented into three phases:

• Strategy – ideation and creating a basic list of requirements for

the brainstormed features.

• Development – writing the code, testing and debugging new

add-ons.

• Delivery – scheduling the final release, gathering user feedback etc.

Different teams are held responsible for specific KPIs and tasks at

each stage. The project information is only exchanged partially and

is not fully integrated with the rest of the value stream. Developers,

operations and strategy teams use different tools and do not

always pass on all the required knowledge to the other teams.

DevOps assumes the switch to a unified value stream. This

means merging all the people, tools, processes and information

exchanges in a single “source of truth”. All staff involved in

delivery of the software should have seamless access to

information and insights required for decision making.

Page 7: Making Sense of DevOps

7

The creation of unified value streams assumes following the next three principles of DevOps:

The First Way facilitates a fast left-to-right flow of work from Development to Operations to the customer. All the work is visible, and broken into small-size tasks, performed in specific intervals.

The goal here is threefold:

• Eliminate the possibility of passing a known bug to another team (Ops).

• Constantly seek new ways to improve existing workflows and further eliminate frictions.

• Never allow local optimization (or problem) to grow into a global failure.

The Second Way encourages the creation of a constant feedback loop from right-to-left at all stages of the value stream.

The key outcomes here are as follows:

• Develop a better understanding of all customers and users (internal and external).

• Amplify the feedback loops, so that problems are detected and recovered from faster.

• Embed new knowledge where needed, so that it enables product owners to build a system where problems are discovered and fixed before a major failure occurs.

The Third Way assumes the creation of a high-trust culture, encouraging continuous experimentation and improvement of current best practices; a scientific approach to risk-taking, so that the teams learn both from successes and failures.

The positive outcomes of the Third Way are:

• A working environment that encourages teams to experiment and take risks, which in turn helps them learn faster compared to the competition and dominate the market.

• The effects of new knowledge are multiplied. Local discoveries can be easily transformed into global improvements.

• Anyone within the company can access and benefit from the cumulative experience of everyone else.

These three principles constitute the base of a mature DevOps culture and backed-up by the DevOps best practices described in the next chapter.

Three Principles Underpinning DevOps

Business Customer

Dev Ops

OpsDev

OpsDev

How DevOps Works

Source: https://dick1stark.com/2016/11/08/the-devops-handbook/

Page 8: Making Sense of DevOps

8

6 DevOps Best Practices

The principles mentioned in the previous sections should be backed by

respective practices, promoting faster software development; increased

code quality; active knowledge exchanges and collaboration.

DevOps is a culture and it must be continuously nurtured by introducing

respective best practices.

1. Continuous Delivery

Continuous delivery is a software development practice that enables

product owners to ship product changes at any stage without hampering

the product performance, quality or user experience.

All the new code changes are built, tested and prepared for a release

automatically to the production-like environment from system/

application configuration stored in the version control. Deployment

to production can occur manually or automatically depending on the

business needs.

Continuous delivery enables businesses to release new features; fix bugs

or make any server-side configuration changes in the background without

compromising the product’s performance.

Learn More

“DevOps is a tool-centric philosophy that supports a continuous delivery value chain.”

Page 9: Making Sense of DevOps

96 DevOps Best Practices

The goal of continuous delivery is to have the code available in a

deployable state at any given timeframe. The project itself may

be half-boiled, but the proposed new features are already vetted,

tested, debugged and ready for deployment whenever needed.

At Infopulse, the continuous delivery framework operates in the

following manner:

• Core tasks are broken down into small-size updates by the

developers. Originally made in version control, those updates

will be deployed to production-like environment once complete.

• After the new code is committed, the team receives instant

feedback from a series of automated test cases (acceptance

testing, performance testing, regression testing, security

testings etc) deployed by respective tools.

• If an automated test fails for some reason, the responsible

developer will manually look into the case and make fixes.

• Additional automated testing may be triggered if needed before

the final feature release.

The baseline principle of continuous delivery is that development

and testing are merged into one unified process. It is organically

integrated into the delivery workflow and speeds up the product

timeline while ensuring that quality standards are met.

Continuous delivery practice is often associated with continuous

deployment. The latter is a separate process that may (or may

not) be part of your workflow. Continuous deployment assumes

that every product change or update is deployed automatically to

production without any manual supervision from a DevOps engineer.

Continuous delivery practice does not incorporate automated

deployment. There is a technological capacity to deploy new

changes automatically, but the deployment can be scheduled

manually for respective business reasons.

Continuous Delivery vs. Continuous Deployment

Continuous Delivery Unit Test

Auto Auto Auto AutoManual

Platform Test Deliver to Staging Deploy to Production Post deploy testsApplication

Acceptance tests

Continuous Deployment Unit Test

Auto Auto Auto Auto Auto

Platform Test Deliver to Staging Deploy to Production Post deploy testsApplication

Acceptance tests

Source: https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff

Page 10: Making Sense of DevOps

106 DevOps Best Practices

Continuous integration is another optional practice of the continuous delivery framework. It assumes that all developers submit code to one central branch of the repository multiple times per day. The goal here is to maintain the most current version of the source code in one place so that each team member could review or pull from the latest code version to avoid any potential conflicts. Continuous integration reduces the time required to validate new updates; improves the software/code quality and helps locate and address bugs faster.

2. Microservices Architecture

A single application is no longer viewed as a monolith one. Microservices architecture practice breaks down the entire product into a set of small services and features. The design architecture is developed in a way that allows each service to run its own processes and interact with other services using lightweight mechanisms such as APIs (application programming interfaces).

The main idea is to decompose a large product into individual services that are tied to a single purpose. This way your product becomes more modular – each service can be understood, developed and tested independently without compromising the entire product. The overall architecture becomes resilient to erosion over time.

The key principles of microservices architecture are as follows:

• Each service is independently deployable; decentralized; built and released using automatic tools and processes.

• Services (or groups of services) are easy to replace or revoke if

needed.

• Services can be developed using different programming

languages, databases, software and hardware environments

depending on your current business needs.

• Services are grouped around certain use cases e.g. billing, front-

end, logistics etc.

A microservices-based architecture enables better agility and

allows businesses to scale their product effortlessly at a lower

cost and within a shorter time-frame. As part of the continuous

delivery framework, the microservice architecture allows to

deploy application changes by re-building and re-deploying only

one or a limited number of services.

3. Communication and Collaboration

DevOps culture bridges the divide between different teams

through increased collaboration, transparency and knowledge

exchange. The layering principle is that the same people who

develop an application should be involved in shipping and

running it.

Extensive usage of respective tools and automated delivery

processes already encourage tighter cooperation between the

two different entities (developers and operations). Merging

workflows and operations should not be the final point though.

Page 11: Making Sense of DevOps

11

DevOps culture is based on the pillars of sharing and active knowledge exchange. As the Third Way principle states – empower your teams with the right tools for continuous experimentation and lifelong learning. Strive to build an environment that maximizes knowledge sharing and encourages communication across different teams – developers, operations, marketing, sales, and even customer support. Every person in your organization should understand the overall business goals and align them with their project and task at hand.

Work towards creating and maintaining corporate wikis that would detail all product aspects and continuously communicate the current best practices, product values and project goals. Create documents that outline:

• Information Architecture: all user interfaces, wireframes, mockups and other UX materials.

• Design Specifications: brand colours, fonts, required dimensions, aesthetic factors and so on. Be as specific as you can.

• Product Description: key product features and requirements; overall product business logic and suggestions about the future features.

• Development Handbook includes information about all the key technology you are using, current architecture, quality assurance guidelines, key tools, overall software development lifecycle (SDLC).

If you are managing a distributed team or outsourcing part of your operations, leverage the next practices to boost knowledge exchange between in-house and remote personnel (see the diagram on the right).

Make it easy for everyone on the team to know what is happening at any given time.

How GSD Impacts Knowledge Sharing?

Global Softvare Development (GSD) Inhibitors

Relational Qualities to Promote E�ective Knowledge Sharing

Cultural Di�erence

Language Barriers

Safety

Fear to lose Knowledge

Need ofCollaborative Tools

Lack of Trustand Rapport

Temporal Distance

Lack of F2FInteraciton

Comm. MediaShortcomings

OrganizationalHierarchies

ContextualDi�erence

Lack of adequateKM System

Di�erent KnowledgeBackgrounds

Separation of Tasks(Information Silos)

How comfortableis it to Seek/Share

knowledge?

Engagement

Getting people actively participate

in knowledge Creation

Access

How to Access the knowledge su�cientlyand in Timely manner?

Knowledge

What to Share?Where to Find?

6 DevOps Best Practices

Source: https://malibabar.files.wordpress.com/2014/12/talkinbrazil-05august2014.pdf

Page 12: Making Sense of DevOps

12

4. Automated Infrastructure

Infrastructure as a code practice assumes that you have specific

scripts in place that can perform every step of infrastructure

creation including server propagation, OS installation,

configuration, and so on. Infrastructure is provisioned and

managed using code and with the help of version control and

continuous delivery techniques.

Infrastructure coordination should not be tied to a single machine

or cluster but can be copied and replicated for as many nodes

as needed. Different team members can alter and improve

the configurations through the development lifecycle using

standardized patterns.

Popular DevOps tools like Puppet and Chef can help you

orchestrate and fine-tune your setup by automatically generating

necessary scripts to support the Infrastructure as Code

workflows.

System administrators can further use code to automate

operating system and host configuration, standard operational

tasks and additional common processes. This reduces the number

of manual operations the staff has to perform, freeing their time

for more valuable tasks.

5. Chaos Engineering

The main idea of chaos engineering is that modern distributed

software applications must be prone to experiencing unexpected

turbulent conditions. Thus, such systems must be initially

designed to resist unexpected problem and weaknesses in

production environments.

Chaos engineering is based on four key principles that

development teams use for probing software system

weaknesses:

• Define a steady state – a certain measurable output of your

system that stands for normal behavior.

• Assume that this steady state will remain as it is both in the

control group and the experimental group.

• Add variables that will represent real-world events such as

server outages or crashes, hard drive malfunctioning, network

connection problems and so on.

• Attempt to disprove the initial hypothesis by searching for a

difference in steady state between the control group and the

experimental group.

Encourage your team to experiment with random failure of non-

critical services and system cases. The development team should

be tasked with creating fast automated responses for such cases,

gradually moving on from the non-critical services to the critical

services and a combo of different failures.

The goal of chaos engineering is simple – train your teams to build

architecture and systems that can automatically adapt to failures,

without hampering the core functionality of the software.

6 DevOps Best Practices

Page 13: Making Sense of DevOps

13

Netflix is identified as the pioneer of chaos engineering. The company started migrating their data centers to the cloud in 2008 and incorporated some degree of resiliency testing in production. Later, their in-house experiments grew into an open-source Chaos Monkey project – a tool that randomly selects groups of systems (services) and terminates one of the systems in that group. The “failure” is staged at controlled time and interval so that there is staff around to investigate the problem and the system performance.

By adding an element of failure to the mix, the Netflix team encouraged developers to create systems that could function autonomously in case of failure and create resilient design architecture from day one.

While chaos engineering is a trailblazing practice that allows creating robust systems, prone to many types of failures, the practice may not be suitable for organizations at early stages of DevOps adoption.

6. Transformational Leadership

DevOps fosters extensive organization-wide transformation that goes beyond the development and Ops teams. IT leadership will also need a major overhaul. By 2020, it is predicted that 50% of CIOs2 that have not transformed their capabilities will be removed from the digital leadership team.

Winning teams should be lead by engaged and transformational leaders – the ones capable to inspire and motivate others to do their best work through appealing to their core values and sense

of purpose. Transformational leaders should occupy both mid-level and senior positions to encourage wide-scale organizational change. Their main goal is to get their teams to identify with the organization/project they are working for and support the organization’s main business goals and objectives.

Other DevOps practices will fall flat in the long run without the active and constant support of the new leaders.

2 Gartner Predicts – IT Infrastructure & Operations.

6 DevOps Best Practices

Page 14: Making Sense of DevOps

14

The Business Value of DevOps

Increased frequency of deployments of our software/services

59%

58%

48%

45%

69%

34%

13%

23%

Improved quality and performance of our deployed applications

A reduction in time spent fixing and maintaining applications

Reduced time-to-market for our software/services

Increased collaboration between departments

A reduction in spending on development, testing, or operations

2018 2017

27%New software/services that would otherwise not be possible/explored

26%An increase in revenue

23%Increased numbers of customers using our software/services

Our software/services made available across more platforms

Fewer employees working on developing and deploying our software/services

38%

39%

30%

46%

39%

25%

12%

19%

19%

20%

18%

Benefits of DevOps

What benefits have you seen or do you anticipate seeing from implementing DevOps in your organization?

Note: Multiple responses allowed

Base: 128 respondents in 2018 and 237 in 2017 who have adopted or plan

to adopt DevOps principles

Learn More

Source: 2018 State of DevOps: Research Report by Interop ITX

Page 15: Making Sense of DevOps

15

DevOps enables companies to build more robust environments

for their products within a shorter time frame. High-performing

DevOps teams, when compared to low-performing peers or those

still to embrace the DevOps movement, manage to3:

• Deploy code 46 times more frequently

• Have 440 times faster lead time from commit to deploy

• Show 96 times faster recovery from downtime

• Have 5 times lower change failure rate (changes are 1/5 as likely

to fail).

The particular appeal of DevOps is that you no longer have to

trade speed (time-to-market; deployment frequency) for product

stability and vice versa. The DevOps framework assumes that

you gradually develop the capability to maintain both at a high

score by adopting continuous delivery and integration; shifting to

the microservices architecture, embracing an agile approach to

project management and experimenting with chaotic engineering.

DevOps comes with three specific groups of benefits for

businesses.

1. Technical Benefits:

• Less complex project management process.

• Faster problem resolution.

• Smoother and faster product life cycles with continuous delivery.

2. Cultural Benefits:

• Motivated, happier and more productive teams.

• Higher employee on the job engagement.

• Improved professional development opportunities and cross-

department knowledge exchange.

3. Business Benefits:

• Faster time-to-market for new products and features.

• More stable operating environment, resilient to failure.

• Improved cross-department collaboration and communication.

• More time to innovate and create new features for customers,

rather than focusing on maintenance and fixing known bugs.

The Business Value of DevOps

3 2017 State of DevOps Report by Puppet and Dora.

Page 16: Making Sense of DevOps

16

DevOps is not about solely adopting new tools for automating certain development and operational processes or applying “modern best practices” to patch the problematic areas. The key to success with DevOps is to embed its core principles in your company’s culture and relentlessly encourage their adoption and adherence by staff of all levels.

There’s no unified framework for “Doing DevOps The Right Way”, but rather a set of steps transitioning companies can take to facilitate the process.

Develop a Vision for Your DevOps Culture

To succeed, you need a clear business justification for embracing DevOps. The process will require a sit down with not just the development and operational teams you will want to merge, but with all business teams.

Take the time to understand the teams’ current needs, the common

struggles and pressing pain points that prevent them from operating at full

capacity. Optimization without a proper vector is useless. You will have to

define very specific objectives and measurements for success during your

vision development sessions.

The result of your sessions should be:

• Strong justification for implementing DevOps.

• The overall vision of how it will work for your company.

How to Transition to DevOps

Page 17: Making Sense of DevOps

17

Draw Your Current Value Chain and Flow

DevOps Сycle or The 6 Cs of DevOps

DevOps

CollaborativeCustomerFeedback

& Optimization

CollaborativeDevelopment

ContinuousTesting

ContinuousMonitoring

ContinuousRelease andDeployment

ContinuousBusinessPlanningEvery company has its internal drivers for creating certain value. It can be purely monetary reward,

social responsibility, industry leadership or any other positive outcome you are trying to achieve.

Each and every value is pinned to certain actions, performed by your staff and respective systems or tools. Investigate into these matters. Start with one business unit (the development team) or system (QA) and expand from there.

Look into how new features are currently developed, deployed, and then used by customers. Consider how you can make the entire process less wasteful – reduce zero-value processes, increase efficiency of individual actions and the cumulative team effort.

As a Product Owner, you should be asking the following questions:

1. What is our current process for this?

2. Why are we doing it this way?

3. How long does this action take on average?

4. What prevents you from doing it faster? What bottlenecks are you dealing with?

5. How long does it take to develop this feature and hand it to Ops?

Next, map existing processes and teams to the value chain and define the critical path towards your ultimate goals. See what obvious optimization routes are available. Repeat the same thought process for different teams and look for hidden and indirect opportunities for further optimization.

Source: https://dzone.com/articles/6-cs-of-devops-adoption

“Communications is a really big place to get started. Getting everyone educated. Developers need to be able to tell the ops team the big things that are coming. Ops will then be well aware that this is coming. Visibility is key here - much more visibility into what’s going on in a day to day basis”

Matt Bentle, Solutions Engineer at Docker

Page 18: Making Sense of DevOps

18

Establishing a set of key metrics is essential to have a clear understanding of your DevOps progress over time.

The baseline KPIs to track are as follows:

• Production failure rate: how often new software fails in production over a set period of time (6+ months).

• Average lead time: how long does it take to build, test, deliver and deploy a new requirement in production.

• Deployment speed: how long does it take to deploy a new product version to a particular environment (e.g. integration, staging, pre-production or product environment).

• Deployment frequency: how often can you deploy new releases to test, staging, pre-production and production environments?

• Mean time to recover: what is the average recovery time for an application after a failure?

• Mean time to production: how long does it take for a new code committed to a code repository to be deployed to production.

You may consider tracking other metrics, however, do not go after those that would look impressive on paper, but will not correspond with your value flows or business benefits.

Make Sense of the Key Metrics

Page 19: Making Sense of DevOps

19

Look Into a New Toolkit

Learn More

The tools you choose should support the value roadmap you have developed. They should complement your key processes, which in turn support your entire business systems, and match respective value flows.

Automation is the best solution for processes that are time-intensive, prone to error and inefficient at the moment. Your approach to automation should be standardized to ensure that all teams have a common frame of reference.

At a minimum, you should look into tools that will facilitate version control, build/deployment process, testing, change management and possibly Infrastructure as Code.

The ones we recommend are as follows:

• Code Management Tools: GitHub, Bitbucket, Gitlab.

• Build Tools: Gulp, Npm.

• Deployment Tools: Jenkins, Bamboo, Codeship.

• Testing Tools: Selenium, Appium, Sikuli, BrowserStack.

• Containers and Orchestration Tools: Docker, Kubernetes, Ansible, Chef, Puppet.

• Project Management Tools: Atlassian Jira, Confluence, CA Agile Central.

Page 20: Making Sense of DevOps

20Look Into a New Toolkit

DevOps Tools Ecosystem

Analysis Collaboration SCM CIRepo Mgmt Build Tools Functional Performance SV Deployment Config Mgmt Conteiners Cloud Release Monitoring UX BITest Data Mgmt

Capture& Tracking

01Plan

02Develop

03Test

04Release

05Operate

Source: https://www.blazemeter.com/blog/ultimate-devops-tools-ecosystem-tutorial-part-1

Page 21: Making Sense of DevOps

21

Whether you are just en route to adopting DevOps or have already incorporated certain practices, measuring DevOps performance is crucial to succeeding with the initiative in the long run.

As mentioned earlier, DevOps transformations when not underpinned by specific business drivers, can face a backlash from teams, who do not fully

share or understand the reason for transition. That is why everyone should be aware of the key success metrics and have a clear understanding of their role in achieving those.

How to Assess Your DevOps Performance

Learn More

Page 22: Making Sense of DevOps

22

Driver 1: Business Success

Products are valuable for the company when they generate

steady revenue, increase customer base, improve the brand

perception, reduce customer service costs and so on.

Each new piece of software pursues a certain goal and can

potentially influence either of the following KPIs:

• Average revenue per user.

• Overall recurring or incremental revenue.

• Customer lifetime value.

• Customer acquisition costs.

• Rate of customer churn.

• Conversion rates.

Knowing the exact goals of your product helps everyone on

your team to understand how their actions relate to the product

success. It also helps you prioritize certain features productions

over others and improve the overall decision-making process.

Driver 2: Customer Experience

Building a product aligned with your company’s business values

does not guarantee its success. If it does not delight the customer

and does not meet their expectations, that product is doomed to

failure.

Think Fitbit. In 2016, the company had to lay off 6% of their

workforce due to lower than anticipated revenues during the

holiday season. The new product line failed to meet the customer’s

expectations. The good news is, Fitbit was fast to recover from a

failure and paid more attention to customer experience KPIs.

For software products the metrics you should track are as follows:

• User growth rates.

• Average funnel/conversion rates.

• Amount of time spent interacting with a product/feature.

• Number of daily/weekly/monthly visits.

• Frequency of key transactions.

• Split test results.

• Overall customer satisfaction rating and direct feedback.

Driver 3: Product Performance

62% of users4 will immediately delete a mobile app if it froze,

crashed or displayed an error. And only 16% will give a glitching

app a second chance for recovery.

Web app users may have a slightly higher tolerance for

underperforming products, but will still quickly lose interest

in a brand that does not offer a seamless experience. Yet few

software products are completely prone to failures.

One of the pillars of DevOps is to detect system problems before they

manifest or even stage certain failures to test how your system will

react. Whether you are planning to adopt Chaos Engineering practices

or not, it’s still worth to measure the next performance KPIs:

• Average uptime.

• Database response time.

• % of transaction time spent in database

• Database query times.

• Resources utilization.

• App response time.

Driver 4: Production Speed

Faster time-to-market is one of the key benefits of DevOps. But the

overall speed of development, deployment, and response time to

problems should not come at cost of compromised product quality.

To create the right balance, pay attention to the following indicators:

• Mean time to resolution

• Lead time for changes

• Frequency of code releases

• Time elapsed between deployments

• Wait time at each step

How to Assess Your DevOps Performance

4Users Have Low Tolerance For Buggy Apps – Only 16% Will Try A Failing App More

Than Twice: TechCrunch

Page 23: Making Sense of DevOps

23How to Assess Your DevOps Performance

Delivery and deployment can be significantly accelerated by

adopting continuous delivery and utilizing automated testing

tools and cloud computing services. IaaS and PaaS platforms

eliminate the need to provision and manage servers, networks,

or storage.

Driver 5: Product Quality

DevOps bridges the gap between fast development and great

software. By improving core business processes, eliminating

redundant and ineffective practices and reducing the time spent

on reactive actions (bug fixing) versus proactive efforts (building,

testing and shipping), the practice enables companies to create

high-quality products within shorter timeframes.

To understand how you are performing at this department and

whether your current initiatives pay off, take a close look at the

following metrics:

• Deployment success rate

• App error rates.

• Incident severity

• Outstanding bugs

• Outstanding support tickets

• Frequency of broken builds

• Ratio of manual and automated tests

Certain quality issues may not emerge up until the production

stage, so it’s important that you compare all of these metrics pre/

post deploy to get a bird’s-eye view.

Aligning your DevOps transition with the following drivers should

give you an overall idea of your current state of DevOps maturity

and pinpoint new areas for further optimization. By constantly

assessing your DevOps performance, you find new ways to

prioritize improvements and quantify the performance results

with each new automation or process upgrade.

Page 24: Making Sense of DevOps

24

Moving Forward With DevOps

Transitioning to DevOps is a major mind- and operational shift. The practice revamps how your company develops and delivers software and the change involves multiple business units and technical infrastructure. Rapid change is not always welcome. To avoid facing a backlash, break the transition process into smaller steps.

Your teams should experience small victories as the process takes place, to stay motivated and feel comfortable about the upcoming bigger changes. Invest in your development and IT operations staff as they are the employees who will feel the most tension – their jobs are on the line. They are also the key people who will drive further DevOps adoption for your entire organization.

Everyone should understand why the transition is taking place, how they should respond to it and what new success metrics they should adhere to.

Infopulse team will be delighted to assist you in your journey towards DevOps adoption. Our professional team of consultants can help you develop a new operational framework from the ground or help with transitioning an ongoing project. Make the first step towards faster time to market, increased teams’ efficiency and better product quality by scheduling a discovery session with our experienced professionals.

Page 25: Making Sense of DevOps

25

Infopulse, part of Nordic IT group EVRY A/S, is an international vendor of

services in the areas of Software R&D, Application Management, Cloud & IT

Operations, and Cybersecurity to SMEs and Fortune 100 companies across the

globe. We practice a full ‘value chain’ approach – from simple maintenance

to product development; from basic research to complex consulting. We’ll be

delighted to assist you with your transition to DevOps and conduct a deep

assessment of your current business setup; pin down the key success drivers

and suggest a roadmap to action. We “speak the language” of the Industry,

having advanced knowledge in technology architecture, IT security, project

management, delivery methodologies, and other functional domains.

About InfopulseContact us:

Follow us:

www.infopulse.com

Max Evdokymov

Head of Application Management

+380 (44) 585-25-00

[email protected]