The 5 Pillars of Cloud Computing
How to Architect Well-Designed Systems within the cloud
Cloud computing is the new oil.
You would be hard pressed to change my mind about that, as there is such immense value to cloud computing on many different levels.
In fact, with the new digital age being brought about because of COVID, cloud computing is becoming even more widely used than it already was. Enterprises, small and medium sized business all use cloud computing to different degrees.
If you aren’t sure exactly what cloud computing is, or how it works, here is a brief overview of what it is and why it is important:
The picture above is a server room. Anytime you need to do anything computing related, you need computers, right? So your options are to either buy your own physical computer(s) to use, or in the case of companies you need your own physical servers and hardware to set up and operate your systems.
Now, you could get your own on-premises servers, but that involves thousands of dollars up front, physically setting up the servers and making sure they have an optimal environment so they don’t overheat, constant versioning to make sure they aren’t out of sync, and having to prevent and plan for failures and/or outages that can hinder or completely stop your business operations at any given moment.
On the other hand, with cloud computing, all it takes is a few clicks and you can provision any amount/type of resources, and utilize pay as you go pricing (in some cases it is a few dollars or cents per hour to utilize servers!). The servers/hardware you provision in this case are physically managed by providers (AWS, azure, oracle, etc.), so all you have to do is worry about how your business will now operate using this provisioned hardware.
That leads me to the main point of this article, the 5 pillars that should be implemented with your cloud computing systems to ensure optimal value and minimal headaches. I will briefly go over them, but feel free to dive deeper into each pillar here*.
This is ground zero for anything in the digital world. You need to make sure your systems and data are protected from malicious intent, and that only certain individuals can make certain changes. In cloud computing, the provider is responsible for the security of the cloud itself (the physical hardware and provided services), and you are responsible for what you do in the cloud while using it (your applications and monitoring traffic in/out of your provisioned resources).
2. Cost optimization
Would you rather spend thousands of dollars on physical servers right now, or over the next many months/years? The idea here is to provision only the resources you need, when you need them, so you don’t overspend on unused resources. This way you can invest more money in your business now rather than spending it up front on servers.
3. Performance efficiency
This pillar can be summed up with one word: efficiency.
You want to give your systems/users the lowest amounts of latency, the right amount of IT resources needed for them to get a job done, and be flexible when needed. Say you have a nationwide flower business, that takes 90% of your orders online. In August, you will have a significantly lower amount of traffic than the days/weeks leading up to Valentine’s day in February. So you need to be able to provision more resources to handle the spike in traffic for February, and then scale back down for the rest of the year so you aren’t paying for resources you aren’t fully utilizing.
As great as technology is, it is inevitable that there will be errors and failures. The question is, how will you recover?
If you have on-premises servers and your room/facilities experience a natural disaster that causes power surges or leaks that fry your servers, what do you do then? I don’t even want to think about dealing with that kind of headache.
However with cloud computing, if a server you have provisioned fails, you have the ability to automatically spin up new ones within minutes. You can have your entire code base and network settings on stand by to be redeployed in case of failure. In fact, many resources by default will automatically be switched over by your cloud provider upon failure, and all you have to do is make sure you have your backup deployment configurations properly configured ahead of time.
5. Operational Excellence
Last but certainly not least, this pillar refers to the balance of manual labor and automation.
There are different degrees of automation you can incorporate into your systems, processes, and business operations. You want to make sure that your systems are quick to adapt to changes in your business, and that the systems you have deployed are continuing to bring as much value as possible to your business. In other words, you should manually be setting up your systems to automatically change based on certain events that are going to happen in the future of your business operations.
If you haven’t done much in the way of cloud computing, know that it is a deep rabbit hole you can dive down, as there are seemingly endless services and resources you can take advantage of and combine to achieve various objectives. However, if you take some time to learn how to develop well-architected systems, you can make your business much more efficient, and as an individual your cloud skills will make you much more valuable in the marketplace/workforce.
I recommend AWS as they have a large amount of free training resources you can find here, and a huge amount of pay as you go services available, but if AWS is not your vibe there are many other cloud hosting providers you can experiment with, until you find what works for you (a list of popular ones as of 2020 can be found here).
*The link is to the AWS framework, however the principles remain the same across all cloud computing architectures.