99designsMinimum Viable Architecture for Web Apps
Hi, I'm @johnbarton, Director of Engineering at 99designs
Why You Should Listen To Me™
How I think About Architecture. Based on Actual Architecture
How Do I Architect? Specifically in Smaller, Fast Growing Companies
Apologies for undercookedness, I am still jetlaggedA Lightly Structured Series of Rants
Your Web Application Should Look Like This
Security #protips Recommended Reading (Do Kids Still Read Today?)
There are reasonsWhy You Should Listen To Me™
Because I am an "industry speaker", clearly.
MyCareer: ASP.NET + MSSQL Envato: Ruby on Rails + MySQL
Goodfilms: Ruby on Rails + PostgreSQL 99designs: PHP, Ruby on Rails, Go + MySQL
+ lots of random consulting
Based on Actual ArchitectureHow I think About Architecture.
"organisations which design systems ... are constrained to produce designs which are copies of the communication
structures of these organisations" - M. Conway
Specifically in Smaller, Fast Growing CompaniesHow Do I Architect?
Typically the systems I see are either woefully over or under architected.
The balance is hard to get right, and harder to keep right.
YAGNI and Responding to Change
“If you want to build a ship, don’t drum up the men to gather wood, divide the work, and give orders. Instead,
teach them to yearn for the vast and endless sea.” - Antoine de Saint-Exupéry
No Exceptions.Your Web Application Should Look Like This
Put these things into "the cloud" and put your code in there 1 x Load Balancer
2 x Web Server 1 x Database Master + 1 x Read Replica
1 x Async Queue Processor Firewall the lot at the outside, and iptables each box too
Share nothing except database (and maybe session store)
The Single Responsibility Principle +
Zero, one, and many.
Inflection Point: ~15 Developers or ~100M Weekly Page Impressions
Upgrade to SOA at the same time you split teams Have clear lines of ownership from teams to systems
Do not create a service without a dedicated team or n > 1 clients
Security #protips
Don't build a bitcoin exchange or wallet
"Outsource" the security design: use a secure by default framework
AUDIT TRAIL AUDIT TRAIL AUDIT TRAIL
You are more likely to get audited than get hacked unless you are dumbSecurity Protips
Apply the Mickens "Mossad/Not Mossad" Threat Model
Keep your mouth shut around 4chan and other angry intelligent people
For The Love of God Don't Leave a Laptop on a Train or in the Pub
Here are some books I like. Also, some things that are not books.Recommended Reading
"hominem unius libri timeo"
http://highscalability.com/ http://www.kitchensoap.com/ http://yowconference.com.au/ http://martinfowler.com/bliki/
I have no idea why our company slide-theme has one with clouds on itThanks for listening!
http://99designs.com