The Internet has expanded so quickly in just a couple of decades. This growth has also accompanied a tremendous uptick in technological advancement allowing Internet speeds to increase while server costs have dramatically fallen. I’m sure by now most of you have heard about hosting your files “within the cloud”. More advanced hosting companies have begun to offer cloud hosting solutions. But what does this really mean?
I’d like to spend some time looking further into the details of cloud hosting. How do you end up with a server cluster managing as a complete web host environment? How much do these generally cost? And is the cloud really where the future is taking us?
Many of these questions can be answered with just a bit of information. Let’s first break down this idea of the “cloud” into more friendly terms.
Defining the Cloud
Technologists tend to provide an overly-complicated answer to the question “what is the cloud?”. In the context of cloud hosting there is no physical object which you can point to and label as the cloud. It’s more of an electronic structure where data is stored over many different computers and served up via a network connection, typically the Internet.
When you get into cloud hosting these server farms behave as one large storage space and processor. The actual website data (such as HTML/CSS files, images, etc.) is spread out over a cluster of hard drives connected together, much like one virtual disk with tremendous capacity. Server clusters can provide a cloud setup with literally unlimited machines to run through. You could also build a cloud space with just 5-10, so the methodology is scalable to boot.
The Cloud vs. The Internet
Is there really a difference between these terms? The short answer is yes, but not by much. Reference to the cloud is usually a reference to one small piece of the whole Internet. But if you take into consideration that the Internet behaves as one macroscopic cloud system you start to see the idea more clearly.
In truth the infrastructure we’re building today may be the underlying framework for our Internet of the future. Bandwidth speeds are only increasing while the price of data storage and transfer is dropping rapidly. The price of electricity is still enough to deter your average Joe from setting up his own personal cloud network, but for how long?
The Internet and cloud hosting has grown out of a necessity for connectivity between humans. It’s a desire to simplify the most confusing aspects of our daily lives. I can imagine a future where the entire world population controls data flow to and from the cloud, a global Internet hierarchy.
Division of Computing Power
You may be wondering how the combination of multiple server environments will scale as any cloud system grows in size. The distribution of power and storage capacity is often controlled by a backend software OS/system.
The server admin would be able to log into the backend via a terminal console and check CPU load of all the machines, along with other vital system information. This process is called virtualization which provides a layer of abstraction between the software and hardware components. Cloud server administrators can easily optimize the cluster for storage efficiency, optimal energy usage, data backups and more. (I'll be doing a piece on VMware shortly).
In the long run it’s also a much cheaper solution than virtual or physical server plans. And since not every customer needs a server setup you can take on additional charges as a Content Delivery Network (CDN). Customers only pay for the bandwidth they use to deliver images, streaming music, and other large media files. Utility computing as this is referenced gained a lot of popularity from Amazon Web Services.
Amazon Web Services
The most popular book seller on the Internet made a huge decision in 2006 to begin constructing a cloud-based server environment. The whole company placed a large investment into this technology and it paid off handsomely. Now the AWS brand products are seen everywhere and power hundreds of thousands of websites.
What makes Amazon different than other cloud-server providers is their progressive business structure. When setting up an AWS account you will only be charged for the amount of space required for your files. Such a scenario is similar with their Simple Storage Service(S3) where you can externally host your website data and quickly scale with increasing traffic over time.
Even better is the CDN counterpart known as Amazon CloudFront. It’s a web service built for speedy content delivery so you may outsource a lot of that computation from your own server. For full web hosting you should turn your attention towards Elastic Compute Cloud(EC2). Their services are certainly not for everybody but will fit perfectly with a small/medium business or startup. The staff is always reliable and you aren’t over-paying for server space which isn’t used.
The biggest downside is that you must understand server management and provide routine maintenance. The Amazon staff is always on hand to help, but ultimately you are responsible for updates to firewalls, Operating System patches, security bugs, etc. You need to understand how to setup and run a web server to get any real benefit from EC2. I recommend skimming over this EC2 web server thread which provides a solid list of pros/cons for developers.
Web Apps in the Cloud
I’d like to offer just a couple examples of popular cloud-based apps which have come out in recent years. The Internet has become a digital storage medium for transferring files all over the world. In one way this can be described as a move into the cloud and away from the limitations of physical devices.
You can tell just by the sheer power of these resources that developers are getting serious about cloud hosting. The computation power of multiple servers is one such idea. But in-browser apps with free file storage and data manipulation are beginning to dig their nails into some of the largest software companies. This just may be the start of a huge revolution in the whole technology industry!
I was originally a huge fan of Gmail when Google first put out the service. With each account they included about 2GB of free server space for e-mail attachments. Now the company has taken another step forward building the Google Docs engine.
Even five years ago the Microsoft Office suite was the most powerful desktop software for document processing, spreadsheets, slideshows, and other powerful media. Kids in high school and college have grown up writing their essays in Microsoft Word. With the public release of Google Documents anybody with a Google account can begin storing docs into their own private cloud space.
You have the ability to further organize these files into folder directories with are labeled collections. Even better the whole service has built-in functionality for uploading documents into your account and even exporting via a variety of file extensions. Exports are limited at 2GB per batch and include support for HTML, PDF, RTF, MS Word, and a few other options. This makes Google Docs the most open and supportive protocol for professional document editing – and it’s completely free!
Quick Data Sharing
I remember building websites back in 2006 where my partner and myself would frequently have to exchange files between computers. Back then it was much easier to utilize our USB flash drives since there were not nearly as many resources on the Internet. Yet today we practically have a smorgasbord of options to choose from!
Dropbox is a service which has been getting the most popularity in recent publications. It has a real simple install process which behaves as a network drive connected to your own personal space on their servers. Free users are given 2GB to start with and you can always purchase more space. I feel that Dropbox does work well enough, but you will encounter the issue that files will constantly be trying to synchronize across your clients. This can be frustrating even with a broadband connection, hopefully one day they will find an incremental component to alliviate the latency.
Then there is CloudApp. Plus bonus points for the trendy topic-related name! CloudApp actually runs through Amazon S3 hosting while providing a simplistic web user interface as the go-between. Not only desktop & laptop computers, but CloudApp’s API developer documentation is phenomenal and has led to a few mobile apps for iOS, Android, and BlackBerry phones. Mac OSX users can also check the App Store for a download/upload utility which connects right into your account.
CloudApp is a much more recognizable solution for your average Internet user. Amazon services can get confusing to the less tech-savvy who don’t really need all their fancy applications. CloudApp simplifies the whole process and even offers very generous portions with their free plan. Additionally each upload is provided a unique short URL for sharing files to friends and colleagues.
To Go Boldly.
I do like the One cloud service from Ubuntu. It works with both Linux, Apple or Windows. Again free, and fast. For cross platform collaboration, it is simple, easy and effective.
Where to Go from Here?
These applications provide just a small outlook towards the many prospects of cloud hosting. As web developers become privy to the details of building scalable environments the cloud-based server structures will begin to revolutionize the Internet and web design.
Just imagine the possibilities of running a Photoshop or GIMP-like application directly within your web browser. Your computer or laptop would not be using much of its resources at all, since the computing power would be outsourced into servers within the cloud. We already see this setup with e-mail services, photo editing, and definitely instant messaging.