Cloud Development

Cloud development is the usage of software engineering practices on infrastructure components in a shared resource pool. This can be done in multiple manners, "private" within your company or organizations own data center, or in a "public" shared datacenter owned and operated by a third party.

Popular choices for Public Cloud providers are Amazon Web Services, Microsoft Azure, and Google Compute Engine. These providers operate clusters of massive datacenters whereby thousands of different individuals, companies, and organizations consume these resources. Operating the Cloud involves enabling the partitioning of these shared resources for the usage of these different users. The consumption of the resources is tracked (also referred to as metered) and then billed back to the user depending on the different financial scheme for the various compute, network, and storage resources consumed. Private cloud storage clients such as Veeam are also used on a large scale, mostly when dealing with government and civil virtual architectures.

Many modern websites and big data efforts are developed in the Cloud, meaning they are operating in some of these massive shared datacenters.

Primary Cloud Service Models

SaaS

Software as a service, this layer executes and hosts working applications over the cloud for end users on a pay per use basis and remotely assesible. Example google drive, gmail, etc.

PaaS

Platform as a service, this layer provides a platform for the developers to develop their application for the end users on the cloud. Example Google Apps Engine, Microsoft Azure, etc.

IaaS

Infrastructure as a service, this layer provides virtualized resources like CPU, memory storage etc that are used for hosting an application on the cloud on a pay per use basis. Example Amazon EC2, IBM Blue Cloud, etc.

More Information:


Contributing to the Guide

This open source guide is curated by thousands of contributors. You can help by researching, writing and updating these articles. It is an easy and fun way to get started with contributing to open source.