How we built GOV.UK without breaking the web

A presentation at GitHub Satellite 2016 in May 2016 in Amsterdam, Netherlands by Jenny Duckett

Slide 1

Slide 1

Alex Muller and Jenny Duckett Developers, GOV.UK 
 Government Digital Service 
 @alexmuller, @jenny_duckett

Slide 2

Slide 2

How GOV.UK started The way we work on GOV.UK How we moved hundreds of organisations to GOV.UK

Slide 3

Slide 3

How GOV.UK started

Slide 4

Slide 4

GDS

Slide 5

Slide 5

GDS

Slide 6

Slide 6

GDS

Slide 7

Slide 7

GDS

Slide 8

Slide 8

GDS

Slide 9

Slide 9

GDS

Slide 10

Slide 10

The way we work on GOV.UK

Slide 11

Slide 11

GDS 10 Make things open: it makes things better

Slide 12

Slide 12

GDS

Slide 13

Slide 13

GDS

Slide 14

Slide 14

GDS

Slide 15

Slide 15

GDS

Slide 16

Slide 16

GDS Not everything is open source but almost everything is coding in the open

Slide 17

Slide 17

GDS

Slide 18

Slide 18

GDS We’re huge fans of version control

Slide 19

Slide 19

GDS -ssl_ciphers HIGH:!ADH:!kEDH;
+ssl_ciphers HIGH:!ADH:!kEDH:!aNULL;

Slide 20

Slide 20

GDS

Slide 21

Slide 21

GDS

Slide 22

Slide 22

GDS

Slide 23

Slide 23

GDS

Slide 24

Slide 24

GDS GitHub gives us great collaborative tools, but we value our repositories too

Slide 25

Slide 25

GDS

Slide 26

Slide 26

GDS GitHub, GitLab, Bitbucket, CodePlex, Perforce…

Slide 27

Slide 27

GDS We still build things on top of GitHub

Slide 28

Slide 28

GDS

Slide 29

Slide 29

GDS

Slide 30

Slide 30

GDS

Slide 31

Slide 31

GDS Be as open as possible Iterate your product …and your tools

Slide 32

Slide 32

How we build GOV.UK…

Slide 33

Slide 33

…without breaking the web

Slide 34

Slide 34

GDS https://www.flickr.com/photos/psd/8040082207/

Slide 35

Slide 35

GDS https://www.flickr.com/photos/psd/8741310890/

Slide 36

Slide 36

GDS We moved 312 government organisations onto GOV.UK

Slide 37

Slide 37

GDS Users shouldn’t have to understand the structure of government

Slide 38

Slide 38

GDS

Slide 39

Slide 39

GDS https://www.gov.uk/government/policies/afghanistan

Slide 40

Slide 40

GDS 1 Start with needs* * user needs not government needs

Slide 41

Slide 41

GDS http://www.cabinetoffice.gov.uk/newsroom/news_releases/2010/101015-structure-charts.aspx

Slide 42

Slide 42

GDS Why bother redirecting URLs from the old sites?

Slide 43

Slide 43

GDS

Slide 44

Slide 44

GDS https://www.citizensadvice.org.uk/work/problems-at-work/dealing-with-grievances-at-work/

Slide 45

Slide 45

GDS https://www.flickr.com/photos/psd/8026292387/

Slide 46

Slide 46

GDS https://www.flickr.com/photos/psd/8029199882/

Slide 47

Slide 47

GDS https://www.flickr.com/photos/psd/8035353087/

Slide 48

Slide 48

GDS Users don’t have a choice about interacting with government

Slide 49

Slide 49

GDS We built tools to handle 800 old websites across 1,500 domains

Slide 50

Slide 50

GDS

Slide 51

Slide 51

GDS

Slide 52

Slide 52

What we built first

Slide 53

Slide 53

GDS Redirector: the first attempt

Slide 54

Slide 54

GDS

really big CSVs

Slide 55

Slide 55

GDS A mapping defines a URL’s behaviour after it’s transitioned

Slide 56

Slide 56

GDS

Slide 57

Slide 57

GDS

Slide 58

Slide 58

GDS

Slide 59

Slide 59

GDS

Slide 60

Slide 60

GDS

Slide 61

Slide 61

GDS

Slide 62

Slide 62

GDS

Slide 63

Slide 63

GDS

Slide 64

Slide 64

GDS https://www.flickr.com/photos/psd/8593418070/

Slide 65

Slide 65

Mapping is not an exact science

Slide 66

Slide 66

GDS It’s not easy to find all the old URLs

Slide 67

Slide 67

GDS It’s not easy to decide where to redirect to

Slide 68

Slide 68

GDS 5 Iterate. Then iterate again.

Slide 69

Slide 69

What we built next

Slide 70

Slide 70

GDS

Slide 71

Slide 71

GDS

Slide 72

Slide 72

GDS

Slide 73

Slide 73

GDS

Slide 74

Slide 74

GDS

Slide 75

Slide 75

GDS Changes to mappings take effect immediately, without a deploy

Slide 76

Slide 76

GDS Applications scale better than nginx config

Slide 77

Slide 77

GDS Applications are easier to maintain for developers

Slide 78

Slide 78

What about government users?

Slide 79

Slide 79

GDS Departments can manage their own mappings

Slide 80

Slide 80

GDS

Slide 81

Slide 81

GDS

Slide 82

Slide 82

GDS https://insidegovuk.blog.gov.uk/2014/03/17/transition-technical-glossary/

Slide 83

Slide 83

GDS

Slide 84

Slide 84

GDS

Slide 85

Slide 85

GDS

Slide 86

Slide 86

GDS https://github.com/alphagov/transition-config/pull/1135

Slide 87

Slide 87

GDS 4 Do the hard work to make it simple

Slide 88

Slide 88

GDS We can show traffic data to users

Slide 89

Slide 89

GDS

Slide 90

Slide 90

GDS

Slide 91

Slide 91

GDS

Slide 92

Slide 92

GDS

Slide 93

Slide 93

GDS

Slide 94

Slide 94

GDS

Slide 95

Slide 95

GDS 3 Design with data

Slide 96

Slide 96

What do end users see?

Slide 97

Slide 97

GDS http://www.direct.gov.uk/en/governmentcitizensandrights/gettinglegaladvice/ gettinglegaladviceandlegalaid/index.htm

Slide 98

Slide 98

GDS https://www.gov.uk/legal-aid

Slide 99

Slide 99

GDS http://www.cabinetoffice.gov.uk/newsroom/news_releases/2010/101015-structure-charts.aspx

Slide 100

Slide 100

GDS http://www.cabinetoffice.gov.uk/newsroom/news_releases/2010/101015-structure-charts.aspx

Slide 101

Slide 101

GDS http://webarchive.nationalarchives.gov.uk/20101213114420/http://www.cabinetoffice.gov.uk/ newsroom/news_releases/2010/101015-structure-charts.aspx

Slide 102

Slide 102

GDS http://www.cabinetoffice.gov.uk/this-url-never-existed

Slide 103

Slide 103

What’s happened since?

Slide 104

Slide 104

GDS 802 sites 1,664 domains 495 government users 338 organisations 1,995,874 mappings 3 million requests per day

Slide 105

Slide 105

GDS

Slide 106

Slide 106

GDS https://www.gov.uk/design-principles

Slide 107

Slide 107

GDS github.com/alphagov

Slide 108

Slide 108

We’re hiring - come and talk to us! https://gds.blog.gov.uk/jobs GDS

Slide 109

Slide 109

Alex Muller and Jenny Duckett Developers, GOV.UK 
 Government Digital Service 
 @alexmuller, @jenny_duckett