December 16, 2014 | Written by: Gary Zeien
Share this post:
In my previous post, I reviewed a common set of application types and highlighted the importance of understanding the type of the application that is being considered to move to a hybrid cloud. To help in the analysis of your potential to move an application to a hybrid cloud, I have put together a top 10 list of items to consider and investigate. Of course, there are more than 10, but these are the most typical and important items to consider.
1. How it is designed and built? Consider whether your application is an off the shelf product, custom built or the configuration of a middleware platform, such as a portal.
2. What does it interconnect with and how are those connections designed? You should know if the interconnections are synchronous or asynchronous, as well as what mechanism the interconnection is achieved with, such as message queues, SOAP, web services or Java Database Connectivity (JDBC). In addition, it is important to know if an application is “chatty,” meaning lots of small messages are passed between the layers in the application.
3. How does it change or evolve? You might need to write code, or the changes can be done through configuration parameters.
4. How securely does data need to be passed or stored? The data may need to be encrypted “in motion” or “at rest.” Also, there may be specific certification levels that are required for the application environment and data.
5. How does the application connect to its database and is business logic in the database tier? An application will need to connect to a database. It is important to know how it does this. Is it using a technology that is suited for communication over a WAN? Also, is the application dependent on logic running in the database, such as stored procedures? If so, this could change the behavior of the application if the layers are not co-located.
6. Is the application designed to run in tiers (layers)? Think about if these tiers, as they currently exist, can be partitioned into different environments on different servers, or potentially in different environments. If the application is designed to run in tiers (such as web, app, data) consider the security and latency requirements between the tiers. Are the tiers independently scalable?
7. Is the application dependent on a specific operational environment or middleware platform? Ask yourself if it is a heritage transactional application, and whether it keeps data on a mainframe or existing “data farm.” Many clients use a data farm concept where all data from multiple applications is stored in a common, shared environment.
8. How is the application monitored? Your application may be dependent on specific infrastructure to be in place to be monitored or managed, or might depend on middleware monitoring.
9. How does the application react if something goes wrong? Consider whether your application handles exceptions, or if it is designed to report problems to a specific infrastructure. Do all tiers report back to the same mechanism or do they report to the “upper” tiers? Is the application self-healing when it encounters an exception or problem?
10. How is access to the application controlled? Your application may depend on an existing, on-premises directory or authentication mechanism. Is this part of a single sign-on environment?
As you can see, there are a number of application types that exist and architectural elements that need to be considered when moving applications to a hybrid cloud. In upcoming blog posts, I’ll explore these considerations more, and discuss why they are important. I’ll also examine why the dynamic nature of an application can impact the choice for moving it to a hybrid cloud.
What other considerations might you think about before moving to a hybrid cloud? Comment below to share your thoughts.