I believe most of us learned at school the theory of big bang which tries to explain the formation of the universe. “According to the Big Bang model, the universe, originally in an extremely hot and dense state that expanded rapidly, has since cooled by expanding to the present diluted state, and continues to expand today.” (source: Wikipedia).
Now how does the theory relate to the cloud computing? More than you can think of. You can use the same theory to create (not just explain) a new cloud. Just like the universe, a cloud is created from almost nothing to a fully running infrastructure over time. Think about most enterprises which do not yet have a cloud today, they will need a big bang to create an enterprise cloud.
Basic Elements of a Cloud
It’s important to understand what you want before taking any action. To operate a cloud, you will need many different services from compute, to networking and data storage.
The compute can be supported by hypervisors. Although hypervisors are not the only option to create a cloud, it definitely the most mature and natural way toward cloud computing especially in enterprises.
The networking in a cloud is just like gravity in the universe: it links everything together. To support the networking, basic services like DNS are needed.
The data storage comes with many different solutions from local storage attached to a server, to the FC SAN array, etc. Ideally they are provided as a service therefore can be managed in a centralized manner as I described in the aspectual centralization design pattern.
Besides these services, you will need applications which represent the majority of the workload in a cloud. After all, the infrastructure and services are there to support applications. With varieties of businesses, the number of applications can be quite different from enterprise to enterprise.
Cloud Big Bang
As we know, the starting point of the universe is the so called singularity. In the cloud world, the “singularity” is one or more virtual machine templates. If you are new to virtualization, you may want to check out my previous blog on VM template cloud pattern. With the VM template in place, you can make your own big bang:
First, you will need clone one or more new virtual machines for basic infrastructure services like domain controller, DNS/DHCP server, etc. These network services are critical for cloud expansion and operation. Optionally you can deploy storage service VMs.
Second, with these basic services in place, you can create new virtual machines for all sorts of enterprise workloads. You may or may not have customized templates like App VMs for these workloads depending on the effort to deploy different workloads.
Third, you want to group, optionally isolate, different types of workloads with different network settings. It’s like the 9 (recently reduced to 8) planets that consist of our solar system.
Forth, more demands come to the cloud and leads to further expansion of the cloud: either more instances of virtual machines get created and join the row of servers behind a load balancer; or more resources like CPU/memory are allocated to the existing virtual machines. That is the beauty of virtualization backed cloud: only only can it scale out but also scale up.
Unlike the irreversible expansion of the universe, the cloud does shrink its size upon decreased computing demands. That is a key uniqueness of cloud big bang which leads to saving on infrastructure.
Also, the big bang theory is just a theory: we have neither prove nor disapprove it so far. For cloud computing, things are quite different: all the fundamental technologies are proven and ready for you to build a cloud.
As it stands today, I can find many different tools to provision virtual machines for a cloud but that is a long manual process. As you can expect from a manual process, it’s also prone to human errors.
With the wider adoption of cloud computing, there will be demands for tools that facilitate the big bang process. Ideally it’s one click big bang, meaning you click one button and the tools take care of everything else. Of course you need to first design your cloud blueprint. To achieve that, you will find my cloud architecture patterns essential for capturing and communicating such blueprints.
For cloud vendors, whoever comes up with such a tool first will enjoy an enormous advantage in marketplace especially for enterprises where cloud creations may be repeated from time to time.