With all
the talk about the cloud, and an increasing understanding of its value and
importance, there are elementary steps that must be taken before migrating your
application to the cloud. For advanced
developers, these may seem second nature, but with today's technological
platforms that enable easy migration, it has now become possible for beginner
and intermediate developers to use the cloud. These tips can be beneficial for
them.
1. Is your app a web app? It sounds basic, but before you migrate to the
web, you need to make sure that your application is a web application. Today, there are simple tools that can easily
convert it, but make sure to convert it.
2. Is your app native .NET/Java? Before you start to migrate your app to the
cloud, understand what it is you are transferring and the technological aspects
of it. This is important because you
need to know which clouds support your stack of technologies.
3. Do you use any interop to other technologies? Prepare
yourself. If you do use any interop, it
is important to make sure that those technologies are also supported by the cloud you are targeting
4. What database type do you use? When you are planning to migrate, make sure
that the target cloud can support the database you are using. If not, can you change the database? Alternatively,
you can consider running the application on the cloud and connect to an
on-premise database; some DB vendors already support securing these channels.
5. What kind of management/monitoring tools do you use on your app? This is particularly important to check if
your app was not originally a web app.
Not all management and monitoring tools can be used on the web (and even
more so, not on the cloud), so confirm this before you start. If your tools are not web-compatible, can
you recreate them for the web?
6. Can you assess the costs of cloud deployment of your app? Costs are
an important factor when considering migrating to the cloud. Explore whether you can optimize your costs. For example, what are the payable elements on
this specific cloud and will you be able to optimize those elements to maintain
the lowest possible costs? Some will try
to scare you away from the cloud with forewarnings of high costs, but there are
cost-effective ways to use the cloud.
7. Determine the security risks that cloud deployment will reveal. There are two steps to this. First, review the provider's regulations and
trust level. Second, know that security
hazards can be created by making the client available from any PC that is
connected to the web.
8. Upgrade costs. Figure out what the costs and technical
implications of upgrading your app are, as well as changing it after deployment.
9. Flexibility and transferability. Have you checked if you will be able to move
between cloud providers? Are you locked into a specific provider after the app
is deployed? Sometimes, when choosing a specific cloud platform, you have to
make adjustments to fit their specifications.
This may put restrictions on your ability to transfer to another cloud
platform.
10. Scalability and redundancy capabilities. Are you
able to provide full dynamic scalability and redundancy capabilities to the
server parts of your app? It is important to realize that these are directly
affected by the technologies that you use, and their ability to scale. When it
comes to ability to scale, if you cannot scale dynamically, you simply can’t
move to the cloud.
These are only some of the important concerns you should
review after you have decided to step onto the cloud, but before you begin the
migration.
Thanks to Itzik Spitzen of www.visualwebgui.com for assisting with
this article.