More and more companies are moving from traditional servers to virtual servers in the cloud, and many new service-based deployments are starting in the cloud. However, despite the overwhelming popularity of the cloud here, deployments in the cloud look a lot like deployments on traditional servers. Companies are not changing their systems architecture to take advantage of some of the unique aspects of being in the cloud.
The key difference between remotely-hosted, virtualized, on-demand-by-API servers (the definition of the “cloud” for this post) and any other hardware-based deployment (e.g., dedicated, co-located, or not-on-demand-by-API virtualized servers) is that servers are software on the cloud.
Software applications traditionally differ from server environments in several key ways:
- Traditional servers require humans and hours–if not days–to launch; Software launches automatically and on demand in seconds or minutes
- Traditional servers are physically limited–companies have a finite number available to them; Software, as a virtual/information resource, has no such physical limitation
- Traditional servers are designed to serve many functions (often because of the above-mentioned physical limitations); Software is generally designed to serve a single function
- Traditional servers are not designed to be discarded; Software is built around the idea that it runs ephemerally and can be terminated at any moment
On the cloud, these differences can disappear. The operative word is “can”–a look at the current mainstream discussions and advertisements of cloud services shows a distinct lack of interest in taking advantage of the crumbling wall between server and software.
Many hosting services that provide “cloud servers” have IT support staff who have to allocate the servers. Others have pricing plans (e.g., large monthly minimums) that essentially force the cloud servers to have the same physical limitations as traditional servers. And finally, very few triumphal case studies for the cloud focus on how the ephemeral or single-function possibilities of cloud servers have led to better, cheaper, faster, more fault-tolerant, and more secure infrastructure designs.
(Of note, when considering the above definition of the cloud, Google had the first cloud and the first cloud-enabled infrastructure with its essentially unlimited white-box, cheap servers and revolutionary MapReduce and BigTable technologies that enable ephemeral, single-function applications.)
Why Servers are Better as Software
Servers as software are better: cheaper, faster, more fault-tolerant, and more secure than traditional servers. Much of why servers as software are better goes to the two most commonly-named benefits of the cloud: the cloud is cheaper, and the cloud has virtually-unlimited resources (i.e., it’s easy to scale).
The cloud is cheaper in theory because payment is per resource used, but may not be cheaper in practice–because you may be using resources inefficiently. For example, if you have a server that gets used heavily during weekdays, but rarely during the night or on weekends, then if you are paying for a cloud server to handle the heavy traffic 24/7, you’re not paying just for real usage; you’re paying for idle as well. On the other hand, if your server is software, it can relaunch with less resources at night and on weekends and with more resources on weekdays.
The cost benefits increase beyond the above day/night example when one considers the single-function paradigm: if each server-as-software only exists to serve a single function, both the resources and the run-time allocated to that function can be limited to the bare essentials. Also, in a single-function server-as-software environment, resources can be scaled up to make the one function run faster without having to worry about having to keep those resources around for other functions.
In case it is not wholly obvious, an architecture designed around ephemerality will be more fault-tolerant. Finally, single-function, ephemeral servers can be more secure than traditional servers because they are limited in their access to data and resources (being single-function) and they are built to disappear (being ephemeral).
Next page: Taking Advantage of the Cloud Infrastructure: Database Servers
Photo by Manthy
Pages: 1 2
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.