docker and continuous delivery - amsterdam 26-11-2015 - docker randstad meetup

34
Docker and Continuous Delivery How containers make achieving Continuous Delivery easier and why they are not enough to create a successful Continuous Delivery process Docker Randstad meetup, 26-11-2015 Amsterdam, KPN Pavel Chunyayev

Upload: pavel-chunyayev

Post on 15-Apr-2017

825 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Docker and Continuous Delivery

How containers make achieving Continuous Delivery easier and why they are not enough to create a successful Continuous Delivery process 

Docker Randstad meetup, 26-11-2015Amsterdam, KPNPavel Chunyayev

Page 2: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@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

Page 3: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Electronic Retail

DigitalMarketing

Traffic and Transport

Software Services

Page 4: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Customer satisfaction 2015

• 4th year great results in Outsourcing Performance study

• 2015: 100% customer recommendation scoreExcellent trust score

Page 5: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

About me• 11 years of IT experience• Lived and worked in Ukraine and Estonia • Moved a year ago to the Netherlands

• Learning Dutch• Love cycling

• Support me with Holandse 100

Page 6: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Continuous Delivery

Page 7: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Safely, rapidly and predictably deliver new features to production

Page 8: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Continuous Delivery

• Faster time to market

• How many deployments a day?

• Time between committing line of code and running in 

production

Page 9: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

It’s not only about speed

Page 10: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

It’s not only about speed• Some companies have different agenda• Some need pure speed and time to market• Some want controlled and predictable process• Some want to ensure that quality of their applications is of a certain level and complies with requirements

Page 11: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

It’s not only about speed• It's not just about automating deployments.• It’s not about executing pipeline over and over again

But:• Organization of the right process to support continuous feature delivery, improvements and learning.• Organization proper testing to be able to deliver at high speed.

Page 12: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Quality > Speed

Page 13: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Docker

Page 14: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Docker doesn’t solve a lot of issues

Page 15: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Docker solves exactly one and brilliantly

Page 16: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

Infrastructure

Page 17: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

New way to manage Infrastructure

Page 18: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

CDBuild • Test • Deploy

DockerBuild • Ship • Run

Page 19: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Continuous Delivery pipeline

Inception Plan Develop Integrate Test Release Operate

Integrate Deploy to test Test Deploy to 

staging Test Release

Page 20: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Business ideas are generated• Responsibility of product management / program management• Ideas need validation • Flow time is very important

• Docker has nothing to do with it

Inception Plan Develop Integrate Test Release Operate

Page 21: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Ideas are refined into epics and stories.• Requirements, test and acceptance criteria are created

Given that feature is available on the websiteWhen I open the website Then I’m immediately impressedAnd I’d like to spend all my money

• Docker has nothing to do with it

Inception Plan Develop Integrate Test Release Operate

Page 22: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Code is created along with tests and anything else that is required to deliver the feature to production.

• Developers need:• Production-like local environment• Quick to start• Repeatable and reproducible• Fast feedback

Inception Plan Develop Integrate Test Release Operate

Page 23: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• First CD stage with Docker• Running local environments has never been easy• Most of the popularity of Docker is thanks to developers• Most companies have started evaluating Docker here (some are even late for Vagrant)

• No mocking!

Inception Plan Develop Integrate Test Release Operate

Page 24: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Most people experience CD starting from Build/Integration stage• Continuous Integration is a fundamental practice• It’s common to advise against feature branches and commit directly to master• Still you can make feature branches work• Short lived• Constantly updated against master

Inception Plan Develop Integrate Test Release Operate

Page 25: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Docker is very helpful:• Build containers• Run CI in containers • Create self-build containers

• Some people go as far as completely get rid of CI:• Build and integrate containers• Scheduled as hooks automatically • Still not most companies want 

• Microservices are a lot easier with containers

Inception Plan Develop Integrate Test Release Operate

Page 26: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• You need to invest heavily in automated testing• Bear testing pyramid in mind

• Move tests to the left• Run all the tests all the time• Over and over again

• If you can’t do it, you have wrong tests!

Inception Plan Develop Integrate Test Release Operate

ME2E

ContractComponentIntegration

Unit

Page 27: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Docker environments for each kind of tests • Always fresh• Quick• Up-to-date• Immutable infrastructure!

• Docker can also help with testing infrastructure as well

Inception Plan Develop Integrate Test Release Operate

Page 28: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Inception Plan Develop Integrate Test Release Operate

Testing in production

Page 29: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Release != deployment

• Independently releasable microservices

• Blue-green, canary, rolling deployments

Inception Plan Develop Integrate Test Release Operate

Page 30: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Docker shines here• Easy and uniform deployment• Complex environments - better with additional tools

Inception Plan Develop Integrate Test Release Operate

Page 31: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• This is where money is generated• This is where ideas are validated

• Monitor business metrics• Focus on MTTD and MTTR

• Distributed systems are hard to operate

Inception Plan Develop Integrate Test Release Operate

Page 32: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

• Scaling is easy• Phoenix servers

• Monitoring of containers can be hell – new products are emerging

• Running distributed systems is hard, containers make it a bit easier. 

Inception Plan Develop Integrate Test Release Operate

Page 33: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

CDBuild • Test • Deploy

DockerBuild • Ship • Run

Page 34: Docker and Continuous Delivery - Amsterdam 26-11-2015 - Docker Randstad meetup

@PavelChunyayev

Takeaways• Docker doesn’t:• Solve quality for you• Create good product ideas• Improve your software development process

• Docker creates:• New ways to manage infrastructure• New ways to run applications in production

[email protected]

Any questions?