Modern Web Architecture Fundamentals

James Ward of Salesforce

James Ward shares how the hosting landscape has changed for web applications over the years and how you can avoid some of his middle-of-the-night pager nightmares.

  • Here's what to listen for:
  • 00:47 What are the differences between hosting services?
  • 05:19 What is a sysadmin?
  • 07:14 What is the advantage of having people or a service do system administration for you?
  • 09:23 What are some things that Heroku does for you that a lower-level server won’t?
  • 13:36 Given all the choices out there, how do you think about where to host your application?
  • 17:28 Why might one want to switch between servers?
  • 21:58 What are container technologies and why do they matter?
  • 24:42 What is virtualization?
  • 26:44 Why are app servers fading away?
  • 30:02 Are add-ons the way to think about services that are broken out?
  • 32:06 Should startups use services like Heroku to start out or roll it yourself?
  • 35:13 Why do people want to/think it’s easy to manage production systems themselves?
  • 37:01 When should you begin thinking about the scalability of an app?
  • 45:33 What is the right way to handle multithreading in Ruby?
  • 48:12 What does “stateless” mean? Why should app servers be stateless?

"I’ve got 100 apps on Heroku and it requires just about no management to make sure everything's up."

"I don’t want to be a sysadmin anymore. I’m glad someone else is wearing the pager now."

"Heroku provides this managed tier and a really nice developer experience on top of Amazon."

"You used to invest tens of thousands of dollars right upfront in a bunch of hardware."

"Today I can just create a free Heroku app and I’m good."

"I do miss the hardware. But also I’m not getting woken up at 3 in the morning anymore."

"I got so used to my pager going off in the middle of the night the loudest level wouldn’t wake me."

"We opened my pager, soldered on the speaker a mic out, so when my pager went off it shook the house."

"I can take my application that I run on Heroku and in ten minutes run it anywhere else."

"For me as a consumer, it’s crucial to not get locked into a vendor."

"The primary goal of containers is a consistent environment for an application, and reproduce it easily."

"Add-ons are a way to find cloud services I can provision instantly and add to my application to use."

"Because I set it up on my laptop in 5 minutes, then it’s easy to run a production system."

"It’s really hard to keep things running efficiently. To scale, handle disaster recovery, failover."

"I just want to write code and deploy my app."

"The technology I have always used would have to be monumentally successful to hit scalability issues."

"For a long time, scalability with Ruby was particularly painful because Ruby was single threaded."