I forced a little the title (I know, cloud is not a verb, but it will be …). This post is about changes you have to make to your deployment, maintenance and monitoring software when you are deploying in the cloud. I will touch the financial aspect in a later blog post.
It is cheap to go with a demo solution in the cloud. When you factor the cost of time to buy, install, maintain and update software for a small to medium web/web service application, you realize the convenience and the huge steps undertook by companies like Amazon, Google, Microsoft are saving you (in the short to medium term) a lot. The reason cloud computing or SAAS/PAAS etc was invented is not an altruistic effort from fore mentioned companies. As any businesses they have peak periods and needed extra computing resources. The reality of those peaks covering 20/80 rule is overblown, I think is more 5-8/95-92 rule. In personal terms, think of the periods when you might need a personal aircraft and are forced to buy, what will you do it when it stays in the hangar ? Rent it to Netjets. But I digress, cloud computing is about renting data centers when they are not needed.
I will talk from our perspective, on pondering where to deploy our web applications (Fleet Gateway – www.fleetgateway.com).
We worked arduously to create a framework for synchronizing mobile applications (on Android and iOs) with a back-end system. The whole process started with FREE applications (Fuel Plus, Fleet Maintenance, Fleet Wallet) which later received the Plus treatment (independent apps) and ultimately got the back-end support (PRO treatment) through www.fleetgateway.com.
We knew that all requirements for the business software have changed when you are moving in the cloud. I will enumerate some of the differences at parts of the layers of the application.
Cloud vs Data Center
|databases back-up and restore||you can follow the standard procedures but the back-up files need a different treatment (see below)||simple with existent tools, can easily save on a NAS|
|files/directories back-up and restore||each SAAS/PAAS has its own tools, and third-party came to cover the basis; expect to pay for each server or per 1Gb of data transferred||simple with NAS, not special software is needed|
|master/slave configuration for databases||easily configurable in cloud, expensive|
|load balancing for web servers and web services||available and affordable||expect hardware or software solutions, very expensive on the hardware side|
|monitoring||from inside there are basic solutions but the same tools inside in the stand alone (data center) can be used in the cloud; or you can collect internally and export them periodically on your premises||Nagios is one of the examples, own developed software for performance counters, etc...|
What are the implicit problems when deploying in cloud?
- You hit the wall when the instances you are running are going down. YOU ALWAYS HAVE TO HAVE a second instance of the system in a totally different zone or even with a different cloud provider. Most of the time all your instances are going down, so is not the same experience as when in your data center you have a failure.
- The performance vs the cost of what you can employ in the cloud. Everything will be much slower than your own virtualized hardware.
- You have to be prepared to spend money for tools or write them in house for back-up recovery or even for monitoring. If you are deploying on Windows the perspectives are darker than in *nix machines.
- Sending emails from cloud is not that simple as in your own data center.