Personally, I prefer Alibaba Cloud ECS (i.e. IaaS). The reasons are as follows:
Running Docker in IaaS is the most flexible and cost-effective. The ecosystem of container technology is already very complete, so building a Docker platform by yourself is not as difficult as imagined.
Using container cloud (CaaS) or PaaS to run applications will greatly reduce flexibility and be more expensive. At the same time, its usage complexity is not as simple as imagined, because you have to learn their custom interfaces/tools. In comparison, open source tools have more documentation/reference materials and debugging is relatively easy.
If you use IaaS to run Docker, it is very convenient to change cloud service providers (such as Tencent Cloud, Qingyun), because Docker can run on any Linux system. However, once you use a certain CaaS or PaaS service, your service is basically bound to them. This is also an important reason why PaaS has not developed.
Of course, there is no absolute answer to this question. If your application is very simple, such as a static blog, or a simple WeChat official account, and the application will not change much or grow much, then choosing CaaS or PaaS will be more "convenient" to manage. . If the application is more complex, it is better to choose IaaS.
Personally, I prefer Alibaba Cloud ECS (i.e. IaaS). The reasons are as follows:
Running Docker in IaaS is the most flexible and cost-effective. The ecosystem of container technology is already very complete, so building a Docker platform by yourself is not as difficult as imagined.
Using container cloud (CaaS) or PaaS to run applications will greatly reduce flexibility and be more expensive. At the same time, its usage complexity is not as simple as imagined, because you have to learn their custom interfaces/tools. In comparison, open source tools have more documentation/reference materials and debugging is relatively easy.
If you use IaaS to run Docker, it is very convenient to change cloud service providers (such as Tencent Cloud, Qingyun), because Docker can run on any Linux system. However, once you use a certain CaaS or PaaS service, your service is basically bound to them. This is also an important reason why PaaS has not developed.
Of course, there is no absolute answer to this question. If your application is very simple, such as a static blog, or a simple WeChat official account, and the application will not change much or grow much, then choosing CaaS or PaaS will be more "convenient" to manage. . If the application is more complex, it is better to choose IaaS.
If I were to rank them: IaaS>CaaS>PaaS.