Showing posts with label provisioning. Show all posts
Showing posts with label provisioning. Show all posts

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.

Jan 31, 2007

Can One Person Provision and Manage 400 Servers in an Afternoon?

With the latest release of Collage, affectionately codenamed “Starbuck,” we have significantly increased the scalability of Collage. With this release, Collage can now manage 400+ servers under a single control node. As part of the standard system test effort for Collage, we routinely scale to ~450 app nodes being managed by a single Collage control node. And this control node is run-of-the-mill pizza box server, typically with 2 CPU’s and 4 GB of RAM. You can get one of these from CDW for less than $4000, sometimes as cheap as $2500.

Just the other day, I had to give a demo to our EVP of Sales, Jim Flatley, to show him the new product’s capabilities. So I decided to set up a system with 400 app nodes, just to show off our new stuff. BTW, app node is short for “application node,” which for us means a physical machine or virtual machine (VM) under Collage management. My System Test team normally scales to 400+ app nodes under management as part of the dev-test environment. (In fact, Mukund likes to show off a system he’s been running with 465 app nodes—kind of chest-thumping, but it’s still pretty cool.)

So I started off with a system with 40 physical servers, all bare metal. I imported 3 different VmWare ESX images, one with 24 VM’s per host, one with 18 VM’s per host and another with 12 VM’s per host. I created three tiers, one tier for each image, and let Collage allocate servers for VM hosts so that each VM would have 500 MB RAM. (This is easy to do, just set up each tier’s attributes to specify memory requirements.) I also used the NetInstall feature, which is new in the latest Collage release. The application image for the ESX host is locally installed on the app node.

Once the ESX hosts were activated, all the VM’s were discovered and inventoried by Collage. So I had 400 VM’s in the free pool. I then imported some application images— a combination of ELAS 4 and Windows images— and created tiers with these. Some were set up as Web farms, others as computational tiers. I then activated tiers—first a 50-node tier, then another 50-node tier. Then I activated a 100-node tier. I also created some tiers that used physical machines, just for fun. At one point, I was simultaneously activating 200 app nodes. Collage automatically throttles the activations so that app nodes activate in batches.

Three hours later, I had configured an environment with 400 servers under management, all provisioned from bare metal by Collage. I had a mixture of physical machines, virtual machines, Linux applications and Windows applications. And by the way, I’m not a sys admin. I’m an engineering director at Cassatt. I don’t set up servers for a living. But with our product, I can set up and manage my own data center.

And BTW, the demo was a success. I’m pretty sure Jim was impressed. He was smiling at the end of the meeting.