A couple days ago I got to sit down with a group of startup CTO's at the Techstars bunker and talk about nerdy things. While it's true that I'm currently a CEO, I still love the CTO job and pretend I'm one every chance I get. Being a CEO is fun and certainly has its advantages, but franky its way harder than being a CTO. A good CTO is the lifeblood of a technology startup and can be the coolest job if done correctly.
Being responsible for technology choices has its own challenges however. Technology is always a moving target and requires you to decide what's baked and what's not quite baked before adopting it for mission critical service delivery. You rarely get extra credit for adopting something leading edge, but you always get credit for adopting something that doesn't work. In fact, I think somewhere in that sentence exists the difference between a CTO and CIO. But that's a post for another time.
I went in to the meeting curious to get this groups opinion on Cloud Computing. I have to go on record, today September 16, 2009, as not being "on the bus" yet. I know, I know your saying to yourself "but it works so well for twitter" (sorry couldn't resist). In fact I don't have a clue why twitter is "uptime challenged" but I suspect incredible growth has something to do with it.
At Lijit, we adopted virtualizing our hardware as "the big step I could live with". I think it has proven to be a good choice. In the first year of operation I would characterize it as less reliable than running on the hardware, but now we clearly see benefit with no apparent downside. I think we get a little "instance crazy" in some of our architecture decisions but those are not my decisions to make and everything works great so, pick your battles.
Part of my suspicion about Cloud Computing comes from the answers I get from its excited adopters. Users of cloud services often exclaim that it "just works". It's kind of a derivative of the Mac argument, "I just think it and it happens". That certainly does sound good.
The thing I can't quite get my mind around is the responsibility of maintaining operations. Most of these services, at least the biggest, Amazon doesn't really promise anything will ever work. Of course in practice it seems to so it really hasn't been an issue, yet.
I challenged the group with the assertion that when one of my servers doesn't work, I blame the vendor and they fix it. When my storage array doesn't work, I blame the vendor and they fix it. When I lose cooling in my data center I blame the vendor and they fix it. When my cloud service fails, well my friends would say they don't fail… hmmm
I posed the question to the group. If you run your business in the cloud and suffer a failure where you lose $5K of revenue for the day - I get it. The savings on humans and hardware and stuff makes complete sense. But, consider the case where your company generates $5K of revenue a second.
When does the lack of accountability no longer make sense?
I love the idea of Cloud Services, I just question if the extended business case is there, yet.