Application Director Aria Automation Spring vRealize Operations

Application Director Video Series (2): Re-Deploying an App with a Different Database

In this vFabric Application Director video series, we are using a simple application to demonstrate the power of automated provisioning in the cloud. In the first video, Cloud Bursting: How to Auto-Deploy Apps Internally AND on Amazon EC2, we showed how simple it is to first deploy an app to an internal cloud, then how within a matter of minutes you can redeploy the same app to a public cloud using Amazon EC2 as an example. This works because Application Director standardizes applications into blueprints, making them portable across cloud environments.

In this post and the video below, we are going show you that not only does Application Director make it simple to move your app across clouds, but it also helps make your application more modular, allowing for you to swap out application components such as your database. In the example below, we will take the previous application blueprint and perform an iteration on it. By simply changing it’s Spring profile we will be able to swap the in-memory database the application had been using to point to vPostgres on an external node, and deploy it.

1. Start with Existing Blueprint 

We start on the contact app page to see the 1.0 version of our application. We see a single node with vFabric tc Server.

2. Copy Application, Rename 1.5, and Edit Blueprint

We will copy the application, drill into the blueprint, and change from a single node to a node array or clustered node, but leave the size set to 1.

3. Add New Database Node and Add Create DB Property 

In the image below, we have taken a new RedHat 64-bit node from the logical templates on the left and dragged it out into the canvas area in the middle. Then, we added a vFabric PostgreSQL server from the services on in the bottom, right panel. We are now adding a command property—it’s a string with the location to a P-SQL script. Then, we will add a property to create the database, default user, and main schema as well as the Spring Security schema. Then, we add scripts through something called actions—these configure the database.

4. Edit the Contact Web App and Point to New DB 

Next, we edit the contact web app—changing it to use vPostgres. We use a property to define the JDBC connection and create a dependency between the app and database. Basically, the contact app won’t finish being deployed until the database is ready.  We add a property for IP address and another property for the vFabric tc Server instance directory.

5. Modify WAR Installation Script 

In the WAR installation, we are going to do a few things. Most importantly, we change the directory of the tc Server binary and the JDBC URL. Then we change the environment to have more memory and use Spring profiles. After this is done, the external database is running behind our app.

6. Deploy the New App to vCloud

We create a new deployment profile—these don’t copy over because they are associated to the application version.  We select an environment (i.e. a specific cloud), the VM templates, and the logical networks. Then, we select the application properties for the node, services, and application components. We can over-ride anything at this step. For example, we could decide to deploy to EC2 with S3 as a location at this point.

7. Confirming the Flow of Install and Pressing Deploy 

Here we have a contact application cluster with a size of 1. We see the tc Server and the vPostgres workflows—install, configure, start, etc. The blue dots show a dependency where the application won’t continue with it’s install and restart until the database is configured. Then, we review the details in Step 4 of the GUI and press deploy.

8. Monitoring the Process 

Here we see the task details (top, left) with things like status, time, user, cloud provider.  The top, right panel shows the blueprint. Then we see the VM provisioning status and resolving IPs. Once the infrastructure is ready, we see the execution plan run in the bottom right panel. Many elements can be drilled into. We also have a middle-tier that can scale out as needed.

The Video: Re-Deploying an App with a Different Database

Learning more about vFabric Application Director: