Feb 6, 2007

Sometimes an API is the Right UI

Graphical User Interfaces (GUI’s) are great for client-side applications. Everyone has their favorite software application or consumer device, and the usability of the GUI usually makes a huge difference in user satisfaction. Well what’s the right user interface for data center infrastructure? What if you want to embed platform functionality into your own application?

There’s a funny ad from IBM, where a poor sys admin has to monitor dozens of monitors—one monitoring console per data center application. The ad talks about “silo’ed applications” and not being able to tap into data.

My company’s product, Cassatt Collage, delivers a platform for provisioning and managing a host of data center resources—servers, virtual machines and networks. Collage monitors applications and maintains service levels, so you don’t need to watch a monitor. Under the covers, Collage is a J2EE application. The Collage UI is a web-based UI that is built with JSP and Servlets. Collage also provides several programmatic interfaces so that you can respond to events and drive Collage functionality from the command line or your own applications.

Collage provides a Web Services interface (affectionately— but incorrectly— dubbed the WSDL interface) that gives you access to all the same functionality available from the GUI. You can create new application tiers, allocate resources (servers) to those application tiers, respond to events, increase or decrease service levels— basically anything you could do by clicking through the UI.

Remember Mukund? (Mr. 465 VM’s from my last posting). About a year ago, Mukund had created a Scripting SDK (SSDK) that used the Collage web services interface but provided a much simpler interface for use in scripting languages. The SSDK is intended to allow our professional services folks to integrate Collage with a customer’s applications. Since Mukund developed the SSDK in Java, I decided to poke under the covers and use the underlying Java functionality. (I’m not much of a script guy, but I do like simple API’s that I can call from Java.)

As part of the system test effort for the last Collage release, we developed several reliability and performance tests that measure Collage performance at extreme scale and over long time intervals with thousands of user actions. In order to automate these performance tests, I used the Java internals of the SSDK to create application tiers, allocate servers, activate servers, deactivate servers, deallocate tiers and delete tiers. We call this a “tier life cycle.” I also used JWebUnit to measure UI performance at different times and different deployment sizes. We use these tests as part of the standard system test cycle to characterize Collage performance at scale and ensure that performance levels are sustained over time—simulating how Collage will perform in your data center after a year’s worth of activity. I also wrote some reliability tests that create dozens of threads that basically pound a Collage system with different tier actions.

The SSDK has also proven useful in customer scenarios. Martha is the director for the Applications Engineering team, and she is on the “front lines” with many customer engagements. Martha is a super-star in pretty much any application domain— whether it’s J2EE, ETL, ERP, CRM, BI, DB. Whenever there’s a tough customer problem, Martha’s the one we call. In January, Martha used Collage’s image management capabilities and SSDK to automate the deployment and configuration of a customer’s complex application environment. The customer needs to deploy hundreds of independent Collage environments and wants to do this without any human setup. Each environment can be deployed and configured in only 37 minutes, and the process is completely automated! This is a perfect fit for Collage and the SSDK.

In a future posting, I’ll talk about more about the web services interface and my adventures with the Eclipse Web Tools Platform, which works very well with our web services interface BTW. If you want to find out more about the SSDK, check out Cassatt InfoCentral.