Teapot about cloud technologies. Advantages and disadvantages of cloud computing. Public and Private Clouds

This section shows how cloud computing can be used to teach programming fundamentals. Provided detailed example working with a Web service that allows you to create and debug learning programs in any programming language using the cloud service of the site http://ideone.com.

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

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, which 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 online program texts in different languages programming 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 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

peace. Moreover, when using the ideone.com service, the teacher has the opportunity to use several programming languages ​​while teaching without the need to support multiple 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 In field " syntax highlighting "you must enter the text of the program, and in the field", similar to what users are used to using in regular offline IDEs. However, if desired, the backlight can be turned off using the "

". Using the control " " 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. If the teacher asks all students to register in Ideone (or use their Facebook account to log in), 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 technologies Web 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 random access memory 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 on used offline disk space , 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, you can also get significant advantages when organizing 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 works

with significant savings on the implementation of organizational measures on the part of the teacher. Standards in the field cloud security

(ISO/IEC JNC 1/SC 27, ).

Standards for managing enterprise and cloud computing resources (Distributed Management Task Force (DTMF), www.dmt.org/standarts/cloud).

Developing cloud standards that reflect user interests cloud computing(Cloud Standards Customer Council, ).

Standards for Cloud Interoperability and Practice (IEEE, ).

Definition of cloud computing; requirements for the use of cloud computing in the US public sector (National Institute of Standards and Technology (NIST), www.nist/gov/ltd/cloud).

Updating the standards WS, SAML, XACML, KMIP in connection with the spread of cloud computing (OASIS, ).

Control Specification cloud systems Cloud Data Management Interface (CDMI), Storage Networking Industry Association (SNIA) www.snia.org/cloud.

Standardized models to avoid vendor lock-in ( Working group on cloud computing as part of the Open Group, www.opengroup.org/cloudcomputing).

Key terms

– economical use of resources, reduction of waste emissions, etc.

4shared– cloud file sharing hosting.

Bitcasa – cloud storage data that allows you to store unlimited amount information.

Box.net– cloud data storage that allows you to store files online and collaborate on them.

Cloud Security Alliance – non-profit organization, a leader in developing standards, guidelines and initiatives to improve the safety and security of cloud computing.

Copy– cloud data storage, which is almost identical in functionality to Dropbox.

Dropbox– cloud data storage that allows users to store their data on servers in the cloud and share it with other users on the Internet.

Google Drive is a free cloud data storage that allows users to store their data on servers in the cloud and share it with other users on the Internet.

iDrive– tool for online Reserve copy With high level privacy.

iFolder- software that is distributed free of charge and open source source file synchronization programs.

IT for green– creation and implementation of technologies that help indirectly protect environment, for example, video solutions (video conferencing).

Mail.Ru Group is a Russian Internet company specializing in investments in Internet projects.

Mega (MEGA Encrypted Global Access) – cloud file hosting Kim Dotcom, which encrypts all content in the browser using the AES algorithm.

OneDrive– renamed in February 2014 Microsoft SkyDrive, based on a cloud organization, an Internet file storage service with file sharing functions.

OpenDrive– cloud data storage with standard set possibilities with 5 GB of space for free user(with a limit of 100 MB per file).

SugarSync– cloud data storage that stores documents, files, photos and music.

Syncplicity – software package for data synchronization in cross-platform environments.

Wuala– a cloud data storage that encrypts all data directly on the user’s computer, and it is transferred to the server in encrypted form. Password from account is never transmitted anywhere, so the usual password recovery scheme on Wuala does not work.

Yunpan 360 is a Chinese cloud data storage that is initially free and provides 36 Terabytes forever.

Account– an account in which various information related to the user is stored, for example, his settings for the site, data on consumed paid services etc.

Web interface– a set of means by which a user interacts with a website or any other application through a browser.

Hybrid cloud– introduction of cloud computing, in which part of the system is hosted in a public cloud, i.e. based on cloud provider data centers, and some in a private cloud.

Google Drive– cloud data storage owned by Google Inc., which allows users to store their data on servers in the cloud and share it with other users on the Internet.

Login– name (identifier) ​​of the user account in the computer system.

[email protected]– cloud data storage from Mail.Ru Group, allowing users to store their data in the cloud and synchronize data on different devices, and also share them with other users.

Cloud Computing– an information technology concept that implies providing ubiquitous and convenient network access on-demand shared pool of configurable computing resources (e.g., data networks, servers, storage devices, applications, and services—both collectively and individually) that can be quickly provisioned and released with minimal operational overhead or access to the provider.

Cloud platforms with open source – platforms that allow, having source texts, any willing supplier can organize a service that is fully compatible with the reference one.

Cloud service– virtual HDD, allowing you to store various information, i.e. music, photographs, documents, etc.

Public cloud – a type of infrastructure intended for use by a specific community of consumers from organizations with general tasks(eg 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.

Lecture Cloud technologies

Cloud technologies (computing) are distributed data processing technologies in which computer resources and capacities are provided to the user as an Internet service.

The main types of cloud technologies include:

    " InfrastructureHowservice" (“Infrastructure as a Service” or “IaaS”)

    " PlatformHowservice" ("Platform as a Service", " PaaS")

    "Software as a service"(“Software as a Service” or “SaaS”).

Let's take a closer look at each of these technologies.

Infrastructure as a Service (IaaS)

IaaS is the provision of computer infrastructure as a service based on the concept of cloud computing.

IaaS consists of three main components:

    Hardware (servers, storage systems, client systems, network equipment)

    Operating systems and system software (virtualization tools, automation tools, basic resource management tools)

    Middleware (e.g. systems management)

IaaS is based on virtualization technology, which allows the user of the equipment to divide it into parts that correspond to the current needs of the business, thereby increasing the efficiency of using available computing power. The user (company or software developer) will only have to pay for the server time, disk space, and network throughput and other resources. In addition, IaaS provides the customer with a complete set of management functions in one integrated platform.

IaaS eliminates the need for enterprises to maintain complex data center, customer, and network infrastructures, while also reducing associated capital costs and running costs. In addition, additional savings can be achieved by providing the service within a sharing infrastructure.

Platform as a Service (PaaS)

PaaS is the provision of an integrated platform for developing, testing, deploying and maintaining web applications as a service.

To deploy web applications, the developer does not need to purchase hardware and software, and there is no need to organize their support. Access for the client can be organized on a rental basis.

This approach has the following advantages:

    scalability;

    fault tolerance;

    virtualization;

    safety.

Scalability PaaS involves automatic allocation and release of the necessary resources depending on the number of users served by the application.

PaaS as an integrated platform for developing, testing, deploying and supporting web applications will allow the entire range of operations for developing, testing and deploying web applications to be performed in one integrated environment, thereby eliminating the cost of supporting separate environments for individual stages.

Ability to create source and sharing it within the development team significantly increases productivity in creating applications based on PaaS.

Software as a service (SaaS).

SaaS– an application deployment model that involves providing the application to the end user as an on demand service. Such an application is accessed via the network, and most often via an Internet browser. In this case, the main advantage of the SaaS model for the client is the absence of costs associated with installing, updating and maintaining the functionality of the equipment and software running on it. The target audience- end consumers.

In the SaaS model:

    the application is adapted for remote use;

    one application can be used by several clients;

    payment for the service is charged either monthly subscription fee, or based on the total volume of transactions;

    application support is already included in the payment;

    Application upgrades can be carried out smoothly and transparently for customers by maintenance staff.

From the point of view of software developers, the SaaS model makes it possible to effectively combat unlicensed use of software, due to the fact that the client cannot store, copy and install the software.

In fact, SaaS software can be considered as a more convenient and profitable alternative to internal information systems.

The development of SaaS logic is the concept WaaS (Workplace as a Service - workplace as a service). That is, the client receives at his disposal a virtual workplace fully equipped with everything necessary for the operation of the software.

    Communications (VoIP)

    Antispam and antivirus

    Project management

    Distance learning

    Data storage and backup

All three types cloud services are interconnected and represent a nested structure.

In addition to various methods of providing services, there are several options for deploying cloud systems:

Private cloud- used to provide services within one company, which is both a customer and a service provider. This is an option for implementing the “cloud concept” when a company creates it for itself, within the organization. First of all, implementation private cloud removes one of important issues, which certainly arises among customers when familiarizing themselves with this concept, is the question of data protection from the point of view information security. Since the “cloud” is limited by the company itself, this issue is resolved using standard existing methods. For private cloud characterized by a reduction in the cost of equipment due to the use of idle or inefficiently used resources. And also, reducing the cost of purchasing equipment by reducing logistics (we don’t think about which servers to buy, in what configurations, what productive capacities, how much space to reserve each time, etc.

In essence, power is increased in proportion to the overall growing load, not depending on each task that arises - but, so to speak, on average. And it becomes easier to plan, purchase and implement - launch new tasks into production.

Public cloud- used by cloud providers to provide services to external customers.

Mixed (hybrid) cloud- joint use of the two above deployment models

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 he works. The term "Cloud" is used as a metaphor based on the image of the Internet on a computer network diagram, 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 itself main feature is the unevenness of the request 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 to process data remotely.

What is not considered cloud computing? Firstly, this is autonomous computing on local computer. Secondly, this is “utility computing”, when a special execution service is ordered complex calculations or storage of data sets. 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.

Cloud computing, which translated from English means cloud computing. Cloud computing is a technology that provides the user with the ability to use the Internet via the Internet. remote resources and capacities. This technology is based on the principle of distributed data processing. Its essence is to provide the user with remote access to services provided in the cloud. The need to save money by effective measures for the provision of hosting services influenced the development of technologyPrikhodko A.Ya. Dictionary-reference book on information security. M.SINTEG, 2001. 124 pp.

The term “cloud computing” today refers to a set of various services, accessed via the Internet. Cloud technologies represent a powerful solution for solving resource-intensive problems. The popularity of use is growing all the time. All personal computer users have either accessed cloud services or are already actively using them.

Types of "clouds"

Concept Cloud computing has a wide range of applications. Therefore it makes sense logical separation for several groups.

1) SaaS: software as a service

SaaS - service cloud applications or "Software as a Service" is probably the most popular easy-to-use form of cloud computing. SaaS uses the Internet to deliver applications that are managed by third-party providers and whose interface is exposed to the client side. Most SaaS applications can be launched directly from a web browser, without the need for downloads or pre-installation. SaaS eliminates the need to install and run applications on personal computers. With the use of SaaS, the task of enterprises to streamline is simplified Maintenance and support because the vendor's services include maintenance of: applications, runtime, data, middleware, operating systems, server virtualization, storage, and networking. Gmail is one famous example postal operator SaaS.

2) PaaS: platform as a service

PaaS is the most complex of the three types - cloud platform services or "Platformas as Service" distributes computing resources through the platform. Developers get an opportunity with PaaS where they can create to develop or customize applications. PaaS makes application development, testing, and deployment faster, easier, and more cost-effective by eliminating the need for the user to purchase underlying layers of hardware and software. One difference between SaaS and PaaS is that some aspects in PaaS must already be managed by the users rather than the providers: With PaaS, the providers still control: runtime, middleware, operating system, server virtualization, storage and networking, but users manage applications and data.

PaaS provides computing infrastructures, hardware and platforms that are installed on top hardware. Just like you can create macros in Excel, PaaS allows you to create applications using software components that are managed by a third party provider. PaaS is highly scalable, and users won't have to worry about upgrading the platform or having their site go down during maintenance. The users who get the most value from PaaS are the company that wants to improve the efficiency and interactivity of a large workforce. For needs large companies and ISVs Apprenda is the one stop shop for personal PaaS business application development and deployment.

3) IaaS: infrastructure as a service

IaaS is a cloud service infrastructure known as "Infrastructure as a Service" that provides a computer with infrastructure (such as an environment virtualization platform), storage, and networking. Instead of purchasing software, servers or network hardware, the user can buy it all as a whole external service, the bill for which usually depends on the amount of resources consumed. In other words, a third party allows a virtual server to be installed on their IT infrastructure for a rental fee. Compared to SaaS and PaaS, IaaS users have greater responsibility for managing: applications, data, runtime, middleware, and operating systems. Service providers still control the virtualization, servers, hard disks, storage and network. IaaS users get the opportunity full access to the finished information infrastructure, inside which they can install the necessary platforms. Users are responsible for updating if new versions of the platforms are released.

It is also necessary to name one key division of clouds: public and private. The services provided by public clouds can be accessed by any user. A prime example of a public cloud is Amazon. Web Services. The main difference between public and private clouds is that the latter is accessed closed access only for limited number users.