continuous deployment @wehkamp

48
Continuous deployment @wehkamp a continuous improvement story Hylke de Jong Marco van de Bunt TestNet Najaarsevent 11 oktober, 2016

Upload: vuongtu

Post on 15-Feb-2017

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Continuous deployment @wehkamp

Continuous deployment @wehkampa continuous improvement

story

Hylke de JongMarco van de Bunt

TestNet Najaarsevent11 oktober, 2016

Page 2: Continuous deployment @wehkamp

Agenda

IntroductieVan monoliet naar

microservices Test strategie

Unit & Integration tests User scenario flow testsPerformance, load & stress

tests

Production trends & health check

Development pipeline Veranderende testrol

Page 3: Continuous deployment @wehkamp

Hylke de Jong Marco van de Bunt

Over ons

email: [email protected] email: [email protected]: @mvdbunt

Page 4: Continuous deployment @wehkamp

Wehkamp

1952 - opgericht door Herman Wehkamp

2006 - transitie naar online

2010 - alle sales door Digitale Kanalen Facts - 180.000 producten

- 1.850 verschillende merken- Grootste geautomatiseerde Ecommerce Warehouse in Europa (Zwolle)- Same Day Delivery- And much more...

Grootste online Department Store in NL

Innovatie is onderdeel van ons DNA

Digital Development bij Wehkamp

Ongeveer 80 FTE engineers

Agile Teams voor Frontend Ecosystem

Customer Facing Technology Stack - Innovatie, full stack development - DevOps/SRE - Microservices - Data Engineering - Open Source, Scala, Java, Akka, Kafka - And much more...

Technologie en Continuous Improvement

Over Wehkamp

Page 5: Continuous deployment @wehkamp

Een ambitieuze missie

Training, Leiding, GeduldMoed en durfJump!

(geen garantie op succes)

Page 6: Continuous deployment @wehkamp

Van monoliet naar microservice

Page 7: Continuous deployment @wehkamp

Van monoliet naar microservice

Page 8: Continuous deployment @wehkamp

http://www.reactivemanifesto.org/

REACTIVE

Page 9: Continuous deployment @wehkamp

Hoe gaan we dit testen?

Page 10: Continuous deployment @wehkamp

http://lisacrispin.com/

Page 11: Continuous deployment @wehkamp

Reactive testing quadrants

CHECK

BUSINESS

TECHNOLOGY

Functional test (BDD)

Performance test

User scenario flows

Unit test

Integration test

EXPLORE

Regression Load and stress test

Security test

Production trends

Healthcheck

Resilient test

Prototypes

Responsive

Elastic

A/B

Exploratory

Usability

Page 12: Continuous deployment @wehkamp

Unit en integration

Page 13: Continuous deployment @wehkamp

Unit en integration

Jasmine is een behavior-driven framework voor het testen van JavaScript

Mocha is een test framewerk voor het testen van JavaScript in Node.js

Page 14: Continuous deployment @wehkamp

Unit en integration

Page 15: Continuous deployment @wehkamp

Unit en integration

Microservices gemaakt met scala en akka

Bijbehorende testframeworks zijn beschikbaar

Unit testing services

Integration testing services

Page 16: Continuous deployment @wehkamp

Unit en integration

sbt testsbt it:test

Page 17: Continuous deployment @wehkamp

Unit en integration

Page 18: Continuous deployment @wehkamp

Unit en integration

Page 19: Continuous deployment @wehkamp

Unit en integration

Page 20: Continuous deployment @wehkamp

User scenario flows

Page 21: Continuous deployment @wehkamp

User scenario flows

Protractor is een end-to-end test framework voor AngularJS applicaties.

Protractor voert testen uit in de browser, doorloopt de testen zoals een gebruiker de applicatie en browser zou gebruiken.

Ook bruikbaar bij andere applicaties, zoals DotNet of React

Page 22: Continuous deployment @wehkamp

User scenario flows

Testen voor pagina’s en flows binnen 1 site (1 applicatie) opgenomen in de repo van die applicatie

Testen over meerdere site heen in aparte E2E repo

Gebruik Page Objects en Helpers

Hoe de testen klein, focus op een onderdeel

Page 23: Continuous deployment @wehkamp

User scenario flows

Page 24: Continuous deployment @wehkamp

User scenario flows

Page 25: Continuous deployment @wehkamp

User scenario flows

Testen draaien lokaal (tijdens development)

In Jenkins (tijdens deployment pipeline)

Opties:- Browserstack- Saucelabs- Eigen implementatie met docker

npm run devci_local_chrome:nl -- --suite basket-nl

Page 26: Continuous deployment @wehkamp

User scenario flows

Page 27: Continuous deployment @wehkamp

Performance load en stress

Page 28: Continuous deployment @wehkamp

Performance load en stress

Sitespeed.io is een open source tool voor het anlyseren van speed en performance van je website. Gebaseerd op best practices en metrics

Page 29: Continuous deployment @wehkamp

Performance load en stress

Page 30: Continuous deployment @wehkamp

Performance load en stress

Gatling.io is een open source load testing framework gebasseerd op Scala, Akka en Netty.

Doel is het analyseren en meten van performance van services

Page 31: Continuous deployment @wehkamp

Performance load en stress

Page 32: Continuous deployment @wehkamp

Performance load en stress

Page 33: Continuous deployment @wehkamp

Performance load en stress

Page 34: Continuous deployment @wehkamp

Performance load en stress

Page 35: Continuous deployment @wehkamp

Production trends en healthcheck

Page 36: Continuous deployment @wehkamp

Production trends en healthcheck

Page 37: Continuous deployment @wehkamp

Production trends en healthcheck

Page 38: Continuous deployment @wehkamp

Production trends en healthcheck

Page 39: Continuous deployment @wehkamp

https://www.wehkamplabs.com/blog/2016/06/02/docker-and-zombies/

Elastic, responsive, resilient

Page 40: Continuous deployment @wehkamp

https://www.cloudbees.com/blog/guide-cutting-edge-jenkins-and-continuous-delivery

DEVELOPMENT PIPELINE

● Continuous Integration

● Continuous Delivery

● Continuous Deployment (?)

Page 41: Continuous deployment @wehkamp

https://www.cloudbees.com/blog/guide-cutting-edge-jenkins-and-continuous-delivery

DEVELOPMENT PIPELINE

Page 42: Continuous deployment @wehkamp

DEVELOPMENT PIPELINE

Page 43: Continuous deployment @wehkamp

DEVELOPMENT PIPELINE

Page 44: Continuous deployment @wehkamp

DEVELOPMENT PIPELINE

Page 45: Continuous deployment @wehkamp

TOOL OVERVIEW

Page 46: Continuous deployment @wehkamp

De veranderende testrol

Testrol vervaagd

Test specialistisch ontwikkelen op het gebied van programmeren, automatiseren en tooling

Brede kennis van development- en beheerproces buiten testen om

Kansen!

Page 47: Continuous deployment @wehkamp

www.wehkamplabs.com

Page 48: Continuous deployment @wehkamp

www.trivento.nl