What’s the difference between Public and Private
The only main difference between the two is simple:
- Using public cloud: Sharing the physical hardware with other user
- Using private cloud: All the VM is sitting on your dedicated servers, sharing resource with no others but your own VM
A wider definition of ‘Cloud’ itself could simply be –
Offsite infrastructure / Public vs. Private == Shared hosting vs. Dedicated hosting
Due to the maturity of virtualisation technology, sharing the same piece of hardware is will no longer be a security concern. Unless you are going for compliance such as PCI-DSS, then they might need you to run on Private Cloud. Because the requirement of isolation is not only about software, but also physical hardware including servers, switches, and racks.
Besides, the vCPU stated in Public Cloud specification means “permission to share CPU time on a specific CPU thread”. It’s referring to the thread in Hyper-Threaded CPU core. Hence a vCPU is half of a CPU core, then you share the half with unknown amount of users.
The same goes for disk storage, either HDD or SSD, you are sharing the IOPS with unknown amount of users. For fair sharing policy, most provider will cap the IOPS at certain limit, causing problem if your VM is hungry for IOPS like a DB server.
So even though you have fixed amount of memory (RAM), the CPU and IOPS is getting only 25-30% (or less) of a single CPU core and single disk.
When to go for Private Cloud?
- When your application is CPU hungry. Especially you are migrating to the cloud from traditional Dedicated Servers or Co-location. A load analysis need to be conducted on the old infrastructure to see CPU power consumption. If the 4-Core Xeon is running on 100% all the time, you will need to get at least a 12vCPU Droplet at DigitalOcean costs USD460/month, but a 4-Core Xeon dedicated server could cost only RM460/month.
- When it’s requested by your compliance auditor, as simple as that, you can bring up the fact that AWS, Azure, Google, has their services compliance to PCI-DSS and a whole long lists of other. But it still depends on the business itself whether a private cloud is needed.
When to go for Public Cloud
- $$$, costs. If you are starting up your business, going for cloud for a horizontal scale-able structure is the most optimised way to save cost.
- Flexibility. Since it’s horizontal scale-able, just scale it up when load is growing, and scale it down when load is low. But isn’t private cloud good for performance and high load as well? Should I go for Private cloud? The answer is, it depends on whether the load itself is a 24×7 high load, or just spikes. Then we will need to calculate which is the most cost effective way, or go for the hybrid way. Having a baseline of private cloud to cater the 24×7 high load, and scale to public cloud whenever it’s needed, giving you best of both world.