jueves, 25 de diciembre de 2008

My take on cloud computing

First of all I would like to say that I have been working on ITT for quite some time and on Computers for well all my adult life, I have had websites up since 1996, so I can surely say that I do have over 10 years of experience on the web and more than 20 years as a computer programmer.

Now as a person that likes to enter new technologies I started checking up the computing clouds such as Amazon EC2, Aptana and GoGrid, have to take time and 3 articles to talk about each one but the first one I would like to refer to is GoGrid. You might wonder why GoGrid first, and I have to say because it is still a beta, and maybe if the developers do read this there’s still space for improvement.

First of all about signup and startup, I have to say that those are a breeze, actually I spoke to costumer service before signing up and I got a very “juicy” coupon for 100$ free usage of their grid, that’s more than enough not to only get acquainted with the service but also, to get a site up and running and hold it for a few weeks.

Ok the interface is very self explanatory you choose what you want to deploy, select a pre-made image, start it, give it a public ip and you are up !, very simple.

They offer several images that you can check on their wiki, from Centos, RedHat, windows 2003 2008, and a variety of dedicated MySql and MySql images from the same providers, but if you choose you can even get a full featured LAMP server to start with.

Ok their prices are discussed on their site and they are good compared to other services, and you can actually purchase some pre-paid plans that allow you to pay even less, GoGrid, unlike others I have tested, opted for a ram/hour method, basically it is this, you pay for 1GB of ram for each hour of usage, as of now their current price is 0.19us$ an hour, but there’s one thing that they lack to mention on their website, if you pay for 1GB ( that is the least you can pay for each hour ) you can split that 1GB into 2 different 512Mb servers, and I think that’s a very nice thing that they have, specially since you can have a dedicated MySql on the back and a web server on the front, assigning 512mb of ram to each one, personally I have to say I would love it even more if I could assign chunks of 256mb instead of 512, that could allow someone that requires it to have two 256 MySql databases, and 1 web frontend of 512 running apache.

And actually since you are paying for ram/hour, you should basically be able to assign it anyway you want, but there’s this little, HUGE problem…. You can’t make your own images.

This is a thing that really made me think about GoGrid, I know that their images are very good, and cover most of the aspects of what you need to start a web server, but sometimes, based on the infrastructure they give you, it would be nice to make an image that just runs a dedicated apache for instance, of course you can remove all the “bloatware” that comes with all of their servers, but it would be handy if when you remove all that, you could actually save the image, and re-deploy it.

Now what really is a kill for me right now, is the fact that as I stated before you can’t save your image, you can “shut it down” but when it is shut down, it still charges the assigned ram that was given to it initially, so if you have a server off, you are still paying for it, and that’s something I don’t really like to say the least.

To stop the image from eating your money you have to delete it, and of course with deletion you waste all the effort you placed on your configuration, and as a system administrator I do know that sometimes it takes longer to actually set up a server just right (including updates, patches etc) than to add the costumer data, (normally a few GBs of data, a few Databases, etc )

On GoGrid they say that they are thinking of allowing in the near future to save images, and a way to really shut them down, ( they have had sites running for a long time on their cloud, with 100% uptime ), but I have to say that for a live environment to allow you to keep images that you modified saved is a must.

I have a few examples, for instance, if a new costumer is looking to get a web presence, and maybe they require a demo site, for them to try it out and at the end actually hire you, it would be nice to have an image, just boot it allow them to see how it works, and shut it down, if the deal closes, then you re-start the image and get it up and running.

Scalability, one of the BIG HUGE parts of cloud computing is to allow on the fly scalability, either automatic, or by hand, ( automatic would be the best ), but when you start a server from GoGrid, you assign to it some ram, you work on it, and since you can’t save the image, you can’t just tell it to re-start with 2GB of ram ( max amount right now but they are scaling up )

So you have to really think what do you need, because if you decide to deploy a 1GB server, make all the changes and then you see that the server is not getting up to par with 1GB you have to seek the pre-made image again, give it 2GB, then go in, make all the changes and make it run on 2GB, of course that either means 1 of 2 things.

1- keep the 1GB server on line until you change and make the 2GB server just like the 1GB one, or

So you really have to think about this one, on the other hand if they provide you with a way of saving your images and just re-assign resources it would be awesome, however as of now that’s not the case. Also, if they allow the server to check if it needs more ram allow for ram bursting automatically and charge accordingly.

Now this issue of not being able to save the images, personally is what’s keeping me from moving into GoGrid cloud, I know this is not the case, but I feel that I have a server running in ram when I start it, and it really freaks me out, and leaves a lot of what-if’s on my head.

However they do provide persistent storage, but I have to say that I have not really tested that persistent storage, or I have not found it on the panel, I have to seek more, but from what I understand, and I hope, I am mistaken the persistent storage comes in the image, but if I find a way to keep just a drive that exists for persistent storage that would be a great plus.

For instance on Linux you could easily do something like this: grab X image then have another drive for /home then mount /dev/sdx to home, and that would allow you to just change a lot of things in a matter of seconds, go in make a new image, assign resources, configure it, and when it’s all done mount /home and make things faster.

But I insist the lack of image saving really is a point to think about.

I have to say that 2 other great things they have is the load balancing that is free and that inbound data is free as well, so those are good points on their favor.

Now I think that places that are offering computing clouds should think about this, a large percent of the population that could be in considering clouds, would be previous dedicated or VPS users, ( myself I do use various VPS ), and since there are VPS sprouting all over the web they have to learn to compete with them, for instance, as a somewhat “lazy” system administrator, I love to use Cpanel for some maintenance of the sites, and now that I have been looking in the possibility to move to a cloud, I have seen that there’s no Cpanel installed on any image, ( I know about their license fees and such ) but they should have that as an option, a lot of people would be more willingly thinking about changing to clouds if they can just migrate the existing accounts via Cpanel instead of doing it by hand, I know that there are other alternatives to Cpanel, even free ones, and any system admin can be able to deploy them in a couple of hours.

But then we go into the same problem, the image saving !

Personally what I would like to see on future clouds is this:

1-Ability to make and save your own images, but change them on the fly

-I know that some system administrators would say that’s insane, but I have to say that medium to small companies that have relied on VPS, are used to making on the fly changes. ( basically this is what Amazon EC2 cloud lacks, and one of the things that moved me from them and look for other solutions, I know that on EC2 you can make your own images and save them and whatnot but they are static once you save them, that is not on the fly.

2-Ability to manage resources as needed, scale up and down ( preferable automatic depending on the needs )
The big idea of cloud computing is that if you unexpectedly get a large amount of hits, ( like getting slashdotted or something ) your grid will be able to handle them and adapt to this needs, also when the site is slow, should allow you to save some money. ( a real what you use is what you pay for )

3-Specifically on GoGrid, allow me to really shutdown a server, not just delete it.

4-Ability to assign memory for the servers in blocks from 64MB and up.

The idea behind cloud computing I have to say is amazing, you get a lot of resources that you can “more or less” assign based on your needs, but if we think about the constraints that I see we have right now, the basic cloud or the concept is not being fulfilled.

The companies have to think that you have to be able to really “play” with your hardware inside a cloud, at the end the more flexibility, as final costumers we get the more we can get out of the cloud, and at the end it would be more profitable for the service providers.

Basically I would like to see a somewhat Lego environment that stands in front of the cloud, make it a kids game, for instance I would be able to sit down, grab an image of a CPU, then drag and drop one of my Os’s ( even an Atari, or Amiga image if I want to )

Then grab a block of ram, drop it in the CPU, then a piece of the processor, drop it in the CPU, HDD, click a virtual start button and have it running.

Then if I choose to do so, I can just turn off the pc (or do it on the fly) , grab another block of ram, assign it, another piece of CPU, and just keep working.

If I require a new server, for testing or whatever make another image, then if I choose to, I can just turn off the virtual hand made PC, and leave it on standby until I need it again.

2 comentarios:

Bebedores do Gondufo dijo...

Gostei tu blog.

chuby dijo...

muito obrigado !