IF-2/9 Povilas Simanaitis 1. What is cloud computing ? It is a colloquial expression used to...

33
Cloud computing IF-2/9 Povilas Simanaitis 1

Transcript of IF-2/9 Povilas Simanaitis 1. What is cloud computing ? It is a colloquial expression used to...

Cloud computing

IF-2/9 Povilas Simanaitis 1

What is cloud computing ?• It is a colloquial expression used to describe a variety of different

types of computing concepts that involve a large number of computers connected through a real-time communication network such as the Internet.

•  Cloud computing is a term without a commonly accepted unequivocal scientific or technical definition. In science, cloud computing is a synonym for distributed computing over a network and means the ability to run a program on many connected computers at the same time.

History•The 1950s  To make more efficient use of costly mainframes, a practice evolved that allowed multiple users to share both the physical access to the computer from multiple terminals as well as to share the CPU time. This eliminated periods of inactivity on the mainframe and allowed for a greater return on the investment. The practice of sharing CPU time on a mainframe became known in the industry as time-sharing

• The 1990s, telecommunications companies,who previously offered primarily dedicated point-to-point data circuits, began offering virtual private network (VPN) services with comparable quality of service, but at a lower cost. By switching traffic as they saw fit to balance server use, they could use overall network bandwidth more effectively. They began to use the cloud symbol to denote the demarcation point between what the provider was responsible for and what users were responsible for. Cloud computing extends this boundary to cover servers as well as the network infrastructure.As computers became more prevalent, scientists and technologists explored ways to make large-scale computing power available to more users through time sharing, experimenting with algorithms to provide the optimal use of the infrastructure, platform and applications with prioritized access to the CPU and efficiency for the end users

3

History•Since 2000 After the dot-com bubble, Amazon played a key role in all the development of cloud computing by modernizing their data centers, which, like most computer networks, were using as little as 10% of their capacity at any one time, just to leave room for occasional spikes. Having found that the new cloud architecture resulted in significant internal efficiency improvements whereby small, fast-moving "two-pizza teams" (teams small enough to feed with two pizzas) could add new features faster and more easily, Amazon initiated a new product development effort to provide cloud computing to external customers, and launched Amazon Web Services (AWS) on a utility computing basis in 2006.

•In early 2008, Eucalyptus became the first open-source, AWS API-compatible platform for deploying private clouds. In early 2008, OpenNebula, enhanced in the RESERVOIR European Commission-funded project, became the first open-source software for deploying private and hybrid clouds, and for the federation of clouds.In the same year, efforts were focused on providing quality of service guarantees (as required by real-time interactive applications) to cloud-based infrastructures, in the framework of the IRMOS European Commission-funded project, resulting to a real-time cloud environment. By mid-2008, Gartner saw an opportunity for cloud computing "to shape the relationship among consumers of IT services, those who use IT services and those who sell them" and observed that "organizations are switching from company-owned hardware and software assets to per-use service-based models" so that the "projected shift to computing ... will result in dramatic growth in IT products in some areas and significant reductions in other areas."•On March 1, 2011, IBM announced the IBM SmartCloud framework to support Smarter Planet. Among the various components of the Smarter Computing foundation, cloud computing is a critical piece. 4

Origin of the term•The origin of the term cloud computing is unclear. The expression cloud is commonly used in science to describe a large agglomeration of objects that visually appear from a distance as a cloud and describes any set of things whose details are not inspected further in a given context.

•In analogy to above usage the word cloud was used as a metaphor for the Internet and a standardized cloud-like shape was used to denote a network on telephony schematics and later to depict the Internet in computer network diagrams. The cloud symbol was used to represent the Internet as early as 1994, in which servers were then shown connected to, but external to, the cloud symbol.•The term became popular after Amazon.com introduced the Elastic Compute Cloud in 2006.

5

Similar systems and conceptsCloud Computing is the result of evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take benefit from all of these technologies, without the need for deep knowledge about or expertise with each one of them. The cloud aims to cut costs, and help the users focus on their core business instead of being impeded by IT obstacles

Cloud computing shares characteristics with:Client–server model — Client–server computing refers broadly to any distributed application that distinguishes between service providers (servers) and service requestors (clients).Grid computing — "A form of distributed and parallel computing, whereby a 'super and virtual computer' is composed of a cluster of networked, loosely coupled computers acting in concert to perform very large tasks."Mainframe computer — Powerful computers used mainly by large organizations for critical applications, typically bulk data processing such as: census; industry and consumer statistics; police and secret intelligence services;enterprise resource planning; and financial transaction processing.Utility computing — The "packaging of computing resources, such as computation and storage, as a metered service similar to a traditional public utility, such as electricity.“

Peer-to-peer — A distributed architecture without the need for central coordination. Participants are both suppliers and consumers of resources (in contrast to the traditional client–server model).Cloud gaming — Also known as on-demand gaming, is a way of delivering games to computers. Gaming data is stored in the provider's server, so that gaming is independent of client computers used to play the game.

6

7

Cloud Computing Characteristics

Common Characteristics:

Low Cost Software

Virtualization Service Orientation

Advanced Security

Homogeneity

Massive Scale Resilient Computing

Geographic Distribution

Essential Characteristics:

Resource Pooling

Broad Network Access Rapid Elasticity

Measured Service

On Demand Self-Service

Service modelsCloud computing providers offer their services according to several fundamental models:• Infrastructure as a service (IaaS)• Platform as a service (PaaS)• Software as a service (SaaS)Where IaaS is the most basic and each higher model abstracts from the details of the lower models. Other key components in anything as a service (XaaS) are described in a comprehensive taxonomy model published in 2009 such as Strategy-as-a-Service, Collaboration-as-a-Service, Business Process-as-a-Service, Database-as-a-Service, etc. In 2012, network as a service (NaaS) and communication as a service (CaaS) were officially included by ITU (International Telecommunication Union) as part of the basic cloud computing models, recognized service categories of a telecommunication-centric cloud ecosystem

8

Illustration of service models

9

Infrastructure as a service (IaaS)IaaS focuses on providing on demand IT resources, such as: CPU, storage, network, and content distribution. IaaSforms the basis for most cloud computing solutions and often provides nearly unlimited resources and elasticity.While IaaStend to be the most flexible cloud service type by providing access to raw resources, it often requires more customization. Most services provide both plain server images and pre-configured servers, but most of them require some time to customize and configure for your specific application deployment. Once customized, these virtual servers may be cloned as needed to scale current resources, or for reuse across multiple applications.IaaS-based services often charge based on usage, typically in one hour increments. In addition, charges for incoming and outgoing bandwidth are charged separately. This often results in lower costs for startups that do not send, receive, and/or generate large amounts of data.When selecting an infrastructure service, keep in mind that some services may offer the best performance when combined with other solutions by the same vendor. For example, Amazon’s S3 storage service is best used when the requests are on the same network, making file access faster from their own EC2 instances that reside on the same network infrastructure.

Examples include: RackspaceCloud, Firehost, Amazon EC2, and Amazon S3

10

Platform as a service (PaaS)Over the last year, Platform as a Service has become a popular choice for many startups. It accelerates the development process, as it provides existing infrastructure that can be used with little development effort. It also accelerates the deployment process, as servers are pre-configured and managed by the service provider. The scaling of an application deployed to a PaaScan be done manually or automatically, allowing startups to start with minimal resources but quickly scale to more servers when needed.It can be difficult to classify some cloud offerings as a PaaSdue to their hybrid nature of offering both IaaSand SaaS-based services. The best way to classify a platform service is to determine if they offer the infrastructure to deploy an application without complex setup or individual server configuration. Other indicators often include: built-in monitoring and management of an application, built-in data backup and recovery, and application deployment versioning and rollback.

Examples include Google App Engine, Engine Yard,Force.com, Heroku, RunMyProcess, and Zoho. 11

Software as a service (SaaS)Software as a Service (SaaS) solutions are typically on-demand applications that can be purchased on a usage or subscription basis. Applications that utilize a subscription model often offer pricing tiers based on the features available and number of users that may use the application. SaaSis quickly becoming a common cloud service for individuals, small business, and enterprises. It includes both general-purpose solutions (e.g. image sharing, CRM) as well as solutions for specific business verticals (e.g. non-profit fund raising, oil well monitoring). Software-as-a-service applications do not require someone to install the product on the business network or to perform upgrades, as this is managed by the SaaSvendor.Unlike applications that are installed on the local network, SaaS-based applications are hosted and available from any Internet-capable device. They are also multi-tenant, which means that the same installation of the application is shared across multiple paying customers. Since one application can service multiple customers, each with one or more user accounts, the customer data is partitioned to prevent access by other customers. Multi-tenant support allows the vendor is able to scale their application from a few to many customers, reducing the overall cost of each customer.

Examples include: Salesforce.com, Freshbooks, Unfuddle, Basecamp, and HighriseCRM.

12

13

Services

Application

Development

Platform

Storage

Hosting

Cloud Computing Service Layers

DescriptionServices – Complete business services such as PayPal, OpenID, OAuth, Google Maps, Alexa

Services

Application

Focused

Infrastructure

Focused

Application – Cloud based software that eliminates the need for local installation such as Google Apps, Microsoft Online

Storage – Data storage or cloud based NAS such as CTERA, iDisk, CloudNAS, Google drive, Dropbox, Sky drive

Development – Software development platforms used to build custom cloud based applications (PAAS & SAAS) such as SalesForcePlatform – Cloud based platforms, typically provided using virtualization, such as Amazon ECC, Sun Grid

Hosting – Physical data centers such as those run by IBM, HP, NaviSite, etc.

Cloud clients•Users access cloud computing using networked client devices, such as desktop computers, laptops, tablets and smartphones. Some of these devices – cloud clients – rely on cloud computing for all or a majority of their applications so as to be essentially useless without it. Examples are thin clients and the browser-based Chromebook. Many cloud applications do not require specific software on the client and instead use a web browser to interact with the cloud application. With Ajax and HTML5 these Web user interfaces can achieve a similar, or even better, look and feel to native applications. Some cloud applications, however, support specific client software dedicated to these applications (e.g., virtual desktop clients and most email clients). Some legacy applications (line of business applications that until now have been prevalent in thin client computing) are delivered via a screen-sharing technology.

14

Deployment models•Private cloud•Public cloud•Community cloud•Hybrid cloud•Distributed cloud

15

Private cloudPrivate cloud is cloud infrastructure operated solely for a single organization, whether managed internally or by a third-party and hosted internally or externally.Undertaking a private cloud project requires a significant level and degree of engagement to virtualize the business environment, and requires the organization to reevaluate decisions about existing resources. When done right, it can improve business, but every step in the project raises security issues that must be addressed to prevent serious vulnerabilities.They have attracted criticism because users "still have to buy, build, and manage them" and thus do not benefit from less hands-on management, essentially "the economic model that makes cloud computing such an intriguing concept".

16

Public cloudA cloud is called a 'Public cloud' when the services are rendered over a network that is open for public use. Technically there may be little or no difference between public and private cloud architecture, however, security consideration may be substantially different for services (applications, storage, and other resources) that are made available by a service provider for a public audience and when communication is effected over a non-trusted network. Generally, public cloud service providers like Amazon AWS, Microsoft and Google own and operate the infrastructure and offer access only via Internet (direct connectivity is not offered).

17

Community cloudCommunity cloud shares infrastructure between several organizations from a specific community with common concerns (security, compliance, jurisdiction, etc.), whether managed internally or by a third-party and hosted internally or externally. The costs are spread over fewer users than a public cloud (but more than a private cloud), so only some of the cost savings potential of cloud computing are realized.

18

Hybrid cloudHybrid cloud is a composition of two or more clouds (private, community or public) that remain unique entities but are bound together, offering the benefits of multiple deployment models. Such composition expands deployment options for cloud services, allowing IT organizations to use public cloud computing resources to meet temporary needs.This capability enables hybrid clouds to employ cloud bursting for scaling across clouds.Cloud bursting is an application deployment model in which an application runs in a private cloud or data center and "bursts" to a public cloud when the demand for computing capacity increases. A primary advantage of cloud bursting and a hybrid cloud model is that an organization only pays for extra compute resources when they are needed.Cloud bursting enables data centers to create an in-house IT infrastructure that supports average workloads, and use cloud resources from public or private clouds, during spikes in processing demands.By utilizing "hybrid cloud" architecture, companies and individuals are able to obtain degrees of fault tolerance combined with locally immediate usability without dependency on internet connectivity. Hybrid cloud architecture requires both on-premises resources and off-site (remote) server-based cloud infrastructure.

19

Distributed cloudCloud computing can also be provided by a distributed set of machines that are running at different locations, while still connected to a single network or hub service. Examples of this include distributed computing platforms such as BOINC (tell more) and Folding@Home

20

21

Opportunities and Challenges

• The use of the cloud provides a number of opportunities: – It enables services to be used without any understanding of

their infrastructure.– Cloud computing works using economies of scale:

• It potentially lowers the outlay expense for start up companies, as they would no longer need to buy their own software or servers.

• Cost would be by on-demand pricing. • Vendors and Service providers claim costs by establishing

an ongoing revenue stream.– Data and services are stored remotely but accessible from

“anywhere”.

22

Opportunities and Challenges

In parallel there has been backlash against cloud computing:• Use of cloud computing means dependence on others and that

could possibly limit flexibility and innovation:• The others are likely become the bigger Internet companies like

Google and IBM, who may monopolise the market. • Some argue that this use of supercomputers is a return to the time

of mainframe computing that the PC was a reaction against.• Security could prove to be a big issue:

• It is still unclear how safe out-sourced data is and when using these services ownership of data is not always clear.

• There are also issues relating to policy and access: • If your data is stored abroad whose policy do you adhere to? • What happens if the remote server goes down? • How will you then access files? • There have been cases of users being locked out of accounts and

losing access to data.

23

Advantages of Cloud Computing

Lower computer costs: • You do not need a high-powered and high-priced computer to

run cloud computing's web-based applications. • Since applications run in the cloud, not on the desktop PC, your

desktop PC does not need the processing power or hard disk space demanded by traditional desktop software.

• When you are using web-based applications, your PC can be less expensive, with a smaller hard disk, less memory, more efficient processor...

• In fact, your PC in this scenario does not even need a CD or DVD drive, as no software programs have to be loaded and no document files need to be saved.

24

Advantages of Cloud Computing

Improved performance:• With few large programs hogging your computer's memory, you

will see better performance from your PC. • Computers in a cloud computing system boot and run faster

because they have fewer programs and processes loaded into memory…

Reduced software costs: • Instead of purchasing expensive software applications, you can

get most of what you need for free-ish!• most cloud computing applications today, such as the

Google Docs suite.• better than paying for similar commercial software

• which alone may be justification for switching to cloud applications.

25

Advantages of Cloud Computing

Instant software updates:• Another advantage to cloud computing is that you are no longer

faced with choosing between obsolete software and high upgrade costs.

• When the application is web-based, updates happen automatically

• available the next time you log into the cloud. • When you access a web-based application, you get the latest

version • without needing to pay for or download an upgrade.

Improved document format compatibility. • You do not have to worry about the documents you create on

your machine being compatible with other users' applications or OSes

• There are potentially no format incompatibilities when everyone is sharing documents and applications in the cloud.

26

Advantages of Cloud Computing

Unlimited storage capacity:• Cloud computing offers virtually limitless storage. • Your computer's current 1 Tbyte hard drive is small compared to

the hundreds of Pbytes available in the cloud.Increased data reliability:

• Unlike desktop computing, in which if a hard disk crashes and destroy all your valuable data, a computer crashing in the cloud should not affect the storage of your data.

• if your personal computer crashes, all your data is still out there in the cloud, still accessible

• In a world where few individual desktop PC users back up their data on a regular basis, cloud computing is a data-safe computing platform!

27

Advantages of Cloud Computing

Universal document access:• That is not a problem with cloud computing, because you do not

take your documents with you. • Instead, they stay in the cloud, and you can access them

whenever you have a computer and an Internet connection• Documents are instantly available from wherever you are

Latest version availability:• When you edit a document at home, that edited version is what

you see when you access the document at work. • The cloud always hosts the latest version of your documents

• as long as you are connected, you are not in danger of having an outdated version

28

Advantages of Cloud Computing

Easier group collaboration:• Sharing documents leads directly to better collaboration.• Many users do this as it is an important advantages of cloud

computing• multiple users can collaborate easily on documents and projects

Device independence. • You are no longer tethered to a single computer or network. • Changes to computers, applications and documents follow you

through the cloud. • Move to a portable device, and your applications and documents

are still available.

29

Disadvantages of Cloud Computing•Requires a constant Internet connection:

• Cloud computing is impossible if you cannot connect to the Internet.

• Since you use the Internet to connect to both your applications and documents, if you do not have an Internet connection you cannot access anything, even your own documents.

• A dead Internet connection means no work and in areas where Internet connections are few or inherently unreliable, this could be a deal-breaker.

30

Disadvantages of Cloud Computing•Does not work well with low-speed connections:

• Similarly, a low-speed Internet connection, such as that found with dial-up services, makes cloud computing painful at best and often impossible.

• Web-based applications require a lot of bandwidth to download, as do large documents.

•Features might be limited:• This situation is bound to change, but today many web-based

applications simply are not as full-featured as their desktop-based applications.

• For example, you can do a lot more with Microsoft PowerPoint than with Google Presentation's web-based offering

31

Disadvantages of Cloud Computing•Can be slow:

• Even with a fast connection, web-based applications can sometimes be slower than accessing a similar software program on your desktop PC.

• Everything about the program, from the interface to the current document, has to be sent back and forth from your computer to the computers in the cloud.

• If the cloud servers happen to be backed up at that moment, or if the Internet is having a slow day, you would not get the instantaneous access you might expect from desktop applications.

32

Disadvantages of Cloud Computing• HPC Systems:

• Not clear that you can run compute-intensive HPC applications that use MPI/OpenMP!

• Scheduling is important with this type of application• as you want all the VM to be co-located to minimize communication

latency!•General Concerns:

• Each cloud systems uses different protocols and different APIs• may not be possible to run applications between cloud based

systems• Amazon has created its own DB system (not SQL 92), and

workflow system (many popular workflow systems out there)• so your normal applications will have to be adapted to execute on

these platforms.

33

The future•Many of the activities loosely grouped together under cloud computing have already been happening and centralised computing activity is not a new phenomen

•Grid Computing was the last research-led centralised approach

•However there are concerns that the mainstream adoption of cloud computing could cause many problems for users

•Many new open source systems appearing that you can install and run on your local cluster

• should be able to run a variety of applications on these systems