building systems with integrity

136
Paul Downey Technical Architect Government Digital Service @psd

Upload: paul-downey

Post on 15-Jul-2015

339 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Building systems with integrity

Paul DowneyTechnical Architect Government Digital Service @psd

Page 2: Building systems with integrity

GDS@psd

Confidentiality Availability Integrity

Page 3: Building systems with integrity

Integrity of InformationMost of the public discussion regarding cyber threats has focused on the confidentiality and availability of information; cyber espionage undermines confidentiality, whereas denial-of-service operations and data deletion attacks undermine availability. In the future, however, we might also see more cyber operations that will change or manipulate electronic information in order to compromise its integrity (i.e. accuracy and reliability) instead of deleting it or disrupting access to it. Decision making by senior government officials (civilian and military), corporate executives, investors, or others will be impaired if they cannot trust theinformation they are receiving.

— Worldwide Threat Assessment of the US Intelligence Community, Senate Armed Services Committee, February 26, 2015

Page 4: Building systems with integrity

GDS@psd

Blood group

Page 5: Building systems with integrity

GDS@psd

“Integrity, i.e. accuracy and reliability”

Page 6: Building systems with integrity

GDS@psd

Molly Dishman & Martin Fowler on agile architecture:

Page 7: Building systems with integrity

GDS@psd

“Architecture is about things which are hard to change”

Page 8: Building systems with integrity

GDS@psd

“complexity comes from irreversibility”

Page 9: Building systems with integrity

GDS@psd

“remove things from the system which are hard to change”

Page 10: Building systems with integrity

It’s quite difficult to unboil an egg

Page 11: Building systems with integrity

GDS@psd

Integrity: things you want to be difficult to change break

Page 12: Building systems with integrity

GDS@psd

We need to talk about rotting …

Page 13: Building systems with integrity

memorandum mori

Page 14: Building systems with integrity

GDS@psd

Big data Open data Linked data Raw data

Page 15: Building systems with integrity

GDS@psd

Data proliferation (1977)

Page 16: Building systems with integrity

GDS@psd

Data ≈ stuff

Page 17: Building systems with integrity

GDS@psd

Sturgeon’s revelation (law)

Page 18: Building systems with integrity

GDS@psd

Data warehousing

Page 19: Building systems with integrity

GDS@psd

Software ≈ stuff you can easily change that does stuff to stuff

Page 20: Building systems with integrity

GDS@psd

Work out what’s needed

Page 21: Building systems with integrity

GDS@psd

1. Start with needs 2. Do less 3. Design with data 4. Do the hard work to make it simple 5. Iterate. Then iterate again. 6. This is for everyone 7. Understand context 8. Build things people can build on 9. Be consistent, not uniform 10. Make things open: it makes things better

Design Principles

Page 22: Building systems with integrity

Start with needs*

* user needs, not government needs

Page 23: Building systems with integrity
Page 24: Building systems with integrity
Page 25: Building systems with integrity

https://www.gov.uk/service-manual

Page 26: Building systems with integrity
Page 27: Building systems with integrity
Page 28: Building systems with integrity
Page 29: Building systems with integrity
Page 30: Building systems with integrity
Page 31: Building systems with integrity
Page 32: Building systems with integrity
Page 33: Building systems with integrity
Page 34: Building systems with integrity
Page 35: Building systems with integrity
Page 36: Building systems with integrity

36

Page 37: Building systems with integrity
Page 38: Building systems with integrity

GDS@psd

Registers: important lists of things

Page 39: Building systems with integrity

GDS@psd

Government has a lot of registers:

Page 40: Building systems with integrity

GDS@psd

companies, charities, trade unions, courts, schools, universities, hospitals, zoos, circuses, inspections, licences, certificates, births, marriages, deaths, electoral roll, insolvencies, bankruptcies, passports, animal passports, drivers, vehicles, land parcels, land ownership, land use, legal boundaries, awards, tax rates, benefits, livestock movements, flood risk, river levels, companies, fish caught, patents, trademarks, designs, non-native invasive plants, bank holidays, clock changes …

Page 41: Building systems with integrity

GDS@psd

things people need to be able to trust

Page 42: Building systems with integrity

GDS@psd

and government is the canonical official source

Page 43: Building systems with integrity
Page 44: Building systems with integrity
Page 45: Building systems with integrity

GDS@psd

“An alternative to scurrilous gossip & rumour”

Page 46: Building systems with integrity

GDS@psd

Integrity: being honest and having strong principles

Page 47: Building systems with integrity

GDS@psd

The systems we build should reflect our values

Page 48: Building systems with integrity

GDS@psd

“As Chief Registrar of Foo, I need to know the Foo system of record hasn’t been tampered with”

Page 49: Building systems with integrity

GDS@psd

IOW: Should be tamper proof

Page 50: Building systems with integrity

GDS@psd

https://www.gov.uk

Page 51: Building systems with integrity

https://www.gov.uk/ after-a-death

Page 52: Building systems with integrity

https://www.gov.uk/ info/after-a-death

Page 53: Building systems with integrity

Design with Data

Page 54: Building systems with integrity

gov.uk/performance

Page 55: Building systems with integrity

Psychic paper

Page 56: Building systems with integrity

GDS@psd

“As someone with an interest in Foo I need to know a Foo record came from the Foo Registry and it hasn’t been tampered with”

Page 57: Building systems with integrity

GDS@psd

IOW: provenance is important

Page 58: Building systems with integrity

A digital signature is …

I am me I agree!&

Page 59: Building systems with integrity
Page 60: Building systems with integrity
Page 61: Building systems with integrity

Simon Wardley http://blog.gardeviance.org/

Page 62: Building systems with integrity

http://blog.gardeviance.org/2013/03/basics-repeated-again.html

Page 63: Building systems with integrity

http://blog.gardeviance.org/2013/03/basics-repeated-again.html

Page 64: Building systems with integrity

GDS@psd

Choosing technology

Page 65: Building systems with integrity

GDS@psd

The main thing is you must be able to change your mind

Page 66: Building systems with integrity
Page 67: Building systems with integrity

GDS@psd

The Web is rotting

Page 68: Building systems with integrity
Page 69: Building systems with integrity

GDS@psd

The Web is links

Page 70: Building systems with integrity

GDS@psd

Link rot

Page 71: Building systems with integrity

GDS@psd

Url shortenersAbuseTransnational lawBlockingAdvertisingPrivacy and securityAdditional layer of complexity

Page 72: Building systems with integrity

GDS@psd

Purl — Persistent uniform resource locator

Page 73: Building systems with integrity

GDS@psd

http://

Page 74: Building systems with integrity
Page 75: Building systems with integrity

ourincrediblejourney.tumblr.com

Page 76: Building systems with integrity

https://adactio.com/journal/tags/preservation

Page 77: Building systems with integrity
Page 78: Building systems with integrity
Page 79: Building systems with integrity
Page 80: Building systems with integrity

It must be gov, yeah, yeah!

Page 81: Building systems with integrity

No link left behind!

Page 82: Building systems with integrity

Do less

Page 83: Building systems with integrity
Page 84: Building systems with integrity
Page 85: Building systems with integrity
Page 86: Building systems with integrity

Use the HTTP:

Page 87: Building systems with integrity
Page 88: Building systems with integrity

GDS@psd

Stuff rots

Page 89: Building systems with integrity

Writing law demands a certain level of commitment from goats, calves and sheep

Page 90: Building systems with integrity
Page 91: Building systems with integrity
Page 92: Building systems with integrity

GDS@psd

Horcruxes?

Page 93: Building systems with integrity

GDS@psd

Backups!

Page 94: Building systems with integrity

GDS@psd

Physical media

Page 95: Building systems with integrity

My precious!

Page 96: Building systems with integrity

GDS@psd

Robot tape libraries

Page 97: Building systems with integrity

GDS@psd

Computers rot and fail

Page 98: Building systems with integrity

GDS@psd

Bitrot

Page 99: Building systems with integrity

GDS@psd

Digital dark ages

Page 100: Building systems with integrity

GDS@psd

Digital obsolescence

Page 101: Building systems with integrity

GDS@psd

Digital dark ages

Page 102: Building systems with integrity

BBC Doomsday project

Page 103: Building systems with integrity

https://github.com/digital-preservation

Page 104: Building systems with integrity

GDS@psd

Rotten data

Page 105: Building systems with integrity
Page 106: Building systems with integrity
Page 107: Building systems with integrity

GDS@psd

Cruft?

Page 108: Building systems with integrity
Page 109: Building systems with integrity
Page 110: Building systems with integrity

GDS@psd

People inject entropy

Page 111: Building systems with integrity

“People stuff up, but if you really want to stuff up you need a computer”

– Anon

GDS@psd

Page 112: Building systems with integrity

“If you really want to stuff things up, add more people”

– (paraphrasing Fred Brooks)

GDS@psd

Page 113: Building systems with integrity

P.E.B.C.A.K

GDS@psd

Page 114: Building systems with integrity

GDS@psd

Can you turn it on and off again?

Page 115: Building systems with integrity

Autonomy Mastery Purpose

Page 116: Building systems with integrity
Page 117: Building systems with integrity

GDS@psd

Learn from your* mistakes

* collective noun

Page 118: Building systems with integrity

GDS@psd

“Anyone who’s worked with technology at any scale is familiar with failure. Failure cares not about the architecture designs you slave over, the code you write and review, or the alerts and metrics you meticulously pore through.”

— John Allspaw, Blameless Post Mortems and a Just Culture

Page 119: Building systems with integrity

GDS@psd

Do things that scare you, often

Page 120: Building systems with integrity
Page 121: Building systems with integrity

GDS

gdstechnology.blog.gov.uk/2015/02/06/running-a-game-day-for-gov-uk/

Page 122: Building systems with integrity

GDS@psd

Fight the entropy!

Page 123: Building systems with integrity

GDS@psd

Ship of Theseus

Page 124: Building systems with integrity

ISE Shrine– Clay Shirky, Here comes everybody

Page 125: Building systems with integrity

GDS@psd

Facts don’t rot!

Page 126: Building systems with integrity

GDS@psd

Architecture

Page 127: Building systems with integrity

Do the hard work to make it simple

Page 128: Building systems with integrity
Page 129: Building systems with integrity
Page 130: Building systems with integrity

Knocking down the Towers of SIAM

Page 131: Building systems with integrity

Register appliance

Page 132: Building systems with integrity

Certificate transparency

Page 133: Building systems with integrity

Merkle tree magic

Page 134: Building systems with integrity

redecentralize.org

Page 135: Building systems with integrity

Build in the context of your domain, organisation The Web

Page 136: Building systems with integrity

Paul DowneyTechnical Architect Government Digital Service @psd