Home Index of Lectures Next >> Print Version of this Page
Let me know what you think Mail me...

Cloud Computing

Copyright © by V. Miszalok, last update: 2009-08-05

Visitors since 01-01-2002
What is a Cloud ?
The Cloud Hardware
Three Main Levels of Cloud Computing
Problems of Cloud Computing: NAT and Security

What is a Cloud ?

The cloud is a metaphore for something big with undefined borders which cannot be described in a few words.
In this sense Cloud Computing is something outsourced, pay-as-you-go, on-demand, somewhere in the Internet but without bi-directional peer-to-peer connectivity such as BitTorrent.
There are two types of clouds:
Public Cloud: Services are licenced from and applications and data are uploded to an external provider such as Microsoft, Google, Amazon, IBM, Oracle.
Private Cloud: Big companies who distrust foreign providers create their own cloud.
Hybrid Cloud: VPN-connected private cloud inside a public cloud.

 There is a second meaning of "cloud" which refers to the minimalist idea to replace the complete operating system of a single computer by its browser.
The boot sequence always connects to the internet, starts a browser-based-GUI and calls all basic computer functions and further applications as services from the internet.
See: Wikipedia: Netbooks, Windows4all
Google announced such an Operating System → Google Chrome OS, Google announcement.
Caution: Do not confound Chrome OS with the browser Chrome, which is just another browser and not a cloud operating system !

The Cloud Hardware

A cloud data center is a warehouse of ca. 40.000 computers that behave as one single computer = warehouse-scale-computer = WSC. Because of their sheer size and cost WSCs are unaffordable by all but a few large Internet companies.
It requires the departure from a view that one program runs in a single machine. In order to achieve fault-free operation, a WSC must gracefully tolerate large numbers of component faults with little or no impact on service level performance and availability.
The software running on a WSC, such as Gmail or Web search services, execute at a scale far beyond a single machine or a single rack: they run on no smaller a unit than clusters of hundreds to thousands of individual servers. Therefore, the machine, the computer, is this large cluster or aggregation of servers itself and needs to be considered as a single computing unit.
The main architecture is simple. See: The Datacenter as a Computer.
1. Buy 40.000 1U computer blades of 4.5 cm thickness each.
2. Put each 40 of them in a vertical rack of 0.7 x 1.0 x 2.0 m.
3. Put 1000 racks in a room, connect the racks with a cluster switch.
4. Supply 0.4 MegaWatt electric power plus sufficient UPS and emergency Diesel generators and keep the room cool.
5. Write a software that makes the cluster behave as one single computer does.
6. Connect some glassfiber cables to the outside world.
7. Write a software that answers the service calls.

Three Main Levels of Cloud Computing

Infrastructure in the cloud = IaaS = Infrastructure as a Service just offers raw infrastructure and requires set-up and automation on the part of the user. System administrators obtain general compute, storage, queueing, and other resources. Any application and any configuration that is fit for the internet uses this type of service.

Applications in the cloud = SaaS = Software as a Service is what we use in the form of gmail, yahoo mail, google apps, search engines, Wikipedia, etc. We sign-up for and use without any concern about where, how, by whom the compute cycles and storage bits are provided. The service is a complete end-user application.

Platforms in the cloud = PaaS = Platform as a Service offers a application development tools and all necessary run-time services to developers in the cloud. Developers write, deploy and run their application though an API and then upload their code into the cloud where the platform tunnels requests to an application and makes the application tick, typically being able to scale up automagically as usage for the app grows. There is little experience if Google, Amazon, Salesforce and Microsoft can live up to their promises of managing everything seamlessly when the applications mature and gain complexity.
See: Thorsten von Eicken, Sun Cloud Computing

 More detailed levelsSamples
01. File upload and download FTP servers maintain a control connection with the client that is kept open for the duration of the session.
02. Infrastructure as a Service = IaaS: virtual disk for 1 person working online with 1 computer GDrive, Microsoft Office Live Workspace, Microsoft SkyDrive, Amazon S3, Amazon Elastic Compute Cloud EC2
03. Software as a Service = SaaS =
Text-, image-, calendar-, contact-, mail-, backup-services for 1 person working online with 1 computer
Wikipedia: Google Docs, Welcome to Google Docs, Mozy, iDrive, Plaxo, Windows Live
04. Browser-based desktop with simulated file system for 1 person working online with 1 computer Windows4all
05. Sync for 1 person (working offline or online) with >=2 computers without cloud mirror SmartSyncPro, Capivara
06. Sync for 1 person (working offline or online) with >=2 computers with cloud mirror plus browser-based access to the mirrored files Wuala
07. = 06. plus file sharing for >=2 persons (with conflicts after parallel work!) Dropbox, SugarSync, Syncplicity, ZumoDrive, Live Mesh
08. = 07. plus SDK+GUI+tools = development platform as a service = PaaS = cloud computing Rackspace Cloud, Google App Engine, salesforce
09. = 08. plus complete development environment: compiler+debugger+deployment Live Mesh + Live Framework + Live Framework SDK and Tools
10. = 09. plus SQL cloud database Windows Azure,

Comparison Service vs. SaaS:
The difference between a service and a SaaS is comparable to a motor and a car.
SaaS mostly combines one or more prefabricated services with proprietary code and a GUI.
Comparison SaaS vs. Cloud Computig:
The difference between SaaS (03.) and Cloud Computing (09.) is comparable to renting a house and building a house.
SaaS (see 03. above) is a dark tunnel. The SaaS vendor has full control and we are just passive users.
Cloud Computing (see 09. above): Control your data by writing your own application. At any time you can modify or delete both application and data.
Writing a service or a SaaS is Cloud Computing but using a service or a SaaS isn't.
Combining several services to something new is Cloud Computing and most Cloud Computing applications contain a lot of prefabricated services.
Comparison Cloud Computig vs. Platform:
Cloud Computing is quite a hard job and the promise of a platform is to facilitate this job.
Big cloud providers not only offer a collection of prefabricated run-time-services that tunnel requests to an application and make the application tick.
In order to attract developers they additionally offer:
1. a GUI where a cloud developer can combine prefabricated services/SaaS,
2. a complete development environment,
3. any mixture between 1. and 2.

Problems of Cloud Computing: NAT and Security

The majority of all Internet traffic depend on bi-directional, peer-to-peer connectivity (such as BitTorrent) but Cloud Computing has to make an array of devices addressable and reachable so that they can be integrated into and controlled by a distributed business solution, which is still incredibly difficult.
The primary obstacle to create pervasive connectivity is that we have run out of IPv4 addresses and only Network address translation (NAT) permits the Internet to grow any further.
Dynamic DNS services help with making particular machines discoverable even if the assigned IP address keeps changing.
But NAT and dynamic DNS prevent the Cloud Services from addressing their connected devices directly.
The second major obstacle is security.
The use of Firewalls has become ubiquitous and almost all incoming traffic is blocked.
Firewall and NAT issues are often dealt with by selectively allowing applications to open inbound ports on the local and network router firewalls using technologies like UPnP or by opening and forwarding port by ways of manual configuration.
Todays solution: Relay Services
All cloud services have to use complicated and slow transitional tunneling protocols to maintain bi-directional connectivity = Relay Services with Naming, Service Registry, and Event Management.
A Relay Services accept and maintain connections from firewalled and/or NAT-ed clients and route messages between them.
Not only cloud services but practically all chat, instant messaging, video conferencing, VoIP, and multiplayer gaming applications and many other popular Internet applications depend on some form of such a complicated Relay Service.
Future solution: IPv6 holds the promise of making each device uniquely addressable and of making Cloud Computing easy and fast.
See: Clemens Vasters

top of page: