Oct 26, 2016 | 4 min read

From Concept to Strategy: Prepping for Cloud Migration

By: Patrick Emmons
From Concept to Strategy: Prepping for Cloud Migration

The appeal of developing a Cloud strategy comes in the form of durability, flexibility, agility, security, the ability to scale horizontally, and cost savings. With so many benefits, it is tempting to jump straight to the punchline and educate you on how to make the migration. Before talking about moving an application to the Cloud, however, it is important to evaluate your current state and consider all potential risks, challenges, costs, and benefits.

In this article, I will walk you through the entire process from pre-migration considerations to a point where you are taking advantage of all the Cloud has to offer (and everything in-between).

Considerations

Colocation Hosting

If the application or website is currently being colocated at a dedicated hosting solution, then the business case for Cloud migration should be pretty obvious. Since you are currently pushing the site to a colocation center, it is clearly portable enough to move to a cloud solution. You will need to consider cost, but the additional benefits of a Cloud-based solution include:

  • Paying only for what you use
  • On-demand scalability
  • Durability / Failover
  • Disaster Recovery

On-Premise Hosting

If the application is hosted on-premise, you might not be in a position to move to the cloud for a number of reasons.

  • You may have just invested in new hardware
  • The application might be tightly coupled to on-premise resources
  • The application might not be portable and moving it would incur significant costs

Having an application that isn’t portable or is tightly coupled to any on-premise resources presents some concerns about architectural decisions. Those issues will surface if there is a server failure. If that server is disabled, it will take quite a bit of time to recreate the environment and then restore the application. For that reason alone, you should consider paying down the technical debt to make that application more portable.

Roadmap

It’s critical that before you get started on a Cloud migration you create a roadmap. If you are following an Agile/Scrum approach to development, you should make sure that the different stages of your roadmap can be completed within a sprint.

Take Your First Step

The first step is to identify the smallest possible actions you can take that will still add value. A couple of ideas are to:

Migrate the Database: Migrating the database is probably the easiest way to get started. If your application is properly architected using a 3-tier structure, you more than likely are just using the database as a storage repository.

You will need to migrate the database for each individual environment one at a time. If you have automated unit tests and confidence in your test coverage, this should be a fairly easy thing to accomplish.

Migrate Static Content: If you have any static content in your applications, this could be a good place to start your Cloud migration. By utilizing the storage options on the various Cloud platforms, you can achieve great results in being able to push that content out like a content delivery network (CDN). Some of the examples of when to use this approach include completely static websites or sharing static files.

Migrate your Testing and Staging Environments

Now that you’ve started with a small yet impactful first step, it’s time to think about moving your various Test and Staging environments to the Cloud. You should make each of these moves individually.

By recreating your various staging/testing environments in the Cloud, you can make the move without any risk. You shouldn’t destroy your on-premise staging/testing environment until you are confident that the Cloud-based versions are working. Therefore, if an issue arises with your Cloud environments, you can fall back to on-premises.

Virtualize (if necessary) and Fork Lift “As-Is”

Now, you are ready to make the big move and push the production environment into the Cloud. If your application is already hosted on a VM, it should be a pretty straightforward task to take a backup of the existing web server and restore it onto production.

While this is a straightforward approach and is definitely a quick way to get your app onto the Cloud, you should consider whether or not there are any external dependencies.

If the application is dependent on Active Directory or requires access to some on-premise file repository, then this migration isn’t going to be simple. It will require some forethought as to how to extend those dependencies into the Cloud. This might be an opportunity to increase value for the organization. In the case of file repository, this could open the door to creating a hybrid Cloud solution that involves storing that content on-premise and on the Cloud. By doing so you can have the file repository accessible locally but also get the durability of storing those files on the Cloud.

Maximize

Extend to Maximize the Cloud

At this point, you’ve taken advantage of the entry-level Cloud offerings. You’ve increased your organization’s agility, reduced the cost, moved Capex's budget to Opex. All good things. But are you done?

Nope. Now you need to take it to the next level. How? By leveraging some of the more interesting tools that provide automated horizontal scaling, load balancing, and dynamic DNS routing. Once you’ve established a VM in Cloud that you can auto-scale, a number of really exciting opportunities arise. You can scale horizontally, create cost-effective disaster recovery solutions, and increase your reach globally.

With your initial footprint in the Cloud, you can extend your existing application by leveraging tools such as notifications or workflows. A truly portable application allows you to leverage more DevOps tools and incorporate continuous integration and continuous deployment.

Planning your Cloud strategy is a large undertaking that should not be minimized. Doing the research and planning upfront will take you a long way towards maximizing the benefits of Cloud technology.

For more practical guidance on developing your overall Cloud strategy and roadmap, download our on-demand webinar.

Custom Software Development DevOps | Cloud | Agile | Data Management Learn More

About Patrick Emmons

If you can’t appreciate a good sports analogy, movie quote, or military reference, you may not want to work with him, but if you value honesty, integrity, and commitment to improvement, Patrick can certainly help take your business or your career to the next level. “Good enough,” is simply not in his vernacular. Pat’s passion is for relentlessly pushing himself and others to achieve full potential. Patrick Emmons is a graduate of St. Norbert College with a Bachelor of Science degree in Computer Science and Mathematics. Patrick co-founded Adage Technologies in 2001 and in 2015, founded DragonSpears as a spin-off dedicated to developing custom applications that improve speed, compliance and scalability of clients’ internal and customer-facing workflow processes. When he is not learning about new technology, running a better business, or becoming a stronger leader, he can be found coaching his kids’ (FIVE of them) baseball and lacrosse teams and praising his ever-so-patient wife for all her support.