Write programs that do one thing
and do it well.
Write programs to work together.
Write programs to handle text
streams, because that is a universal
interface.
- Doug McIlroy
Slide 9
Slide 9 text
Do one
thing, and
do it well
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
V1
Slide 12
Slide 12 text
V1
• Codeigniter Application
Slide 13
Slide 13 text
V1
• Codeigniter Application
• No (working) indices on the database
Slide 14
Slide 14 text
V1
• Codeigniter Application
• No (working) indices on the database
• Used the REST API and pulled data on demand
Slide 15
Slide 15 text
V1
• Codeigniter Application
• No (working) indices on the database
• Used the REST API and pulled data on demand
• PHP for realtime parsing
Slide 16
Slide 16 text
V1
• Codeigniter Application
• No (working) indices on the database
• Used the REST API and pulled data on demand
• PHP for realtime parsing
• All stored in one git repo
Slide 17
Slide 17 text
24 Users
Slide 18
Slide 18 text
V1
• Codeigniter Application
• No (working) indices on the database
• Used the REST API and pulled data on demand
• PHP for realtime parsing
• All stored in one git repo
Slide 19
Slide 19 text
V2
Slide 20
Slide 20 text
V2
• Decoupled
Slide 21
Slide 21 text
V2
• Decoupled
• Made up of five “apps”
Slide 22
Slide 22 text
V2
• Decoupled
• Made up of five “apps”
• Easier to scale
Slide 23
Slide 23 text
V2
• Decoupled
• Made up of five “apps”
• Easier to scale
• More fault tolerant
Slide 24
Slide 24 text
MySQL
Twitter
Redis
API
Bucket
Parser
API
Website Mobile App
Slide 25
Slide 25 text
Do one
thing, and
do it well
Slide 26
Slide 26 text
... is
rule #1
Slide 27
Slide 27 text
If all you
have is a
hammer...
Slide 28
Slide 28 text
... everything
looks like a
nail
Slide 29
Slide 29 text
Rule #2
Slide 30
Slide 30 text
Use the
right tool
for the job
Slide 31
Slide 31 text
LNMPNRM
Slide 32
Slide 32 text
LNMPNRM
• Linux
Slide 33
Slide 33 text
LNMPNRM
• Linux
• nginx
Slide 34
Slide 34 text
LNMPNRM
• Linux
• nginx
• MySQL
Slide 35
Slide 35 text
LNMPNRM
• Linux
• nginx
• MySQL
• PHP
Slide 36
Slide 36 text
LNMPNRM
• Linux
• nginx
• MySQL
• PHP
• NodeJS
Slide 37
Slide 37 text
LNMPNRM
• Linux
• nginx
• MySQL
• PHP
• NodeJS
• Redis
Slide 38
Slide 38 text
LNMPNRM
• Linux
• nginx
• MySQL
• PHP
• NodeJS
• Redis
• Mongo DB
Slide 39
Slide 39 text
LNMPNRMR?
• Linux
• nginx
• MySQL
• PHP
• NodeJS
• Redis
• Mongo DB
• Ruby
Slide 40
Slide 40 text
Rule #3
Slide 41
Slide 41 text
Stand on the
shoulders
of giants
Slide 42
Slide 42 text
Do one thing, and do it well
Use the right tool for the job
Stand on the shoulders of giants