Middleware has been a foundation of modern web-based applications for a long time now. Middleware has evolved substantially over the years and has provided a platform for developers to develop rich distributed applications. In today’s world the richest of applications can all be easily accessed via the web and can scale to accept millions of connections, thanks in large part to middleware. There are a variety of middleware types from application servers to message oriented middleware all working together to provide a platform upon which developers can develop and scale applications.

This landscape is continuing to evolve with the current focus on the cloud. Traditional middleware platforms are being exposed in public, private and hybrid cloud scenarios. In addition to these traditional platforms being exposed to the cloud there are new platforms being created focused on the cloud; these platforms are built from the ground up in the cloud and are being called Platform-as-a-Service or (PaaS). The PaaS solutions offer a rich environment for developers to develop against. Some example of these new PaaS environments include: Google App Engine, AWS Elastic Beanstalk, IBM BlueMix and Heroku. If you are writing new applications for the first time these are great platforms to consider as they provide a rich set of APIs and integration points to work with. However, there are challenges with leveraging pure cloud PaaS plays as they tend to lock you into a single hosting provider and limit you to public cloud platforms thereby preventing you from hosting on-premise.

In addition, most organizations these days have made substantial investments in middleware and host applications that are critical to their business on these middleware platforms. As these platforms have evolved so have the applications built upon them. With advancements in cloud computing now is the time to think about how can such mission critical applications can be moved into the cloud to take advantage of the flexibility and scalability that comes along with such a move.

Killing Two Birds with One Stone

Automation is the key to providing the flexibility to lift and shift middleware to a public and/or hybrid cloud. The starting point to achieve such a lofty goal is to ensure every aspect of your middleware platform is fully automated to begin with.

For example, ensure that the installation of the middleware platform itself can be done in a fully automated way. This means ensuring that there is a silent installation process, environment specific parameters can be fed into the process and post installation configurations can be performed in a fully automated way. When done right, it should be possible to install the required middleware platform of choice at any given time.

Automated installations is a great starting point and lays down a foundation for continued investment in automation. In truth, the installations occur with less frequency than configuration changes and application deployments, therefore it’s critical to think about the day-to-day business of configuration management. Any and all changes to the middleware environments in your software development lifecycle should be managed in an automated way. This can be achieved through a combination of custom scripting and tooling.

Choose the Right Tools

 It might seem a bit overwhelming at first to think about how you might achieve full automation of your middleware environment. Automated configuration and deployment automation have become big topics in the IT industry. The IT industry has rallied behind the term DevOps to refer all things related to automation in the development, operations and testing arenas as well as a focus on collaboration and communication across these teams. As a result there are dozens of automation tools out there to support you.

At the top of the list is choosing an orchestration engine. An orchestration engine provides flow control, security, systems connectivity etc. to facilitate the ability to perform automated tasks to your operations infrastructure. These days there are many tools to choose from such as IBM’s UrbanCode Deploy, Ansible (now owned by Red Hat), CA Release Automation (former Nolio), Xebia Labs Deploy XL etc.

Once you’ve chosen your orchestration engine, next it is time to think about how manage your middleware to be able to apply configuration changes and drive deployments. Often such logic can be provided through custom scripts or can be found in the form of plugins available for orchestration engines to reduce the amount of custom scripting. Tech Data has written a tool supporting the configuration management of Middleware called Talos. Talos has ability to discover a variety of middleware and import the configurations to create templates that are then automatically uploaded to an orchestration engine so that it can then be queued for deployment, thereby eliminating the need for scripting. I would always encourage you take advantage of tools out in the market (be it Talos or any number of plugins for DevOps orchestration engines) and then move on to the writing of scripts to plug any remaining gaps.

In addition to choosing the right orchestration tool, the integration of source control to version control of your middleware configurations is critical. Source control in an operations setting allows for comparison of current configuration settings to the past to facilitate troubleshooting, or can facilitate a rebuild of an environment to a previous state, both providing a very powerful way of recovering from a disaster.

 Making the Move into the Cloud

Finally let’s return to the cloud topic. Making the move into the cloud doesn’t need to be as daunting as it might seem and doesn’t mean you must think about completely changing your platform. If you’ve made the proper investments in automation in the management of your existing middleware environment it need not be throw away, or if in the cloud, a case of starting over.

By fully investing in the build out, configuration management and deployments to your existing on premise middleware environments, it should be a simple matter of turning the automation fire hose that is your orchestration engine of choice and firing it at any given cloud provider (be it AWS, Microsoft Azure or IBM Softlayer). You can now turn a traditional public IaaS provider into a PaaS completely customized to suit your requirements. Furthermore what’s in your public Cloud PaaS matches what you’ve always done on-premise and you can now move configurations between the public cloud and your on-premise datacenter, achieving the hybrid cloud solution so many folks strive for.  In summary, ensure your existing middleware environment is fully automated first, you will then find moving to the cloud becomes a trivial matter!

To find out more about how the Tech Data team and their tooling can help businesses successfully automate and manage middleware including migration to the cloud then please contact me on scott.bybee@techdata.com.