Cloud computing (also on demand computing) is a kind of Internet
based computing that provides shared processing resources and data to computers and other devices on demand. It is a model for enabling on demand access to a shared pool of configurable computing resources (networks, servers, storage, applications ,services). The main enabling technology for cloud computing is virtualization it separes a physical device into one or more virtual devices, each of which can be easily used and managed to perform computing tasks. It also adopts concepts from Service-oriented Arhitecture(SOA), that can help the user brake a problem into services that can be integrated to provide a solution. Cloud computing shares characteristics with : Client-server model : any distributed application that distinguishes between servers and clients Grid computing : a collection of computer resources from multiple locations to reach a common goal. Fog computing : distributed computing paradigm that provides data, compute, storage and application services closer to client or near-user edge devices, such as network routers. Mainframe computer : powerful computers used mainly by large organisations. Utility computing : packaging of computer resources(computation and storage) similar to a public resource like electricity. Service Models Infrastructure as a service (IaaS) Providers of IaaS offers computers (physical or, more often, virtual machines) and other resources. It refers to online services that abstract the user from the details of infrastructure like physical computing resources, location, scaling, security, backup. Platform as a service (PaaS) PaaS vendors offer a development environment to application developers. The provider typically develops toolkit and standards for development and channels for distribution and payment. In this model, cloud providers deliver a computing platform, typically including operating system, programming-language execution environment, database and web server. Examples of Paas platforms are Microsoft Azure and Google App Engine. Software as a service In this model, user gain access to application software and databases. Cloud providers manage the infrastructure and platform that run the application. SaaS is sometimes reffered to as on-demand software and is ussualy priced on a pay-per-use basis. Example of SaaS : Gmail,Yahoo mail, social networking sites If we speak about practical examples of Cloud Computing, that we use day-by-day, we are going to present 5 examples : Email on the go Online email has been offered by all the big names (such as Microsoft, Yahoo and of course, Google). Whereever in the world we are, the emails have always been available to me. No need for data storage Storing your mp3s, videos, photos and documents online instead of at home gives you the freedom to access them from any location with Internet access. Working in a virtual office Googles online suite of office applications is probably the best known. Rather than having a Word processor, a spreadsheet creator and a presentation or publishing platform on your computer, you can opt to work online instead. Collaborative work Helps teamwork a lot especially on projects you can find information a lot faster without the need to download files. Google launched a service that allowed groups of people to work on the same document, ideea or proposal in real time or whenever convenient to each participant. Using Google Wave you can create a document and then invite others to comment , offer opinion, or otherwise join in with the creation of the final draft. No need for extra processing power For the dedicated cloud enthusiast, something like Amazons EC2 virtual computing might be the answer to all his needs. Rather than purchasing servers, software, network equipment , users would buy into a fully outsourced set of online services instead.