Legacy @chadfowler

Systems Euthanizer

! !

“legacy"

vonnegut

architect

painter

successful

challenged

failed

For business software that’s deployed, the average life expectancy is five years.*

(I made this up)

OH SHIT!

Nobody remember will work your when

die

you

How do you CREATE Legacy software?

Fear, stasis, difficult to change

negative bias

but also:

http://37signals.com/svn/archives2/predicting_06_enterprise_is_the_new_legacy.php

“Careful. “Legacy” isn’t a bad word. “Legacy” usually means tried, true, and of enough value that it lasted long enough to be old and outdated. To mock “Legacy” is to look at the successes of the past and to declare that they aren’t to be revered or respected. Most of what runs our economies is “Legacy”. In the future, I hope that the software I’m creating now was highly regarded enough that it’s still around and



being referred to as “Legacy”.

it wasn’t :(

How do you create systems that survive?

Step 1: Has to be born

http://tinyurl.com/codealive

UR SOFTWARE IS ALIVE!!!!!

It all comes back to one thing: code survives by providing value and by being difficult to replace.

Value > Difficulty

The primordial soup is chunky with SQL, ant scripts, and old servlet carcasses.  Time goes on, and complexity builds.

http://tinyurl.com/ulsgabriel

richard p. gabriel DesignI Beyond Human Abilities In this presentation talk about trillions of lines of code in order to emphasize a scale way beyond what we

think of as remotely feasible today. This is an exaggeration because Grady Booch has estimated that collectively, humankind has produced a total of about a trillion lines of code since programming as we know it began in

1945

http://tinyurl.com/ulsgabriel

richard p. gabriel Design Beyond Human Abilities Biological

systems are very much larger than anything (coherent)

that people have built.

How do we create systems that outlast us?

homeostasis

brain liver

kidney Metabolize

toxic

substances Blood water level,

re-absorption of substances into blood,

excretion

“An inability to maintain homeostasis may lead to death or a disease, a condition known as homeostatic imbalance.”

You are dying right now! 50 trillion cells in your body

3 million die per second * this is a guess

emacs “UNIX” BSD C-language toolchain grep Apache X-Windows System make

Small components

Systems

http://www.flickr.com/photos/joeshlabotnik/4991688551/sizes/o/in/photostream/

What is a cell?

What is a system?

When do you build a system vs. a cell?

!

Are you building the right one now?

tiny components

Code is “this big”

Kill and replace cells regularly forces you to work with small components

“When a cell is not healthy, an outside

cell that’s part of the immune system can command the cell to destroy itself without spreading toxins.”

Nodes are Disposable

Immutable Deployments

Never Upgrade Software on an Existing Node

D

Deploying

Simple Interfaces UNIX pipes

Bull RPC

Heterogenous By Default

Assume Failure

MTBF vs MTTR

Monitor Everything !

Favor measurement over testing

Experience the Worst Case Scenario so You Don’t Have to Fear It !

Homeostasis

Services own and encapsulate data

tiny data

hardware limitations

sorry :( i don’t know how to do it

E R O

O N

M

"By believing passionately in something that does not yet exist, we create it. The nonexistent is whatever we have not sufficiently desired." - Nikos Kazantzakis

chadfowler Systems Euthanizer - GitHub

Code is “this big”. Page 42. Kill and replace cells regularly ... Services own and encapsulate data. Page 56. tiny data. Page 57. hardware limitations. Page 58 ...

34MB Sizes 2 Downloads 190 Views

Recommend Documents

Operating Systems Homework #3 - GitHub
May 14, 2015 - (Integer) Number indicating scheduling algorithm. 27 int policy;. 28. // Enum values for policy. 29 const short FCFS=0, SJF=1, PRIOR=2, RR=3;.

Recommender Systems Chaitanya Devaguptapu - GitHub
The review data ( “train.json.gz” ) is read into the form of list in python . This list .... Benchmark accuracy is 0.638, because when we considered the baseline popularity ..... http://cseweb.ucsd.edu/~jmcauley/cse190/files/assignment1.pdf.

Operating Systems Homework #2 - GitHub
May 7, 2015 - #include ... unsigned int tick () { // get current time (msec) ... Repeat think-hungry-eating cycle during given execution time in secs.

Exploitation on ARM-based Systems - Troopers18 - GitHub
Mar 12, 2018 - Sascha Schirra. Ralf Schaefer. • Independent Security. Consultant. • Reverse engineering. • Exploit development. • Mobile application security. • Embedded systems. • Twitter: @s4sh_s. • Security Analyst ...... Ask the Ker

Course: Introduction to Intelligent Transportation Systems - GitHub
... Introduction to Intelligent Transportation Systems. University of Tartu, Institute of Computer Science. Project: Automatic Plate Number. Recognition (APNR).

Development Process of Distributed Embedded Systems ... - GitHub
Overture Technical Report Series. No. TR-006. September ... Month. Year Version Version of Overture.exe. April. 2010. 0.2. May. 2010 1. 0.2. February. 2011 2 .... 3.6.1 Introducing the BaseThread and TimeStamp Classes . . . . . . . . . . . . 69.

in All Archiving Compression Conversion File Name Systems ... - GitHub
5 hours ago. Data-UUID-MT-0.002. Fast random UUID generator … 5 hours ago math-image-67. Draw some mathematical ima… 6 hours ago. Math-PlanePath-40. Mathematical paths through th… 6 hours ago. Business-CyberSource-v0.1.1-TRIAL. Business::CyberS

Network Security on safety-critical systems: a case study ... - GitHub
SFD | Start-of-Frame Delimiter, 1 octet of 0xd5. DA / SA | MAC Destination Address / MAC Source Address ..... 11:56:57.340515 00:00:00:00:00:01 > 00:1f:16:37:b1:3d, ethertype IPv4. (0x0800), length 79: (tos 0x0, ttl 64, id 0, offset 0, flags ..... ht

Pheme: A real-time user interface for distributed systems - GitHub
Jun 1, 2013 - standalone web application that is straightforward to use for both ..... In the Develop section we delve into how Pheme works internally.

Conceptual modeling in Systems Biology: before math - GitHub
Have seman=cs that are sufficiently well defined that software tools can convert graphical models into mathema=cal formulas for analysis and simula=on; and.

Java and Scala's Type Systems Are Unsound [pdf] - GitHub
1. Introduction. In 2004, Java 5 introduced generics, i.e. parametric polymor- phism, to the Java ... 12 years ago, both languages were unsound; the examples we will present were ... Classes and interfaces can be specified to have type pa- rameters a

GitHub
domain = meq.domain(10,20,0,10); cells = meq.cells(domain,num_freq=200, num_time=100); ...... This is now contaminator-free. – Observe the ghosts. Optional ...

GitHub
data can only be “corrected” for a single point on the sky. ... sufficient to predict it at the phase center (shifting ... errors (well this is actually good news, isn't it?)

Torsten - GitHub
Metrum Research Group has developed a prototype Pharmacokinetic/Pharmacodynamic (PKPD) model library for use in Stan 2.12. ... Torsten uses a development version of Stan, that follows the 2.12 release, in order to implement the matrix exponential fun

Untitled - GitHub
The next section reviews some approaches adopted for this problem, in astronomy and in computer vision gener- ... cussed below), we would question the sensitivity of a. Delaunay triangulation alone for capturing the .... computation to be improved fr

ECf000172411 - GitHub
Robert. Spec Sr Trading Supt. ENA West Power Fundamental Analysis. Timothy A Heizenrader. 1400 Smith St, Houston, Tx. Yes. Yes. Arnold. John. VP Trading.

Untitled - GitHub
Iwip a man in the middle implementation. TOR. Andrea Marcelli prof. Fulvio Risso. 1859. Page 3. from packets. PEX. CethernetDipo topo data. Private. Execution. Environment to the awareness of a connection. FROG develpment. Cethernet DipD tcpD data. P

BOOM - GitHub
Dec 4, 2016 - 3.2.3 Managing the Global History Register . ..... Put another way, instructions don't need to spend N cycles moving their way through the fetch ...

Supervisor - GitHub
When given an integer, the supervisor terminates the child process using. Process.exit(child, :shutdown) and waits for an exist signal within the time.

robtarr - GitHub
http://globalmoxie.com/blog/making-of-people-mobile.shtml. Saturday, October ... http://24ways.org/2011/conditional-loading-for-responsive-designs. Saturday ...

MY9221 - GitHub
The MY9221, 12-channels (R/G/B x 4) c o n s t a n t current APDM (Adaptive Pulse Density. Modulation) LED driver, operates over a 3V ~ 5.5V input voltage ...