woensdag 24 november 2010

An updated design

In my previous design, there were a few errors and a few things that weren't as good as they could be. The latest version of my design:

The most important change is the sudden appearance of a CloudProvider component. This component will fulfill several tasks
  • Keeping track of endpoints
  • Saving and loading cloudprovider specific data, like api keys and stuff like that
and a few other things.
Initially I had both an InstanceManager and a CloudProvider, when I noticed almost every method of InstanceManager took a CloudProvider as its first parameter -- resembling a primitive way to implement object orientation. This of course was my cue to merge them together.

As a side note: the implementation of this is coming along relatively nicely. Using Tim Kay's aws tools I succesfully booted a server (I'm not quite at that point in my own code yet but I did need to see a server in action to test the server listing code).

The booting of my first server and connecting to it wasn't exactly pleasant. I'm sure this is a piece of cake in Amazon's webinterface, but the same can't be said from the console interface. Steps for doing this included

  • Finding out how to generate an ssh key
  • Finding out where to look up AMI id's (Amazon Machine Instances, server templates)
  • Finding out what a user group is and why I need one
  • Finding out SSH isn't allowed through the firewall by default
  • Finding out how to add a rule to a group that allows SSH traffic through the firewall
  • Finding out how to boot a new instance from an AMI that allows access through SSH with the previously generated key and runs in the group that passes
  • Finding out what login information to use and how to pass a key to ssh on the fly
and much more. Some of this is documented in Amazon's Quick Start Guide (but only with respect to the webinterface) and some of these commands are documented for the command line tool (but not all of them are documented and certainly not an entire workflow).

So yeah, that took me a while...

Geen opmerkingen:

Een reactie plaatsen