Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Unavoidable Big Bang
Search
Gareth Rushgrove
July 11, 2013
Technology
4
860
The Unavoidable Big Bang
Talk about launching GOV.UK and working in a large organisation. Presented at RAMP in Budapest.
Gareth Rushgrove
July 11, 2013
Tweet
Share
More Decks by Gareth Rushgrove
See All by Gareth Rushgrove
GTM vs Open Source
garethr
0
830
Software Build of Materials For Cloud Native applications
garethr
1
410
Evolving vulnerabilities in CycloneDX
garethr
0
440
Configuration security is a developer problem
garethr
2
2.1k
Patterns for secure container base image management
garethr
1
2.1k
Testing configuration with Open Policy Agent
garethr
0
590
Building a Docker Image Packaging Pipeline Using GitHub Actions
garethr
5
3.8k
The perils of configuration security
garethr
1
250
Shifting Terraform security left
garethr
3
1.8k
Other Decks in Technology
See All in Technology
小さな判断で育つ、大きな意思決定力 / 20251204 Takahiro Kinjo
shift_evolve
PRO
1
570
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
250
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
180
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
710
Overture Maps Foundationの3年を振り返る
moritoru
0
150
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
1
240
21st ACRi Webinar - Univ of Tokyo Presentation Slide (Ayumi Ohno)
nao_sumikawa
0
120
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2k
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
420
5分で知るMicrosoft Ignite
taiponrock
PRO
0
130
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
120
著者と読み解くAIエージェント現場導入の勘所 Lancers TechBook#2
smiyawaki0820
12
5.8k
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Code Reviewing Like a Champion
maltzj
527
40k
Bash Introduction
62gerente
615
210k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
How STYLIGHT went responsive
nonsquared
100
5.9k
Six Lessons from altMBA
skipperchong
29
4.1k
Scaling GitHub
holman
464
140k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Transcript
GDS Gareth Rushgrove The Unavoidable Big Bang and life in
Government
Who (Who is this person?) GDS Gareth Rushgrove
GDS Gareth Rushgrove Gareth Rushgrove Technical Architect Government Digital Service
@garethr
GDS Gareth Rushgrove Agencies Startups Big companies Myself Worked for
GDS Gareth Rushgrove
GDS Gareth Rushgrove Last code I wrote
GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove
What (What will I get from this talk?) GDS Gareth
Rushgrove
GDS Gareth Rushgrove Reasons to avoid a big bang release
1
GDS Gareth Rushgrove How to make a big bang release
work if you have to 2
GDS Gareth Rushgrove How to work in a large organisation
3
GDS Gareth Rushgrove And a desire to work in the
public sector (maybe) 4
Background (Government and GOV.UK) GDS Gareth Rushgrove
GDS Gareth Rushgrove October 2010
GDS Gareth Rushgrove June 2011
GDS Gareth Rushgrove January 2012
GDS (Government Digital Service) GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove October 2012
GDS Gareth Rushgrove Tools as well as content
GDS Gareth Rushgrove Award winning
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/9099796942
By the numbers (The size of the problem) GDS Gareth
Rushgrove
38 GDS Gareth Rushgrove Weeks since launch
2 GDS Gareth Rushgrove Sites closed on day one
GDS Gareth Rushgrove 59 Sites closed since
222 GDS Gareth Rushgrove Subdomains closed
GDS Gareth Rushgrove 139 Million visits since launch
300 GDS Gareth Rushgrove Thousand redirects
GDS Gareth Rushgrove 10-100 Members of the team
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/8756580339
Don’t do this at home (Unless you have to) GDS
Gareth Rushgrove
GDS Gareth Rushgrove Find alternatives
GDS Gareth Rushgrove Start small?
GDS Gareth Rushgrove Replace one site at a time?
GDS Gareth Rushgrove Percentage of visitors?
GDS Gareth Rushgrove
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/9116635297
GDS Gareth Rushgrove Existing contracts with associated dates
GDS Gareth Rushgrove Public commitments
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/9120523574
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/9104280608
Do it in public (Running an alpha and beta) GDS
Gareth Rushgrove
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/9122642253
GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove Not just the service
GDS Gareth Rushgrove Blogging
GDS Gareth Rushgrove Code
GDS Gareth Rushgrove Publishing tools
GDS Gareth Rushgrove Frontend applications
GDS Gareth Rushgrove Developer environment
GDS Gareth Rushgrove Handy utilities
GDS Gareth Rushgrove Project backlogs
GDS Gareth Rushgrove Performance data
GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove But didn’t being open cause problems?
GDS Gareth Rushgrove No This slide stolen from @tomskitomski
Make change easy (Technology AND process) GDS Gareth Rushgrove
GDS Gareth Rushgrove One click deploy
GDS Gareth Rushgrove Single place to deploy
GDS Gareth Rushgrove Not just applications
GDS Gareth Rushgrove Configuration management
GDS Gareth Rushgrove
GDS Gareth Rushgrove package { 'apache2': ensure => latest, }
service { 'apache2': ensure => running, provider => upstart, require => Package['apache2'] }
class govuk::apps::calendars( $port = 3011 ) { govuk::app { 'calendars':
app_type => 'rack', port => $port, health_check_path => ‘/bank-holidays’, } } GDS Gareth Rushgrove Higher level constructs
GDS Gareth Rushgrove Infrastructure not just configuration
GDS Gareth Rushgrove Provisioning APIs
GDS Gareth Rushgrove Fog Libcloud VCloud AWS Used at different
times
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 Network in code
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 Firewalls in code
GDS Gareth Rushgrove Requires rolling your own code at times
GDS Gareth Rushgrove Developers want Visibility of deploys
GDS Gareth Rushgrove Organisation want Auditability of deploys
GDS Gareth Rushgrove App showing deploys
GDS Gareth Rushgrove Embrace process discussions
GDS Gareth Rushgrove Change control
GDS Gareth Rushgrove Risk management
GDS Gareth Rushgrove Share language
GDS Gareth Rushgrove Optimise only as far as needed
Make change small (Lots of small changes) GDS Gareth Rushgrove
GDS Gareth Rushgrove Change one thing at once
GDS Gareth Rushgrove http://www.flickr.com/photos/fatty/9158066939 We use a physical token
GDS Gareth Rushgrove
GDS Gareth Rushgrove Regular releases reduce risk
GDS Gareth Rushgrove Back to GOV.UK
GDS Gareth Rushgrove
GDS Gareth Rushgrove We changed less software on the day
of launch than probably any day before or since
GDS Gareth Rushgrove DNS?
GDS Gareth Rushgrove Content Delivery Network
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/8040082207
GDS Gareth Rushgrove Load testing
GDS Gareth Rushgrove http://www.flickr.com/photos/psd/8040667413 Replay traffic
GDS Gareth Rushgrove Defend yourself from load tests
http { proxy_intercept_errors on; limit_req_zone $binary_remote_addr zone=rat limit_conn_zone $binary_remote_addr zone=co
} Rate/connection limiting in nginx GDS Gareth Rushgrove
GDS Gareth Rushgrove Web application firewall
Embrace failures (but stop them affecting people) GDS Gareth Rushgrove
GDS Gareth Rushgrove Serve stale content
sub vcl_recv { if (req.backend.healthy) { set req.grace = 30s;
} else { set req.grace = 24h; } } sub vcl_fetch { set beresp.grace = 24h; } Grace mode in Varnish GDS Gareth Rushgrove
Except when you can’t GDS Gareth Rushgrove
GDS Gareth Rushgrove Partial page failures
GDS Gareth Rushgrove
GDS Gareth Rushgrove Making change easy makes fixing problems fast
GDS Gareth Rushgrove Critical issues fixed in hours or minutes
GDS Gareth Rushgrove Measure everything
GDS Gareth Rushgrove
GDS Gareth Rushgrove Long tail of failures
GDS Gareth Rushgrove Allow for investigation
GDS Gareth Rushgrove Make monitoring easy
@normal Scenario: check quick answers load When I visit "/vat-rates"
Then I should see "VAT rates" GDS Gareth Rushgrove Run as smoke tests and monitoring
@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
Inside Government (or any large organisation) GDS Gareth Rushgrove
GDS Gareth Rushgrove Involve technology colleagues
GDS Gareth Rushgrove Involve security and auditing colleagues
GDS Gareth Rushgrove Involve procurement colleagues
GDS Gareth Rushgrove (Procurement means rules for buying things)
GDS Gareth Rushgrove Demonstrate capability quickly
Conclusions (What about my project?) GDS Gareth Rushgrove
GDS Gareth Rushgrove Own your own problems 1
GDS Gareth Rushgrove Avoid hard problems when possible 2
GDS Gareth Rushgrove Make things open 3
GDS Gareth Rushgrove Work on business processes AND technology 4
Find out more (A public service announcement) GDS Gareth Rushgrove
GDS Gareth Rushgrove
GDS Gareth Rushgrove Government Service Design Manual
GDS Gareth Rushgrove Even contains a definition of devops
Questions? (and thanks for listening) GDS Gareth Rushgrove
GDS Gareth Rushgrove Gareth Rushgrove Technical Architect Government Digital Service
@garethr