Posts Tagged ‘cloud computing’
Cloud Computing
I have alot to do right now – so what better time than now to write about stuff that has nothing to do with anything. Recently, Brad Feld and Albert Wenger have thrown themselves into the ring with comments about the future of ‘the cloud’ and whether it’s ready for real usage. It most definitely is ready.
First of all, let’s just give everybody a little primer on what cloud computing is. Cloud computing is very simple: it’s a network of computers (cloud) that can be used by people or organizations to run software at a metered price. In theory, the price could be free, but just like free electricity, it costs somebody something.
Why is this a big deal? We had that in the 70s. It’s true, the whole point of VAX and UNIX systems was to allow multiple programs to run on the same physical infrastructure without interfering with everybody else. The problem with those time sharing implementations is that they share many different high level resources. In the olden days (and still), you had one root user who had ultimate control, and was trusted. Now, everybody will say at this point, “Hmm, I understand, it’s a trust issue.” There is most definitely a trust problem but that’s not the root of it (no pun intended). The problem is sharing. Just like with little children, sharing precedes trust.
Do you know what’s great about your desktop? What’s great is that you get to decide whether you want to install Skitch or not. You get to decide if you like a solar system for your wallpaper. You know what’s not great about a shared system, you are constrained by having to share it with others who have different needs. If you want Python 2.5.2 instead of Python 2.5.1, open a ticket with the owner of the system and wait. In the meantime, make your program work on Python 2.5.1 because you have to – and add a little bit more clutter to a cluttered world.
Cloud computing doesn’t change the fundamentals of sharing a server, it just reduces the amount of stuff that is shared. In a large system, if you are a small user (i.e. not a top 1,000 site), you can basically pretend that the machine is infinite. What you are sharing is simply the CPU, the memory, the hard drives, etc… However, you get minimum amounts of those things that nobody else can infringe upon, and which are commodities at this point. Most importantly, you’re not sharing anything for which there are many different options. Somebody could in theory say, “I want to program for an ARM processor, but the cloud doesn’t support that”. However, very few are doing large scale Internet deployments on something other than x86/SPARC using standard device architectures. With the cloud, I simply don’t have to share as much.
All the arguments against the cloud miss the point. One has to view it in a real world context. There are only a few alternatives to cloud computing. One is to share it with other people the old fashioned way (see above). Except for cost considerations, this is not a better option because other people are stepping on your turf. The other option is to get a dedicated server. The problem with the dedicated server is that you only have one of them. There’s no redundancy at the machine level. If the network device goes, you’re out of luck. You’re getting the gain of having your own system while giving up the economies of scale that go with sharing.
Cloud computing is about sharing what everybody agrees are standard (CPUs, Memory IO, etc..) while not having to share things like high level language libraries – for which many options may be necessary.
Starting Up
I was reading this post today from Guy Kawasaki about five lessons for startups. I like reading what Guy Kawasaki has to say and this is no exception. Unfortunately, it’s a brief posting but it gets the point across:
- Cash is king. Enough said
- Make progress. Sometimes people (i.e. myself) stare at the computer screen for an hour wondering what to do. Maybe they’ll read the news but that’s not going to help with step 1.
- Try different things. Unless the options are expensive, it’s usually cheaper to do than to decide.
- Ignore naysayers. Better to have tried and failed than to have never tried at all. That sounds like the logic of the formerly successful. Those who failed badly might say otherwise.
- Do unto others. I would modify this a little bit by saying that one must always understand what is being asked of another – even if one doesn’t really want to do it. Empathy is the important part of the equation.
On a side note, on the right bar of Guy’s post is a link to Sun’s startup-friendly server program. This is a great idea because it gets people locked in early. Sun makes some of the best hardware on the planet next to IBM and HP. As any Sys Admin will tell you, Dell is the worst – but that’s a different story.
Unfortunately for Sun however, I think the age of normal people touching these machines is coming to an end. There has been talk of this future by people such as Nicolas Carr in his book The Big Switch. I’ve only read excerpts so far, but the main thrust is that we are moving to an age of utility computing in which compute power is managed by large providers such as Amazon and Google. The interesting point is that this has all happened before with electricity. In ‘the beginning’, electricity was generated in a power plant that would service a given factory. Only later, did larger power plants get built which would then service individuals and companies through the electrical grid.
The same thing is happening with compute power that once happened with electrical power.
Long story short, I’m using Amazon EC2 and I love it. When I need higher uptime (say 99.9%+), I will then set up another system on an independent utility. People say things to me like, “You’ll lose control. There’s no future in that setup.” I reply simply that not only is it more efficient to have somebody else manage this, it’s also more reliable. None of these utilities will ever hit 100% reliability but that can be managed just like the data center I used to work with managed power outages by having electricity come from two different grids. Don’t get me wrong, utility computing is only the right option for new web sites/services. Internal systems, highly sensitive systems, and existing organizations don’t yet benefit from this option.
Anyway, to tie this all together, Sun is doing the right thing to get startups that aren’t in the vanguard to use their introductory offers and then build a relationship over time. Maybe they’ll find even better ways to monetize their customers in the future.