Is the Cloud Right for me?
With many people, startups, and media raving about the Cloud, as an Information Engineer I find it is important to weigh both the advantages and disadvantages of any technical solution. There are a number of disadvantages as well as excellent advantages to Cloud based solutions. Some of the disadvantages being privacy, security, and performance (network). Some of the advantages being initial startup cost, manageability and speed.
What is the Cloud?
Everyone’s definition of the Cloud is different, and I do not to intend to define it, but rather note a few commonalities I have seen in the wild about what the cloud is, and what it means to the average individual, business, and engineer respectively. For the purposes of this article, we will consider the cloud to be any hosted application, API, or server which is managed by a third party, and often times run on a virtualized infrastructure.
What make the Cloud great
The Cloud is an excellent resource for many companies and organizations looking to implement a low-overhead IT infrastructure in a short amount of time, with a small amount of initial investment. One thing that many companies don’t realize; however, is that the cloud is by no means a silver bullet to all of their IT problems, and can in fact be more expensive in the long-term.
Cloud computing allows many companies to test new products and services in a short period of time, without having to lease data center space, set up a network infrastructure, get an IP netblock from their Regional Internet Registry (which is even harder now that the IPv4 pool has run out), set up a virtualization infrastructure, and configure their servers; which is what is required to get the equivalent of simply entering your credit card information and spinning up a cloud-based server instance or application.
However, for many companies having a dedicated set of hardware and IT staff or consultants to manage it will often times be less expensive in the long term, and their data will in fact be safer and perform better, depending on their business needs.
Auto-scaling? Is it real or a myth?
Real Cloud Costs
If you rely solely on the Cloud, all of your intellectual property is in another organization’s control (companies go bankrupt, mistakes do happen even for the big guys, etc ). We have seen problems with this such as when Flickr lost a user’s account. Everyone makes mistakes, even cloud providers, although unlikely. The simple fact is that when your information is on a third party system, you have much less control over your data.
The costs of the Cloud have a breaking point, an average high-end Web or app server is about $4,000 including the hardware and software required to run it, not taking into account leasing a space at a data center, purchasing the networking equipment and paying for bandwidth, which contrary to popular belief, can be done relatively cheaply. The cost of a reserved high-CPU instance is $1,820 per year. If you replace your hardware every three years, then Amazon’s EC2, for example ends up costing $5,460, and there is no equity in the equipment which can be sold when it’s decommissioned. For most businesses purposes, the hardware likely won’t need to be replaced after 3 years, but every business’s hardware refresh policy is different. The bottom line is, although EC2 has a much lower start-up cost in the first year, over the long term it is actually more expensive, without taking the cost of hiring IT staff or consultants on to manage the system, which can drive up the management cost.
Cloud Performance Concerns
Many servers and services hosted in the cloud are shared resources. Although many cloud providers do know what they are doing in terms of balancing resources, there is the possibility that other tenants on a shared host could consume resources affecting your machines performance. Also, for most cloud instances, the network bandwidth speeds are painfully slow, so if you have to transfer a large amount of data, it can take a long time. Whereas if you have your own network and AS number, you can get extremely high rates of transfer between multiple sites where your systems reside.
Another concern is security. Although many cloud providers offer SSL for managing instances, it can be difficult to manage something like a directory infrastructure using the cloud. Typically, authentication systems such as LDAP, even though it can be ran over SSL, is not something that you want exposed to the public Internet. SSL is still susceptible to man-in-the-middle attacks .
Benefits of the Cloud
The cloud is an excellent resource and advancement in computing. It allows companies and individuals alike to spin up servers and application platforms in a heartbeat, without all of the overhead and complexity of managing the service themselves. Although the cloud is not a be-all-end-all solution to IT problems. Like any technical solution, it has to make sense for the business or organizational goals at hand, and depending on the projected lifetime of a project, product, or service, the cloud may or may not be the right solution. For small projects, test launches, and small business, it may make sense; because the entry to market is much lower.
Even Github.com, a large source code hosting service built on cloud computing technology utilizes dedicated servers in combination with cloud-based servers. Many organization may find that a hybrid solution such as Github’s works well for them, but one must weigh the benefits and needs of the business against performance, cost, security, and lifespan of a project before making a decision. Generally, long-term projects and core infrastructure is best hosted on dedicated servers, and short-term projects, for startups, or projects that are testing a new product or service are well suited for the cloud, but extra measures must be taken into account for the security of the service or platform.