I remember many years ago when I was studying at the University of Maryland, one of my professors listed WordPerfect as one of the requirements for his class. So I went down to the campus bookstore and bought a copy. The clerk handed me a big bulky box and I remember thinking “gee, this packaging is a bit overkill.” That is until I got back to my dorm room and found 20+ 3.5” floppy disks in the box! It must’ve taken me over an hour to install that darn thing and I knew there had to be a better way. Well sure enough, things have certainly progressed nicely since the days of the floppy disks. We’ve since moved on through CDs, then DVDs, and finally, where the bulk of software distribution is done today, direct Internet download.
It’s hard to imagine what could come next, or how we could improve upon software distribution via direct Internet download. As Internet pipes get ever faster and bigger, what other medium could be a sufficient replacement? Well, frankly, I don’t know that there ever will be. But the future of software distribution lies not in the distribution vehicle, rather it lies in the metadata of the software being distributed.
As applications grow more complex, they are typically broken down into smaller pieces based on functionality. Let’s use Microsoft Exchange as an example. When Microsoft Exchange was first released, it was a pretty basic messaging software product that could be easily setup on a single server. Over the years, as new features and functionality have been added, Microsoft Exchange has evolved into an extremely complex beast. For larger implementations of Exchange, quite often there are large teams of very bright engineers, consultants/contractors, and project managers required to get the product setup and running properly. And the entire process is rarely, if ever, smooth. More often than not, the process is littered with many “bumps in the road.” A complete installation can take many months, and in some extreme cases, years. Could there be a better way? Absolutely. Let me introduce you to the concept of an Application Blueprint.
An Application Blueprint is, well, very much what it sounds like. It is a model of what an application should look like. Like a blueprint for a building, which is a complete plan of all the building components from the foundation to the roof, an application blueprint spells out all of the application components, everything from the VMs and the OSs, all the way up to the nitty gritty application configuration parameters, and everything in between. But unlike blueprints for physical buildings, which are generally printed on large rolled up pieces of blue engineering paper, an application blueprint is something that can be modeled in software and something that can be saved and passed around or downloaded electronically.
In addition – and here’s the really important part – VMware’s vFabric Application Director leverages these blueprints to automate and orchestrate the installation and configuration of a complex application. Now let’s think about that for just a minute, because this stuff is revolutionary and extremely powerful. As we’ve already discussed, applications are getting harder and harder to setup and configure. One could make the argument that certain types of really advanced and complex software solutions, such as Microsoft Exchange, are approaching the point of being almost too complex to be implemented by humans. There are just too many variables to manage and too many super advanced skill sets across numerous disciplines that are required in order to successfully implement these kinds of large, enterprise software solutions. But now there is a way to not only model what these software solutions should look like in a given environment, but also a way to take that model and programmatically “make it so.”
This is very powerful new approach because it eliminates the complexity and removes the error prone “human element” of the implementation equation. All the technical pieces that must be thought out, accounted for and detailed in an implementation project plan can now be modeled in an application blueprint. Everything from the size of the virtual disks and the IP addresses of the VMs, all the way up to the location of the software installation bits, the installation directory and the TCP port numbers will be defined in the blueprint. Once an application has be completely modeled in the blueprint, vFabric Application Director will take that blueprint and make an Execution Plan, which is an installation plan that will include all the tweaks and configuration changes necessary for the application to run in your environment. Then, according to the plan, Application Director will build the VMs, install the OS’s, configure the networks, download the application bits, install the application components and “wire everything together,” so to speak.
You might be thinking, “OK great, but how exactly is this the future of software distribution?” Which is a great question, because what I’ve talked about so far is how application blueprints will greatly improve application installations, which is something different than software distribution. But now that we understand the value of application blueprints, wouldn’t it be great if we could save application blueprints and pass them around? Wouldn’t it be great if, for example, I could go to an online store and find/test/buy an application blueprint for Microsoft Exchange? Yeah, that would be awesome. Guess what? You can. In fact, if you’re interested, here is a blueprint for Exchange. If you go to that link and click the “try” button, you’ll be taken to a page that will help you import the MS Exchange blueprint into your vFabric Application Director.
Keep in mind just how different this is from how things are generally done today. If I bought MS Exchange today, I would get a download link to the actual software installation bits as well as a ton of “how to” documentation. But with this new model, I’m not downloading any software or documentation; rather I’m downloading a software plan. It’s a software plan that can be understood by vFabric Application director. And once the plan has been imported into Application Director, you don’t need to do hours/days/months of planning and researching, you simply click “Go.” Once Application Director has done its job, you will have MS Exchange up and running in your environment, just they way you want/need it to be running.
There are a couple of other important benefits to this new approach. First, let’s think about the subject of patching and updating. Sorry, I didn’t mean to make you gag. Yes, it’s awful. Painful. You show me a person who says they enjoy patching and updating applications, and I’ll show you someone who secretly dresses in full body latex and has Helga the “Pain is Love Goddess” on speed dial. But the good news here is that with Application Blueprints, patching and updating becomes so much easier. Remember, everything about the application is modeled in the blueprint, including (potentially) how to update that application. So in the future, updating an application should be a simple matter of receiving an updated blueprint from the ISV and again, simply clicking “Go.”
And finally, another really cool benefit to this approach lies within the performance of an application and the integration with other applications. Pretty soon, other important application tools will also “understand” Application Blueprints. Why is this important? Well, if a performance monitoring application (for example) can understand Application Blueprints, it can now intelligently spin up additional DBs, or web servers, or application servers, or whatever corrective actions it needs to take in order to solve the performance problem. Pretty nifty, eh?
Yes indeed, software distribution has come a long way over the years. Fifteen years ago we were buying all of our software on floppy disks. Ten years ago everything moved to CDs and DVDs. Now everything is directly downloaded over the Internet. Shoot, the new Apple Macintosh laptops don’t even come with internal CDROMs anymore. And why should they? Who needs them? So what’s next for software distribution? Well, I believe the future of software distribution lies not in the in the metadata of the software being distributed, i.e. the Application Blueprint. Go to the VMware Solution Exchange. Check out an Application Blueprint and see if you agree with me.