-
Website
http://avc.com/ -
Original page
http://www.avc.com/a_vc/2008/02/my-head-is-in-t.html -
Subscribe
All Comments -
Community
-
Top Commenters
-
ShanaC
1228 comments · 73 points
-
daryn
213 comments · 14 points
-
kidmercury
829 comments · 104 points
-
howardlindzon
207 comments · 71 points
-
Charlie Crystle
205 comments · 35 points
-
-
Popular Threads
-
Thoughts on Blackberry Fail
12 hours ago · 66 comments
-
Getting Computer Science Into Middle School
2 days ago · 267 comments
-
End of Year Music Posts
1 day ago · 46 comments
-
How To Get Me To Hang Up On You
4 days ago · 158 comments
-
Open APIs and Open Standards
5 days ago · 207 comments
-
Thoughts on Blackberry Fail
I think the way to look at this is: "What's the difference between Amazon going down and RackSapce going down?". They were both down for a few hours over the last 4 months, nobody seemed to go, "OMG, how can I rely on RackSpace, I'm ditching this solution for Cloud Computing!", but yet, when Amazon went down last week I can't begin to tell you how many people msg'd me going, "See, Amazon's solution sucks".
Alex makes a very good point - what makes you, me or any other entrepreneur think they can write a better solution than Amazon or Joyent?
I'm a big believer in specialization of labor - perform the tasks that you have a comparative advantage at and outsource the rest (assuming it's a commoditized process - and I truly feel that LAMP stack hosting is).
Just my two pennies.
-Wayne
Yes he makes a good point - which is why I agreed.
However when "outsourcing the rest" it's not just a question of if their technology is good (it probably is otherwise you wouldn't be outsourcing to them), you also need to factor in the additional risks you are now exposed to; for example, if your supplier has a problem are you important enough to them that they'll care about it, what if your supplier goes out of business, what if your supplier decides to stop offering the service, what if your supplier is taken over by a competitor of yours. What if your supplier suddenly increases their price.
None may be likely, but you'd be a fool not to consider the risks.
Regards, John
So write your apps so that they fail gracefully, because they will fail. And take a deep breath. And maybe be thankful for the amount of time that S3 stays up!
These systems are part of an evolution in infrastructure -- I believe we will come to think of them as fundamental utilities in the support of webapps, much like bandwidth or electricity is now.
The best and brightest engineers will want a services that is open. The best engineers will always be driven for the best and are willing to re engineer when they expose faults and weakness. Working in an early ISP our biggest challenges were related to how CLOSED the telcos were when it came to improving their infrastructure to support the demand. We presented solutions as to how they could fix fundamental flaws in their infrastructure. It took years for us to convince local utilities to upgrade lines to support adsl and dsl services. I think the recent outage shows how open Amazon will be about their system and its faults, which may attract or detract usage depending on how you look at it. I look at it as a blip in an otherwise successful run. I think the majority of early adopters expect blips.
I biggest open question I hear related to using Amazon S3 or like systems are related to security. There are a whole host of industries that would benefit from the integration and use of these systems.
They know that they'll only get a few opportunities to prove that they're worthy of the trust people place in them to keep their businesses running.
Salesforce.com faces the same challenge, has gone down several times, and each time has done something to improve the service like http://trust.salesforce.com/.
Perhaps closer to the bone is that developers are control oriented for the same delusional reason that lends itself to "not invented here" development: no one on the entire planet could possibly have solved this as well as I will.
You need distributed file by user ID cluster, and RDBMS references to the clusters, but not the data.
The latest Object databases from http://www.db4o.com/default.aspx
Are an area that application developers better get familiar with. Danga.com also has some good thoughts.
We have inherited a generation of LAMP stack journeymen that are very bright, but have been lulled into a state of complacency regarding the utility of the Relational Database, to the point where scaling has become a cause celebre (Twitter).
I'm trying to get through Nick Carr's new book, The Big Switch, and his main thesis is around exactly what Alex and Fred are suggesting: in the future, IT infrastructure will become a commodified service that you purchase just like we do now with power or water. We can argue about SLs and how responsive they are to customers (nobody ever calls their local water or power authority unless they have a problem and you know how painful it is to reach a live person) but we're going in this commodified direction without a doubt.
Why is this shift a foregone conclusion? It's simply more cost efficient.
Like other market forces or economic trends like globalization, you can’t fight the economics of IT infrastructure becoming cheaper because of economies of scale. Uptime and security issues are valid concerns so I’m not disregarding them outright (and it won’t be simple to solve all of them) but these concerns will be ironed out. As Fred notes, in the long-run, it will make everyone better because we specialize in our competitive advantage (our actual products or services) and leave the non-essential parts of the value chain to those who have economies of scale in providing IT infrastructure (like an Amazon).
As a tech guy myself, it seemed like a lesser engineer would outsource vital services. However, it's actually a lesser engineer who insists on managing the mundane themself.
That said, hosting providers go down, as does the entire internet, every so often. You can have the worlds coolest, most advanced setup, and yet when the power in your facility dies (or your upstream carrier dies) you are offline with the rest of us.
Without going into too much technical detail, Apache, and most other web servers have a very bad design flaw, in that they pretty much spawn off one thread per incoming request, and threads are a precious commodity on any hardware. An alternate to this is to have fewer threads, but partition up the work required to fulfill a request-response among those threads, thus increasing concurrency (by a factor of 40-50, the concept is called "Staged Event Driven Architecture", hardly a new thing, but surprisingly absent from the mainstream of computing, considering you could do with one server what tens of servers do today, on the same hardware).
It's not too common yet, but there are companies that are addressing the issue, such as "Zeus".
Just thought I'd throw this into the mix when it comes to scalability discussions - before this area is properly addressed and commoditized most other types of optimizations for scalability will be like shooting mosquitoes and swallowing camels.
(I am in no way affiliated with Zeus, nor have I ever used their products, I have only heard of them when researching implementations for a software project I was part of previously).
I'm still surprised when startups waste engineers time fixing their email servers. Move it to Google Applications! Same with servers and EC2. Same with storage and S3. I'd rather have 50 odd top ops folk at Google/Amazon worry about my 99.9% uptime then the few on-site engineers.
... I'm sure there is a few specific cases when you'd need to DIY, 80/20 rule.