the 7 principles of devops and cloud applications

15
THE 7 PRINCIPLES OF DEVOPS AND CLOUD APPLICATIONS Gerardo A. Dada VP, Product Marketing & Strategy SolarWinds

Upload: solarwinds

Post on 15-Apr-2017

2.325 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: The 7 Principles of DevOps and Cloud Applications

THE 7 PRINCIPLES OF DEVOPS AND CLOUD APPLICATIONS

Gerardo A. DadaVP, Product Marketing & StrategySolarWinds

Page 2: The 7 Principles of DevOps and Cloud Applications

2

What is DevOps?

What can IT learn from DevOps?

How can I apply DevOps thinking to my current IT environment?

W H AT T H I S P R E S E N TAT I O N A I M S T O A N S W E R

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

Page 3: The 7 Principles of DevOps and Cloud Applications

3

WHAT IS DEVOPS?

There is no official definition of DevOps, there are many.

DevOps allows to respond faster to customers, fix things faster, produce with more quality. Quality includes performance, security and less bugs.

However, you don’t ‘do’ DevOps, it’s not a process, it is a business practice, an approach.

DevOps cannot be stealth, cannot be grassroots. It requires support from top to bottom, it changes the entire system, This is why DevOps starts with people and process first. If you don’t have culture, all automation attempts will be fruitless.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

A N D W H AT C A N W E L E A R N F R O M I T ?

Page 4: The 7 Principles of DevOps and Cloud Applications

4

DEFINING DEVOPS

“DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

It embraces the concepts of continuous delivery and continuous integration and requires a strong discipline around performance optimization, monitoring and automation.”

Let’s break this definition down into 7 principles

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

Page 5: The 7 Principles of DevOps and Cloud Applications

5

PRINCIPLE #1 END USER FOCUS

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Application and End-User Focus - Everyone on the team is focused on making the application run well and its impact to end. • Requires thinking about a system’s end-to-end processes, considering all the

steps a software change must take, from the client’s initial request until the deployment to production. This helps to avoid local optimizations and to bring down work silos

• Infrastructure is ephemeral, dynamic, and utilitarian. It serves only to make the application work.

• The metrics that matter are application metrics and end user experience.• Application metrics are connected to key business metrics. Software becomes

a driver of the business.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

I T ‘ S A L L A B O U T T H E A P P A N D E N D U S E R E X P E R I E N C E

Page 6: The 7 Principles of DevOps and Cloud Applications

6

PRINCIPLE #2 COLLABORATION

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Collaboration – Because goal is the end user, silos do not work. • If the application is down everyone has failed. • There is no virtualization department and storage engineer. There is

only one team: the one responsible for the app to work. • Not only are there no silos, teams must work together to understand

how the system works as a whole and how each element impacts performance

• This requires transparency, visibility, a consistent set of tools and teamwork. And it requires expertise across the stack.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

D E V E L O P, T E S T A N D R U N - A N I N T E G R AT E D P R O C E S S

Page 7: The 7 Principles of DevOps and Cloud Applications

7

PRINCIPLE #3 PERFORMANCE ORIENTATION

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Performance Orientation – Performance is a requirement and a discipline. • Uptime is not in question, is assumed. • Performance is measured, all the time, everywhere. • Everyone on the team understands performance, and the implications of

bad performance, from end-user experience to business impact.• There is a shared understanding of what performance metrics are important

and what are the performance thresholds and goals.• Bottlenecks and contentions are well understood.• The team understands there is a correlation between performance and cost.• Performance is managed and planned for, as the team plans for resources

and growth (usage and capacity).© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

P E R F O R M A N C E A S A D I S C I P L I N E

Page 8: The 7 Principles of DevOps and Cloud Applications

8

PRINCIPLE #4 DEVELOPMENT SPEED

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Speed –Accelerate time to market of new software. Deploy new software every day, multiple times.• Short, iterative processes allow teams to move faster. Break big problems into

smaller chunks.• Accelerate innovation and learning. Serve the business more effectively. Give

people what they ant, faster. From idea to production in hours.• Software that is not in production is useless. It is like inventory sitting in a

warehouse getting old.• Every development sprint produces quality code. Every change and every

release is tested, measured, pushed to production and measured all the time. The impact of changes is understood. Quality is an ongoing process.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

B U I L D FA S T E R . FA I L FA S T. L E A R N Q U I C K .

Page 9: The 7 Principles of DevOps and Cloud Applications

9

PRINCIPLE #5 SERVICE ORIENTATION

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Service orientation - Everything is a service: from application components to infrastructure. • Everything is programmable. Software controls everything. Infrastructure as

code.• Servers are no longer pets you care for and fix, they are cattle. If they get sick,

you shoot it and get a new one.• Infrastructure and new capabilities are one API call away.• Everything is flexible, can change quickly and is ready to scale.• No monolithic apps. Components are asynchronous. Systems are designed for

horizontal (and vertical) scalability. • Everything can fail, resiliency is built in. When something fails, it is replaced by a

new instance that takes the place of the failed one.• Things are broken on purpose to test for resiliency.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

L O O S E LY C O U P L E D S E R V I C E O R I E N T E D C O M P O N E N T S

Page 10: The 7 Principles of DevOps and Cloud Applications

10

PRINCIPLE #6 AUTOMATION & REPETITION

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Automation – Automate everything that can be automated. • There is a culture of continuous experimentation.• Repetition is the only way to achieve mastery. Architect things to be

repeatable. • Practice, practice, practice: from code deployments to scaling and failovers,• Automation enables speed and consistency and allows the team to focus on

what matters.• Infrastructure is controlled by software. Code, deployments, tests,

monitoring, alerts – everything is automated. • Continuous development and continuous integration aided by configuration

management tools like Chef, Puppet, Salt and Ansible.• Automate IT services for end-users: End user self-service. IT as a Service.

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

A U T O M AT E E V E RY T H I N G T H AT C A N B E A U T O M AT E D

Page 11: The 7 Principles of DevOps and Cloud Applications

11

PRINCIPLE #7 MONITOR EVERYTHING

DevOps is a software development practice where development and operation teams work together, taking the intelligence of how an application runs to inform and improve how the application is being built, in a rapid iterative process.

Monitor everything - Monitoring is a requirement and a discipline.• Monitoring is the enabler. Provides intelligence and gets all members of the

team on the same page.• DevOps dictates an amplification of feedback loops so that any problems are

quickly identified and corrected• If you can’t measure, you can’t improve• Visibility is critical for speed and collaboration. • Everything is tested. The impact of every change in known.• Dashboards show metrics that matter, not just what can be measured• “If it moves, measure it” …“If it’s not monitored, it doesn’t exist”

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

M O N I T O R I N G I S A N E N A B L E R A N D A D I S C I P L I N E

Page 12: The 7 Principles of DevOps and Cloud Applications

12

7 DEVOPS PRINCIPLE

1. Application and End-User Focus

2. Collaboration

3. Performance Orientation

4. Development Speed

5. Service orientation

6. Automation

7. Monitor everything

D E V O P S P R I N C I P L E S Y O U C A N E M B R A C E T O D AY

© 2015 SOLARWINDS WORLDWIDE, LLC.  ALL RIGHTS RESERVED.

Page 13: The 7 Principles of DevOps and Cloud Applications

13

THE ROLE OF OPERATIONS TEAMS

How are things working? How do I improve performance? How do I fix problems fast?

» Gather telemetry or metrics on the system/app» Use data to make decisions on capacity, infrastructure, & architecture» Know what the bottlenecks and dependencies are» Know when thresholds will be hit» Advice the business on cost/performance tradeoffs» Fix things when they break - quickly (incident management)

Identify the problem and its severity Find the root cause, what caused the problem, in what part of the stack Fix it

Page 14: The 7 Principles of DevOps and Cloud Applications

14

THE PERFECT DASHBOARD

How fast we are going?

page load time

How hard is the engine working?

throughput, CPU utilization

Anything broken?

alerts

How fast can we go?redline

How long can we go?threshold

Credit: David Lutz via slide share

Page 15: The 7 Principles of DevOps and Cloud Applications

15

• Turning data to insight – what does this mean?• The orange engine light is on, what does it mean? Do I need to stop?

• False alarms and alerts – relevance and criticality• The annoying ‘ding, ding, ding, ding…” when the car door is open

• Identifying causality – root cause• The car is sputtering. Is it the gas? A clogged fuel injector? Bad spark plugs?

• Different tools, different opinions – finger pointing• The tire pressure light is on, but my pressure gauge says it’s fine

• Complexity and scale• Managing hundreds or thousands or rapidly changing resources

• Managing growth and change • Most monitoring systems are a a Frankenstein of duct-taped components

MONITORING CHALLENGES

» COMPLAINTS ABOUT MONITORING