What are some of the gotchas in application integration when migrating to cloud computing environments?
First, it’s important to note that there are three main types of cloud computing environments. Each of these environments has its own set of “gotchas” that you have to think about before making the switch. The three types are Hardware as a Service (HaaS), Platform as a Service (PaaS) and Software as a Service(SaaS).
The biggest “gotcha” most people hit when migrating an application to a HaaS cloud is to have the misconception that a cloud environment is inherently more stable, or more scalable. In reality, cloud-based servers are more likely to have failures, specifically because there are more servers running in them.
Additionally, a single server is not any larger than a traditional server; in fact, they are usually smaller. The advantage that a HaaS system has is that you can easily and rapidly launch a very large number of these instances, both for redundancy and throughput.
With PaaS clouds, one big “gotcha” is that you really are locked into the vendor you choose. With this type of cloud, you typically do not control any of the underlying resources, so you must entirely build your system around the framework or platform you are provided. You can’t design around the thought that your application will only be running on one server; instead, you have to utilize the specific APIs provided by the platform you choose.
With a SaaS cloud, a large “gotcha” is that you’re not actually developing your own software. In fact, you’re entirely reliant on the vendor and software that is being provided to you. While these services offer the lowest entry-level for development, they also offer the least amount of freedom, and you’re not actually able to run your own cloud-based application. Some SaaS vendors (such as Force.com and Google) offer a combination of PaaS and SaaS environments to help with these sorts of limitations.
With all cloud computing vendors, the biggest thing to keep in mind is that failure is inevitable. Anything that can fail will, so it’s how you manage and mitigate that failure that defines your quality of service. The worst thing you can do when migrating your applications to a cloud computing environment is to assume that just because it’s in the cloud, it will be fault-tolerant, and scale. Always have a backup plan.
Dig Deeper on Cloud application development
Related Q&A from Chris Moyer
Can an application have Python as a container, run SQL queries on an external Microsoft SQL database and publish the results on an Apache web server ... Continue Reading
The wait is over, as you can now trigger Lambda functions with SQS messages. Follow these steps to get up and running with this new capability. Continue Reading
Event-driven computing means no IaaS provisioning and no data center to run. Can I migrate all enterprise apps to be event-driven? Continue Reading