TVs. Consoles. Projectors and accessories. Technologies. Digital TV

Cloud technologies concept and basic definitions. Cloud technologies - the view from the user's side. Solutions overview. Working with documents in cloud technologies

Let's start with the definition cloud computing. This phenomenon is new, so there are not many authoritative sources where this concept is defined. American specialists Peter Mell and Tim Grans from the Laboratory took the most comprehensive and fundamental approach to this issue. Information Technology National Institute of Standards and Technology (NIST). In my work The NIST Definition of Cloud Computing (Definition of cloud computing: NIST version) they write the following (author's translation from English).

Cloud Computing is a model for providing convenient network access on-demand to a shared set of configurable computing resources (for example, networks, servers, data storage, applications and/or services) that the user can quickly use for his tasks and release while minimizing the number of interactions with the service provider or own management efforts. This model is aimed at increasing the availability of computing resources and combines five main characteristics, three service models and four deployment models.

Characteristics of cloud computing:

  1. Self-service on demand
    The consumer, when he needs it, can independently use computing capabilities, such as server time or network storage, in automatic mode, without interactions with service provider personnel.
  2. Widely accessible via the Internet
    Opportunities are available via the network; they are accessed based on standard mechanisms, which allows the use of heterogeneous thin and thick client platforms (for example, mobile phones, laptops, PDAs).
  3. Pooling resources
    The provider pools its computing resources to serve a large number of consumers using the Multi-tenancy principle. Various physical and virtual resources are dynamically allocated and reallocated according to user needs. There is a sense of location independence where the customer does not know or control where exactly the computing resources they use are located, but may be able to determine their location at a more abstract level (for example, country, region or data center). Examples of resources could be data storage, computing power, RAM, throughput,virtual machines.
  4. Ability to adapt quickly
    Computing capabilities can be quickly and flexibly reserved (often automatically) for rapid scaling to meet customer needs, and also quickly released. From a consumer's perspective, the available options often appear unlimited and can be purchased in any quantity at any time.
  5. Measurable service
    Cloud systems automatically control and optimize the use of resources through the measurement of certain abstract parameters. Options vary depending on the type of service. For example, these could be: data storage size, processing power, throughput, and/or number of active user records. The use of resources is monitored and controlled; reports are generated. Thus, both the supplier and the consumer receive transparent information about the volume of services provided (consumed).

Service models:

  1. Cloud Software as a Service (SaaS) software as a service, hereinafter referred to as “software as a service”;
  2. Cloud Platform as a Service (PaaS) – cloud platform as a service;
  3. Cloud Infrastructure as a Service (IaaS) – cloud infrastructure as a service.

We will reveal only the first service model as relevant to the topic of this work. Software as a service (SaaS) is providing the consumer with the opportunity to use the supplier’s applications running on the cloud infrastructure. Applications are accessed from various client devices through a thin client interface, such as a web browser. The consumer does not control or manage the cloud infrastructure on which the application runs, including the network, servers, operating systems, data storage, or even application settings. A possible exception is individual application user settings.

Deployment Models:

  1. Private Cloud
  2. Community cloud
  3. Public cloud
  4. Hybrid cloud

We will reveal only the third deployment model as relevant to the topic of this work. Public cloud (PublicCloud)– in this model, the cloud infrastructure is available to everyone or a wide industry group and is owned by the cloud service provider.

Above we defined cloud computing and described its main characteristics. We also provided a classification of cloud computing by service model and deployment model, that is, we talked about what types of cloud computing exist. So what are “cloud services for small companies”?

The concept contains the words “cloud” and “services,” which means we are talking about services provided from the cloud, that is, using cloud infrastructure.

Since these services are intended “for small companies”, then:

  1. These services should help you run your business;
  2. These services should be affordable for small companies;
  3. They must be widely available;
  4. They should not require specific knowledge from the consumer (for example, in the field of information technology).

Based on the above, we give the following definition. Cloud services for small companies– these are business automation applications distributed using the SaaS (software as a service) model through the Public Cloud and available to a wide circle customers at an affordable price.

The term “cloud technology” is now on everyone’s lips. An active discussion of the possible nuances of working with such technologies is taking place both on the forums of large Internet companies and among novice users. And there really is something to discuss.

Every day in search engines Computer owners are increasingly asking the question “what is cloud technology.” This is not surprising, because more and more users are learning about this innovation. A striking example is antivirus programs. New versions of Norton Internet Security, Kaspersky and many others in the settings offer to activate the cloud protection option. Since curiosity is part of human nature, it is logical that people are becoming interested in cloud technologies.

Alas, one should not expect anything revolutionary. In part, these technologies have existed on the Internet for a long time, they simply lacked an accurate and comprehensive definition, systematization and understanding of potential opportunities. Cloud technologies are a way of processing digital data outside the environment of the initiating computer. Since many people become familiar with the term thanks to antivirus applications, let’s consider the work of “clouds” using the example of this group of programs.

Let's imagine that an antivirus application encounters suspicious program code, the description of which is not in the virus databases. If the user does not know what cloud technologies are and has not allowed their use (check the box in the settings), then the antivirus will try to localize suspicious file until the databases are updated. Everything is completely different if cloud technologies are activated. In this case, information about strange code is automatically transmitted to the developer server antivirus program, where it is promptly checked by specialists for potential danger. If a threat is confirmed to all computers connected to this resource, instructions are sent on how to neutralize the danger. The result is an unprecedented speed of response to the emergence of new viruses. What is cloud technology in in this example? The answer is to process suspicious code on the developer’s servers, away from the computers of ordinary users. This is the key feature.

Cloud technologies give a second life to low-power computing devices. Let's assume that we have a calculator that has access to the Internet and is connected to a specialized “cloud” consisting of clusters of high-performance computers. We can perform basic operations ourselves, but what should we do if complex calculations are required? In this case, the calculator sends the task data to the cloud service, and receives in response ready-made solution. For the user, the actions performed between typing commands and receiving a response went unnoticed. After all, the main thing is the result, and it was achieved. Of course, a calculator is an extreme, but, on the other hand, it’s easier to understand the principle of operation.

In addition to such unobvious clouds, there are special services that largely replace full applications on local computer. For example, a user needs to edit a text file in Word. To do this, you will need to purchase the program itself (and the licensed version is not cheap), allocate free disk space on the media, connect the necessary modules. Of course, all this can be solved, but what to do if there are a lot of computers (enterprise)? Spending money on purchases It is much easier to use a cloud service that provides access to certain programs hosted on its sites. The user needs to go to the desired site through a browser, launch Word remotely and open his file for editing. By the way, convenient interfaces are usually implemented in this way.

The benefits of cloud technologies can be listed for a long time. There are fewer disadvantages, but they are significant: reduced confidentiality and dependence on the work of a third-party resource.

This section shows how cloud computing can be used to teach the basics of programming. A detailed example of working with a Web service is given that allows you to create and debug training programs in any programming language using cloud service website http://ideone.com.

Modern programming practice involves the active use of specialized integrated development tools (IDE – Integrated Development Environment). Their use is associated with the following two difficulties:

  • Configuring and installing the IDE requires high qualifications system administrator.
  • Modern IDEs are quite demanding on the resources of the computer on which they are used.

Let us explain each point in detail. To ensure full-featured operation of the IDE, it is required that the qualifications of the system administrator installing, configuring and supporting the IDE are sufficiently high. This leads to the need for educational institutions to hire highly qualified employees for the position of system administrator, whose salaries can be a significant expense item in the budget of an educational institution.

Moreover, educational institution costs may increase due to the fact that modern IDEs require high-performance computing machines. For example, one of the most common IDEs, Microsoft Visual Studio 2012, requires a 1.6 GHz or higher processor, 1 GB of RAM (or 1.5 GB for virtual machine), 10 GB of free disk space. For most tasks educational institutions no computers with this type required high performance, so purchasing them may be an unacceptable luxury.

Both of these problems can be solved by the use of cloud technologies when teaching programming. Currently, there are a large number of so-called online IDEs that do not require installation on the user's computer and which only require an Internet browser to run. System Requirements browsers to computer hardware have traditionally been modest. For example, popular Web browser Mozilla Firefox 17 requires a processor of 1300 MHz, 512 MB of RAM and 200 MB of free disk space for installation, which is significantly less than the previously given figures for the Microsoft Visual Studio 2012 IDE.

Let's consider below how you can use an online IDE in educational institutions to teach the basics of programming using the example of http://ideone.com. This service allows you to create program texts online in different programming languages ​​and launch these programs for execution with the ability to analyze the results obtained. The main operating elements of Ideone are shown in Fig. 2.1.


Rice. 2.1.

In the field" A"you must enter the text of the program, and in the field" IN"you need to select the one you are using programming language, then you need to press the button " Send". It is stated that Ideone supports the following 55 popular programming languages: Ada, Assembler, AWK, Bash, bc, Brainf**k, C, C#, C++, C++ 0x, C99 strict, CLIPS, Clojure, COBOL, Common Lisp (clisp), D (dmd), Erlang, F#, Factor, Falcon, Forth, Fortran, Go, Groovy, Haskell, Icon, Intercal, Java, JavaScript, Lua, Nemerle, Nice, Nimrod, Node.js, Objective- C, Ocaml, Oz, PARI/GP, Pascal, Perl, PHP, Pike, Prolog, Python, R, Ruby, Scala, Scheme (guile), Smalltalk, SQL, Tcl, Text, Unlambda, VB NET, Whitespace. that this list is sufficient for teaching the basics of programming in almost any educational institution in the world. Moreover, when using the ideone.com service, the teacher has the opportunity to use several programming languages ​​when teaching without the need to support the operation of several IDEs.

Let us show with an example how group work can be organized when teaching the basics of programming. Figure 2.2 illustrates how to run a simple C program. As you can see, the program text uses syntax highlighting, similar to what users are used to using in regular offline IDEs. However, if desired, the backlight can be turned off using the " A". Using the control " IN"You can specify a list of input data for the program, which allows you to implement more complex program logic than in the example given.

The control element is very important" WITH", which allows you to personalize your work with the program. This opportunity extremely valuable in organizing the educational process. If the teacher asks all students to register in Ideone (or use their account Facebook), then it becomes possible to make the process of working with the program collective, and the process collaboration with the program will be carried out using modern Web technologies 2.0. We will tell you more about this using Fig. 2.3.

This control allows you to select from list on the right side of the screen is one of the widgets of popular social networking sites.

Unfortunately, the online IDE Ideone does not allow you to implement all the functions of traditional offline IDEs. For example, it is not possible to use the functions of working with the network, accessing files, and some others. It is also impossible to run the program, lead time which will take more than 15 seconds or the need for RAM exceed 256 MB, or the size of the program exceeds 64 KB. All these limitations are quite serious if you plan to use Ideone to develop professional software. However, for educational purposes these restrictions are more than acceptable. In addition, for more demanding teachers, there are paid and free services, similar to Ideone, which at the same time implement to a greater extent the functionality of traditional offline analysis of execution results in console mode, compilation for different platforms and operating systems can be completed online. Ideally, the end of the programmer’s work will be downloading ready-made binary files with a running program. This approach allows you to save disk space used offline, and also allows you to compile the project much faster than at the user’s workplace, if this workplace equipped with outdated hardware. The result of this is possible financial savings for the educational institution.

However, in addition to the economic effect, significant advantages can be obtained when organizing the educational process. Students get the opportunity to collaborate on software projects from the comfort of their own home. This allows you to implement complex course projects and laboratory work with significant savings on the implementation of organizational measures on the part of the teacher.

Since “clouds” are a collective concept, it makes sense to classify them according to some criteria. Below are the classifications of “clouds”, one of which was proposed by InfoWorld, and the other by the commercial director of Parallels, one of the leaders in the virtualization systems market.

InfoWorld suggests dividing all “clouds” into six types:

SAAS - directly applications as a service (for example, Zoho Office or Google Apps).

SERVICE COMPUTING - for example, virtual servers.

WEB SERVICES IN THE CLOUD - Internet services optimized for working in a virtual environment (for example, Internet banking systems).

PAAS is a “platform as a service”, that is, a new generation of web applications that make it possible to build a set of capabilities at the user’s request (for example, Live Mesh from Microsoft).

MSP is a provider of managed services (Managed Service Provider), serving service providers (for example, built-in anti-virus scanners for mail portals).

COMMERCIAL PLATFORMS for services - a combination of PaaS and MSP (for example, Cisco WebEx Connect).

Clouds are divided into private, public, hybrid and clan.

    Private cloud

Private cloud is an infrastructure intended for use by one organization, including several consumers (for example, divisions of one organization), possibly also clients and contractors of this organization. A private cloud may be owned, operated and operated by the organization itself or by a third party (or some combination thereof), and may physically exist within or outside the owner's jurisdiction.

    Public cloud

Public cloud is an infrastructure intended for free use by the general public. A public cloud can be owned, operated, and operated by commercial, academic, and government organizations (or some combination thereof).

    Hybrid cloud

A hybrid cloud is a combination of two or more different cloud infrastructures (private, public or public), which remain unique objects, but are interconnected by standardized or proprietary technologies for data transfer and applications (for example, short-term use of public resources clouds for load balancing between clouds).

    Clan cloud or community cloud

Community cloud is a type of infrastructure designed for use by a specific community (clan) of consumers from organizations that have common goals (for example, mission, security requirements, policies, and compliance with various requirements). A community cloud may be cooperatively owned, managed and operated by one or more community organizations or a third party (or some combination thereof), and may physically exist within or outside the jurisdiction of the owner.

1.3 Main directions of development of cloud technologies

The four main directions of development of cloud computing are:

Some products directly provide users with Internet services such as storage, middleware, collaboration, and databases.

    Infrastructure as a service ( IaaS, English Infrastructure-as-a-Service) is provided as an opportunity to use cloud infrastructure for independent management of processing resources, storage, networks and other fundamental computing resources For example, a consumer may install and run arbitrary software, which may include operating systems, platform software, and application software. The consumer can control the operating systems, virtual systems data storage and installed applications, as well as have limited control over the set of available network services(eg firewall, DNS). Control and management of the main physical and virtual infrastructure of the cloud, including networks, servers, types of operating systems used, storage systems is carried out cloud provider. Examples of users (system developers, administrators, IT managers).

    Platform as a service ( PaaS, English Platform-as-a-Service) is a model where the consumer is given the opportunity to use a cloud infrastructure to host basic software for subsequent placement of new or existing applications on it (own, custom-developed or purchased replicated applications). Such platforms include tools for creating, testing and executing application software - database management systems, middleware, programming language execution environments - provided by the cloud provider. Control and management of the main physical and virtual infrastructure of the cloud, including network, servers, operating systems, storage, is carried out by the cloud provider, with the exception of those developed or installed applications, and, if possible, environment (platform) configuration parameters. Examples of users (application developers, testers, administrators)

    Software as a service ( SaaS, English Software-as-a-Service) - a model in which the consumer is given the opportunity to use the provider's application software running in the cloud infrastructure and accessible from various client devices or through a thin client, for example, from a browser (for example, webmail) or through program interface. Control and management of the underlying physical and virtual infrastructure of the cloud, including network, servers, operating systems, storage, or even individual application capabilities (except for a limited set of user-defined application configuration settings) is carried out by the cloud provider. Example users (business users, application administrators).

Other *aaS: for example:

DaaS (Desktop-as-a-Service) offers each user a standardized virtual workplace, with the ability to configure and install other programs. Access is carried out over the network through a thin client, which can be anything from a regular PC to a smartphone (Google Chrome OS).

CaaS (Communications-as-a-Service) is a combination of software and hardware for organizing all types of communication (voice, mail) between employees of one enterprise using third-party solutions.

An alternative SaaS option is promoted by Microsoft Corporation, it is called S+S (Software+Services) and combines strengths a typical SaaS and a typical affordable application. This is ordinary software, but focused on remote services. Cloud computing is becoming a serious technology trend - many experts believe that in the next five years cloud computing will change not only IT processes, but also the information technology market itself. Thanks to this technology, users of a wide variety of devices, including PCs, laptops, smartphones and PDAs, will be able to access programs, storage systems and even application development platforms over the Internet, through services offered by cloud computing providers, with resources in this case are hosted on the servers of providers.

Based on all of the above, we can conclude that when using cloud computing, information technology consumers can significantly reduce capital costs - for the construction of data centers, the purchase of server and network equipment, hardware and software solutions to ensure continuity and performance - since these costs are absorbed cloud service provider. In addition, the long construction and commissioning time of large information technology infrastructure facilities and their high initial cost limit the ability of consumers to flexibly respond to market demands, while cloud technologies provide the ability to respond almost instantly to increased demand for computing power.

When using cloud computing, consumer costs shift towards operational costs - this is how the costs of paying for the services of cloud providers are classified.

The concept of "Cloud technologies"

Cloud technologies- These are data processing technologies in which computer resources are provided to the Internet user as an online service. The word “cloud” is present here as a metaphor, personifying a complex infrastructure that hides all the technical details behind it.

Cloud (scattered) computing (English cloud computing, also used the term Cloud (scattered) data processing) is a data processing technology in which computer resources and power are provided to the user as an Internet service. The user has access to his own data, but cannot manage and does not have to care about the infrastructure, operating system and the actual software with which it works. The term "Cloud" is used as a metaphor based on the diagram of the Internet computer network, or as an image of a complex infrastructure behind which all the technical details are hidden. According to an IEEE document published in 2008, “Cloud computing is a paradigm in which information is permanently stored on servers on the Internet and temporarily cached on the client side, e.g. personal computers, game consoles, laptops, smartphones, etc.”

Cloud data processing as a concept includes the concepts:

  • 1) infrastructure as a service
  • 2) platform as a service
  • 3) software as a service
  • 4) data as a service
  • 5) workplace as a service

and other technological trends, which have in common the belief that the Internet is able to meet the data processing needs of users.

For cloud technologies, the most important feature is the uneven demand for Internet resources from users. To smooth out this unevenness, another intermediate layer is applied - server virtualization . Thus, the load is distributed between virtual servers and computers.

Cloud technologies is one big concept that includes many different concepts that provide services. For example, software, infrastructure, platform, data, workplace, etc. Why is all this needed? The most important function of cloud technologies is to meet the needs of users who need remote data processing.

What is not considered cloud computing? The first is offline computing on a local computer. Secondly, this is “utility computing”, when the service of performing particularly complex calculations or storing data arrays is ordered. Thirdly, this is collective (distributed) computing (grid computing). In practice, the boundaries between all these types of calculations are quite blurred. However, the future of cloud computing is still much larger than communal and distributed systems.

Cloud data storage-- an online storage model in which data is stored on numerous servers distributed over the network, provided for use by clients, mainly by third parties. In contrast to the model of storing data on your own dedicated servers, purchased or rented specifically for such purposes, the number or any internal structure of servers to the client, in general case, not visible. Data is stored, as well as processed, in the so-called cloud, which, from the client’s point of view, is one big virtual server. Physically, such servers can be located remotely from each other geographically, even located on different continents.

In order to understand what a “cloud” is, it’s worth starting with history. this issue. It is necessary to understand: is this technology really in the category of new ideas or is this idea not so new.



Related publications