We know that there are two ways to improve the computing capability of a computing system: one is to improve the capabilities of a single computing device and the other is to increase the computing devices. We know that the improvement of computing capability of a single device is always limited. Therefore, to improve computing capability in cloud computing, increasing the number of devices is the only choice. Adding a device can improve the computing capability and whether an application can use the increased computing power are two different things. To use the computing power brought by this increase, applications need to support distributed computing. Therefore, there are two basic conditions for achieving the on-demand computing capability of cloud computing: Computer virtualization and distributed computing support of applications. In cloud computing, there is no longer a physical boundary condition. The computer you face is only a logical computer, that is, a virtual computer. This is very important in IAAs and Paas. Most of the time, we need to use this virtual computer to define the scope, boundaries, and service capabilities. Cloud computing is also a type of distributed computing.
There are two basic distributed modes for cloud applications: one is the function deployment distribution (load balancing is a typical method), and the other is the function computing distribution, this is a typical sub-governance strategy in solving the problem. Deployment distribution is relatively easy to implement because the function (service) is self-closed. When building such an application, you must pay special attention to the processing of the cache. You can use the cache, but it is mainly used for queries rather than data operations (such as adding, modifying, and deleting ), this is especially true for enterprise applications (page-level cache for DOTNET is acceptable. If your cache service is independent, it can be shared by applications deployed in different locations ). This deployment distribution is suitable for building enterprise-level application systems. The computing distribution is complex. The general model is composed of a scheduling server and a working server. Both serial and parallel computing exist. Generally, simple parallel computing is used in databases or custom storage models, such as greenplum distributed databases. Of course, a more powerful processing mode is a multi-pipeline processing mode that is intertwined with parallelism, such as mapreduce.
For distributed computing, you can buy this tutorial. However, for building an enterprise-level SaaS, it is generally based on databases. It is enough to make a deployment distribution (SLB ). For some services (such as PAAs), the computing distribution and storage distribution may be considered. Currently, this is either a targeted application (such as Google's bigtable-based application ), as a platform, I have never used Google App Engine, and I have tried Microsoft Windows azure. It is still difficult for enterprise-level business application systems to do some small personal applications.
PS: I wrote a lot about cloud computing, mainly for my own thoughts. Whether it's cloud computing, grid computing, cluster computing, and so on, you only need to remember two things: limited life and limited resources. This is not only the development of human society, but also the most decisive factor in the development of the entire natural world. Human economic activities are no exception. As long as we can improve efficiency and reduce costs (which can better satisfy people's desires), the security risks we are currently concerned about are not a problem, this computing model can bring tangible benefits-cloud computing will certainly develop. Of course, this requires a process that is both technical and psychological.