continuous deployment @ coolblue, talk @ leaseweb techsummit

Post on 07-Aug-2015

440 Views

Category:

Engineering

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

DEPLOYMENT.@ Coolblue.

PAUL.DevOp / Team lead

•One of the largest e-commerce companies in the Benelux

•>1k employees, 334 webshops, 7 physical stores and 2 warehouses

•All mission-critical software developed in-house

•100% growth every 20 months, so scalability matters

COOLBLUE.

DEPLOYING SOFTWARE.Delivering packaged high quality software on servers.

• +/- 15 deploys per day on web platform

• Single button deployment

• Developers do their own deployment

FACTS AND FIGURES.

LANGUAGE AGNOSTIC.Same principles apply.

THE ROAD AHEAD.From new feature to deployment.

UNIT TESTS.All code is guilty, until proven otherwise.

CODING STANDARDS.Rules may apply.

FORKS.Personal cutlery.

PULL REQUESTS.Share, review and discuss.

PULL REQUESTS.Small commits, small context.

TEAM CHECK.None of us is as smart as all of us.

QUALITY CONTROL.Check standards have been met.

BUILD SERVER.Construction completed.

TEAMCITY.Central point of inspection and deployment.

BUILD CHAINS.Sequence of builds with specific purpose.

BUILD SCRIPTS.Automate workflow.

BUILD STEP 1.Continuous inspection..

• Automated tests • Unit testing • Functional testing

• Static code analysers • Lint checkers • Code duplication checkers • Code sniffers • Code metrics

QUALITY ASSURANCE.

MERGE PULL REQUEST.Integrate into the main repository..

ACHIEVEMENT.Continuous integration.

BUILD STEP 2: PACKAGING.Not a box of chocolates..

• Close to the OS

• RPMs on package repository

• Installed/Updated via OS package manager • Updates triggered via puppet

LINUX.

• Control over file permissions & rights

• Clean uninstallation

• Package managers are simple and well-known

• Easily distributed

• No added complexity of third-party tools

RPMS ARE POWERFUL.

• Octopus Deploy • Web Services • Desktop applications

• Workflow: • Builds NuGet packages • Deploys NuGet packages using tentacles • Installs them

WINDOWS.

OCTOPUS DEPLOY.Pushing packages to servers.

BUILD STEP 3.Publish to test environment.

ACHIEVEMENT.Continuous delivery.

BUILD STEP 4: PUBLISH TO ACCEPT.Publish to accept environment..

BUILD STEP 5.Publish to production environment.

ACHIEVEMENT.Continuous deployment.

ACHIEVEMENT.Continuous deployment.

CONTINUOUS.delivery vs deployment

• Automated inspection

• Automated delivery • Except production

CONTINUOUS DELIVERY.

• Continuous delivery

• Automated deployment to production

• Automated post-deploy tests

CONTINUOUS DEPLOYMENT.

DEVELOP, TEST, DEPLOY, REPEAT.

Review & testWrite code

Commit & push

Open pull request

Build

Package

Staging

Production

Post-deploy tests

POST-DEPLOYTests

• Website still up?

• Working functionality?

CHECK FOR SUCCESS.

AUTOMATE.Post-deploy smoke test.

MONITORING.Monitor application state.

STATISTICS.Measure everything.

FUNCTIONAL TESTS.Automated regression testing..

APPROACHESautomated deployment

DEPLOY & REVERT.Revert in case of problems.

PRE-DEPLOYMENT TESTS.Run post-deploy test on acceptance environment.

CANARY DEPLOYMENT.Deploy to a cluster and do a live test.

DEVELOP, TEST, DEPLOY, REPEAT.

Review & testWrite code

Commit & push

Open pull request

Build

Package

Staging

Production

Post-deploy tests

Post-deploytests

ACHIEVEMENT.Continuous deployment.

PROBLEM / CHALLENGE.Reverting data/data structures..

FEEDBACK.Please.

WE HAVE A BEER FOR YOU.Drinks @ 17:45.

• p.deraaij@coolblue.nl

• @pderaaij

• http://slideshare.net/paulderaaij

• http://devblog.coolblue.nl/

• http://careersatcoolblue.com/

THANK YOU.

top related