Architecture and Scaling Cloud Applications
OK, quickly, you've got a new app that has gone "off the charts", it's hosted on EC2 and you want to be able to scale in order to meet demand. What do you do? While this is a great situation, too often the answer technical people come up with is either: #1 (customer answer) We need to get someone else to build this us, our IT guys don't know what they're doing. #2a (developer answer) Rewrite the app in (erlang, scala, ruby, java, C#) because our code sucks and isn't scalable #2b (developer answer) Switch to (Oracle, DB2, MySql, MongoDB, Terracotta, Spring, EJB3) because (Oracle, DB2, MySql, MongoDB, Terracotta, Spring, EJB3) doesn't scale well #3a (infrastructure answer) We need to buy more EC2 instances and "scale out" #3b (intrastructure answer) We need to bring it in-house and we'll get the biggest baddest server you can buy #4 (architect answer) Where's the bottleneck? OK, I know #4 isn't really an answer, but it i...