Organizations are rapidly adopting cloud technologies, but migration is still proving to be a challenge. What should you look out for? What applications make the most sense to migrate? How should applications get refactored to be cloud friendly? What are some lessons learned by those making the move? In this series of articles, you'll get practical advice from those who have experience helping companies successfully move to cloud environments. There is an area that deserves significant attention, and we hope that you'll participate in the conversation.
This InfoQ article is part of the series “Cloud Migration”. You can subscribe to receive notifications via RSS.
Do your customers or users really care whether your application is hosted in a tier 1 data center or the public cloud? Apparently not. But they do care about the experience they go through while using your service on a regular basis. Customers expect a quick and reliable service that doesn’t succumb to spike in traffic and consistently performs great. They also expect you to update your service deliveries on par with the latest technology developments.
To understand this with an analogy in business parlance, this translates to:
Is your existing application (say a healthcare app) infrastructure agile and flexible enough to let you quickly roll out a new feature say, alert a patient when it’s time to take pills by using a light and voice reminder, on a wearable (read smartwatch)?
In this article we’ll explore various benefits of migrating your existing apps to the cloud in detail so that you can make an informed decision.
Why Migrate?
• Servers crashed and tickets sold out for Big Bang’s ’2015 World Tour’ in Seoul. • Flipkart hosts biggest-ever sale, website 'crashes'. • A Chinese website set up so people can inform on corrupt officials has been inundated with so many visitors that it crashed shortly after launching. |
Elastic Capacity
The above occurrences are quite common and often grab more media attention than they deserve. Interestingly, although the first time a startup app experiences a crash due to flash crowd it’s more of a sweet than sour experience, you simply can’t ignore a crash.
Can your app survive an unprecedented spike in normal traffic?
To answer this question you may need to ask your infrastructure provider how quickly it can add capabilities to take care of the spike. Is your provider capable of provisioning (or deprovisioning) resources almost instantly (within minutes)?
Unlike traditional service providers, cloud services are designed with built-in tools to facilitate rapid elasticity which ensures that:
- Extra resources (example Virtual Machines, VMs) are provisioned to serve users responsively in case of peak traffic due to a flash crowd.
- Extra resources are deprovisioned (VMs are released back to the cloud) as soon as the flash crowd is gone. Saves a lot of money!
- Your application has on demand instant access to infinite resources.
To summarize this, at any point in time based on your workload, cloud services are capable of offering you the right provisioning, yes it’s neither over-provisioning nor under-provisioning – quick and automatic.
A traditional infrastructure provider may take hours (in reality days) to react to an increasing / decreasing workload as they require manual intervention to facilitate this kind of a responsive mechanism.
Note: Do not confuse elasticity with scalability. Elasticity is implicitly achieved by deploying on a cloud infrastructure whereas an application is scalable by virtue of its architecture. An application is scalable when it has the ability to accommodate more load when extra power (RAM, CPU) is added to a physical machine (Vertical Scaling/Scale Up) or extra physical machines are added (Horizontal Scaling/Scale Out) to the existing resource pool.
Apparently moving to a cloud service doesn’t always guarantee scalability. An application build on Standard edition databases of Oracle or SQL Server that do not support partioning (a prerequisite for a scalable architecture) may require huge re-engineering efforts to scale. NoSQL databases are highly scalable. Similarly, your application may be hosted on a multi-core server but they’re of little use if your application has not implemented multi-threading. This is the reason why Google has come up with a new language Go – to make concurrency (multi-threading) easier.
However, here you must understand that not all apps require elastic capabilities. For example, if you are a small business running an internal HR (Human Resource) management app only for 50 odd employees and you’re not expecting a significant growth in number of employees then this might not be a good use case to migrate to the cloud just for the sake of elasticity!
Cost Reduction
Cost reduction is achieved in two ways:
1. CapEx free expenses
- No capital expenses as you don’t need to buy IT infrastructure. Cloud providers do not require any long term commitment.
2. Pay as you go.
- Pay for what you use. Metered by Usage is one of the essential attributes of a cloud service. The service plans are based on number of hours in case of pre-configured VMs and GB in case of bandwidth, data transfer, storage etc. Configure and provision it right - you pay only for what you use.
This is quite in contrast with the traditional data center approach where most of the time you over-provision it and keep paying for something which you may use once in a blue moon!
Agility - Faster Time to Market
As an entrepreneur you must have the vision to look into the future, spot an opportunity, make a quick decision to build a new feature in your application, push code, release it to the market and surprise your customers (& your competition too!). In contrast to an automated infrastructure and a quick turnaround time offered by cloud service providers, traditional service providers have a bureaucratic request, order, procure and install practices.
Have you noticed how in 2015 the eCommerce businesses are gradually moving from mobile-first to app-only strategy? In case this is a suitable strategy for you, are you agile enough to quickly respond to this kind of a technology shift?
Focus on Your Business
As most of the IT related chores can be automated by opting for the cloud, managing it through traditional ways is simply a wastage of valuable time and energy as it doesn’t directly contribute to your core business.
Keep yourself away from the distractions and align and engage your workforce in higher value activities. Don’t forget – Time is the new money.
Increased Availability Reliability and Performance
If not in cloud service SLAs, where else can you find a genuine three nines and four nines (99.99%) availability? Although traditional data centers may claim to match the same figures, most of them actually don’t have an appropriate measuring and monitoring services required for an accurate audit for their SLAs.
To increase the availability and reliability cloud services are offered from multiple availability zones (AWS, Rackspace), federated network of public cloud providers and multi-hypervisor design to reach that elusive 100% availability!
Many existing applications, whose users were from a specific region that migrated to the cloud also reported a decreased network latency by selecting a cloud provider in the appropriate geographic region.
Disaster Recovery (DR)
As they say:
If there is a worse time for something to go wrong, it will happen then.
--- A variation of Murphy’ Law
Can your application withstand a disaster i.e. network/power outage, fire, earthquake, storm, flood or a physical damage to the building where your server resources are housed?
A DRP (Disaster Recovery Plan) requires meticulous planning and architecting to recognize a failure and respond quickly to mitigate any loss to the business. DR is a tricky subject because a majority of the businesses either don’t have a DRP or have it in format that is bound to fail due to minor gaps in the overall planning which they may have missed because of lack of rehearsal. They don’t realize this until they are actually struck by that rare disaster!
A battle-hardened DRP is critical for Business Continuity (BC). Cloud is resilient by design and you can choose the right set of tools and configurations so that your business is least affected by a disaster.
The Cloud is Secure
100% security is an illusion. If you have to make a decision based on the available choices, cloud services are in no way less secure than any of the existing systems in place. Cloud service providers are known for their innovations. It is apparent that at any point in time they would implement better physical and logical security practices than a standalone on-premise data center operation. Many cloud providers are now ISO, PCI DSS, EU Model Clauses and other global security agencies certified.
Moreover not all the applications require a bank grade security. Do they? In case you’ve highly sensitive data or your app is subjected to specific security & privacy regulations (such as HIPAA and HITECH) you can opt for Hybrid Cloud Service (recommended for Healthcare apps).
Every now and then the questions raised on cloud security are more of a FUD (Fear, Uncertainty, Doubt) than reality.
A Few Other Benefits You Can’t Ignore
Apart from the above mentioned benefits that are instantly available once you migrate to the cloud, there are various intangible benefits as well. Public cloud services are green because Resource Pooling is one of the essential characteristics of the Cloud.
Cloud services empowers you to efficiently work-from-anywhere with increase collaboration and efficient document control. While migrating may require a little re-engineering here & there it also opens up opportunities for you to think of implementing some cutting edge technologies like Docker (container based virtualization that has seen unprecedented adoption) for easier deployment. Also, with IoT taking the center stage in 2015 you may need to go for microservice architecture integrated with your existing apps to address the near future demands of your customers.
Which Applications are Suitable for Migration to Cloud Services?
As a rule of thumb most applications developed during last seven years – n-tier or the popular 3-tier web applications, batch processes and backend services might be a good fit for migration. Older applications may require more re-engineering effort. It all depends on the architecture of the existing web application.
There can be various factors which can make an existing application incompatible (or may require tremendous effort) for cloud migration:
-
A tightly coupled architecture, hardcoded configurations.
-
A database that is not supported by the cloud.
-
Requires specific hardware to function - hardware based encryption, mainframes etc.
-
Dependencies on various third party apps.
-
Licensing issues.
Here’s a look up table for a ready reference which might help you in quick decision making:
Packaged Applications Email, Collaboration & Productivity apps |
Healthcare Apps |
Legacy Apps |
Seasonal Applications Payroll Processing, Tax filling, School/College Admissions, A few Bidding apps, Event management etc. |
Stringent compliance; HIPAA - HITECH, U.S.-EU Safe Harbor, EU General Data Protection Regulation (GDPR) etc. |
Database Support – Microsoft SQL Server versions before 2008 R2, MySQL versions before 5.1 and Oracle database versions before 11g are not fit for cloud migration. They will require additional efforts - move to the supported version of the database. Limited or No Technical Support - Example - in case of MS Azure, Microsoft may provide limited or no technical support for any version of SQL Server earlier than SQL Server 2005. Azure VM images (templates) are available from SQL Server 2008 R2. |
Apps with Expected Traffic Spikes eCommerce apps during Black Friday / Shopping season. Royal weddings, World Cup - Sports sites, Ticket Booking apps. |
Banking Apps PCI DSS compliance, Security concerns, reliance on mainframes |
Licensing Issues – Your existing licenses can be used in the cloud only if it is under license mobility option like BYOL (Bring Your Own License). For most of the legacy apps this option may not be available. |
Apps with Unexpected Traffic Spikes Flash crowd due to mention in authority sites, a Chinese website on sharing info about corruption crashed shortly after launch. |
Apps with Geopolitical Constraints – Majority of the cloud data centers are located in North America or Western Europe. By design data in cloud is borderless unless it is configured with restrictions. If your country has some specific data regulations for your app you need to consider it before migration. |
ERP Systems Architecture bottlenecks such as tight coupling, hard-coded configuration, dependency on 3rd party apps and in some cases specific hardware based encryption. |
Startup apps/ Online games Size up or down based on your success/failure |
||
Big Data (Analytics) apps |
||
Super computing needs High bandwidth, enhanced networking, and very high compute capabilities – HPC [High Performance Computing] |
||
Microservices |
||
PoC, Development & QA |
||
Backup/Archiving/ Storage |
Action Speaks Louder than Words
Here’s a list of organizations which migrated their existing applications to the cloud. It also mentions the benefits they acquired after migration.
Serial# |
Organization |
The Challenge |
Migrated to |
Benefit |
1. |
US based video maker and photo slideshow maker |
The existing app was launched on their own servers. Facebook application went viral in April 2008, had nearly 750,000 people sign up in three days. |
AWS |
1. At the peak, almost 25,000 people tried Animoto in a single hour! To meet this demand in this period of three days their app scaled from 50 instances of EC2 usage up to 3,500 instances of EC2 usage. Note: EC2 Instances = Virtual Servers. |
2. |
India based online bus ticketing service |
Ran its operation from a traditional data center – the infrastructure could not effectively handle processing fluctuations - had a negative impact on productivity. The procurement or upgrade of server configuration were extremely time-consuming. |
AWS |
1. Overall cost benefit of about 30-40%. 2. Reduced latency (about 4x). Traffic to redBus increased 3 folds due to reduced latency. |
3. |
US based leading online travel company. |
They had to run Expedia Suggest Service (ESS) in locations physically close to customers to enable a quick and responsive service with minimal network latency. |
AWS |
Decreased average network latency from 700 milliseconds to less than 50 milliseconds |
4. |
China based high-end smartphone maker |
A solution that could provide the reliability and connection speeds that would satisfy users in various countries also it should seamlessly expand their services as the company grow. |
AWS |
1. 30% faster download speeds. 2. Shortened service delivery cycle - Quick launch of the app download center. 3. Superior access speed, reduce upfront investment cost. |
5. |
Finnish web-design company. |
Their virtual private servers worked nicely on a small scale, but when the number of projects grew they needed too many servers and full-time system administrators. |
GAE |
1. Can handle over 70,000 requests per second without their users noticing a thing. |
6. |
US based non-profit educational organization |
Initially they maintained a website for their growing video library for several years, but the platform experienced limitations as traffic increased. |
GAE |
1. Ability to support 3.8 million unique visits each month, along with 1.5 million practice questions served and answered every school day. 2. Stores a growing collection of 2,000-plus videos. 3. A system that easily handles usage surges. |
Conclusion
With tens of thousands of apps already migrated and leveraging the cloud it is proved beyond doubt that the cloud is real and has lived up to industry’s expectations. Irrespective of the location and domain, majority of the companies around the world are using cloud services in some form or the other.
Back in 2008, when the cloud was at its peak of inflated expectations, the CEO of a multi-billion dollar IT corporation had said:
The computer industry is the only industry that is more fashion-driven than women's fashion. Maybe I'm an idiot, but I have no idea what anyone is talking about. What is it?
The IT behemoths who ignored the trend are now viewed as a laggard with declining fortune. From last couple of years somehow they are scrambling for the cloud – playing catchup! Plan your move and act before it’s too late.
About the Author
Basant Singh is a software developer with 12 years of experience in application and database architecture. For the past 5 years he is leveraging his programming skills to power startups to go beyond the MVP stage. Currently he is passionately gearing up to work on his next project on Go Programming and Docker. In the beginning of his career, he has built applications for Fortune 500 clients from across the globe while employed in a Multinational Corporation. Blogs: Techno-Pulse and GolangPro. Twitter: @SinghBasant.
Organizations are rapidly adopting cloud technologies, but migration is still proving to be a challenge. What should you look out for? What applications make the most sense to migrate? How should applications get refactored to be cloud friendly? What are some lessons learned by those making the move? In this series of articles, you'll get practical advice from those who have experience helping companies successfully move to cloud environments. There is an area that deserves significant attention, and we hope that you'll participate in the conversation.
This InfoQ article is part of the series “Cloud Migration”. You can subscribe to receive notifications via RSS.