Workstate Insights Blog

Lift and Shift Complete? Great! Now Evolve Those Cloud Apps

January 05, 2017
   

CloudShift_Evolve_Apps.jpgCloud migration is a multi-step process, and although each step is important, the final step – Operation and Optimization – is crucial. I discuss how to optimize your applications after a Lift and Shift in detail in my eBook on Cloud Readiness and Planning.

Optimization is a critical follow-up task that is often overlooked. Optimization is more than adjusting virtual knobs and dials to get the best possible use of your cloud resources. If you consider evolving your cloud applications as a type of optimization, you can reap new benefits from your earlier Lift and Shift to the cloud.

Here are a few examples of improvements that you may tackle as part of your cloud application evolution.

  • Enhanced Identity and Access Management - Replacing or augmenting the current application authentication and authorization mechanisms with upgraded cloud solutions such as cloud directory provider, author logins, or on-premises SSO integration.
  • Enhanced Application Security - Improving application security auditing and testing beyond what was available in the original application.
  • Enhanced Scalability and Availability - Investing in cloud-based scalability and availability features such as load balancers, auto-scaling, cross-datacenter redundancy and failover.
  • Enhanced Features - Augmenting a modest set of features that can be designed and developed within the planned timeframe of the application migration. The application will include the feature enhancements when delivered to the cloud.

Digging a bit deeper: Scalability is a frequently cited cloud migration benefit, and Enhanced Scalability can be a good example of evolving your applications toward that end. If you completed a simple Lift and Shift, you certainly gained access to easily scalable resources at the server level. Things like CPU, memory and bandwidth certainly meet this benefit; but it’s not the end of the road. Your application development can continue to evolve, and session state is a good, quick example of one way to do this.

Session state is a way to keep track of information about a current visitor to your website. It’s important for a number of reasons; one being the convenience of a user. A classic example is tracking of your shopping cart items on commerce website. The goods in your cart are persisted during your entire visit (or session), and this persistence is your session state.

Simplistic session state management is frequently done in memory, and for a number of reasons, this limits application scalability to the amount of memory you have access to on a single server. Fixing this problem is a classic evolution scenario. A typical solution, which is available both on-premise and in the cloud, is to manage this data in a database such as SQL Server or MySQL. This, (and a few other similar techniques), sets the limit to what you can do on-premise.

Cloud platform vendors recognize session state management as an important cloud design pattern. Amazon AWS, for example, recommends moving your session state into their NoSQL DynamoDB service – a service designed to be scalable from the ground to the cloud, and as a solution for session-state type data. Microsoft Azure also solves this with a specific service for session state called Azure Redis Cache.

Evolving your applications to utilize cloud services in this way is an additional opportunity to reduce the cost, and improve the performance of your applications.

Get the FREE eBook Now