Migrating to the Cloud (Server and App Perspective)

cloud migration

The cloud has proven itself to be the next innovations in computing since the invention of the Internet. The ability to work, share, and manage without being confined to one geographical location or even to computational resource is a boon in today’s fast business lanes. However for many business, including app developers, it is important to delve into the specifics behind cloud based services before taking the decision to migrate. 

Why migrate to the cloud

When seen from the point of view of app development, web design and web server hosting, as well as maintenance; the cloud really shines as a viable solution. 

Everything is Virtual 

Every server based in the cloud is in fact a virtual software and dynamic in nature. Virtual dynamic servers have several advantages: the main advantage for developers is that the server can be tweaked instantaneously, without any need to shut down hardware (in most cases). Most required computational changes (hard drive space, CPU resource etc) can be made to the server, even when it’s online and functioning. This spells wonders for the developers, who can save a lot of time during the testing and management phases.

Cost Efficient

Once cloud services are employed, no expensive infrastructure is needed on site, as all the applications and servers are running from a centralised location. However the real cost saving is found when resources are used in a fluid manner – scale your app exactly to the rate of demand to ensure your app is running smoothly and more importantly cost efficiently!

Reduced Maintenance Worries

Depending on the service you require, the cloud server can be entirely managed by the service provider (much in the same way a managed server package would work) or you can have full control. This flexibility ensures he developer can focus on more important issues when required and on the app itself.

Wide Range of Environments

From a server perspective, any cloud server can be fitted with a desired OS – some service providers even allow for custom OS images to be uploaded. This is a hugely flexible approach to a process that was once blocked and controlled by hosting companies. And once a cloud-based infrastructure is in place, developers can choose from a wide range of web based applications and services.

While all the above instances are targeted towards server management, there are some features of cloud softwares that are exceptionally useful for application developers. In fact, SaaS Delivery model of cloud computing (Software delivery as a service) is dominating the application market today. With more and more organisations moving to the cloud, application developers have found a new dominion for development. 

Migrating to a Cloud Server

Application developers can migrate to the cloud, in many ways.

For example:

1.Build the Application from Scratch: Re-develop the application with the cloud in mind – in this case, the old application is used as a base or referral to build the new one

2.Move the App to the Cloud: Move the application directly to the cloud, and make the necessary changes to make it cloud-ready and work with the cloud server environment.

Migration from a localised set up to a cloud server is easy, if done in a properly planned and careful way. Here is a general set of guidelines to follow when moving to a cloud server:

Identifying An Appropriate Cloud Service:

Identifying cloud hosting companies that offer flexibility in resources and pricing should be the core principles when looking for a service. Some hosting companies have simply dressed virtual hosting in a cloud persona limiting users to a packaged model of the cloud server. 

Server Set Up:

Setting up the newly purchased server is the next step. This can be done in one of the 3 ways. There are many other methods, but these three are considered to be the most reliable of them all. Most service providers provide at least 2 of these ways, while the best ones support all 3 options, and more.

1. Build your New Server from Scratch: This is just like building a new server. Based on the support, an OS is installed on the new server, necessary tools, utilities and back-ends are installed, and server configurations are done.

2. Copy File System (OS): The file system from the already existing server is copied over to the new server using a live disc. In this method, the old server machine is booted off a live disc, connected to the new server, and the system files and configuration files are all uploaded to the new cloud server.

3. Direct File System Upload: This option is available only if a Linux based OS is used as the base for the servers. Most service providers allow users to upload the entire file system directly on to the new server using a web-based drive upload tool. This is done by booting the live disc, and uploading the file system to the new server. 

Post Configuration:

After the server has been configured, web-based applications may need some tweaking to start functioning properly. This must be taken care of immediately; as such problems do not get solved without user intervention. Installing the relevant frameworks within the server environment (e.g. LAMP stacks, phython environments, Ruby etc) are obviously important and changing configuration settings within the app are essential.

Load Balancing:

To understand the true potential of a cloud server one must ensure the server is set up to automatically handle flucutation in server load. As such, the server must then be configured for proper load balancing, using the server control panel usually provided with the cloud servers. There are various guides however this load balancing guide for the cloud is particularly apt. 

Conclusion

Analysing the needs of the organisation and determining whether those needs are fulfilled by moving to a cloud server-based environment constitutes over 50 % of the migration attempt. The rest involves actually taking the previously planned steps towards choosing, configuring and deploying the cloud infrastructure. With careful forethought and proper execution, migrating to a cloud environment can be a simple, effortless task.

Elastic Hosts cloud hosting offers a variety of sevices to web developers and IT professionals alike including cloud reseller options.

Image by Quinn Dombrowski

You might also like

  • Thank you for the great post on this important topic.
    The migration to the cloud of brown-field applications that are data-center-oriented and that were not built with cloud in mind is not trivial. As stated in the post, such migration should take care of several stages of the application life cycle:
    1. spin-up of plain-vanilla server images
    2. download and installation of the full application stack on the servers
    3. post-installation configuration
    4. start-up of the application
    5. load-balancing the application to provide elasticity (by spinning up more machines as load increases) and resilience (by spinning up new machine as one machine goes down).
    Applications that were written for static data center deployments usually count on pre-installed and pre-customized servers, and are also not built for such elastic nature of machines dynamically added and removed during runtime.
    The first suggested strategy of complete re-design of the application to address these aspects is usually a painful process that inhibits many organizations from actually migrating to the cloud.
    The second suggested strategy of migrating to the cloud without code change is the preferred way, but many do not know how to address that, and are intimidated by a gigantic and monolithic migration that they cannot plan and assess up front.
    Luckily, there are some simple guidelines that can help you achieve this migration task in a very controlled and gradual process.
    On my recent blog posts I covered such best practices as learned over accumulated experience with such cloud on-boarding projects. On my post I also introduce a new class of platforms that implement these best practices to ease the migration process and offer automation of the full application lifecycle management, from bootstrap to teardown.
    You can read more about that here:
    http://horovits.wordpress.com/2012/08/16/cloud-deployment-paas-devops-cloud-automation/