Cloud computing (English cloud computing, the term cloud processing is also used) is a data processing technology in which software and / or hardware is provided to the user as a service.
The cloud refers to the remote servers on which virtual environments and software are deployed. The user does not have direct access to the hardware, and usually the Internet is used to access the servers. In cloud computing, there are several types of services, for convenience in their designation they use the abbreviation āas a serviceā, that is, āas a serviceā or āas a serviceā.
SaaS (Software as a service; software as a service) is a software delivery model in which a provider develops and manages a web application independently, giving users access to it via the Internet.
')
PaaS (Platform as a service; platform as a service) is the provision of an integrated platform for developing, testing, deploying, and supporting applications as services. In the cloud, there is a set of programs, core services and libraries, on the basis of which it is proposed to develop its own applications. In addition, PaaS is also understood to mean certain parts of complex systems, for example, a database or communications system.
IaaS (Infrastructure as a service; infrastructure as a service) is the provision of hardware resources, usually combined on the basis of virtualization, as a service. IaaS consists of three main components - hardware (servers, data storage systems, client systems, network equipment), operating systems and system software (virtualization, automation, basic resources management tools), and middleware software for managing hardware and software.
aaS (Communication as a service; communication as a service) - it is meant that communication services are provided as services; This is usually IP-telephony, mail and instant communication (chat, IM).
WaaS (Workplace as a service; workplace as a service) is the provision of a workplace as a service, a special case of infrastructure, as a service.
Cloud computing architecture
The cloud is built on one or more servers interconnected by virtualization systems. Also, virtualization technologies allow dividing the hardware power into parts that correspond to the current needs of users accessing the hardware as a service. As a result, the user moves from the acquisition, management and depreciation of hardware resources to the purchase of server time, disk space, network bandwidth required to perform their tasks.
Separate software and hardware virtualization. Software virtualization currently prevails over hardware due to the fact that for a long time, processor manufacturers could not properly implement support for virtualization. The process of introducing new technology into processors required a serious change in their architecture, the introduction of additional instructions and modes of operation of processors. Despite the fact that software platforms are very advanced in terms of speed and the provision of management tools for virtual machines, hardware virtualization technology has some undeniable advantages over software:
- Simplify the development of virtualization platforms by providing hardware management interfaces and virtual guest support. This contributes to the emergence and development of new virtualization platforms and management tools, due to the reduction of labor intensity and development time.
- The possibility of increasing the speed of virtualization platforms. Since virtual guest management is performed using a small middleware layer (hypervisor) directly, in the future, an increase in performance of virtualization platforms based on hardware techniques is expected.
- The ability to independently run multiple virtual platforms with the ability to switch between them at the hardware level. Multiple virtual machines can operate independently, each in its own space of hardware resources, which will eliminate the loss of performance on maintaining the host platform, as well as increase the security of virtual machines due to their complete isolation.
- Unlinking the guest system from the host platform architecture and the implementation of the virtualization platform. Using hardware virtualization technologies, it is possible to launch 64-bit guest systems from 32-bit host systems with 32-bit virtualization environments running in them.
The approach to cloud systems differs in the degree of control over the low level that is provided to the client.
IaaS - the āinfrastructure as a serviceā model provides a virtualized environment based on some clustered servers. In fact, the user is provided with a virtual machine that runs on the provider's systems, within which there are all the possibilities for installing the OS first, and then the necessary software settings. Provided hardware resources can be flexibly and almost instantly changed up or down. It is also possible to take as a service several such virtual servers; accordingly, you can create your local network between them. The user is not given access to a level lower than the virtualization layer (Xen or VMware is most often used).
PaaS - a platform-as-a-service model has maximum flexibility and extensibility, but this turns into providing not just a virtual machine or some resources, but entire libraries and APIs. The user is given the opportunity to run their own applications, often seriously limiting the choice of programming language and additional libraries. But such an application will be able to flexibly receive resources on request. In this model, the user does not have access not only to the hardware, but also to the operating system and the virtualization environment. All that the user works with is calls to the API and libraries provided by the service.
There is a dependency: the simpler the language and the API within which the programs work, the easier and more flexible to scale them. Therefore, it is extremely difficult to find resources familiar to web developers in cloud systems, at least in a standard form, for example, traditional SQL relational DBMSs are extremely poorly suited for scalable systems (with rare exceptions, like Oracle or DB2). Instead, they use their own development as well as third-party open solutions. One of the most popular solutions was the key-value data warehouse and system based on Google BigTable, as well as its open counterparts. This is very similar to a regular cache ā the application writes any data to the storage, associating it with some key, digital or simple string, then extracts or deletes it, indicating the key. More advanced systems implement entire data structures, lists, queues, and even allow SQL-based samples with sorting and filters. Access to the file system often changes, which is replaced by the similarity of the usual storage, supplemented by the map / reduce system for processing large amounts of data.
SaaS - in the āapplication as a serviceā model, the user has access only to a specific application. The user has no access to the API or to the program code of the application. All that is available to it is a software environment, usually in a browser window and file storage for its documents. A vivid example of such a service can be called Google Docs for working with office documents and Adobe Air for working with images.
The main advantages of cloud computing:- The user pays only when the service is necessary for him and precisely for what he uses. This flexible pricing scheme allows you to significantly reduce costs.
- No cost to purchase, maintain and upgrade software and hardware.
- Scalability, fault tolerance, virtualization and security - automatic allocation and release of the necessary resources, depending on the number of users served by the application. Maintenance of the resources provided falls on the shoulders of the provider. Updates to all provided software resources occur on the cloud side, more regularly and in a timely manner.
- The ability to create documents or programs and share it within the development team greatly improves the productivity of creating applications. Ability to define, modify and track execution schedules, tasks, areas of responsibility, roles (designers, developers, testers, access-based QC).
- Remote access to cloud computing - in fact, you can work with cloud computing from anywhere on the planet where there is Internet. To work with the cloud usually does not require any specialized software, a browser is enough.
Disadvantages of cloud computing.- The cloud provides a weaker legal protection - data in the cloud is less protected in the event of any action taken by law enforcement and other entities. Public authorities or lawyers conducting investigations may well obtain such data without a search warrant.
- The user does not own the hardware - companies that want to audit their providers and conduct their own testing, you need to remember that the hardware does not belong to them. Scanning for vulnerabilities or thorough testing requires explicit permission from the cloud service provider. Otherwise, it will be equivalent to the client trying to gain unauthorized access to the providerās systems.
- Requires strict work rules and user training. Constant readiness for service from anywhere on the Internet means that phishing attacks that employees are exposed to at home can also threaten the company in which they work.