In this blog post I would like to cover the common cloud deployment models, which should be part of the basic knowledge of each IT professional working with a cloud environment to a certain extent.

What is a cloud deployment model?

“A cloud deployment model represents a specific type of cloud environment, primarily distinguished by ownership and size.”

(source: Cloud School, Module 1 Fundamental Cloud Computing)

Public Cloud
A public cloud is a cloud created, owned and maintained by a third-party provider (f.e. Amazon, Google, Microsoft) that has been made publicly accesible to a cloud consumer. A public cloud is outside the organizational boundaries of the cloud consumer.

Public Clouds: Organizations act as cloud consumers when accessing cloud services and IT resources made available by different cloud providers.

Community Cloud
A community cloud is similar to a public cloud except that it is only available and accesible for a specific group (members) of cloud consumers. The community cloud is either created, owned and maintained by the community itself or by a third-party cloud provider. Often a community cloud is created for collaboration purposes.

Community Clouds: An example of a 'community' of organizations accessing IT resources from a community cloud.

Private Cloud
A private cloud is created, owned and maintained by a single organization. This cloud environment can be either within the organizational boundaries or outside as an extension of the on-premise environment (using VPN) that closely resembles a traditional network that organizations operate in their own data center,. It is important to notice that the cloud consumer is technically also the cloud provider but it is a best practice to clearly differentiate these roles.

Private Clouds: A cloud service consumer in the organization's onpremise environment accesses a cloud service hosted on the same organization's private cloud via a virtual private network.

Hybrid Cloud
A hybrid cloud is a cloud environment compromised of multiple cloud deployment models. A cloud consumer may decide to use a private cloud for sensitive information services and a public cloud for open data services. The result of this combination is a hybrid cloud deployment model that can be quite challenging in terms of creation or maintenance and may introduce additional complexity.

Hybrid Clouds: An organization using a hybrid cloud architecture that utilizes both a private and public cloud.

When it comes to the creation or hosting of integration services (or microservices) there shouldn’t be any difference when choosing a cloud deployment model. One should always take security into consideration (principle secure by design) whether it involves integrating a public, private or hybrid cloud. There are many security mechanisms to mitigate the risk of cloud security threats. In my honest opinion every integration service should be further fully agnostic to the execution environment. From that perspective it is much more relevant to pick the right cloud delivery model, for example Platform-as-a-Service (PaaS) and start using isolated containers (CloudFoundry, Docker), which can be deployed anywhere, anytime, independent of the cloud deployment model.