Skip to main content

What is cloud computing technology and what are the concepts, principles, applications, and prospects for cloud computing technology?

Amazon, Microsoft, HP, Yahoo, Intel, IBM, and other companies have announced their own "cloud plan", cloud security, cloud storage, internal cloud, external cloud, public cloud, private cloud, so what is cloud computing technology? Where are the generations, concepts, principles, applications, and prospects for cloud computing technology ...

In 2006, Google launched the "Google 101 Program" and formally introduced the concept and theory of "cloud". Then Amazon, Microsoft, HP, Yahoo, Intel, IBM, and other companies have announced their own "cloud plan", cloud security, cloud storage, internal cloud, external cloud, public cloud, private cloud ... A dizzying array of concepts is constantly hitting people's nerves. So what exactly is cloud computing technology? Where are the concepts, principles, applications, and prospects for cloud computing technology?


First, the development of cloud computing ideas


Under the traditional model, an enterprise building an IT system requires not only the purchase of infrastructure such as hardware but also a license to buy software, which requires specialized personnel maintenance. As the scale of the enterprise expands, it will continue to upgrade various hardware and software facilities to meet the needs. For businesses, hardware and software such as computers are not what they really need, they are just tools to get the job done and provide efficiency. For individuals, we want to use the computer normally need to install a lot of software, and a lot of software is charged, for users who do not use the software very often is very cost-effective. Can we have such a service that provides all the software we need for us to rent? This way we only need to pay a small amount of "rent" to "rent" these software services, saving us a lot of money to buy hardware and software.

We use electricity every day, but we don't have our own generators, it's centrally provided by power plants, we use running water every day, but we don't have wells in every home, it's centrally provided by waterworks. This model is so great that it saves resources and makes our life easier. In the face of the problems caused by computers, can we use computer resources like water and electricity? These ideas eventually led to the generation of cloud computing.

The ultimate goal of cloud computing is to make computing, services, and applications available to the public as a public facility, enabling people to use computer resources as if they were water, electricity, gas, and telephones.

The cloud computing model is the centralized power supply mode for power plants. In cloud computing mode, the user's computer will become very simple, perhaps small memory, do not need hard disk and a variety of applications, can meet our needs, because the user's computer in addition to the browser to the "cloud" to send instructions and accept data, basically do nothing can use the cloud service provider's computing resources, storage space and a variety of applications. It's like connecting a "monitor" and a "host" wire is infinitely long, allowing the display to be placed in front of the user, while the host is placed as far away as even the computer user himself does not know. Cloud computing turns the wires that connect "displays" and "hosts" into networks and "hosts" into clusters of servers for cloud service providers.

In a cloud computing environment, there is also a radical shift in user perceptions: from "buying products" to "buying services" because they are no longer faced directly with complex hardware and software, but with the ultimate service. Users do not need to have visible, touch the hardware facilities, do not need to pay for the room equipment power supply, air conditioning refrigeration, maintenance, and so on, and do not need to wait for a long lead time, project implementation, and other long time, just need to send money to cloud computing service providers, we will immediately get the required services.


Second, the concept of cloud computing


Cloud Computing, developed by Distributed Computing, Parallel Computing, and Grid Computing, is an emerging business computing model. At present, the understanding of cloud computing is constantly changing, cloud computing still does not have a universally consistent definition.


Cloud computing definition: "Cloud computing distributes computing tasks across a pool of resources made up of a large number of computers, enabling various applications to acquire computing power, storage space, and various software services as needed."


Cloud computing in the narrow sense refers to the use of distributed computing and virtualization technology to build data centers or supercomputers, free or on-demand rental to technology developers or enterprise customers such as data storage, analytics, and scientific computing services, such as Amazon data warehouse rental business.


Cloud computing in a broad sense refers to the different types of services provided by vendors to various types of customers, such as online software services, hardware leasing, data storage, and computational analysis, by establishing network server clusters. Cloud computing in a broad sense includes more vendors and service types, such as Microsoft Office 365, Adobe Creative cloud, Google's Google App Suite.


It is commonly understood that the "cloud" of cloud computing is a resource that exists on a cluster of servers on the Internet, including hardware resources (servers, memory, CPUs, etc.) and software resources (e.g. application software, integrated development environment, etc.), the local computer only needs to send demand information over the Internet, the remote end will have thousands of computers to provide you with the resources you need and return the results to the local computer so that the local computer almost no need to do anything, All processing is done in the computer community provided by the cloud computing provider.


Third, the main forms of cloud computing services and typical applications


Cloud computing is still in its infancy, with a wide variety of vendors developing different cloud computing services. Cloud computing can take many forms, and simple cloud computing can be found everywhere in people's daily web applications, such as the online production of Flash images provided by Tencent QQ Space, Google's search service, Google Doc, Google Apps, and so on. Currently, the main forms of cloud computing are Software as service, Platform as service, and Infrastructure as service.


(1) Software as a Service (SaaS)


SaaS service providers deploy applications uniformly on their servers, users order application services from vendors over the Internet as needed, service providers charge customers based on factors such as the number of software they have ordered, how long they have been available, and provide software patterns to customers through their browsers. The advantage of this service model is that the service provider maintains and manages the software and provides the hardware facilities for the operation of the software, so that users can use the software anytime, anywhere by having a terminal with Internet access. Under this model, customers no longer spend a lot of money on hardware, software, maintenance personnel, only need to spend a certain amount of rental services, through the Internet can enjoy the corresponding hardware, software, and maintenance services, which is the most effective network application mode of operation. For small businesses, SaaS is the best way to adopt advanced technology.


In terms of enterprise management software, the SaaS model of cloud computing ERP allows customers to pay on-demand service fees according to the number of complicity users, how many functions are used, data storage capacity, length of use, and other factors, neither to pay software licensing fees, nor to pay for hardware equipment such as procurement servers, nor to pay for the purchase of operating systems, databases and other platform software costs, nor to bear the cost of software project customization, development, implementation, and IT maintenance department expenses. In fact, cloud computing ERP is the most important feature that inherits the open source ERP license fee-free service fee-only, which highlights the ERP products of the service.


Salesforce is .com best known for providing such services, as are Google Doc, Google Apps, and Zoho Office.

(2) Platform as a Service (PaaS)


Provide the development environment as a service. This is a distributed platform service, vendors provide development environment, server platform, hardware resources, and other services to customers, users based on their platform to develop their own applications and through their servers and the Internet to other customers. PaaS provides enterprises or individuals with a middleware platform for research and development, providing application development, databases, application servers, experimentation, hosting, and application services.


Google App Engine, Salesforce's .com platform, and 800APP for 800 customers are examples of PaaS products. Google App Engine, for example, is a platform consisting of a python application server base, a BigTable database, and GFS that provides developers with an all-in-one host server and an automatically upgradeable online app service. By writing applications and running them on Google's infrastructure, users can serve Internet users, and Google provides the platform resources needed for apps to run and maintain.



(3) Infrastructure Services (IaaS)


IaaS provides customers with a "cloud" infrastructure of multiple servers as a metering service. It consolidates memory, I/O devices, storage, and computing power into a virtual pool of resources to provide services such as storage resources and virtualized servers that the industry needs. This is a managed hardware approach where users pay to use the vendor's hardware facilities. Amazon Web Services (AWS), IBM's BlueCloud, for example, all rent infrastructure as a service.


The advantage of IaaS is that users only need low-cost hardware, on-demand rental of the corresponding computing power and storage capacity, greatly reducing the user's hardware overhead.


Currently, Google Cloud apps are the most representative, such as Google Docs, Google Apps, Google Sites, and Google App Engine, a cloud computing app platform.


Google Docs was the first cloud computing application to be launched, and it is a typical application of software-as-a-service thinking. It is similar to Microsoft Office's online office software. It can process and search documents, tables, slides, and share and set sharing permissions over the network. Google Files is a web-based word processing and spreadsheet program that improves collaboration efficiency, allowing multiple users to change files online at the same time and see edits made by other members in real-time. Users only need a computer connected to the Internet and a standard browser that can use Google Files to create and manage online, collaborate in real-time, manage rights, share, search capabilities, revise history features, and access anytime, anywhere, greatly improving file sharing and collaboration capabilities.


Google APPs are Google's suite of enterprise apps that enable users to process an increasing amount of information, stay connected, and communicate, share, and collaborate with other colleagues, customers, and partners. It integrates Gmail, GoogleTalk, Google Calendar, Google Docs, and the latest cloud app, GoogleSites, API extensions, and some management features, including communications, collaboration and publishing, and management services, and features cloud computing to better collaborate anywhere, anytime. Also, it has the advantage of low cost and easy hosting, users do not need to maintain and manage their own collaborative sharing platform.


Google sites is Google's latest cloud computing app and appear as a component of Google Apps. It's a team-focused site editing tool that allows you to create a variety of types of team sites that Google sites can share all types of files, including documents, videos, photos, calendars, and attachments, with friends, teams, or the entire network.


Google AppEngine was released by Google in April 2008 as a platform that allows users to develop and deploy their own applications on Google's infrastructure. Currently, Google AppEngine supports Python and Java languages, and each Google AppEngine application can use up to 500MB of persistent storage and bandwidth and CPU that supports 5 million combined views per month. What's more, Google AppEngine apps are easy to build and maintain, and can easily scale as users' visits and data storage needs grow. At the same time, users' apps can be integrated with Google's apps, and Google AppEngine has launched a Software Development Kit (SDK), which includes web server applications that simulate all Google AppEngine services on the user's local computer.



The core technology of cloud computing


Cloud computing systems use many technologies, including programming models, data management technologies, data storage technologies, virtualization technologies, and cloud computing platform management technologies.


(1) Programming model


MapReduce is a java, Python, and C programming model developed by Google, which is a simplified distributed programming model and an efficient task scheduling model for parallel operations of large-scale datasets (greater than 1TB). Strict programming models make programming easy in a cloud computing environment. The idea of the MapReduce pattern is to break down the problems to be performed into Map (mapping) and Reduce, first through the Map program to cut the data into unrelated chunks, assign (schedule) to a large number of computers to process, to achieve the effect of distributed computing, and then through the Reduce program to round the results of the output.


(2) Mass data distribution storage technology


Cloud computing systems consist of a large number of servers and serve a large number of users at the same time, so cloud computing systems use distributed storage to store data and redundant storage to ensure the reliability of data. The widely used data storage system in cloud computing systems is the open-source HDFS for GFS developed by Google's GFS and Hadoop teams.


GFS, or Google File System, is a scalable distributed file system for large, distributed applications that access large amounts of data. Unlike traditional file systems, GFS is designed for large-scale data processing and Google application features. It runs on cheap, ordinary hardware, but provides fault tolerance. It provides a high overall performance service to a large number of users.


A GFS cluster consists of a master and a large number of chunk servers and is accessed by many customers. The primary server stores the file system's metadata, including namespace, access control information, file-to-block mapping, and the current location of the block. It also controls system-wide activities such as block lease management, garbage collection of orphan blocks, and block migration between block servers. The primary server periodically communicates with each block server through TheHeartBeat message, delivers instructions to the block server, and collects its status. Files in GFS are sliced into 64MB blocks and stored redundantly, with more than 3 backups of each piece of data stored in the system.


The exchange between the customer and the primary server is limited to the operation of metadata, and all data communication is directly related to the block server, which greatly improves the efficiency of the system and prevents the main server from being overloaded.


(3) Mass data management technology

Cloud computing requires the processing and analysis of distributed, massive amounts of data, so data management technologies must be able to efficiently manage large amounts of data. Data management technology in cloud computing systems is primarily an open-source data management module developed by Google's BigTable data management technology and The Hadoop team.


BT is a large distributed database built on top of GFS, Scheduler, Lock Service, and MapReduce, which, unlike traditional relationship databases, treats all data as objects, forming a huge table that distributes large-scale structured data stored.


Many of Google's projects use BT to store data, including web queries, Google Earth and Google Finance. These applications have different requirements for BT: data sizes (from URLs to web pages to satellite images) and reaction speeds vary (from large-batch processing on the back end to real-time data services). For different requirements, BT has been successful in providing flexible and efficient service.

(4) Virtualization technology


Virtualization technology enables software applications to be isolated from the underlying hardware, including a fragmentation pattern that divides a single resource into multiple virtual resources, and an aggregation pattern that consolidates multiple resources into a single virtual resource. Virtualization technology can be divided into storage virtualization, compute virtualization, network virtualization, and so on according to the object, compute virtualization is divided into system-level virtualization, application-level virtualization, and desktop virtualization.


(5) Cloud computing platform management technology


Cloud computing resources are large, servers are numerous and distributed in different locations, running hundreds of applications at the same time, how to effectively manage these servers, to ensure that the entire system provides uninterrupted service is a huge challenge.


The platform management technology of cloud computing system can make a large number of servers work together, make it easy to deploy and open the business, quickly find and recover system failures, and realize the reliable operation of the large-scale system by automated and intelligent means.


V. Introduction to typical cloud computing platforms


Because of the wide range of cloud computing technology, the cloud computing services provided by major IT enterprises are mainly based on their own characteristics and advantages. Here's an example from Google, IBM, Amazon:


(1) Google's cloud computing platform


Google's machines get an advantage due to large data centers, search engine, the google apps, to promote the rapid development of Google cloud computing. Google's cloud computing consists mainly of MapReduce, Google File System (GFS), and BigTable. They are the three main components of Google's in-house cloud computing infrastructure. Google also builds other cloud computing components, including a domain description language and distributed lock service mechanisms. Sawzall is a domain language based on MapReduce that is dedicated to large-scale information processing. Chubby is a highly available, distributed data lock service that uses Paxos algorithms to ensure backup when a machine fails.


(2) IBM's "Blue Cloud" computing platform


The Blue Cloud solution is an enterprise-class cloud computing solution developed by IBM Cloud Computing Center. The solution integrates the existing infrastructure of the enterprise, builds the cloud computing center owned by the enterprise through virtualization technology and automation technology, realizes the unified management, unified allocation, unified deployment, unified monitoring, and unified backup of enterprise hardware resources, and breaks the application's monopoly on resources, thus helping the enterprise realize the cloud computing concept.


IBM's "Blue Cloud" computing platform is a software and hardware platform that extends the technology used on the Internet to enterprise platforms, enabling data centers to use Internet-like computing environments. Blue Cloud uses IBM's advanced large-scale computing technology, combining IBM's own software and hardware systems and services to support open standards and open-source software.


Based on the cloud infrastructure of the IBM Almaden Research Center, Blue Cloud uses Xen and PowerVM virtualization software, Linux operating system images, and open-source implementations of Hadoop software (Google File System and MapReduce). IBM has officially launched a "blue cloud" product based on the x86 chip server system. The following image shows the architecture of IBM's "Blue Cloud":






The Blue Cloud computing platform consists of a datThe Blue Cloud solution is an enterprise-class cloud computing solution developed by IBM Cloud Computing Center. The solution integrates the existing infrastructure of the enterprise, builds the cloud computing center owned by the enterprise through virtualization technology and automation technology, realizes the unified management, unified allocation, unified deployment, unified monitoring, and unified backup of enterprise hardware resources, and breaks the application's monopoly on resources, thus helping the enterprise realize the cloud computing concept.


IBM's "Blue Cloud" computing platform is a software and hardware platform that extends the technology used on the Internet to enterprise platforms, enabling data centers to use Internet-like computing environments. Blue Cloud uses IBM's advanced large-scale computing technology, combining IBM's own software and hardware systems and services to support open standards and open-source software.


Based on the cloud infrastructure of the IBM Almaden Research Center, Blue Cloud uses Xen and PowerVM virtualization software, Linux operating system images, and open-source implementations of Hadoop software (Google File System and MapReduce). IBM has officially launched a "blue cloud" product basea center, IBM Tivoli deployment management software, IBM Tivoli monitoring software, IBM WebSphere application servers, IBM DB2 databases, and some open-source information processing and open-source virtualization software. The "Blue Cloud" hardware platform environment is similar to a typical x86 server cluster, increasing computing density by using blades. The "Blue Cloud" software platform features virtual machines and the use of Apache Hadoop, a large-scale data processing software.


An important feature of the "Blue Cloud" platform is the use of virtualization technology. The approach to virtualization has two levels in the Blue Cloud, one at the hardware level and the other through open-source software. Hardware-level virtualization can use the IBM p-series of servers to obtain the logical partition LPAR of the hardware. Cpu resources for logical partitions can be managed through IBM Enterprise Workload Manager. In this way, coupled with the resource allocation strategy in the actual use process, the corresponding resources can be reasonably allocated to each logical partition. The minimum granularity of the logical partition of the p-series system is 1/10 CPU. Xen is software-level virtualization that enables you to run another operating system on a Linux basis.


A virtual machine is a kind of special kind of software, can completely simulate the execution of hardware, run the complete operating system without modification, retains a set of operating environment semantics. The virtual machine approach provides some of the following benefits on the cloud computing platform:


1) Cloud computing management platform can dynamically position the computing platform to the required physical nodes, without stopping the applications running on the virtual machine platform, the process migration method is more flexible;


2) Reduce the power consumption of the cluster, merge multiple virtual machine computing nodes with a not too heavy load into the same physical node, so that the idle physical nodes can be shut down to achieve the goal of saving power;


3) Through the dynamic migration of virtual machines on different physical nodes, the overall virtual operating environment is migrated, and the load balancing performance independent of the application can be obtained.


4) In the deployment is also more flexible, that is, virtual machines can be deployed directly to the physical computing platform, and the virtual machine itself includes the corresponding operating system and the corresponding application software, directly copy a large number of virtual machine images to the corresponding physical nodes.


Storage architecture in the "Blue Cloud" computing platform: The storage architecture in the "Blue Cloud" computing platform is also very important for cloud computing, whether the data of the operating system, service programs, or user applications are stored in the storage system. The Blue Cloud storage architecture includes a cluster file system similar to Google File System and a block-based storage area network SAN.


When designing a storage architecture for a cloud computing platform, you can get a lot of disk capacity by combining multiple disks. In the storage of cloud computing platforms, the read and write speed of disk data is a more important issue than the capacity of disks, so multiple disks need to be read and written simultaneously. This approach requires that data be allocated to multiple disks of multiple nodes. To do this, storage technology has two options, one using a cluster file system similar to Google File System and the other using a block-based storage area network SAN system.


On a blue cloud computing platform, SAN systems are not opposed to distributed file systems, such as Google File System, and SAN provides a block device interface on which file systems need to be built to be used by upper-level applications. Google File System is just a distributed file system that can be built on SAN. Both provide reliability and scalability, and how to use them is determined by applications built on cloud computing platforms, which also reflects the collaborative relationship between computing platforms and upper-tier applications.


(3) Amazon's elastic computing cloud


Amazon, the largest online retailer on the Internet, has had to buy a lot of servers to cope with peak transactions. Most of the time, most servers are idle, resulting in a lot of waste, and amazon has built its own cloud computing platform, Elastic Compute Cloud, to make the most of idle servers, and was the first company to sell infrastructure as a service.


Amazon builds its own elastic computing cloud on a large-scale cluster computing platform within the company, and users can operate instances running on the cloud computing platform through the elastic computing cloud's web interface. The user's usage status determines the way users pay for instances, i.e., the user only pays for the compute platform instances they use, and the billing ends when the run ends. The instance referred to here is a full virtual machine running instance controlled by the user. In this way, users do not have to build their own cloud computing platform, saving equipment and maintenance costs.






The figure above shows the usage mode of the EC2 system. As can be seen from the figure, elastic computing cloud users use clients to interact with instances within the Amazon elastic computing cloud through the SOAP over HTTPS protocol. In this way, the elastic computing cloud platform provides a virtual cluster environment for users or developers, providing users with sufficient flexibility while reducing the administrative burden on cloud computing platform owners (Amazon Corporation). Each instance in the elastic computing cloud represents a running virtual machine. Users have full access to their virtual machines, including administrator rights to the operating system for this virtual machine. The charges for virtual machines are also calculated based on the capabilities of virtual machines, and in fact, users rent virtual computing power.


All in all, Amazon meets the needs of small software developers for clustered systems by providing an elastic computing cloud, reducing the maintenance burden. The way it charges is relatively straightforward: how many resources users use, just pay for that part of the resource.


To further develop the elastic computing cloud, Amazon has planned how to build on the cloud computing platform to help users develop networked applications. In addition to the online retail business, cloud computing is amazon's core value. Amazon will add more network service component modules to its platform for elastic computing clouds in the future, providing users with the convenience of building cloud computing applications.


The main problems facing the development of cloud computing technology


Although the cloud computing model has many advantages, there are some problems, such as data privacy issues, security issues, software license issues, network transmission issues, etc.


· Data Privacy Issues: How to ensure that data privacy stored in cloud service providers is not illegally exploited requires not only technological improvements but also further improvement of the law.


· Data security: Some data is the business secret of the enterprise, the security of data is related to the survival and development of the enterprise. Cloud computing data security issues that can not be resolved will affect the application of cloud computing in the enterprise.


· User usage habits: How to change user habits, so that users adapt to networked hardware and software applications is a long-term and arduous challenge.


· Network transmission problems: cloud computing services rely on the network, the current network speed is low and unstable so that the performance of cloud applications is not high. The popularity of cloud computing depends on the development of network technology.

Comments

Popular posts from this blog

Defination of the essential properties of operating systems

Define the essential properties of the following types of operating sys-tems:  Batch  Interactive  Time sharing  Real time  Network  Parallel  Distributed  Clustered  Handheld ANSWERS: a. Batch processing:-   Jobs with similar needs are batched together and run through the computer as a group by an operator or automatic job sequencer. Performance is increased by attempting to keep CPU and I/O devices busy at all times through buffering, off-line operation, spooling, and multi-programming. Batch is good for executing large jobs that need little interaction; it can be submitted and picked up later. b. Interactive System:-   This system is composed of many short transactions where the results of the next transaction may be unpredictable. Response time needs to be short (seconds) since the user submits and waits for the result. c. Time sharing:-   This systems uses CPU scheduling and multipro-gramming to provide economical interactive use of a system. The CPU switches rapidl

What is a Fair lock in multithreading?

  Photo by  João Jesus  from  Pexels In Java, there is a class ReentrantLock that is used for implementing Fair lock. This class accepts optional parameter fairness.  When fairness is set to true, the RenentrantLock will give access to the longest waiting thread.  The most popular use of Fair lock is in avoiding thread starvation.  Since longest waiting threads are always given priority in case of contention, no thread can starve.  The downside of Fair lock is the low throughput of the program.  Since low priority or slow threads are getting locks multiple times, it leads to slower execution of a program. The only exception to a Fair lock is tryLock() method of ReentrantLock.  This method does not honor the value of the fairness parameter.

How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service?

 How do clustered systems differ from multiprocessor systems? What is required for two machines belonging to a cluster to cooperate to provide a highly available service? Answer: Clustered systems are typically constructed by combining multiple computers into a single system to perform a computational task distributed across the cluster. Multiprocessor systems on the other hand could be a single physical entity comprising of multiple CPUs. A clustered system is less tightly coupled than a multiprocessor system. Clustered systems communicate using messages, while processors in a multiprocessor system could communicate using shared memory. In order for two machines to provide a highly available service, the state on the two machines should be replicated and should be consistently updated. When one of the machines fails, the other could then take‐over the functionality of the failed machine. Some computer systems do not provide a privileged mode of operation in hardware. Is it possible t