It’s 2016, the cloud computing has been around for nearly two decades, but there still seems to be a lack of knowledge in what cloud computing actually is and how to do it.
In diagrams, a cloud is the typified icon of the equipment of which you do not control; however, to those in the public internet, your diagram is the cloud. To them, your infrastructure is unknown, but to you it is known. Therefore, you can claim all servers under your control as being “in the cloud” even if they are not hosted in a public space such as Amazon Web Services or Microsoft Azure.
Your cloud can be a raspberry pi, a single server, or multiple servers. The amount of hardware needed for a cloud service is based upon the usage of the service provided. Your reliability of the service depends on how well redundancy is set up on your part. When you get into warehouse computing (a single datacenter for one service), it might be difficult to wrap your head around how it operates to perform access to this service, but it is as easy as building a single, large computer. When building a single computer, you buy hard drives, ram, motherboard, a network card, and network equipment. Next you assemble the server, install the operating system, and finally configure the software.
In warehouse computing, you break up the parts of your server to perform a specific task. In the storage realm, instead of attaching hard drives directly to the motherboard, they are connected via TCP/IP via either an iSCSI, SAN, or a network share (Samba or NFS). You also separate processes to different machines. Your database software (such as MySQL) will be the only program installed on a group of servers dedicated to run the database of your application. Additionally, you will have a cluster of servers running your application’s server (php-fpm, django, etc.) with a load balancer in front.