In today’s online world, the use of cloud services are present almost everywhere, with “virtualization technology” being the key factor to enabling these services. In general, cloud applications are provided by the Virtual Machines (VM), which are hosted on physical servers themselves (Hosts). After final release by the Development Team, the applications are handed over to the Operation Team and are run on the VM.
The Benefits of Choosing a VM
Why would you choose a VM over a physical server? Here are three main benefits of many:
The Popularity of Containers
However, technology cannot always satisfy everyone. The industry is beginning to think that VMs will occupy too many resources, and so the popularity of Containers has risen. Unlike VMs, Containers do not simulate hardware resources, meaning they do not use Guest OSs. In short, a Container is a virtualized in its own application and corresponding environment. There are even more benefits to containers, as of which only a few are detailed below:
With this being said, it seems that Containers have their place in future markets and are set to replace all applications of VMs. Truth be told, the current position of Containers make them not suitable replacements for all VMs just yet. When choosing between Containers and VMs, there are several key factors that must be considered. One of the most important reasons is the issue of the application’s environment. The aforementioned immutable functionality of containers, though beneficial to the operations of the application, means that the system environment is not a freely modifiable. As a result, if managers need to upgrade or change system configurations, they will encounter a lot of trouble. This usually requires the developer themselves to step in, and rewrite any parts of the program that may be an issue. Conversely, it would be relatively easy for an operator using a VM to manage the system environment.
Simply put, if a cloud service meets any of the following two conditions, a VM’s architecture would be more suitable for your needs.
Otherwise, in most cases it is recommended to containerize the application to keep up with the current trends and market competitiveness.
撰文： 陳逸凡 迎棧科技解決方案架構師