Quality for 'cloud natives': what
changes when your systems are
complex and distributed?
Sarah Wells
Technical Director for Operations & Reliability, The Financial Times
@sarahjwells
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
@sarahjwells
“Experiment” for most organizations
really means “try”
Linda Rising
Experiments: the Good, the Bad and the Beautiful
Slide 5
Slide 5 text
@sarahjwells
How quickly can you spin up an
MVP?
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
@sarahjwells
We’re able to do this because we
adopted a cloud-native architecture
Slide 8
Slide 8 text
“microservices (n,pl): an efficient device
for transforming business problems
into distributed transaction problems”
@drsnooks
Slide 9
Slide 9 text
@sarahjwells
Distributed systems fail in new and
interesting ways
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
No content
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
No content
Slide 16
Slide 16 text
@sarahjwells
We need to change how we
approach quality
Slide 17
Slide 17 text
@sarahjwells
We need to test in production
Slide 18
Slide 18 text
@sarahjwells
Cloud native: an introduction
Testing in production
Optimising for fixing things fast
Slide 19
Slide 19 text
@sarahjwells
Cloud native: an introduction
Slide 20
Slide 20 text
@sarahjwells
What IS cloud native?
Slide 21
Slide 21 text
@sarahjwells
It’s definitely about “the cloud”
Slide 22
Slide 22 text
@sarahjwells
Cloud native means building things
to benefit from the cloud not just
run on it
Slide 23
Slide 23 text
Infrastructure as a service
Slide 24
Slide 24 text
Infrastructure as a service
Automation
Slide 25
Slide 25 text
Infrastructure as a service
Continuous Delivery
Automation
Slide 26
Slide 26 text
Infrastructure as a service
Microservices
Continuous Delivery
Automation
Slide 27
Slide 27 text
Infrastructure as a service
Microservices
Containers & Orchestration
Continuous Delivery
Automation
Slide 28
Slide 28 text
Infrastructure as a service
Microservices
Containers & Orchestration
Software as a Service
Continuous Delivery
Automation
@sarahjwells
Understand your steady state
Look at what you can change - minimise the blast radius
Work out what you expect to see happen
Run the experiment and see if you were right
Slide 98
Slide 98 text
@sarahjwells
Use the skills you already have
Slide 99
Slide 99 text
@sarahjwells
Good QAs understand the features
of the system
Slide 100
Slide 100 text
@sarahjwells
Chaos engineering uses the same
skills as exploratory testing - “hmm, I
wonder what will happen if I do this?”
Slide 101
Slide 101 text
@sarahjwells
Work on operational stuff too
Slide 102
Slide 102 text
@sarahjwells
Cloud native: an introduction
Testing in production
Optimising for fixing things fast
Slide 103
Slide 103 text
@sarahjwells
What worked before doesn’t work
so well for cloud native
Slide 104
Slide 104 text
@sarahjwells
Focus on delivering maximum value to
your users while minimising the times
when things are broken or unavailable
Slide 105
Slide 105 text
@sarahjwells
Understand where the QA mindset
has the most impact
Slide 106
Slide 106 text
@sarahjwells
Use synthetic monitoring
Use clever monitoring
Make sure logs are aggregated
With tracing of events
Practice things
Chaos engineering IS exploratory testing!