The long standing debate of choosing public cloud versus private cloud for data processing and applications rages on, with passionate voices in each camp making their respective case with stacks of scientific and anecdotal data points. At Nimbix, we are in both camps, given that we provide on-demand supercomputing “as a service”, as well as hosted, dedicated HPC infrastructure. But setting that aside, can you really boil down your decision to just 3 key factors, regardless of what types of services you are looking to consume? We think so.
Before we get into the factors, consider one fundamental question: do you really need “the cloud”? You constantly hear use cases which are not strictly cloud being heralded as the poster children of the space – things like communications (such as email and instant messaging) and even generic virtualization. For example, hosted email by itself does not really require cloud computing. Likewise, “Spinning up” and “Spinning down” virtual machines can be done on any commodity hypervisor (free or commercial) without needing full blown cloud infrastructure and complexity. It’s the agility, the dynamic reconfiguration and increased utilization of resources, the self service capabilities, and the accounting that really drives the need for cloud computing. If you are going to use infrastructure to do the same thing all the time, this is just plain infrastructure – it could be a simple cluster of servers providing services. If your needs, scale, and users are always changing, this is when you consider cloud. So, assuming you really need cloud computing, now comes the choice between public cloud and private cloud. All other things being equal (and assuming you are not forced into one model or another due to rules and regulations), the 3 main factors to consider are Cost, Skills, and Time to Value.
Simply stated, computer systems have CAPEX (Capital Expenditure) and OPEX (Operational Expenditure). These contributes to TCO (Total Cost of Ownership). When honestly considering costs, you must consider TCO, which is calculated over a period of time (e.g. 5 years). There are many accepted methods and formulae to calculate this, but in basic terms, the cost and depreciation of the equipment plus its operation (including human capital required), over some period of time, is the TCO. Generally speaking, if you will use your cloud 100% of the time for long periods of time, this favors private cloud. In this model either you or your service provider owns the equipment, and it is dedicated for your use. Many service providers will price dedicated gear at a lower price than pay-per-use for the same capacity, especially if there is a long-term contract involved. If you own the equipment yourself, you of course have to buy it (or lease it). When you throw in the cost of floor space (or hosting), power, cooling, system administrators to manage it, productivity loss during downtime, etc., etc., this model makes sense if you use the equipment heavily. If you don’t, you pay anyway. In most public cloud models, you only pay for what you use. If you don’t use it full time, it is typically less expensive in TCO terms than a private cloud.
What is your core competency? If you answered anything other than “Information Technology”, then this is a strong indication you should consider public cloud over private cloud. If you don’t have the experts in house, you must either hire them or outsource them. Just as IT people don’t usually make great astrophysicists, neither do most astrophysicists possess great IT skills. These are very specialized fields, and each requires its own set of experts. While it’s expensive to hire these experts, it’s even more expensive not to, with the cost of IT mistakes sometimes being fatal to your business or research. Building private clouds is not easy, no matter what technology you use. Neither is building public clouds, but the experts already built those. One way or the other, you have to pay the experts, be it in salary or computing time. Again, if you need the cloud full time, the hourly cost of the experts to run the private cloud makes sense. Otherwise, it’s usually better to pay only when you need them, which is included in the hourly (or monthly rate) of the compute time from your public cloud provider.
Time to Value
If you are starting from scratch, you must also consider the amount of time it takes to get a cloud functioning and ready. Remember, infrastructure is just a means to an end. What you really need to do is solve problems, and the cloud should only exist to help you solve problems. But until the cloud is up and running, you can’t get results. The time it takes to do this can be measured in weeks, months, or years depending on the approach you take. This should also be factored into TCO as part of the Cost decision factor. Planning for jobs you will need to run in the next 6-12 months is different than for jobs you need to complete by Friday. Finally, don’t assume you are halfway there just because your IT guy has a few VMware ESXi servers running. Well run private clouds are much, much more than just commodity hypervisors.
Naturally these are not the only 3 things to think about when considering public cloud versus private cloud. There is security (how much do you trust your own internal methods versus those of your service providers), types of jobs (HPC, CRM, web services, etc.), and types of users (task, mobile, power, etc.), to name a few others. Whichever decision you make, be sure to take a comprehensive view and account for as many details as you can. Start with the 3 factors above and the rest will fall into place.