testing in the era of microservices - codemotion meetup - amsterdam, 12-04-2016

Post on 13-Feb-2017

270 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Testing in the era of microservices

The role of testing in the microservices application lifecycleCodemotion meetup, 12-04-2016Container Solutions, Amsterdam

Pavel Chunyayev

@PavelChunyayev

Amsterdam

Levi9 HQAmsterdam – 2005

25 people

Novi Sad

SerbiaNovi Sad – 2005

320+ people

Zrenjanin

SerbiaZrenjanin– 2014

30+ people

Iasi

RomaniaIasi – 200780+ people

Kiev

UkraineKiev – 2008130+ people

@PavelChunyayev

Electronic Retail

DigitalMarketing

Traffic and Transport

Software Services

@PavelChunyayev

Customer satisfaction 2015

• 4th year great results in Outsourcing Performance study

• 2015: 100% customer recommendation scoreExcellent trust score

@PavelChunyayev

About me

• 12 years of IT experience• Lived and worked in Ukraine and Estonia • Moved a year and half ago to the Netherlands

• Love cycling• Learn Dutch

• Alpe d’HuZes - http://deelnemers.opgevenisgeenoptie.nl/levi9

@PavelChunyayev

The story we all know

Development Testing Acceptance Production

@PavelChunyayev

Continuous Delivery

Incept

• Business idea• Is needed

immediately• Should be validated

Plan

• Refine• Estimate• Prioritize

Develop

• Put into sprint• Develop in a branch• Conduct a code

review• Merge into master

Build

• Trigger pipeline• Build• Unit testing• Integration testing• Static code analysis

Test

• Contract testing• E2E testing• Security testing• Resilience testing

Release

• Zero-downtime• Canary testing• Rolling deployment• Blue / green

deployment

Operate

• Monitoring• Validation of the

idea• Money generation• Disposal

Quality > Speed

Keep the product releasableBuild quality in

@PavelChunyayev

Build quality in• Testing is not just presence or absence of defects• Test should not just raise the cost of maintenance • Stop thinking about functional testing only• Quality goal need to be established early in the development process• Clear understanding of quality requirements• Automated testing – part of Definition of Done• Move tests to the left• TDD

Build • Test • Release

@PavelChunyayev

Continuous Delivery

Incept

• Business idea• Is needed

immediately• Should be validated

Plan

• Refine• Estimate• Prioritize

Develop

• Put into sprint• Develop in a branch• Conduct a code

review• Merge into master

Build

• Trigger pipeline• Build• Unit testing• Integration testing• Static code analysis

Test

• Contract testing• E2E testing• Security testing• Resilience testing

Release

• Zero-downtime• Canary testing• Rolling deployment• Blue / green

deployment

Operate

• Monitoring• Validation of the

idea• Money generation• Disposal

@PavelChunyayev

Testing pyramid

Exec

ution

tim

e

Mor

e bu

sines

s fee

dbac

k

Mor

e de

velo

pmen

t fee

dbac

k

@PavelChunyayev

Pyramid vs microservice

@PavelChunyayev

Updating the contract

@PavelChunyayev

Updating the contract

@PavelChunyayev

Updating the contract

@PavelChunyayev

Updating the contract

@PavelChunyayev

Updating the contract

@PavelChunyayev

The top of the pyramid

@PavelChunyayev

Pyramid vs microservice

@PavelChunyayev

Continuous Delivery

Incept

• Business idea• Is needed

immediately• Should be validated

Plan

• Refine• Estimate• Prioritize

Develop

• Put into sprint• Develop in a branch• Conduct a code

review• Merge into master

Build

• Trigger pipeline• Build• Unit testing• Integration testing• Static code analysis

Test

• Contract testing• E2E testing• Security testing• Resilience testing

Release

• Zero-downtime• Canary testing• Rolling deployment• Blue / green

deployment

Operate

• Monitoring• Validation of the

idea• Money generation• Disposal

Keep the product releasableBuild quality in

@PavelChunyayev

Key takeaways• Update testing practices• Immutable infrastructure• Reproducible and repeatable testing• Build quality in• Improve continuously

Any questions?

pavel@levi9.com

top related