Home > Blogs > VMware vFabric Blog


Doing Agile? 10 Features of an Agile App Platform (Part 2)

header-agile-business-guy-jumpingIn Part 1 of this blog post, we outlined 2 Key Agile Themes (delivery efficiency and adaptable designs), Then, we used the themes as a guidepost to identify 10 features of an application platform. In Part 2, we provide examples of how the vFabric Application Platform delivers against these 10 features:

1. An application framework that minimizes coupling
2. An application framework with great support for Unit and Integration Testing
3. A messaging technology that can run anywhere
4. An application platform that supports performance testing in the development cycle
5. An application server that streamlines application deployment
6. A web server that can be deployed quickly and consistently
7. A cloud-enabled application provisioning solution
8. Platform components that support “Database as a Service”
9. An adaptable database solution
10. A performance monitoring tool that automatically keeps pace with application changes

1. An application framework that minimizes coupling

The Spring Framework offers a great example of minimized coupling:

  • With Inversion of Control and Dependency Injection, developers can configure application objects as plain old java objects (POJOs) without having to extend any Spring specific classes. This means that when we use Spring, there is minimal dependency of application code on the framework.
  • Spring supports Aspect Oriented Programming (AOP) to allow the implementation of cross-cutting concerns while minimizing dependencies.
  • Spring offers hooks into best of breed commercial and open source solutions. For example, those for data persistence (JDO, Hibernate, TopLink, etc.) use Spring Template classes to minimize coupling.

2. An application framework with great support for Unit and Integration Testing

The Spring Framework team considers developer testing to be an absolutely integral part of enterprise software development and offers the following testing techniques to increase productivity during testing:

  • Unit Testing – You can use mock objects (in conjunction with many other valuable testing techniques) to test your code in isolation. For example, you can test service layer objects by stubbing or mocking DAO or Repository interfaces without any need to access persistent data.
  • Integration Testing – The spring-test.jar library contains valuable classes for integration testing without requiring a deployment to your application server or other deployment environments.

3. A messaging technology that can run anywhere

vFabric RabbitMQ can connect applications and components built using completely different technologies:

  • All major operating systems support RabbitMQ and over 200 client interfaces are available for languages such as Java, .NET, Python, Ruby, PHP, Perl, and more.
  • Rabbit supports a full range of Internet protocols for lightweight messaging— including HTTP, HTTPS, STOMP, XMPP, and SMTP – enabling you to connect nearly any imaginable type of applications, components, or services.

4. An application platform that supports performance testing in the development cycle

The vFabric Platform leverages Spring Insight technology to help developers track potential performance bottlenecks before they become major issues. Without changing their code, developers can use Spring Insight to detect, analyze and diagnose application performance issues right from their desktops, before committing potential performance bugs to the main build.

5. An application server that streamlines application deployment

vFabric tc Server provides the following capabilities to help streamline the configuration set-up and application deployment:

  • Scripting capabilities allow setting up configurations once, and then transferring them almost verbatim through the hand-off process.
  • Template driven deployment configurations allow common configuration meta-data to be re-used across multiple applications.
  • Hot deployment capability means applications can be deployed without having to restart the server.
  • Easy integration with continuous integration servers allows continuous deployment pipelines.

6. A web server that can be deployed quickly and consistently

VMware vFabric Web Server is pre-compiled, pre-configured and pre-patched to reduce deployment time from a typical 3 days to 30 minutes.

  • It has a consistent installation process and structure across all supported operating systems, and installation is via self-extracting archive, with no requirements as to install location.
  • You can patch and upgrade multiple instances as well, for further reduction in deployment and support time.

7. A cloud-enabled application provisioning solution

VMware vFabric Application Director automatically configures and deploys application topologies across cloud services.

  • Organized workflow and dependencies create orchestrated deployment plans for any cloud, application requirement, or IT compliance policy.
  • Stored scripts automatically install, configure, start, and stop applications and application infrastructure components.
  • An open command line interface (CLI) allows for integration with continuous build systems and release automation tools.
  • Application blueprints provide a customizable catalog, pre-populated with standard application components and scripts for easy reuse.

8. Platform components that support “Database as a Service”

VMware vFabric Data Director allows users to leverage the construct of a virtual machine to automate the deployment and management of databases in the enterprise.

  • DBA’s and Ops team members can create database templates and security models for developer self-service provisioning.
  • Databases provisioned in VM form remain under central management by vFabric Data Director.
  • Routine tasks like updates, cloning, and back-ups can be securely automated by operations teams to provide DB as a Service for your enterprise.
  • Innovative Database Cloning – The average production database has six clones for development and test purposes. Each clone often takes several days or weeks to create. The linked database clone capability of vFabric Data Director reduces cloning time to minutes regardless of the source database size.

9. An adaptable database solution

VMware’s vFabric GemFire noSQL (key-value pair) approach to persistence provides domain model flexibility.

  • With GemFire’s PDX serialization, you can use old and new versions of domain objects together in a distributed system, if the versions differ by the addition or removal of fields.
  • This compatibility lets you gradually introduce modified code and data into the system, without bringing the system down.

10. A performance monitoring tool that automatically keeps pace with application changes

VMware vFabric Application Performance Manager is able to track real-time changes, transaction patterns, and inventory. It even keeps up with the starting, stopping, and moving of virtual machines.

  • A single pane of glass that automatically keeps pace with application changes.
  • A fully extensible, standards based framework allows applications to incorporate any software resource under management quickly.

If you would like to contribute other ideas about missing agile features or examples of how vFabric delivers, please share with everyone in the comments below.  We would appreciate any feedback!

Beth-Brown-BioPic_80x80 About the Author: Beth Brown has over 15 years of experience in optimising software development and application lifecycle management processes across multiple domains. Beth currently works within the vFabric Cloud Application Platform division as an agile services delivery specialist. Prior to joining VMware, Beth was the Pre-Sales Manager for Southern Europe at Microfocus; before that she ran Borland’s Northern European Technical Services Division. She has successfully led Agile, ALM and SOA transformational change programmes across large scale enterprises such as BT, Cap Gemini, and NATO.

One thought on “Doing Agile? 10 Features of an Agile App Platform (Part 2)

  1. smtp mail server

    Appreciation for the best writeup. It was your pleasure consideration the idea. Search challenging to be able to considerably included flexible from you! Furthermore, exactly how can all of us keep up a new correspondence?

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>