Challenges for cloud software engineering



Similar documents
Cloud Computing Summary and Preparation for Examination

Cloud computing - Architecting in the cloud

High Performance Computing Cloud Computing. Dr. Rami YARED

Cluster, Grid, Cloud Concepts

Cloud Computing Paradigm

Teaching cloud computing: a software engineering perspective

CLOUD COMPUTING. When It's smarter to rent than to buy

Big Data and Cloud Computing for GHRSST

Cloud Based Distributed Databases: The Future Ahead

16.1 MAPREDUCE. For personal use only, not for distribution. 333

Security Benefits of Cloud Computing

CLOUD COMPUTING USING HADOOP TECHNOLOGY

Role of Cloud Computing in Big Data Analytics Using MapReduce Component of Hadoop

Cloud Computing Submitted By : Fahim Ilyas ( ) Submitted To : Martin Johnson Submitted On: 31 st May, 2009

Cloud computing: the state of the art and challenges. Jānis Kampars Riga Technical University


TOP 7 THINGS Every Executive Should Know About Cloud Computing EXECUTIVE BRIEF

White Paper on CLOUD COMPUTING

A programming model in Cloud: MapReduce

Department of Computer Science University of Cyprus EPL646 Advanced Topics in Databases. Lecture 14

Cloud Computing. Course: Designing and Implementing Service Oriented Business Processes

Building Platform as a Service for Scientific Applications

CLOUD COMPUTING SECURITY CONCERNS

What is Cloud Computing? Tackling the Challenges of Big Data. Tackling The Challenges of Big Data. Matei Zaharia. Matei Zaharia. Big Data Collection

Fundamentals of Cloud Computing

International Journal of Engineering Research & Management Technology

Cloud Computing. Cloud computing:

IJRSET 2015 SPL Volume 2, Issue 11 Pages: 29-33

Analysis and Research of Cloud Computing System to Comparison of Several Cloud Computing Platforms

Database Virtualization and the Cloud

How To Understand Cloud Computing

Grid Computing vs Cloud

Everything You Need To Know About Cloud Computing

Cloud Computing based on the Hadoop Platform

WORKFLOW ENGINE FOR CLOUDS

What s Happening to the Mainframe? Mobile? Social? Cloud? Big Data?

An Introduction to Cloud Computing Concepts

How to Do/Evaluate Cloud Computing Research. Young Choon Lee

About me & Submission details

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

[Sudhagar*, 5(5): May, 2016] ISSN: Impact Factor: 3.785

SaaS, PaaS & TaaS. By: Raza Usmani

A.Prof. Dr. Markus Hagenbuchner CSCI319 A Brief Introduction to Cloud Computing. CSCI319 Page: 1

Open source Google-style large scale data analysis with Hadoop

Introduction to Cloud Computing

A Novel Cloud Based Elastic Framework for Big Data Preprocessing

CSE-E5430 Scalable Cloud Computing Lecture 2

Elastic Application Platform for Market Data Real-Time Analytics. for E-Commerce

Jeffrey D. Ullman slides. MapReduce for data intensive computing

Perspectives on Cloud Computing and Standards. Peter Mell, Tim Grance NIST, Information Technology Laboratory

CloudDB: A Data Store for all Sizes in the Cloud

How To Run A Cloud Computer System

A Study on Analysis and Implementation of a Cloud Computing Framework for Multimedia Convergence Services

Cloud Computing Paradigm Shift. Jan Šedivý

Chapter 7. Using Hadoop Cluster and MapReduce

Sriram Krishnan, Ph.D.

How To Understand Cloud Computing

Introduction to Engineering Using Robotics Experiments Lecture 18 Cloud Computing

Scientific and Technical Applications as a Service in the Cloud

Cloud Computing. Summary

Customer Engagement & The Cloud

Cloud Computing An Elephant In The Dark

Table of Contents. Abstract... Error! Bookmark not defined. Chapter 1... Error! Bookmark not defined. 1. Introduction... Error! Bookmark not defined.

Architectural Implications of Cloud Computing

CLOUD COMPUTING. Dana Petcu West University of Timisoara

Cloud Computing and Amazon Web Services

Oracle Applications and Cloud Computing - Future Direction

Open Cloud System. (Integration of Eucalyptus, Hadoop and AppScale into deployment of University Private Cloud)

Cloud Computing; What is it, How long has it been here, and Where is it going?

Service Oriented Cloud Computing Architectures. Asher Vitek 12/3/2011 UMM CSci Senior Seminar Conference Morris, MN.

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Cloud Computing. Adam Barker

Overview. The Cloud. Characteristics and usage of the cloud Realities and risks of the cloud

Architecture. Reda Bendraou

IS PRIVATE CLOUD A UNICORN?

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Distributed Systems Architectures

Tamanna Roy Rayat & Bahra Institute of Engineering & Technology, Punjab, India talk2tamanna@gmail.com

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Cloud Computing Now and the Future Development of the IaaS

Multilevel Communication Aware Approach for Load Balancing

IT Risk and Security Cloud Computing Mike Thomas Erie Insurance May 2011

Cloud Platforms, Challenges & Hadoop. Aditee Rele Karpagam Venkataraman Janani Ravi

Big Data Technology CS , Technion, Spring 2014

ATI Cloud Computing.

Evaluation Methodology of Converged Cloud Environments

Developer support in a federated Platform-as-a-Service environment

Load Rebalancing for File System in Public Cloud Roopa R.L 1, Jyothi Patil 2

Transcription:

Challenges for cloud software engineering Ian Sommerville St Andrews University

Why is cloud software engineering different or is it? What needs to be done to make cloud software engineering easier for the research community?

Public, private community clouds

There will be a number of public cloud providers offering different capabilities at different prices at different times Public cloud computing will be the most economical approach

Private (institutional) clouds for science research are not really viable Community clouds make sense for dataintensive computing if they are located close to the sources of the data Community clouds hosting standard software may be a useful approach possibly hosted on public clouds

What makes the cloud different (and challenging)?

Scale Thousands of nodes

Elasticity No fixed hardware architecture Scale out and scale in

Pricing Variable costs for applications Payment according to resources used

Cloud services

Infrastructure as a service Instead of buying and running physical equipment (computers, storage, etc.), you rent these as required from a cloud provider You ship your programs and data to a remote data centre and run them there rather than locally The familiar Grid computing model

Platform as a service The cloud provider makes a set of APIs available which you use in your program to interact with the platform Scaleability is transparent. Automatic scale out/scale in as demand changes Primarily geared to writing web-based applications

Software as a service Software is shared by different users and accessed using a web browser Services are stateless, functional abstractions Multi-tenant databases for efficient operation Accessed via a service interface SOAP or RESTful interface

Levels of cloud usage

1. Cloud hosting You use the cloud to provide server capability rather than incurring the capital costs of server purchase Applications need not be cloud aware Fixed server infrastructure Can run existing codes in Fortran/C

If server type and platform available, then should not require any application changes Almost certainly poorer performance than local execution. But makes sense for occasional runs/ demonstrations etc.

Problems Relatively low level model of interaction. You need to know about lots of stuff (such as certificates, security keys, etc. that have nothing to do with your work) Performance is difficult to predict License issues Costs may be high for high volumes of data transfer in/out of clouds

Software engineering challenge Build a software development environment that radically simplifies hosting scientific applications on a range of clouds

2. Cloud interfacing You build applications that make use of the cloud providers APIs (PaaS) to access common services. High-level cloud awareness. The platform takes care of scaleability on demand. Limited programming language support

Challenge is using existing PaaS APIs for computationally-intensive applications Systems are set up to support web-based applications Google Apps 30 second time limit on tasks Several experiments here mixed conclusions.

Software engineering challenge Investigate how to adapt applications that are computation/data intensive to run within the constraints set by the PaaS interfaces from cloud providers

3. Cloud software engineering Build cloud aware applications which can adapt to the cloud capabilities that are available

Application architecture designed for the cloud Underlying infrastructure management done in the program itself What abstractions do we need for this?

Three grand challenges

Programming models for the cloud Building a PaaS for high performance/ throughput computing Creating a cloud-aware software development environment

Scaling up and scaling out Traditional model to cope with increased computational demand is to scale up Supported by some cloud providers who offer different instance types. Scaling out is the more usual cloud model

Coping with scaling out Redesigning algorithms and code to work with a flexible rather than a fixed number of resources Interaction between program and platform to know what resources are being used and what resources are available Structuring program into a flexible number of computational components Avoiding sequential computations (Amdahl s Law)

Programming models Are there programming models that can take advantage of elasticity and massive parallelism? Invent new models for parallel computation Adapt existing problems to the current map/reduce programming model

Map reduce explained http://www.kchodorow.com/blog/2010/03/15/mapreduce-the-fanfiction/

Map-reduce on a slide -- Split the data into a number of computationally tractable chunks. in = split (thedata) n = size (in) -- MAP. For each chunk, process in parallel parfor i = 1 to n do { out (i) = F (in (i)) } -- REDUCE. Apply a function R to the output that computes the required result -- (of course, A can be a list) A = R (out)

Map-reduce assumptions Input data set can be split into chunks for independent parallel processing The reduce action is a relatively simple, fast computation Clearly, does not fit all types of problem

Can scientific codes be re-engineered to take advantage of the map-reduce model? Elastic + static architecture Use the elastic cloud for data preparation/analysis (MAP) Use a cloud cluster for computation (REDUCE)

Opportunistic computing Taking advantage of low-price/free resources when these are available?

Fixed budget computation Compute till you run out of money Get as much computational capability as your budget will allow Use spot prices Stop and start instances

Budget-driven programming Develop systems that take advantage of variable pricing in different clouds/at different times Potentially significant for computationally-intensive applications

PaaS for Science Develop a set of APIS for data/compute intensive applications to support cloud interaction Long-running applications Cost/demand awareness Performance measurement/tuning Intermittent execution

SDE for the cloud Creating an environment for the development of cloud-aware applications Hiding low level details of IaaS cloud interaction Testing environment Occasional computation Preliminary work ELVIRA, St Andrews http://www.elvira-cloud.org//

Software as a service

Effective way for a community to share services Scope for applying external computations to collected data data mining, visualisation, etc. What are appropriate abstractions? How can large amounts of state be managed? Limiting data transfer between nodes As with all software reuse, the community rather than the project benefits. Needs central funding to pay for reusable element creation

Conclusions Clouds will become the dominant computing environment in future so costs will fall significantly major driver for developing for the cloud Offers a level of computational resource that cannot really be replicated in an institution Software engineering issues need to be addressed to make the most effective use of the cloud