Cloud computing - calculations carried out in a ready infrastructure to which there is an access through a network. The infrastructure may consist of thousands, hundreds of thousands of compute nodes, disk arrays. All this is connected to a single network and functions as one large computer. Everything is configured and accessible from the "box".
')
The development of cloud computing leads to the creation of large abstract computers in which:
- All components are used at full capacity - utilization of idle resources. With the number of servers, thousands, tens, and especially hundreds of thousands, the costs of idle servers will grow decently and the use of cloud computing will not be rational. Therefore, virtualization develops when several operating systems are installed on one machine. Virtualization is controlled by hypervisors, special software that provides the work and resource allocation of several operating systems.
- High degree of parallelism
Calculations If your local machine can run threads in parallel, with 2 or more cores or processors. Then in the cloud you can run 100, 1000 and more streams, they can run on separate servers (if the cloud service provider has realized this, of course). What will it give? Script execution speed will cease to matter where a task can be parallelized, use several threads, they can be used even when rendering web pages.
Data. Distributed storage is much more reliable storage at one point. Such repositories can save data after a nuclear war or the death of the continent, due to geographic separation.
- Unified infrastructure for developing cloud applications. You use a high-level API, where the operating system is under the cover of a new software layer and says hello to the BIOS. You use the resources of the "infinite" machine, that's all.
A good analogy was given by Dmitry Sotnikov:
“I would compare cloud computing with subsistence farming and a supermarket. There are people who grow fruits and vegetables themselves, sew shoes, clothes, etc. - they certainly do it with pleasure and are precisely confident in the quality of their products. And there is an option like we have with you: people work somewhere, get paid, go to the supermarket and buy what they need. So with cloud computing. Often, other things being equal, it is more economical to get the service on the side. Specialization, division of labor and mass production are more cost-effective models. ”
Three whales
Cloud computing includes three definitions of IaaS, PaaS and SaaS.
Description in simple words
IaaS - infrastructure as a service (server rental, payment on the fact of used resources), the configuration begins with the choice of the operating system and ends with the programming of the necessary services. This can be compared with the purchase of an unfinished house without interior decoration. Until the final solution, you will have to invest more resources than using PaaS. Target audience software developers.
PaaS is a platform as a service (IaaS + is a special software platform), the infrastructure is set up, the operating systems are already up and running, the software platform is up, running, it manages balancing and sharding data, it provides a convenient API. The analogy is an unfinished house, there are windows and doors, gas, water. You will have to hang your chandeliers, glue the wallpaper, buy kitchen utensils, stuff. Target audience software developers. With convenient visual environments, it may be users who are far from programming.
In fact, PaaS is a serious step forward. This can be compared with the first appearance of operating systems for personal computers.
SaaS - application as a service (payment for the time of using the application). Target audience final consumers.
What they say about the clouds
There is an opinion that you can drag all existing software to the cloud and run there. Imagine that your wires from the monitor of the mouse and keyboard go to some distant data center where this software is spinning. And the user gets a thin client (terminal) in his use. By clicking on the keyboard or mouse button, the data goes immediately to the DC, and the software itself is executed there and gives the client the finished picture. Personally, I agree only with the thin terminal and do not consider this way to be true because:
- It is very simple and could be done a long time ago (for software where response time is not so important);
- The existing software market has grown on technologies developing in isolated personal computer environments. Transferring existing software to the clouds will only generate a bunch of “crutches”;
- Hypervisors will hardly provide a high degree of utilization of idle resources with this approach.
"If you want to use the entire space of the jar, do not load it with stones, crush them into the sand."
The impact of concepts on cloud solutions
On the X axis, the main directions of cloud computing, block size = potential number of target audience. Horizontal block overlapping shows how strongly this or that concept influenced the decision.
On the Y axis on the left, the entry threshold is a cumulative factor that takes into account ready-made services, standardization of access to services from different programming languages, architecture integrity, ease of use of third party modules (3rd party), development tools created on the basis of PaaS.
Decisions that have been influenced by the IaaS concept
Amazon WS, GoGrid, ElasticHosts, FlexiScale, RackspaceCloud, Joyent, Enomaly, ElasticGrid.
Decisions that have been influenced by the PaaS concept
Hivext Platform , Google AppEngine, Microsoft Azure Platform, Aptana Cloud, Engine Yard, Grid Gain, CodeRun.
The future of cloud platforms
The development of cloud computing can generate powerful software platforms like the platforms of existing operating systems. Only here the potential for the development of cloud platforms is much more than operating system platforms for personal computers.
Imagine that there is a “infinite” machine in its resources with access from anywhere in the world, and stability that no PC has ever dreamed of in the world. To work with it, you use thin clients (tablet devices, phones, terminals in public places). The cost of portable devices is rapidly falling, and the possibilities are growing and overtake the desktop system due to the use of cloud platforms and an increase in the speed of data transmission over the network.
Opportunities previously available only to large institutions and businesses come to ordinary users, as when personal computers came.
Do you agree with this?