December 3, 2014 | Written by: Gary Zeien
Share this post:
As the drumbeat for hybrid cloud gets louder, more and more questions are emerging. Can I move my application to a hybrid cloud? What do I need to consider and what challenges will need to be addressed? As an architect with over a decade of experience designing client applications of different types, I thought I would share my perspective.
First off, it is important to fully explain what it means to move applications to a hybrid cloud. While there are a number of different patterns and approaches, let’s focus on two here:
• Moving an application in entirety to a cloud-based infrastructure while using applications and services on premises and in other clouds (such as software as a service, or SaaS)
• Moving a portion of an application to a cloud infrastructure while keeping the other part of an application on premises
(Related: Want to build, manage and secure a hybrid cloud solution? Learn more at IBM.com/cloud/expertise.)
To get a perspective as to the challenges you may encounter, a look at some of the different structural application types is important. Applications come in many forms, and how they are designed has changed over the years. Having a solid understanding of these types is critical to understanding if they can be applicable to a hybrid cloud.
Packaged applications that are configurable but have set deployment architecture
In other words, someone outside of your organization designed and created the application. They generally have set deployment architectures and have designed it to be integrated, more than likely using a messaging interface or application programming interfaces (APIs) such as SOAP or REST. They may have designed portions of the application to be partitioned to different servers for scalability, but it is more than likely they assumed the servers were on premises with a secure, high performance network. Remember, vendors often prescribe supported deployment options that they have tested. Don’t forget about licensing, either.
Custom-built applications designed and deployed as a single packaged unit
Over the course of my career in IT, I have seen and been involved in numerous different architectural approaches. Some were chosen based on popular technology (Oracle Forms and stored procedures), some based on available time (quick and dirty architecture) and some based on well thought out, layered, loosely-coupled service oriented architectures. Understanding how your application was designed and coded is key, since code does not always follow design. My personal experience in working with clients is that some types of application are not well suited to be partitioned to run portions on one environment and portions on another. No matter the intentions of the architects and developers, there are many applications out there that show a lack of skill.
Custom-built applications designed using principles of loose coupling and layered applications with well-defined APIs
As you can see, I am working up the spectrum here. The best-case application architecture for deployment across a hybrid cloud can be an application architecture that allows for partitioning of application components or subsystems to different environments and locations. By its very nature, this type of application architecture implies that the architects have thought about the implications of moving and rearranging the application to suit different operational characteristics, such as those provided by a cloud ecosystem.
Middleware-based applications that are configuration based
This type of application is not code as one may traditionally think of it. Rather, it is based on a configuration of a framework or environment, such as a portal application environment, commerce framework and so on.
From this short overview, I hope you can see that when you look “inside” an application you may find an architecture that aligns itself to the hybrid cloud application patterns described above. You might also find that it is not aligned. Keep an eye out for my next post where I describe 10 considerations for moving your application to hybrid cloud.
Do you need the expertise to build, manage and secure a hybrid cloud solution? Learn more at IBM.com/cloud/expertise.