Public Cloud is always ran on someone else’s premises and you do not have access to the hardware. Services in this model may be free of charge or offered in a pay-as-you-go model where the customer is paying only for what was used. Besides that, the customer has no influence on functions and features, and how they are delivered by the public provider. All services are standardized and served in the same way to all.
Private Cloud must be ran on the Company’s own hardware. It is usually called internal or enterprise Cloud which lets us assume that the environment is hosted in a private data centre. The Company that uses resources provided in this model, has to purchase, manage, and maintain all hardware and application infrastructure. Private Cloud is often located on-premises, but sometimes there is a colocation model chosen.
In both cases, all hardware should be owned by the Company who uses it. In a private Cloud environment, customers have full access to hardware and can expect a unique setup, specific for their organization. This model assumes that there is only one tenant in the environment. It means that no other company has other services or systems launched on the same hardware.
In pure and simple environment built with resources like virtual machines, it is easy to say whether it is a private or a public Cloud. It becomes much more complicated in more complex systems. Many companies who offered their colocation services for many years, started to call themselves Cloud Providers just because it is trendy. And because they have implemented some dashboard, where customers can order and manage resources over the internet. It is usually only possible to run a virtual machine with mounted storage in a defined subnet and define if it is accessible from the Internet or not. There is often no automatic scalability and no possibility to synchronize data across many locations.
Many times I have seen local companies who served some colocation services but called themselves Private Cloud Providers only because customer’s data remained in the country of origin. They offered a multi-tenant environment without any scalable mechanisms in place. It is important in some situations to be sure that data is stored really close to our location and that the Public Cloud provider is not in our country, but that model of offering Cloud services should rather be called “Local Cloud providers” instead of “Private”.