The Benefits of Cloud Computing

No replies
Dave Kinchlea
Dave Kinchlea's picture
Offline
Joined: 2009-04-22

The benefits of using cloud computing are many and significant, if availability and global performance is important, then the cloud is your friend.

  1. Almost zero startup costs -- while some computer is required to access the cloud, in theory at least a cloud-based application could be set and run from a smartphone and be able to meet virtually any load the Internet can throw at it. Contrast this with any hosted application which requires significant hardware & software purchases and installation.
  2. Almost zero administrative costs -- the system administration costs are rolled into the services provided, most importantly is that you as an application developer do not need to hire administrators nor rely on your own skills, it will be expertly taken care of for you.
  3. Almost zero wait time -- the "cloud" is there, always, and new applications can be started almost immediately (once the accounting has been taken care of). Pay up and you can start.
  4. Almost free advanced services:
    1. Fault tolerance -- the ability to withstand hardware faults within the system without affecting the service(s) running; for stand-alone servers true fault tolerance comes at more than twice the cost of a similar service that is not fault tolerant. A fault-tolerant disk, for instance, requires not just a second disk but also a controller (software or hardware) to treat the two disks as one. A true fault tolerant server will have no single points of failure, they will have redundant and hot-swappable components for all aspects of the server so that it takes two, separate and distinct hardware failures before a service failure is produced.
      1. Hard drives / storage -- requires some sort of RAID controller; this sort of redundancy is common and relatively inexpensive ... most operating systems will supply a software-based RAID controller for free and hardware RAID controllers are not a significant cost, the costs here could be less than double (depending on RAID level).
      2. Network Interface Cards (NICs) -- given the general modularity of a modern (non-blade) server, adding a second redundant NIC is one of the cheapest physical redundancies possible, however fault tolerance requires that at least one NIC not be "on the motherboard" and that both NICs are seamlessly available for use (for servers this typically means "teaming" the NICs together to appear as a single IP address). There is rarely any extra capital cost for this but it does require a more senior IT resource to utilize it properly.
      3. Power supplies -- each server will have at least two power supplies, each capable of generating enough power for the entire server; requires some sort of power controller to automatically switch between either power supply fast enough to not affect the hardware that requires the power.
        • Note that if both supplies are plugged into the same source, the fault tolerance level of the solution significantly decreases. Thus true fault tolerance wrt power requires a minimum of two, independent Universal Power Supplies [UPS] (sometimes called Universal Backup Supply).
      4. CPUs -- actually, this should say Computing Module because it takes more than a CPU; this is a big ticket item, it is far more complicated then just offering multiple CPUs. This kind of redundancy is typically only available in high-end enterprise-class servers that typically start at $100,000 and more often run into the $millions.
      5. Memory banks -- redundant memory is very rare but probably does exist within very specialized computing devices, more commonly enterprise-class servers deliver memory boards similar to CPU boards so that you have independence but not redundancy; you will lose fault tolerance at the process level but keep it at the hardware level ... this is true for most CPU board redundancies as well
    2. Scalability -- virtually all applications / servers have a stepwise view to scalability, the hardware / infrastructure will faily easily and simply scale up to a point and then a large increase in some resource will be required to make further progress ... at the low end that might mean the introduction of clustering or application farms, a larger intra-server network, or a larger or virtualized storage device, at the upper end this means distribution, replication, globalization and other expensive technologies
    3. Performance -- in a Web World, application performance is most often connected with network performance; the closer (lowest latency) you can get the service to the customer, the better the experience will be. Where the audience is global this means distribution and replication to many different geographical regions.
    Many of the above advanced IT services are available to ordinary businesses, the costs are typically just too high; even the largest global corporations rarely use distribution or replication (though exceptions exist) as both are very expensive to implement. But more importantly, the skills to use all of those technologies is beyond that available to most IT professionals. So even where there may be available capital for a fault tolerant solution, the skills and available human resources to implement it, and if these things are done exactly right they not only may not be as fault tolerant as desired, they may actually cause faults within the system. But more importantly, all of the real players in Cloud Computing require all of the above services to meet their current customer base and so for them the more they can get folks to use the services the cheaper those services become there is absolutely economies of scale.
  5. Low cost -- well, that is a relative statement; like any similar leased / rented service, it is very likely that the cloud service will exceed the costs of a local service over a three year period for all but the smallest of applications. But like leasing, the cloud does provide the ability to easily manage the operating costs without requiring the capital or credit up front
  6. Easy in; easy out -- most cloud-based resources allow for no long-term commitment, often no commitment at all. Failure applications, then, are not forced to continue because of the investment