Continuous Delivery - BBC Weather Watchers - Port80

45
CONTINUOUS DELIVERY WITH BBC WEATHER WATCHERS 12 WEEKS, 600 RELEASES AND THE ONE SHOW goo.gl/idX09I

Transcript of Continuous Delivery - BBC Weather Watchers - Port80

Page 1: Continuous Delivery - BBC Weather Watchers - Port80

CONTINUOUS DELIVERY WITH BBC WEATHER WATCHERS

12 WEEKS, 600 RELEASES AND THE ONE SHOW

goo.gl/idX09I

Page 2: Continuous Delivery - BBC Weather Watchers - Port80

TECH LEAD, PRINCIPAL DEVELOPER, BBC NEWS

James Cryer

Page 3: Continuous Delivery - BBC Weather Watchers - Port80

BBC WEATHER WATCHERS

Page 4: Continuous Delivery - BBC Weather Watchers - Port80
Page 5: Continuous Delivery - BBC Weather Watchers - Port80

PRODUCT OVERVIEW

▸ BBC Crowd Sourcing Weather Application

▸ Part of ‘Make it Digital’ 2015

▸ Allowing audiences to create and share their own Weather reports

▸ Easy to use for users with little digital experience

▸ Create a sense of community

Page 6: Continuous Delivery - BBC Weather Watchers - Port80

WHAT A GREAT IDEA, SAW IT ADVERTISED ON BBC 1 THIS MORNING AND LOGGED ON STRAIGHT AWAY.

Audience feedback

Page 7: Continuous Delivery - BBC Weather Watchers - Port80

PROJECT OVERVIEW

▸ Collaboration from several teams within the BBC

▸ Challenging timescales

▸ Technical challenges

▸ A fixed deadline

▸ Agile team brought together for the initial phase

Page 8: Continuous Delivery - BBC Weather Watchers - Port80

TEAM OVERVIEWPRODUCT OWNER

PROJECT MANGER

EDITOR DEVELOPERS TECHNICAL ARCHITECT

UX&D TESTER

Page 9: Continuous Delivery - BBC Weather Watchers - Port80

CHALLENGES

▸ Design and development in parallel

▸ Dependency on several other BBC services (e.g. BBC ID)

▸ Privacy and security Concerns

▸ Timescales (12 weeks development)

▸ Unmovable deadline

▸ Scalability

Page 10: Continuous Delivery - BBC Weather Watchers - Port80

BBC PIPELINE PROCESS

Page 11: Continuous Delivery - BBC Weather Watchers - Port80

BBC’S TRANSITION TO CONTINUOUS DELIVERY

▸ Started 4 years ago

▸ Pilot included teams such as iPlayer Transcoding and Travel

▸ Tools to enable teams to practise Continuous Delivery

▸ Aim to reduce 2 weeks releases to hourly releases

▸ Empowering teams

Page 12: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENTS YESTERDAY…

Page 13: Continuous Delivery - BBC Weather Watchers - Port80

CONTINUOUS DELIVERY

Page 14: Continuous Delivery - BBC Weather Watchers - Port80

CONTINUOUS DELIVERY IS A SOFTWARE DEVELOPMENT DISCIPLINE WHERE YOU BUILD SOFTWARE IN SUCH A WAY THAT THE SOFTWARE CAN BE RELEASED TO PRODUCTION AT ANY TIME.

Jez Humble

Page 15: Continuous Delivery - BBC Weather Watchers - Port80

AIMS

▸ Respond quickly to market or business change

▸ Quicker reaction to user feedback

▸ Reduced risks

Page 16: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT PIPELINE

Page 17: Continuous Delivery - BBC Weather Watchers - Port80

ANTI PATTERNS: MANUAL DEPLOYMENT

▸ Manual testing confirms software working as expected

▸ Releases take longer than a few minutes

▸ Releases often result in rollbacks

▸ Extensive documentation needed for process

Page 18: Continuous Delivery - BBC Weather Watchers - Port80

ANTI PATTERNS: PRODUCTION-LIKE ENVIRONMENTS

▸ Little or no interaction between operations and development team

▸ Release to staging environment is first time operation team interact with a release

▸ Lack of testing in production like environment until it is too late

Page 19: Continuous Delivery - BBC Weather Watchers - Port80

BENEFITS

▸ Empowered Teams

▸ Improved quality and reduced errors

▸ Lowering stress

▸ Deployment flexibility

Page 20: Continuous Delivery - BBC Weather Watchers - Port80

CONTINUOUS DELIVERY AND WEATHER WATCHERS

Page 21: Continuous Delivery - BBC Weather Watchers - Port80

TECHNICAL OVERVIEW

▸ Cloud based solution

▸ Core Java Library

▸ Dropwizard Web Apps

▸ Micro Service Architecture

Page 22: Continuous Delivery - BBC Weather Watchers - Port80

HIGH LEVEL DESIGN

Page 23: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT PIPELINE

Page 24: Continuous Delivery - BBC Weather Watchers - Port80

CONFIGURATION MANAGEMENT

▸ Github

▸ Internal Tooling

▸ Configuration per environment

▸ RPMs and NPM

Page 25: Continuous Delivery - BBC Weather Watchers - Port80

CONFIGURATION

Page 26: Continuous Delivery - BBC Weather Watchers - Port80

CONTINOUS INTEGRATION

▸ Dedicated Jenkins CI server

▸ Unit tests on PR raised

▸ Grunt build tool

▸ Linting

▸ Automated deployment to integration environment

Page 27: Continuous Delivery - BBC Weather Watchers - Port80

CI

Page 28: Continuous Delivery - BBC Weather Watchers - Port80

TESTING

▸ Unit testing

▸ Integration testing

▸ Exploratory testing

▸ Non-functional testing

▸ Testers decide when to promote to next stage of the pipeline

Page 29: Continuous Delivery - BBC Weather Watchers - Port80

BUILD TOOLS

▸ Maven

▸ Grunt

▸ rpmbuild

▸ mock

Page 30: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT

▸ Amazon Web Services

▸ EC2 - AutoScaling Groups

▸ DynamoDB

▸ CloudFormations

▸ Lambda

▸ Centos 6

▸ Bake Scripts

Page 31: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT

Page 32: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT

Page 33: Continuous Delivery - BBC Weather Watchers - Port80

RETROSPECTIVE

Page 34: Continuous Delivery - BBC Weather Watchers - Port80

THE RESULTS…

Page 35: Continuous Delivery - BBC Weather Watchers - Port80

THE ONE SHOW

Page 36: Continuous Delivery - BBC Weather Watchers - Port80

THINGS THAT WORKED WELL…

▸ Automated tests before merging to master

▸ Automated deployments to integration

▸ Automated configuration of production environments

▸ Scalable solution

Page 37: Continuous Delivery - BBC Weather Watchers - Port80

THINGS THAT DIDN’T WORK SO WELL…

▸ Movement away from Micro Service design

▸ Skilling the team

▸ Lack of visibility of production environment

Page 38: Continuous Delivery - BBC Weather Watchers - Port80

BEYOND BBC TOOLS

Page 39: Continuous Delivery - BBC Weather Watchers - Port80

48% PEOPLE THINK IT WILL BE STANDARD WHEN ASKED “IS CONTINUOUS DELIVERY BECOMING A UNIVERSAL STANDARD?

SauceLabs - 2015 Guide to Continuous Delivery

Page 40: Continuous Delivery - BBC Weather Watchers - Port80

CONFIGURATION MANAGEMENT

▸ Puppet

▸ Chef

▸ Ansible

Page 41: Continuous Delivery - BBC Weather Watchers - Port80

CONTINOUS INTEGRATION

▸ CloudBee

▸ CircleCI

▸ TravisCI

▸ AppVeyor

Page 42: Continuous Delivery - BBC Weather Watchers - Port80

TESTING

▸ BrowserStack

▸ AWS Device Farm

▸ SauceLabs

▸ Xamarin Test Cloud

▸ Unit / Integration Test Frameworks?

Page 43: Continuous Delivery - BBC Weather Watchers - Port80

NON-FUNCTIONAL TESTING

▸ WebPageTest

▸ SSLLabs

▸ Google PageSpeed Insights

▸ Google Accessibility Developer Tools

▸ Gatling

▸ JMeter

Page 44: Continuous Delivery - BBC Weather Watchers - Port80

BUILD TOOLS

▸ ANT

▸ Maven

▸ Gulp

▸ Grunt

▸ Gradle

Page 45: Continuous Delivery - BBC Weather Watchers - Port80

DEPLOYMENT

▸ AWS CodeDeploy

▸ CodeShip

▸ GO

▸ Terraform

▸ Ansible

▸ OpenShift