RightScale Eases Developing on Amazon EC2
RightScale Eases Developing on Amazon EC2
Software development is always easier when you have tools to assist you, such as integrated development environments and code libraries. However, now that programming has reached the level of the so-called cloud, the need for tools to help in development has grown even more. Programming for the cloud requires maintaining, not just the software, but the whole infrastructure that is supporting the software.
Amazon.com's various cloud offerings are a case in point. Developing for Amazon EC2 (Elastic Compute Cloud) can be done with a modest set of tools, including the Eclipse IDE and the command-line tools from Amazon.com itself. However, dealing with the software can be a big task, from provisioning to effectively managing servers and assets. That's where tools such as the RightScale Platform come in.
RightScale provides what it calls the RightScale Dashboard to help manage the infrastructure. The product comes with several price plans, including a free developer account that even includes a free trial run of Amazon EC2.
In this article, I take the developer account for a spin to see what it can do. RightScale also offers tools that go beyond what the free developer tool can do. Go here for a full comparison of RightScale's offerings.
When starting out with the free developer account, users log in to the site via the Web page, and can easily launch one of several prepackaged server templates. When creating an account in Amazon.com's cloud, developers need to start by specifying a server. The servers are equivalent to various familiar desktop server configurations, complete with an operating system and various startup and shutdown scripts.
The product offers templates, an area where the benefits of using RightScale are already apparent. Instead of the user having to fuss over configurations, RightScale has already done the work.
For this free trial, I chose the server called Mephisto all-in-one (per the directions for the free trial). For each server, users can get a full description. The description for this said it was a "blog application written in Ruby on Rails" and that the template "combines Load Balancer, Rails application [Mephisto] and MySQL all-in-one box." In other words, this is a preconfigured blogging application running on a server.
There is also the word "image," followed by the description, "RightImage CentOS5_0V3_0_0 (ami-d8a347b1)." This is also something preconfigured by RightScale; it's a custom server image that mimics an operating system on a desktop computer. RightScale offers several preconfigured images, including, for example, a Ubuntu installation running on an X86 system. Through the dashboard, programmers can launch individual images, or they can launch a template that's an image preconfigured with software. And they're free to launch just an image without using a template, if they prefer more customization.
Walking Through the Tabs
RightScale also offers various tabs, which I explored before launching the template. The Scripts tab lists all the scripts that will run on this server, including various Ruby on Rails scripts and MySQL and Apache monitoring tools.
The Inputs tab lists several environment variables that this template preconfigures. Remember, programmers are effectively building a server here, so environment variables play a part.
The Xref tab shows an empty list; it will later show the instances where I've deployed this template. Finally, the Revisions tab shows the various revisions RightScale has made to this template.
I clicked on the Launch button on the template page, and instead of Amazon.com's entire cloud crashing due to any mistakes on my part, a message box opened informing me that the template would launch in the default deployment. This box had a second Launch button, which I clicked; a nice message told me it had been added to my deployment. It took me to the Launch Inputs page I looked at earlier, saying the server would launch with this configuration. It took a while to launch.
Each environment variable was listed, and next to it was a text box filled in with the default setting; I could have typed something different to override these, but didn't.
I clicked the third Launch button and glanced out the window in the direction of Cape Canaveral.
This button took me back to my Dashboard, where I saw a list of my deployments, including the one I had just launched. Its state was "Pending," which presumably meant it hadn't actually started yet. Next to the state was a column called IP, then one called Zone, then Runtime, and finally Actions. Actions has a red Terminate button where I can apparently stop the server if I want to.
I didn't see a way to refresh the screen, so I clicked on a link called Servers. There I saw my server again, and this time it said Booting. I refreshed the page, but apparently I didn't have to: I saw a message that it would refresh on its own. Eventually I saw the status, "Running."
Looking at the site
My running server included Ruby on Rails and a blogging platform, which meant it had a Web interface. In fact, the Dashboard showed an address for me:
I clicked on it, holding down Ctrl to open it in a new tab. Firefox couldn't find the server, but I had a pretty good idea why: This was probably a brand-new address, and my local ISP's DNS (Domain Name System) server didn't know about it. But that address looked like it contained an IP address, 18.104.22.168, so I put that in Firefox. After that, I saw my Mephisto blog page. I knew that was what it was because it said Mephisto on it, and there were no blog entries.
So far, so good. We had a site up and running on a server that was sitting on the Amazon EC2 cloud. I went back to the dashboard. (I wasn't going to mess with the blogging software that was running, since, as far as I was concerned, that was just a demo of the capabilities of the server.)
Monitoring the System
Back in the Dashboard, I clicked on the server name, "Mephisto all-in-one v7," and got the main page for the server. This page included several tabs and scrolling down showed several other aspects of the server, including Amazon EC2 information such as "instance type" and "kernel information."
Typically, server software needs to write to a console log, and programmers and system administrators need access to the log. With the Console Output tab, the current log is displayed. I won't print it here; it's not particularly useful to the article. However, I saw things like "GACT probability on" that meant nothing to me (I'm just a programmer), but probably had meaning to a system administrator. But I also saw items that made reference to various Unix devices, such as /dev/sda1, which again showed that we were really running a server here.
Next, I clicked on the SSH Console button. This opened a new Firefox window containing a Java program that is an SSH [Secure Shell] program; the SSH shell program logged me right into my server, where I saw the Unix shell prompt, complete with the bin directory and everything you could ask for.
Back in the server page, I clicked on the Monitoring tab. This brought up a bunch of thumbnail images of graphs and charts that I could click on to look at the current server status. This was particularly cool because it included status reports named cpu, df, disk-sda1, memory, mysql, processes-mongrel_rails, and others: in other words, the hardware and running software.
The Scripts tab includes several built-in scripts that I could run simply by clicking a Run button. For example, one script let me back up my data to Amazon S3 (Simple Storage Service).
Finally, so I wouldn't use up all the minutes in my free trial, I clicked the Terminate button.
More to do
What I've described so far is just the surface. On the left of the Dashboard is a tree list of various things programmers can do; for example, there is a category called Design, which lets programmers customize the design of their servers. This includes two sections, Servers (which included the templates I mentioned earlier) and EC2 (which included the various images). The Images section includes several server images created by RightImages, Amazon.com, RHEL, rBuilder and others. There are hundreds of options under all of these, so programmers will want to take a look and scroll through them and see what's available.
There is also a Reports section where users can get reports on their own servers, as well as reports about usage and audits.
Conclusion: Manage It Like You Own It
I only scratched the surface of what's available. At the most fundamental level, RightScale is a configuration and monitoring dashboard for controlling servers and images on Amazon's EC2. This was some pretty cool stuff here: Sitting at my laptop in my office, I was able to remotely control a set of virtual servers that live on Amazon's cloud.
In the past, companies had to either build their own huge operations centers to house all their hardware, or they had to outsource it to a company that housed all of it, the latter of which required the companies to pay high prices not only for using the hardware, but also to make sure somebody was there to configure it, run it and monitor it.
With a product like RightScale, now programmers can manage the servers themselves as they would if they owned them, except now the servers have the extreme power of being on Amazon.com's cloud. Sitting at my lowly little laptop, I can run the equivalent of an entire operations center. Think of the possibilities.
Senior Editor Jeff Cogswell can be reached at jeffrey.cogswell@ZiffDavisEnterprise.com.