The shift to the cloud has brought about several solutions that make doing business easier. Whether it be cost savings, added flexibility or ease of use, companies are offloading workflows to the cloud and maintaining a competitive advantage.

It would not be an exaggeration to remark that cloud is one of the cornerstones that allowed the startup revolution.

In this article we will try not to discuss the benefits or cloud or define what cloud is, unless you have been living under a rock you surely know how wonderful the cloud is. We intend to highlight the scenarios that are not applicable for usage of cloud. All technologies have a place and something as wide as cloud computing has a large problem space, however there exist scenarios where cloud may not be applicable and under those circumstances it is prudent to use the proper tool and not blame the tool as poor craftsman.

 

#1 Software License

Clouds are best suited for open source deployments and this allows easy scaling out at a moments notice. This scenario changes when products like licensed databases or other proprietary softwares are used. The licenses prohibit such scale out leaving the cloud to be just another data center with licensing costs and cycles coming into picture. Under such scenarios it may not be prudent to use cloud. If the said software is available from vendor in their cloud, available on the cloud as PAAS (Platform as a Service), it should be considered. However using PAAS software has its own issues as described in the next point.

 

#2 Using PAAS software

One of the largest benefits of cloud is the PAAS software availability. Both open source and vendor specific technologies are available in a PAAS model. They have the benefit of being managed, aspects like daily backups, obtaining relevant statistics and even tuning are easily available and for a startup this means lower cost of staffing.

PAAS software can have potential issues like vendor lock-in if they are not available on other platforms. Similarly it can be hard to move large databases out of a cloud.

 

#3 Long term cost issues

Cloud obviously has a low cost of entry. Shared costs allow low cost of ownership to start with, there are no commitments to servers and billing can be as low as hourly, platforms may scale out or scale up on demand and for short durations during spikes.

However as predictability comes in and costs add up, cumulative cost of operating a cloud can be large.

A good strategy would be to plan long term move to data center.

 

#4 Data Security and Regulations

While cloud are secure but they may not follow all regulations, sometimes it is required that data resides in application providers data center. At times data may not be allowed to cross borders, these and many other regulations cause issues in using cloud. Odd strategies can come in place such as keeping data and application in separate physical data centers leading to issues that would be discussed in upcoming sections.

 

#5 VPN to a data center

At times clouds require access to applications within private data centers, to provide required layer of security the access is done over VPN. This however is a flawed strategy. In an increasingly microservice driven world it is prudent to access applications residing anywhere, but VPN is not necessarily the best approach. VPN’s tend to be slow and at times unreliable. They further need infrastructure and internal routers to be setup which can in a cloud only be done using software. This increases overall complexity and requires a team of network engineers to manage the application and should be avoided.

Prudent solutions to this case include building security over the application and exposing it over services. When such access is to be done over to consume a database, the challenges increase, under such scenarios it is recommended to not use cloud and deploy the application in a datacenter sitting next to a DB.

 

#6 Applications not designed for cloud

Cloud is designed to scale out, however many applications are not designed to scale up. At times products or softwares are not designed for cloud or the underlying system may not be available. Suitable precautions should be taken before committing to cloud.

Individuals have been known to build VM’s inside cloud VM’s, that is a strategy to fail.

Cloud like any tool has a set of use cases and when used in an unintended manner will only cause sorrow.