In the last post in this series, I outlined why costs savings were not the reason for moving 4sysops to the cloud. On the contrary, I could have saved money if I had chosen a dedicated server. So what were the reasons? Another argument you hear often is that cloud computing scales better than other environments.
- Author and member of the year 2019 – Why DevOps still doesn't rule the IT world - Wed, Jan 1 2020
- Results of the 4sysops member and author competition in 2018 - Tue, Jan 8 2019
- Why Microsoft is using Windows customers as guinea pigs - Reply to Tim Warner - Tue, Dec 18 2018
Cloud scalability ^
In the first post of this series, I described how I figured out that the Amazon's small EC2 instance was not powerful enough to host 4sysops. The good thing about EC2 is that I could easily launch a more powerful virtual machine. If I had ordered a new server at a conventional provider, for example, and realized that the machine was too small, then things would have been a lot more complicated. With EC2, I simply launched a second, more powerful, instance of my private AMI (OS image) and moved the IP address to the new instance. Thus, it didn't cost me extra work time to upgrade to a bigger machine. Furthermore, moving the IP to the new instance was only a matter of seconds, so there was no downtime.
I am now using a High-CPU Medium instance that has five EC2 Compute Units (two virtual cores with 2.5 EC2 Compute Units each). This machine should be about five times as fast as the small instance type I used at first. It also has only 1.7 GB RAM, but that is enough for the 500 page views per hour that my server has to deliver at peak times. So far, the performance is sufficient to run 4sysops easily. However, whenever I start a bundling process (create a new image), the virtual machine starts sweating again.
Hence, cloud computing clearly as an advantage over traditional server hosting when it comes to scalability. The same applies to on-premise computing. If you figure out that the servers you bought last year do not have enough power anymore, you certainly have a problem. And if your servers are too big, that means wasted money.
Unfortunately, if I ever again need a more powerful server, the upgrade won't be that easy. The instance type I am using now is 32-bit, and the next powerful instance type is 64-bit. Hence, I would have to install everything from scratch. Besides, this instance would cost four times as much as the one I have now, which would be much too expensive. Amazon offers only five different machines types.
Technically, cloud computing can offer better scalability than traditional server hosting or on premise computing. It is just that Amazon doesn't really use that advantage. They definitely need more different instance types.
Furthermore, it is not possible to upgrade reserved instances. Many conventional server hosters allow you to upgrade to a bigger server before the end of the term. But not Amazon. This is certainly a major disadvantage of EC2.
Cloud flexibility ^
So why Amazon EC2? The big plus is its flexibility. Let's say, I want to make some major changes on my server. Instead of working on a productive server, I can launch a copy of my instance and mess with it without having to worry that my server will go down if I make a mistake. Once everything is finished, I can terminate the old instance and transfer the IP to the new machine.
Of course, you’ll have similar features if you work with server virtualization in your own datacenter; however, you’ll then need extra computing power for your test machines or short term projects. Usually, when you need a new virtual machine to test something or for a productive server, you will realize that the other admins in your organization have already occupied all the available capacity on your servers. Then, you will start thinking if you could reduce the capacity of some virtual servers or move them to other hosts, or just order new hardware. This costs time.
In the cloud, you simply launch a new test machine and pay only for the time you actively work on it. It simply doesn't matter on which host the instance is running. The location of your virtual machines is virtualized; it doesn't matter anymore. Cloud computing basically is location virtualization.
During off hours you can shut down the instance and launch your configuration whenever you need it again. You don't pay for your instance during this time. The storage costs for the AMI (OS image) are more or less negligible for most machine types. And if you are done with your testing, you purchase a reserved instance and your productive server is online within seconds. You don't have to spend time for ordering the server, wait until it is delivered, mount into the rack, etc.
You also don't have to plan what hardware you’ll need for the next year or so. If you need new capacity, you can launch another instance with a mouse click. And best of all, you can just focus on the software part and don't have to bother with any kind of hardware management.
Thus not cost savings make cloud computing attractive. It just simplifies server provisioning. You can launch new server instances very quickly which gives your company a significant competitive advantage. Therefore, cloud computing does not reduce costs, but it can help your company to increase earnings because the improved flexibility increases the agility of your business.
The flexibility factor was the one I underestimated the most when I heard about cloud computing for the first time. However, I had another reason for moving 4sysops to the cloud. After having more practical experience with EC2, I believe cloud computing has a great future. A lot more competition is coming soon, which will reduce prices, significantly; in fact, there could come a time when cloud computing is cheaper than on-premise computing. As an IT pro, you should be prepared for that time!