Building an enterprise strategy for the cloud is a complex task being tackled by many organizations today. Some have just started thinking of moving to the cloud, while others have concrete plans in place.
While there’s no arguing that proper planning and research are required in developing the right cloud strategy, I’m also a firm believer in experimenting and prototyping — and cloud resources, by their nature, lend themselves quite effectively to this task.
While brainstorming for your organization’s “master plan” for cloud domination, you should start putting your ideas to the test TODAY to quickly assess what the best approach is to taking advantage of the cloud to best suit your business’ needs.
Many teams in various organizations worldwide are taking the ‘light’ approach to familiarize themselves with the unique infrastructure of the cloud and to optimize it to their needs.
How to go about it: The Bottom-Up Approach
In every organization there are applications/systems that are less critical (in the sense that they do not constitute the core IP or value of the organization). Moving these applications to the cloud is quite low-risk to the business, yet it carries direct and immediate value both in terms of cost and operation efficiency. Such applications can be, for example, online support forums, blogs, downloadable technical materials such as white papers or user manuals, or even the product’s catalog.
This “trial-and-error” approach of experimenting with isolated projects and gradually moving your business’ operations to the cloud – starting with your less-critical ones – has immense value. This “bottom-up” tactic creates a knowledge base and experience that can continue to be built upon to promote a more reliable transition to the cloud. This has proven to be a great low-risk way for enterprises to continuously tune their cloud strategy, making sure it progresses in the right direction. Furthermore, the actual experience gained by various teams is also effective in disarming any resistance and concerns about moving to the cloud that may arise.
A Step-by-Step Guide: Moving Your Application to the Cloud
To be practical, here is a simple blue print for migrating simple applications to the cloud.
In this example, we’ll use an online business catalog that will be deployed in the cloud with relatively minimal effort and cost. We’ll also review some very cool extra benefits that can be obtained when taking this a step further.
Online Catalog example:
Before deploying your product catalog in the cloud, some decisions need to be made:
- Which Content Management System (CMS) should you use to publish your content?
You could choose an off-the-shelf CMS framework such as Drupal, Joomla or the Ruby based Spree and customize it to suite your needs. Another option is to code your online catalog in Ruby, PHP, or another web language (sometimes this is the quicker approach for migrating legacy applications to the cloud; it maintains all existing features and data models).
- Which infrastructure should you choose – a managed or a non-managed platform?
Amazon’s servers infrastructure requires IT resources on your end for setting-up, configuring, and managing the environment. On the other hand are managed hosting platforms, such as Heroku (which is for Ruby applications only). With Heroku and its add-ons, implementation time can be faster, and scaling and management of the application is provided as a service.
- Which data service should you choose?
On the data front, you also have two options: manual installation and configuration or a managed data service. For simple data storage and retrieval, Amazon S3 is a great solution for media files such as images or videos. It is easily accessible from the web front-end nodes and provides high data availability.
For more extensive data needs that require a database for robust querying – you could, again, choose between doing it yourself or selecting a managed Database-as-a-Service solution to guarantee high-availability and proper scaling. There are a few examples for managed databases in the cloud, and naturally I recommend ours as the easiest to set up and start running :). Xeround offers auto-scaling, which simplifies dealing with additional throughput when needed and also guarantees availability, even in the case of failure. In the future, we plan to also provide a limited-size database for free.
Regarding the migration of your database to the cloud – In many cases, I think the schema for the database can be similar to or a subset of the original database. This would make the population of the database by an ETL tool easier.
Although this may seem like a complicated project (hopefully not :)), the purpose of experimenting in this case is to learn how cloud environments behave, and how the cloud, and the platforms running on it, can save you both time and money.
During the migration process of their chosen application, I believe developers will realize that the cloud infrastructure will empower them to focus on the coding and development of their application and can greatly simplify their deployment operations. That way, they can get more done from a small team or even a single developer – leaving cloud’s various services to take care of the IT hassles. With cloud resources and development/production stacks acquired and auto-managed with just a click of a button, a lot of time is saved for what really matters.
And for the finale: the cool extra benefits organizations can gain by moving to the cloud:
For large enterprises, business frequently comes from across the globe. Being able to serve customers from a closer geographical location provides a better user experience, consequently increasing conversion and revenue.
Once the cloud blueprint is implemented on a single data center, it can easily be replicated to additional geographical sites like the US, Europe or Asia (where Amazon EC2 or other cloud service providers operate their data centers).
Free tools, such as ipligence or ip2location, can be used to redirect users from various geographical locations to the closest deployment of the website. Database replication configuration can be used to sync all the sites (as opposed to using ETL), and S3 can be used as a source to Amazon CloudFront for distribution of media files.
These extra benefits may prove to developers and to enterprises how powerful cloud services are when dealing with global production environments, all while having to do less coding and being able to use more available tools to get things done quickly and at the right scale.
The cost of getting your application in the cloud:
Surprisingly, the cost of such a prototype is relatively low since many of the required services or technologies are either available completely free or charge, as a limited ‘freemium’ version, as a trial version, etc., In addition, less resources are needed during development, and smaller scale servers can be used, which in turn carry lower monthly costs. The most expensive resource for a developer would be their time – but it would be a worthy investment!
BTW- you may also wish to check out some free development resources in the cloud to help with your development efforts!