I was fortunate today to sit with a couple product managers at VMware and get an inside scoop on a new product that was just releases called vFabric Applications Director (vFAppD). It’s not often that I get impressed by some sizzle but this one really struck a chord for me and I had to share it with everyone. For years we’ve been using virtualization to provision and manage virtual machines, and we’ve been using technologies like vApps, Lab Manager, vCloud Director and other technologies to simplify the management and delivery of those VM’s. We’ve further elevated the discussions to PaaS and SaaS (see my blog here). However, as a developer and DBA who’s embraced virtualization and Cloud Computing, I’ve felt there was a big void in how we manage application life cycle in a Cloud environment. Everything I’ve seen has been around managing VM’s and if I had a new version of my app I was expected to deploy a new environment. If I just wanted to make a code, script or configuration change then I had to leverage old school techniques that weren’t taking advantage of my being in the cloud. For example as a developer I wouldn’t have access to vcenter, let alone experience with it. I therefore couldn’t take a snapshot before making a change unless I coordinated it with a VMware admin. Where are my development and DBA tools to empower us with the benefits of the Cloud without becoming VMware admins?
If you haven’t seen my blog for DBA’s you’ll want to check it out here, it introduces VMware’s vFabric Data Director, a wonderful new product to empower DBA’s to manage their own DBaaS offering.
So now that my database is being managed by my DBA’s what’s next. When we consider PaaS there’s a need to provide very complex application environments comprised of load balancers, web servers, app servers, messaging servers, databases, gateways, internal/external services, data feeds, and all kinds of complexities. To build these platforms could require a whole team of people who are experts in each individual area working in concert. Later when we need to make a change, updating a component or adding something new it could require a whole team again to figure it out. Normally there’s a lot of custom scripting too integrate everything, which can be buried in obscure places with no consistent methodology on where its stored, how it’s being called and what passwords it might have hard coded. There has to be a better way, right?
Over the years many companies have tried, with orchestration and workflow engines designed to normalize and modularize the process. We’ve been able to make them work but supporting and maintaining them has often been clunky. These legacy technologies aren’t often integrated to the cloud so they don’t leverage things like virtual machine templates, snapshots, linked clones, streamlined rollbacks, etc… Also, these technologies are mostly focused on creating a new environment, but not usually on maintaining an existing environment. The ones I’ve seen are also very specific to the deployment platform and aren’t easily directed to different platforms and provide limited elasticity of cloud computing. Some have been made to work in a virtual environment, but they haven’t been designed from the ground up for virtualization or cloud computing. Lastly most are designed to only support a platform but do little to nothing to support an actual application running on the platform. There has to be an even better way, right?
VMware’s new product vFabric Application Director (vFAppD) has taken a different approach to defining, building and deploying applications and platforms and I’ve just fallen in love with it. For starters they’ve decoupled defining what an application looks like and how the pieces get assembled and they’ve decoupled the assembly from the provisioning platform. What this all means is it has a really easy and intuitive graphical interface providing a way to design the application graphically, linking all the components and layering all the software necessary to make it run. You import your legacy scripts into it so they are standardized and stored in the framework. They have removed the confusion on how things are strung together and make it easy to support and maintain. Then when you’re ready to deploy they use native cloud API’s to deploy to any cloud you want. Because they’re using the underlying cloud features you’re able to provide appropriate best practices specific to each cloud framework independent of your application specification. For example if a Microsoft cloud wants some special version of Windows or a VMware cloud needs to ensure VMTools is installed you do that in the cloud framework not the application definition. Today the product supports VMware’s vCloud Director but through their API’s they’ve designed it so its very open to support any cloud framework.
Now instead of a whole team of people having to build and maintain an application platform a single Application Operations Engineer can build and own what are called Application Blue Prints. These are the graphical representation of the application with all its components defined along with linkages between components. The same scripts written by the experts to support the legacy environments can be imported into the blueprint to provide the same integration with less complexity and fewer people will be needed to support and maintain the platform going forward.
App Operations isn’t just about building and deploying applications, but also how to support and maintain existing applications. Most virtualization and Cloud Computing products I’ve seen always seem to focus on deploying and retiring full Virtual Machines and group’s of VM’s. vFAppD actually separates the VM from the software on the VM such as an app server or SQL DB and further separates the application on the app server or schema and data in the DB. Therefore, it has the intelligence and capability to provide very fine grained control and capabilities for software updates and patches. The same Blue Prints will be able to promote code changes such as new ear/war files, script updates, schema changes and the like.
I realize most organizations have tools to do this, but there are several differences. For starters vFAppD is integrated with vCloud Director and vCenter, so it’ll ensure you’re only deploying to valid work spaces (vDC’s), and it can automate the taking of snapshots to provide admins a way to rollback a change if something goes awry. Normally these features require a VMware Admin to be able to leverage them. Having a single tool such as vFAppD able to define an app, deploy that app to any cloud infrastructure and support and maintain that app through it’s lifecycle is real differentiator that makes this tool rise to the top of my favorites.
What you’ll also love about vFAppD is that it doesn’t lock you into a single cloud platform. It’s been designed from the ground up to support just about any cloud including support for vCloud Director out of the box, and support for AWS, Cloud Foundry and other platforms coming in the future through adapters created by either VMware or third parties. Now you can truly take an application and deploy it anywhere, quickly and easily!
As for us developers, we also want a glimpse into the cloud, but what does it mean? In my blog about PaaS I discuss the developer not wanting or needing to know the complexities of installing, configuring and linking all the components that make up the platform they’re working on. Historically these platforms are provided to us as black boxes such as AWS, Azure and Cloud Foundry. We know what’s offered but have no visibility or control of it. Alternatively we have PaaS delivered as a pre-packaged set of VM’s, where we can see it, but still have no control over it. Let’s say we find something in the open source community that sounds really cool and we want to test it; well traditional PaaS prevents this and until the provider of the platform offers these additional services so we cant test them. The onus is back on developers to have to build their own private work area so we’re becoming admins again to assemble these complex environments. Well that’s not very cloud like.
I fell in love with vFabric Application Director (vFAppD) because it provides a graphical canvas for creating complex application platforms through drag and drop widgets and scripts. VMware calls these Application Blue Prints. Many connector scripts are available out of the box and others can be provided by my various administrators. Now I can easily go in and add new functionality (if I’m authorized) to extend a Blue Print then provision it into my private or shared workspace controlled by vCloud Director. This feature alone is worth putting a copy on every developers desktop.
It doesn’t end there. These same Blue Prints are what’s being used to stand up both your corporate PaaS and SaaS offerings, so anything you do is still staying in line with corporate standards, and if you come across something that the company can standardize on then your admins can take your Blue Print, run a compliance check on it, and promote it to a public portal. How awesome is that?
vFAppD further offers tight integration with a new application monitoring package from VMware called APM which combines Hyperic and Application Insight to provide monitoring of your software, network and application. A lot of companies have too many monitoring applications, and the last thing they want is another. But where most monitoring tools are oriented at IT Operations, APM is oriented for both developers and Applications Operations to track changes and report when an application behaves unexpectedly. It’s not meant to replace what operations has, but let’s assume you deploy a new update and things start behaving badly. Well before you roll back wouldn’t you like know where the issue is? Is it a function in java that’s broken, a SQL call that’s slow, or maybe the app is spinning on an error that keeps retrying instead of returning a formal error to the user, or maybe the change is causing a flood of networking traffic that was unexpected. Traditional Operations would see everything is fine and healthy… It’s not us! With APM you’ll see very quickly where the issue is and be able to correlate a root cause then take appropriate action.
APM is also cloud aware and knows how to leverage the cloud. Let’s consider an example such that an application is healthy and running just fine, but SLA’s start to degrade because active connections are increasing. Maybe the right corrective action is to dynamically spin up an additional applications server and have it automatically integrated into my current environment. Well APM will have the ability to leverage orchestration work flows to integrate with vFAppD to instruct a Blue Print to deploy a new applications server on the fly. Now that’s truly starting to sound like SaaS to me!
vFAppD is changing the way we build, deploy and maintain our application life cycle. Finally a Cloud Computing product for Next Generation Application Modernization. (hmm, App Modernization, could that be my next Blog
)
See you soon!
