Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
840
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
600
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
オープンソースKeycloakのMCP認可サーバの仕様の対応状況 / 20251219 OpenID BizDay #18 LT Keycloak
oidfj
0
200
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
200
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
360
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
200
コールドスタンバイ構成でCDは可能か
hiramax
0
100
まだ間に合う! Agentic AI on AWSの現在地をやさしく一挙おさらい
minorun365
17
2.9k
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.3k
AI with TiDD
shiraji
1
310
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
480
ECS_EKS以外の選択肢_ROSA入門_.pdf
masakiokuda
0
100
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
430
さくらのクラウド開発ふりかえり2025
kazeburo
2
1.2k
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
67
Building AI with AI
inesmontani
PRO
1
580
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building Adaptive Systems
keathley
44
2.9k
Tell your own story through comics
letsgokoyo
0
770
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
So, you think you're a good person
axbom
PRO
0
1.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
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