Friday, July 30, 2010

On Skytap

I've ranted about GoGrid a bit in my previous post and now it's Skytap's time to receive its fair amount of rant. OK, just kidding, will sure my experience of working with it.


The general concept is quite different from all the cloud providers I worked with. What I've usually seen is the main abstraction of the cloud providers was a 'Server' (or node, or vm, whatever) -- just a single VM with properties like RAM size, CPU power etc, and which is created based on some 'Template'.

Skytap does things differently: 'Server' model doesn't play the main role. The thing all the stuff's built around is 'Configuration', which is basically a collection of VMs. Configuration is created from 'Template' which is also actually a collection of VM templates. You cannot directly add a VM to configuration, you have to merge the template with a VM.

I haven't decided if I like this way of representing things or not. Surely, in some situation it's convenient to be able to group VMs and work with them as with single object and we've even implemented a similar scenario at work on top of other cloud provider. On the other hand, when you need to work on single VM level it's a bit confusing and cumbersome.

Web UI

It's ok but has some usability problems IMO. Well, I'm not a usability expert by any means, but these things just seem wrong to me.

For example: a way to API doc: Dashboard -> Support -> API -> 'How do I access API' solution -> link to developers page -> link to pdf guide. 5 steps from dashboard, not very good IMHO.


I have an impression that a lot of people treats any http service as REST service, that's obviously wrong. Skytap is good at this matter and their REST service is really RESTful. They even use all these fancy HTTP methods like PUT or DELETE.

Based on some error messages and headers, I assume API is powered by Rails and Mongrel. The tutorial suggests using XML, but it looks like the API supports JSON as well, but not for all resources though. Having full JSON support would be really nice. Moreover, I've been playing with Firebug on web ui and noticed that AJAX is actually using JSON to communicate with the API, so it's strange why JSON is not fully supported.

Also, API gives quite a low lever control to VMs. I.e. if you want to assign an IP address to a VM, you have to think not on VM level (like "assign address A to VM 'alice'") but on VM's OS network interface level (like "asign address A to the first network interface of VM 'alice'").

This forces you to make more API calls to get things done.

Let's look at the quite typical task: create a VM with some of public IP available on our account.

GoGrid Skytap

  • find an unassigned IP

  • create node from some template and use the IP from the previous step

  • create a configuration from template

  • find available IP

  • assign an IP from the pevious step

  • manually start the configuration

So Skytap forces you to make twice more API calls than GoGrid. On the other hand, the feature of assigning public IPs wasn't documented at all in the API reference, so probably it will be changed in future and will become better. I've figured out how this works using Firebug. One more thing I haven't figured out how to handle better is the definition of term 'available IP' by Skytap. Basically, it treats IP as 'available' if it's not used by a running VM. Sooo... you can assign the same IP to several VMs. You will be able to start one of these VMs even, but other VMs with the same IP will fail to start.

There is one more thing that makes me feel quite worried: it looks like the credentials are stored in per template basis. So, if you create two configrations from the same, say, RHEL public template, the root passwords of VMs in both of your configurations will be same. I really really hope to be wrong on that or maybe that passwords are generated on per-account basis (which I cannot check as I have only one account).


Summarising things up I have a strong feeling that I probably don't quite understand philosophy behind Skytap and probably it's targeted for the use cases where API is not very important.


  1. Wow, love in depth post on the differences between GoGrid and Skytap. I just started contracting for CloudShare ( and I am trying to learn more about Cloud Computing with IT as a Service and SaaS (Software as a Service). So, from your post I still see your leaning toward GoGrid instead of Skytap. Have you tested CloudShare? CloudShare Pro is completely free ( I would like to see what you would have to say.

    Again, thank you for the VERY informative post. I hope to receive a reply with any questions or feedback.

    1. I def agree,
      CloudShare is a great alternative as they provide an easy to use SaaS platform for creating and managing fully functional IT environments
      They have dozens of prebuilt VM templates so all you need to do is pick your template, and your up and running,
      you can integrated with your exisitng ALM and SDLC processes via API and Plugins and collaborate and share with your team.

      Def recommend as it has probably saved myself and my team thousands of dollars and tons of setup hours.

  2. Generally, I'd prefer GoGrid over Skytap, esp. if I had to rely on the API. OTOH, GoGrid has its own issues as well. First, it seems like their support department is loosely coupled with the engineering department so I don't find it very useful. The second important issue is a stability, e.g. sometimes we end up in a situation having two nodes with the same IP address with only one of them working or similar weird bugs. But I have to say that GoGrid's stability definitely improves over time.

    One more weakness with Skytap we ran into recently is a quite limited set of available Linux templates, e.g. if you want to run CentOS, they only have CentOS 5.x x86_64 and CentOS 4.6 i386. As we wanted CentOS 5.x for i386, we were in trouble.

    Thanks for the CloudShare link, I will definitely try it soon.

  3. Nice blog post on Skytap. We appreciate your interest in our cutting edge technology. Let me be the first to say there is a lot of cloudiness (pardon the pun) around features across all Cloud Platform Service Providers. I think we can all agree that not each one is exactly the same. With that said, I would like to respond to a few of your comments concerning the "limited Linux templates" and VM issues. Skytap has 150+ OS’s in our public library today, which is driven by customer demand. We add new titles all the time, and customers can request a new title by sending Skytap support a request. It really is that easy. Customers also have the option of building their own VMs which is just as simple to do. Finally, Skytap customers can import existing Virtual Machines into Skytap Cloud without change, and/or virtual appliances. Lastly, I will say that Skytap was selected a finalist winner in the Best of 2010 VMWorld competition last week. No easy feat and a testament that Skytap Cloud is one of the best, easiest to use, and most feature rich Cloud Platform Service Providers on the market today.

    I am happy to provide any additional insight and clear up further questions as they come up. Feel free to contact us directly. Thanks again for your interest in Skytap!


    Nate Odell
    Director of Marketing
    Skytap, Inc.