Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
99designs
MinimumViable Architecture forWeb Apps
Hi, I'm @johnbarton, Director of Engineering at 99designs
WhyYou Should Listen
To Me™
How I think About
Architecture. Based on
Actual Architecture
How Do I Architect?
Specifically ...
There are reasons
WhyYou Should ListenTo 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 Rail...
Based on Actual Architecture
How I think About Architecture.
"organisations which design systems ... are constrained to
produce designs which are copies of the communication
structure...
Specifically in Smaller, Fast Growing Companies
How 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...
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 ...
No Exceptions.
YourWeb Application Should Look LikeThis
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 Re...
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 servic...
Security #protips
Don't build a bitcoin
exchange or wallet
"Outsource" the security
design: use a secure by
default framework
AUDIT TRAIL
AU...
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 it
Thanks for listening!
http://99designs.com
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Minimum Viable Architecture For Web Apps
Upcoming SlideShare
Loading in …5
×

Minimum Viable Architecture For Web Apps

745 views

Published on

A guest lecture I gave at the RMIT Systems Architecture course.

A bit of a grab bag of things I thought I wish I knew back when I was at uni with regards to architecting web apps.

Published in: Internet, Technology
  • Be the first to comment

Minimum Viable Architecture For Web Apps

  1. 1. 99designs MinimumViable Architecture forWeb Apps
  2. 2. Hi, I'm @johnbarton, Director of Engineering at 99designs
  3. 3. WhyYou 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 jetlagged A Lightly Structured Series of Rants Your Web Application Should Look Like This Security #protips Recommended Reading (Do Kids Still Read Today?)
  4. 4. There are reasons WhyYou Should ListenTo Me™
  5. 5. Because I am an "industry speaker", clearly.
  6. 6. 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
  7. 7. Based on Actual Architecture How I think About Architecture.
  8. 8. "organisations which design systems ... are constrained to produce designs which are copies of the communication structures of these organisations" - M. Conway
  9. 9. Specifically in Smaller, Fast Growing Companies How Do I Architect?
  10. 10. Typically the systems I see are either woefully over or under architected. The balance is hard to get right, and harder to keep right.
  11. 11. YAGNI and Responding to Change
  12. 12. “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
  13. 13. No Exceptions. YourWeb Application Should Look LikeThis
  14. 14. 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)
  15. 15. The Single Responsibility Principle + Zero, one, and many.
  16. 16. Inflection Point: ~15 Developers or ~100M Weekly Page Impressions
  17. 17. 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
  18. 18. Security #protips
  19. 19. 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 dumb Security 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
  20. 20. Here are some books I like. Also, some things that are not books. Recommended Reading
  21. 21. "hominem unius libri timeo"
  22. 22. http://highscalability.com/ http://www.kitchensoap.com/ http://yowconference.com.au/ http://martinfowler.com/bliki/
  23. 23. I have no idea why our company slide-theme has one with clouds on it Thanks for listening! http://99designs.com

×