IF GOVERNMENT CAN DO IT... Gareth Rushgrove (@garethr) Government - - PowerPoint PPT Presentation

if government can do it
SMART_READER_LITE
LIVE PREVIEW

IF GOVERNMENT CAN DO IT... Gareth Rushgrove (@garethr) Government - - PowerPoint PPT Presentation

IF GOVERNMENT CAN DO IT... Gareth Rushgrove (@garethr) Government Digital Service If Government can do it... Technical change in large organisations Gareth Rushgrove GDS Who (Who is this person?) Gareth Rushgrove GDS Gareth Rushgrove


slide-1
SLIDE 1

IF GOVERNMENT CAN DO IT...

Gareth Rushgrove (@garethr)

Government Digital Service

slide-2
SLIDE 2

GDS Gareth Rushgrove

If Government can do it...

Technical change in large

  • rganisations
slide-3
SLIDE 3

Who

(Who is this person?)

GDS Gareth Rushgrove

slide-4
SLIDE 4

GDS Gareth Rushgrove

Gareth Rushgrove Technical Architect Government Digital Service @garethr

slide-5
SLIDE 5

@garethr

GDS Gareth Rushgrove

slide-6
SLIDE 6

GDS Gareth Rushgrove

slide-7
SLIDE 7

GDS Gareth Rushgrove

slide-8
SLIDE 8

GDS Gareth Rushgrove

Last code I wrote

slide-9
SLIDE 9

GDS Gareth Rushgrove

slide-10
SLIDE 10

GDS Gareth Rushgrove

slide-11
SLIDE 11

GDS Gareth Rushgrove

slide-12
SLIDE 12

Background

(A startup in Government)

GDS Gareth Rushgrove

slide-13
SLIDE 13

GDS Gareth Rushgrove

slide-14
SLIDE 14

GDS Gareth Rushgrove

October 2010

slide-15
SLIDE 15

GDS Gareth Rushgrove

June 2011

slide-16
SLIDE 16

GDS Gareth Rushgrove

I joined. Team of about 10 people

August 2011

slide-17
SLIDE 17

GDS Gareth Rushgrove

January 2012

slide-18
SLIDE 18

GDS

(Government Digital Service)

GDS Gareth Rushgrove

slide-19
SLIDE 19

GDS Gareth Rushgrove

slide-20
SLIDE 20

GDS Gareth Rushgrove

October 2012

slide-21
SLIDE 21

GDS Gareth Rushgrove

Tools for citizens

slide-22
SLIDE 22

GDS Gareth Rushgrove

Tools for internal users

slide-23
SLIDE 23

GDS Gareth Rushgrove

Award winning

slide-24
SLIDE 24

GDS Gareth Rushgrove

Organisation of about 250 people

October 2013

slide-25
SLIDE 25

GDS Gareth Rushgrove

slide-26
SLIDE 26

What

(What is this talk about again?)

GDS Gareth Rushgrove

slide-27
SLIDE 27

GDS Gareth Rushgrove

1

Adopting agile in a large organisation

slide-28
SLIDE 28

GDS Gareth Rushgrove

The importance of rapid releases

2

slide-29
SLIDE 29

GDS Gareth Rushgrove

Why auditors love infrastructure as code

3

slide-30
SLIDE 30

GDS Gareth Rushgrove

4

How being open makes everything better

slide-31
SLIDE 31

Work in an agile manner

(Scaling agile)

GDS Gareth Rushgrove

If government can

slide-32
SLIDE 32

GDS Gareth Rushgrove

slide-33
SLIDE 33

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/9120523574
slide-34
SLIDE 34

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/9104280608
slide-35
SLIDE 35

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/9109319242
slide-36
SLIDE 36

GDS Gareth Rushgrove

An example project

slide-37
SLIDE 37

GDS Gareth Rushgrove

From one team of about 14

slide-38
SLIDE 38

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Content designer Content designer Content designer Designer Developer Developer Developer
slide-39
SLIDE 39

GDS Gareth Rushgrove

To 140 people in 14 teams

slide-40
SLIDE 40

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer
slide-41
SLIDE 41

GDS Gareth Rushgrove

All in about a year

slide-42
SLIDE 42

GDS Gareth Rushgrove

Web operations team just another product team

slide-43
SLIDE 43

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Product owner Delivery manager Web operations Web operations Web operations Web operations Web operations Web operations Web operations
slide-44
SLIDE 44

GDS Gareth Rushgrove

With web operations people in other teams when required

slide-45
SLIDE 45

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Web operations Web operations
slide-46
SLIDE 46

GDS Gareth Rushgrove

And with developers also working on

  • perations tasks
slide-47
SLIDE 47

GDS Gareth Rushgrove

Someone in charge

slide-48
SLIDE 48

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Programme owner Programme owner
slide-49
SLIDE 49

GDS Gareth Rushgrove

Information assurance, legal, procurement, programme support

slide-50
SLIDE 50

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Programme support Programme support Programme support Programme support Programme support Programme support Programme support Programme suppo Programme support Programme support
slide-51
SLIDE 51

GDS Gareth Rushgrove

Governance

slide-52
SLIDE 52 Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Programme owner Board member Board member Board member Board member Board member Board member Board member Board member

GDS Gareth Rushgrove

Board member Board member Board member Board member Board member Board member Board member Board member
slide-53
SLIDE 53

GDS Gareth Rushgrove

To an organisation of 250 people, multiple programmes and a portfolio management team

slide-54
SLIDE 54

GDS Gareth Rushgrove

Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Programme owner Board member Board member Board member Board member Board member Board member Board member Board member Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Developer Content designer Developer Content designer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Business analyst Product owner Delivery manager Developer Developer Developer Developer Developer Product owner Delivery manager Designer Developer Content designer Content designer Content designer Content designer Business analyst Content designer Programme owner Programme support Programme support Programme support Programme support Programme support Board member Board member Board member Board member Board member Board member Board member Board member Content designer Content designer Developer Content designer Content designer Content designer Portfolio manager Portfolio manager Portfolio manager Portfolio board Portfolio board Portfolio board Portfolio board Portfolio board Portfolio board Portfolio board
slide-55
SLIDE 55

GDS Gareth Rushgrove

Now working out how to scale that across multiple organisations

slide-56
SLIDE 56

GDS Gareth Rushgrove

Scaling agile

slide-57
SLIDE 57

GDS Gareth Rushgrove

Things that worked

slide-58
SLIDE 58

GDS Gareth Rushgrove

Avoiding dependencies

slide-59
SLIDE 59

GDS Gareth Rushgrove

Understand interfaces

slide-60
SLIDE 60

GDS Gareth Rushgrove

People AND software

slide-61
SLIDE 61

GDS Gareth Rushgrove

Multi-disciplinary teams

slide-62
SLIDE 62

GDS Gareth Rushgrove

Many small services

slide-63
SLIDE 63

GDS Gareth Rushgrove

Ability to throw things away

slide-64
SLIDE 64

GDS Gareth Rushgrove

Trust

slide-65
SLIDE 65

Release quickly

(Change control is fun)

GDS Gareth Rushgrove

If government can

slide-66
SLIDE 66

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/9099796942
slide-67
SLIDE 67

GDS Gareth Rushgrove

slide-68
SLIDE 68

GDS Gareth Rushgrove

Average about 6 releases a day over first 6 months

slide-69
SLIDE 69

GDS Gareth Rushgrove

We changed less software on the day

  • f launch than

probably any day before or since

slide-70
SLIDE 70

GDS Gareth Rushgrove

One click deploy

slide-71
SLIDE 71

GDS Gareth Rushgrove

One place to deploy

slide-72
SLIDE 72

GDS Gareth Rushgrove

Zero click deploy for early parts of pipeline

slide-73
SLIDE 73

GDS Gareth Rushgrove

One click deploy with suitable processes and access controls

slide-74
SLIDE 74

GDS Gareth Rushgrove

Talk about operations

slide-75
SLIDE 75

GDS Gareth Rushgrove

  • 1. Transition planning and support
  • 2. Change management
  • 3. Asset and configuration management
  • 4. Release and deployment management
  • 5. Service validation and testing
  • 6. Change evaluation
  • 7. Knowledge management
slide-76
SLIDE 76

GDS Gareth Rushgrove

Share language

slide-77
SLIDE 77

GDS Gareth Rushgrove

Talk about risk

slide-78
SLIDE 78

GDS Gareth Rushgrove

slide-79
SLIDE 79

GDS Gareth Rushgrove

Regular releases reduce risk

slide-80
SLIDE 80

GDS Gareth Rushgrove

Because everyone understands practice

slide-81
SLIDE 81

Treat everything as code

(The importance of process)

GDS Gareth Rushgrove

If government can

slide-82
SLIDE 82

GDS Gareth Rushgrove

Configuration management

slide-83
SLIDE 83

GDS Gareth Rushgrove

slide-84
SLIDE 84

GDS Gareth Rushgrove

package { 'apache2': ensure => latest, } service { 'apache2': ensure => running, provider => upstart, require => Package['apache2'] }

Infrastructure as code

slide-85
SLIDE 85

class govuk::apps::calendars( $port = 3011 ) { govuk::app { 'calendars': app_type => 'rack', port => $port, health_check_path => ‘/bank-holidays’, } }

GDS Gareth Rushgrove

Higher level abstractions

slide-86
SLIDE 86

GDS Gareth Rushgrove

Infrastructure not just configuration

slide-87
SLIDE 87

{ "role": "client", "platform": "production", "class": "backend", "zone": "backend", "vm_name": "backend-1", "ip": "xx.x.x.x" }

GDS Gareth Rushgrove

Virtual machines

slide-88
SLIDE 88

require 'rubygems' require 'nat' nat do snat :interface => "Client Data", :original => { :ip => "10.0.0.0/xx" }, :translated => { :ip => "xx.xx.xx.xx" }, :desc => "Outbound internet traffic" dnat :interface => "Client Data", :original => { :ip => "xx.xx.xx.xx", :port => 22 }, :translated => { :ip => "10.0.0.xx", :port => 22 }, :desc => "jumpbox-1 SSH" dnat :interface => "Client Data", :original => { :ip => "xx.xx.xx.xx", :port => 80 },, :translated => { :ip => "10.0.0.xx", :port => 80 }, :desc => "jenkins, logging, monitoring HTTP"

GDS Gareth Rushgrove

Virtual networks

slide-89
SLIDE 89

require 'rubygems' require 'firewall' firewall do # internal rules rule "ssh access to jumpbox1" do source :ip => "Any" destination :ip => "xx.xx.xx.xx", :port => 22 end rule "http to backend applications" do source :ip => "Any" destination :ip => "xx.xx.xx.xx", :port => 80 end rule "https to backend applications" do

GDS Gareth Rushgrove

Virtual firewalls

slide-90
SLIDE 90

@normal Scenario: check quick answers load When I visit "/vat-rates" Then I should see "VAT rates" GDS Gareth Rushgrove

Smoke tests and monitoring

slide-91
SLIDE 91

@high Scenario: check quick answers load When I visit "/vat-rates" Then I should see "VAT rates" GDS Gareth Rushgrove

Change who responds to issue

slide-92
SLIDE 92

GDS Gareth Rushgrove

Reuse audited processes

slide-93
SLIDE 93

GDS Gareth Rushgrove

Code review, pairing, source control, release pipeline, access controls

slide-94
SLIDE 94

GDS Gareth Rushgrove

Avoiding spreadsheets as a source of truth

slide-95
SLIDE 95

GDS Gareth Rushgrove

Developers want visibility of deploys

slide-96
SLIDE 96

GDS Gareth Rushgrove

Organisations want auditability of deploys

slide-97
SLIDE 97

GDS Gareth Rushgrove

App showing deploys

slide-98
SLIDE 98

GDS Gareth Rushgrove

CMDB

slide-99
SLIDE 99

Work in the open

(The benefits of openness)

GDS Gareth Rushgrove

If government can

slide-100
SLIDE 100

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/9122642253
slide-101
SLIDE 101

GDS Gareth Rushgrove

Blogging

slide-102
SLIDE 102

GDS Gareth Rushgrove

slide-103
SLIDE 103

GDS Gareth Rushgrove

Coding in the open

slide-104
SLIDE 104

GDS Gareth Rushgrove

Publishing tools

slide-105
SLIDE 105

GDS Gareth Rushgrove

Frontend applications

slide-106
SLIDE 106

GDS Gareth Rushgrove

Developer environment

slide-107
SLIDE 107

GDS Gareth Rushgrove

Handy utilities

slide-108
SLIDE 108

GDS Gareth Rushgrove

Published content

slide-109
SLIDE 109

GDS Gareth Rushgrove

Testing in the open

slide-110
SLIDE 110

GDS Gareth Rushgrove

Project backlogs

slide-111
SLIDE 111

GDS Gareth Rushgrove

Performance data

slide-112
SLIDE 112

GDS Gareth Rushgrove

slide-113
SLIDE 113

GDS Gareth Rushgrove

slide-114
SLIDE 114

GDS Gareth Rushgrove

slide-115
SLIDE 115

GDS Gareth Rushgrove

slide-116
SLIDE 116

GDS Gareth Rushgrove

Openness inside your organisation

slide-117
SLIDE 117

GDS Gareth Rushgrove

http://www.flickr.com/photos/psd/8756580339

Lots of information on dashboards

slide-118
SLIDE 118

GDS Gareth Rushgrove

What did we get from being open?

slide-119
SLIDE 119

GDS Gareth Rushgrove

Good will

slide-120
SLIDE 120

GDS Gareth Rushgrove

Validation

slide-121
SLIDE 121

GDS Gareth Rushgrove

Contributions

slide-122
SLIDE 122

GDS Gareth Rushgrove

Hiring

slide-123
SLIDE 123

In Summary

(Just remember this)

GDS Gareth Rushgrove

slide-124
SLIDE 124

GDS Gareth Rushgrove

Devops is about the

  • rganisation
slide-125
SLIDE 125

GDS Gareth Rushgrove

The processes in an

  • rganisation are

based on what is possible

slide-126
SLIDE 126

GDS Gareth Rushgrove

What is possible is changing all the time

slide-127
SLIDE 127

Find out more

(Lots of reading for everyone)

GDS Gareth Rushgrove

slide-128
SLIDE 128

GDS Gareth Rushgrove

slide-129
SLIDE 129

GDS Gareth Rushgrove

Even contains a definition of devops

slide-130
SLIDE 130

Questions?

(and thanks for listening)

GDS Gareth Rushgrove

slide-131
SLIDE 131

GDS Gareth Rushgrove

Gareth Rushgrove Technical Architect Government Digital Service @garethr