design of a curriculum on cloud computingworldcomp-proceedings.com/proc/p2013/fec4175.pdf · design...

4
Design of a Curriculum on Cloud Computing Ram Krishnan and Eugene John Dept. of Electrical and Computer Engineering University of Texas at San Antonio Email: [email protected] and [email protected] Conference: FECS ’13 Abstract—In this paper, we provide an overview of a design of a course on cloud computing and candidate content of this course. Cloud computing is a set of pooled computing resources delivered over the Internet. The cloud delivers a hosting environment that does not limit an application to a specific set of resources. Depending on the platform, an application can scale dynamically and increase its share of resources on-the-fly. The cloud can quickly scale to thousands of servers to make resources available as they are needed. The goal of this curriculum development effort is to train our students in a technological area that is state-of-the-art which has high demand for personnel skilled in the same. The proposed curriculum will incorporate fundamental aspects of cloud computing that will invigorate the current and future students and set a path towards establishment of a string of new courses around this area: lower power design of large scale systems, efficient computer architecture, materials engineering, efficient resource sharing, computer networks and cyber security to name a few. We also provide an overview of various projects that could be performed using OpenStack, open- source cloud “operating system” software, as a learning platform for cloud Infrastructure as a Service (IaaS). The proposed course is intended for undergraduate students in computer science, electrical and computer engineering. This course is envisioned as a senior level tech elective that can also be cross-listed as a graduate course. Index Terms—Cloud Computing, Curriculum, Education, OpenStack I. I NTRODUCTION Cloud computing [1, 10, 2, 5, 3, 12] is a set of pooled computing resources delivered over the Internet. The cloud delivers a hosting environment that doesn’t limit an application to a specific set of resources. Depending on the platform, an application can scale dynamically and increase its share of resources on-the-fly. The cloud can quickly scale to thousands of servers to make resources available as they’re needed. Application developers never need to worry about buying new hardware to meet increasing traffic demands or huge traffic spikes. The goal of this curriculum development effort is to train our students in a technological area that is state-of-the-art which has high demand for personnel skilled in the same. The proposed curriculum will incorporate fundamental aspects of cloud computing that will invigorate the current and future students and set a path towards establishment of a string of new courses around this area: lower power design of large scale systems, efficient computer architecture, materials engineering, efficient resource sharing, computer networks and cyber security to name a few. While the traditional computer science and electrical/computer engineering departments have courses around these themes, the cloud technological context completely changes the ball game. Further, there is scope for integrating courses from other departments, possibly from other colleges. For example, effective infrastructure planning (college of architecture) is an important requirement for cloud. Clearly, there is an opportunity for establishing a major con- centration area within computer science and electrical and/or computer engineering departments. In the proposed curriculum, the students will be introduced to salient aspects of cloud computing using OpenStack, an open source platform for cloud computing. Students will build, configure, manage and run a small-scale cloud computing platform from scratch. The authors have built a cloud comput- ing lab during summer 2012 at UTSA which has significant compute capacity, part of which has been devoted to this course. This will provide the necessary hands-on experience for students, which is highly valuable for a course of this nature. However, note that to learn the concepts, once does not need a heavy investment in infrastructure. OpenStack can be freely downloaded and installed within a virtual machine in free virtualization software such as Oracle VirtualBox [15]. II. CLOUD COMPUTING CURRICULUM DESIGN In this section, we provide an overview of our experience in designing a cloud computing curriculum at the University of Texas at San Antonio. We hope that by sharing our experience, instructors at other universities can adapt the content to their specific needs or improve upon the content and thereby proceed towards a mature curriculum on cloud computing in academia. Since the cloud computing industry has grown rapidly, it is critical that academia is able to train the next generation of workforce with knowledge in this area. A. Cloud Computing Overview The National Institute for Standards and Technology (NIST) of the U.S. Department of Commerce has provided one of the earliest characterizations of cloud computing [10]. We discuss this briefly below. NIST defines cloud computing based on 5 essentials characteristics, 3 service models and 4 deployment models. The 5 essential characteristics of cloud computing are: On demand self-service: Computing capabilities are ac- cessible to consumers on demand and can be self- provisioned without the need to interact with a human.

Upload: lythuy

Post on 28-Apr-2018

217 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Design of a Curriculum on Cloud Computingworldcomp-proceedings.com/proc/p2013/FEC4175.pdf · Design of a Curriculum on Cloud Computing ... Software as a Service (SaaS): In SaaS,

Design of a Curriculum on Cloud ComputingRam Krishnan and Eugene John

Dept. of Electrical and Computer EngineeringUniversity of Texas at San Antonio

Email: [email protected] and [email protected]

Conference: FECS ’13

Abstract—In this paper, we provide an overview of a design ofa course on cloud computing and candidate content of this course.Cloud computing is a set of pooled computing resources deliveredover the Internet. The cloud delivers a hosting environmentthat does not limit an application to a specific set of resources.Depending on the platform, an application can scale dynamicallyand increase its share of resources on-the-fly. The cloud canquickly scale to thousands of servers to make resources availableas they are needed. The goal of this curriculum developmenteffort is to train our students in a technological area that isstate-of-the-art which has high demand for personnel skilled inthe same. The proposed curriculum will incorporate fundamentalaspects of cloud computing that will invigorate the currentand future students and set a path towards establishment ofa string of new courses around this area: lower power designof large scale systems, efficient computer architecture, materialsengineering, efficient resource sharing, computer networks andcyber security to name a few. We also provide an overview ofvarious projects that could be performed using OpenStack, open-source cloud “operating system” software, as a learning platformfor cloud Infrastructure as a Service (IaaS). The proposed courseis intended for undergraduate students in computer science,electrical and computer engineering. This course is envisionedas a senior level tech elective that can also be cross-listed as agraduate course.

Index Terms—Cloud Computing, Curriculum, Education,OpenStack

I. INTRODUCTION

Cloud computing [1, 10, 2, 5, 3, 12] is a set of pooledcomputing resources delivered over the Internet. The clouddelivers a hosting environment that doesn’t limit an applicationto a specific set of resources. Depending on the platform, anapplication can scale dynamically and increase its share ofresources on-the-fly. The cloud can quickly scale to thousandsof servers to make resources available as they’re needed.Application developers never need to worry about buying newhardware to meet increasing traffic demands or huge trafficspikes.

The goal of this curriculum development effort is to trainour students in a technological area that is state-of-the-artwhich has high demand for personnel skilled in the same. Theproposed curriculum will incorporate fundamental aspects ofcloud computing that will invigorate the current and futurestudents and set a path towards establishment of a stringof new courses around this area: lower power design oflarge scale systems, efficient computer architecture, materialsengineering, efficient resource sharing, computer networks and

cyber security to name a few. While the traditional computerscience and electrical/computer engineering departments havecourses around these themes, the cloud technological contextcompletely changes the ball game. Further, there is scopefor integrating courses from other departments, possibly fromother colleges. For example, effective infrastructure planning(college of architecture) is an important requirement for cloud.Clearly, there is an opportunity for establishing a major con-centration area within computer science and electrical and/orcomputer engineering departments.

In the proposed curriculum, the students will be introducedto salient aspects of cloud computing using OpenStack, anopen source platform for cloud computing. Students will build,configure, manage and run a small-scale cloud computingplatform from scratch. The authors have built a cloud comput-ing lab during summer 2012 at UTSA which has significantcompute capacity, part of which has been devoted to thiscourse. This will provide the necessary hands-on experiencefor students, which is highly valuable for a course of thisnature. However, note that to learn the concepts, once doesnot need a heavy investment in infrastructure. OpenStack canbe freely downloaded and installed within a virtual machinein free virtualization software such as Oracle VirtualBox [15].

II. CLOUD COMPUTING CURRICULUM DESIGN

In this section, we provide an overview of our experience indesigning a cloud computing curriculum at the University ofTexas at San Antonio. We hope that by sharing our experience,instructors at other universities can adapt the content to theirspecific needs or improve upon the content and therebyproceed towards a mature curriculum on cloud computingin academia. Since the cloud computing industry has grownrapidly, it is critical that academia is able to train the nextgeneration of workforce with knowledge in this area.

A. Cloud Computing Overview

The National Institute for Standards and Technology (NIST)of the U.S. Department of Commerce has provided one of theearliest characterizations of cloud computing [10]. We discussthis briefly below. NIST defines cloud computing based on 5essentials characteristics, 3 service models and 4 deploymentmodels. The 5 essential characteristics of cloud computing are:

• On demand self-service: Computing capabilities are ac-cessible to consumers on demand and can be self-provisioned without the need to interact with a human.

Page 2: Design of a Curriculum on Cloud Computingworldcomp-proceedings.com/proc/p2013/FEC4175.pdf · Design of a Curriculum on Cloud Computing ... Software as a Service (SaaS): In SaaS,

• Broad network access: A wide-variety of client-sideplatforms can be used to access computing capabilitiesremotely over a network.

• Resource pooling: A computing capability serviceprovider is able to pool its resources and offer it tomultiple customers, with often-times a single physicalserver being shared between multiple customers.

• Rapid elasticity: Computing capabilities can be scaled-upand scaled-down automatically depending on customers’need.

• Measured service: Ability to provide a pay-as-you (or)pay-for-what-you-use) model for computing capabilitiesmuch like electric utility.

The 3 service models of cloud computing are:• Infrastructure as a Service (IaaS): In IaaS, computing

infrastructure capabilities such as storage, compute andnetworking are provided as a service by a service providerto its customers.

• Software as a Service (SaaS): In SaaS, various applica-tions are provided as a service instead of a standalonedesktop application. The client platform should be ableto access these services using standard tools such as aweb browser.

• Platform as a Service (PaaS): PaaS provides layeredenhancements to IaaS and provides it as a service that canbe used to build software that can utilize IaaS benefits.For example, specific application development platformssuch as Ruby on Rails can be configured on computinginfrastructure and offered as a service. The applicationsdeveloped on such a PaaS may be provided with thecapability to leverage IaaS benefits.

The 4 deployment models of cloud computing are:• Public Cloud: In this deployment, the underlying com-

puting infrastructure provided by the service provideris shared by multiple clients. This is by far the mosteconomical deployment but clearly has a number ofprivacy concerns [17, 8, 9, 16] from the customers’ point-of-view.

• Private Cloud: In this deployment model, the underlyingcomputing infrastructure provided by the service provideris not shared by different clients. Each client has exclusiveaccess to the resources. This could be more expensive butclearly has the least privacy concerns from the customers’point-of-view. Note that the physical location of thecomputing infrastructure might be at the service providerowned facility or within customer premises.

• Community Cloud: In this deployment model, the un-derlying cloud infrastructure can be shared between acommunity of clients that share similar concerns.

• Hybrid Cloud: In this deployment model, the underlyingcloud infrastructure can be deployed using more than onedeployment model above.

B. Curriculum Design TasksThe following is based on our experience in developing

a cloud computing course in the Department of Electrical

and Computer Engineering at the University of Texas at SanAntonio. The proposed course has a built in lab component.There are 5 major tasks to build this curriculum in a concretemanner as outlined below:

• Theoretical Underpinnings: The task here is to developa concrete curriculum that encompasses theoretical as-pects of cloud computing. As mentioned earlier, there arethree cloud service models: Infrastructure as a Service(IaaS), Platform as a Service (PaaS) and Software asa Service (SaaS). In the simplest sense, IaaS providesvirtual hardware, PaaS provides virtual software devel-opment platforms and SaaS provides applications as aservice as opposed to typical stand alone installations ina computer. Further, there are three deployment models:public, private and hybrid cloud. Again, in the simplestsense, in a public cloud, the cloud infrastructure is open tothe general public while possibly managed and operatedby business, academic or government organizations. Incontrast, in the private cloud, the cloud resources arerestricted to a single organization. Hybrid cloud, as thename implies, is a composition of two or more publicand private cloud infrastructures. This task will developnecessary contents to lay a solid foundation for followingtasks.

• Technological Underpinnings: This task will developa concrete curriculum that encompasses the key tech-nologies in cloud computing. For example, Virtualizationtechnology, where a virtual machine monitor exposes asingle resource (e.g. server hardware) as multiple virtualresources, is a fundamental aspect of cloud computing.VMWare and Xen have leading solutions in this area.Another key technological aspect is architecture for cloudmanagement. Eucalyptus provides open source platformfor specifying cloud architectures. This task will developcourse contents on virtualization using VMWare andcloud architectures using Eucalyptus.

• Lab Infrastructure: This task will develop necessary labinfrastructure for cloud computing that can be utilizedby this course. As mentioned earlier, such a lab isalready being developed for the purpose of cyber securityresearch. We plan to leverage this lab for teaching cloudcomputing as well. The cloud will be made accessiblefrom classroom workstations so students can manage theinfrastructure remotely during typical lecture hours. Thekey task here is to build this infrastructure and devote asmaller component for this course.

• Experiments: This task will develop laboratory experi-ments for this course that provide hands-on experienceon the theoretical and technological underpinnings ofcloud computing. Experiments will be developed basedon OpenStack, a open source platform for building andmanaging a cloud. Initially developed by RackspaceHosting, a world-leading cloud provider head-quarteredin San Antonio and NASA, OpenStack has been adoptedby more than 150 major organizations including AMD,

Page 3: Design of a Curriculum on Cloud Computingworldcomp-proceedings.com/proc/p2013/FEC4175.pdf · Design of a Curriculum on Cloud Computing ... Software as a Service (SaaS): In SaaS,

Intel, Cisco, Dell, HP and IBM. Students will use Open-Stack to build and manage a cloud. Specific programmingexperiments will be developed that leverage the powerof cloud in dynamically scaling compute power basedon demand. Students will configure public, private andhybrid clouds. They will perform experiments that willhelp them learn IaaS, PaaS and SaaS cloud deploymentmodels.

• Expert Guest Lectures: This task will coordinate guestlecturers from local technology companies. Specifically,the majority of these lecturers will be technical staff withsome offering business perspective. Rackspace Hostingand SiteB Data Services (a San Antonio based data centercompany) have expressed great interest in volunteeringtechnical support in terms of guest lectures. The objectiveof this task is to plan and schedule such lectures andlecture contents from local technology-related companiesif accessible. This is not a necessary task but highlyrecommended.

Cloud computing is a hot area. Offering a cloud comput-ing course at the undergraduate level will have multi-levelbenefits and huge impact. Based on the authors’ interactionwith Rackspace Hosting Inc., a leader in cloud computingtechnology headquartered in San Antonio, they have expressedvery high interest in hiring unoversity students who haveappropriate skills. We expect that students doing this coursewill develop expertise in, among other things, OpenStackmaking our students highly employable. Since OpenStack isadopted by over 150 companies including AMD, Intel, Cisco,Dell, HP and IBM, the students will have a broad scopeduring their job search. There is a dearth of courses on cloudcomputing in academia. The timing is perfect. The academiashould take the lead in developing this curriculum.

III. A SAMPLE COURSE OUTLINE

We provide an outline of content that can be covered during13 weeks in the semester. Each week constitutes 2 hours and30 minutes of lecture hours.

Week 0: Basic information technology and data centeroperations

Week 0 can give a practical overview of operations of atypical data center and an IT department in an organization.This will help the students understand how the computinginfrastructure relates to various operations.

• Prerequisite quiz on basic programming concepts inC/C++/Java and basic programming constructs and syn-tax.

• Discussion of quiz solution.• Introduction to traditional IT operations.• Data center models and software service models.• AssignmentWeeks 1 and 2: Cloud computing overviewThe next 2 weeks can focus on introducing the benefits of

cloud computing, its potential disadvantages, various charac-terizations of the cloud and security issues in the cloud. The

goal is provide a theoretical overview of cloud computing andensure that students understand how cloud computing is anevolution of IT operations and is less of a revolution.

• Introduction and the case for cloud computing• Services in the cloud: infrastructure, platform, software

and communication as a service• Deployment models: public, private and hybrid• Benefits and challenges in cloud• Security issues in the cloud• AssignmentWeeks 3 and 4: Programming overviewProgramming is an essential skill needed to develop ap-

plications on the cloud. The goal of weeks 3 and 4 isto introduce students to programming languages and webapplication platforms typically used in the cloud. Exampleinclude Ruby, Python, Ruby on Rails (RoR) for rapid webapplication development, etc.

• Object oriented programming• Basic Python/Ruby/Ruby on Rails programming• Programming AssignmentsWeeks 5 and 6: Virtualization technologyVirtualization technology is a key enabler of cloud com-

puting technology. In particular, rapid elasticity would beinfeasible without virtualization. The goal of these 2 weeksis to introduce virtualization to students using standard toolsavailable such as Xen, KVM or VirtualBox. The projects caninclude simple set up of a Linux based operating system suchas Ubuntu as a virtual machine within the regular worksta-tion computer that students use. This is also a good placeto introduce security issues in virtualization since multiplevirtual machines can be hosted on a single hypervisor such asXen and hence the virtual machines share the same physicalresources. Vulnerabilities in the hypervisor can be potentiallyexploited by one virtual machine to steal data from othervirtual machines.

• Virtualization overview and concept• VMWare/Xen/KVM/VirtualBox• Security and policy issues• AssignmentThe next important concept to introduce to students is

architecture of a cloud. We can use open-source productssuch as OpenStack [14] or Eucalyptus [4] to introduce cloudarchitectures.

Weeks 7 and 8: Cloud architecture• Basic architecture for cloud management• Configuration options• Experimentation using Eucalyptus• AssignmentWeeks 9, 10 and 11 can focus on various cloud service

models (IaaS, PaaS and SaaS). OpenStack is an excellentcandidate that can be used to understand and experiment IaaS.For PaaS, services such as Heroku [7] provides a minimalfree version to experiment web application development usingframeworks such as Ruby on Rails on cloud platforms. Otherexamples include Google’s App Engine [6] for developing

Page 4: Design of a Curriculum on Cloud Computingworldcomp-proceedings.com/proc/p2013/FEC4175.pdf · Design of a Curriculum on Cloud Computing ... Software as a Service (SaaS): In SaaS,

Google application and Microsoft Azure [11] for developing.NET applications.

Week 9: IaaS• IaaS using OpenStack• Experimentation using OpenStack• IaaS using Joint• Experimentation using Joint• AssignmentWeek 10: PaaS• PaaS using Eucalyptus architecture and OpenStack• Deployment of various platforms for application devel-

opment• AssignmentWeek 11: SaaS• SaaS using Eucalyptus architecture and OpenStack• Deployment of various platforms for application devel-

opment• AssignmentAn important characteristic of cloud is its elasticity, i.e,

teh ability to program scaling-up and scaling-down as needed.IaaS software such as OpenStack by itself does not providesuch a functionality. It only enables elasticity. It is upto thecustomer to engineering this feature. The last week (or more)in the course can focus on cloud elasticity. One option isto experiment with Redhat’s free auto-scaling PaaS calledOpenShift [13].

Week 12: Cloud Elasticity• Programming applications for dynamic capacity scaling• Experimentation using OpenStack• Assignment

IV. CONCLUSION

Cloud computing is a rapidly growing area and it is im-portant to recognize this emerging technology in academiaand train students so they are well-versed with this technol-ogy when they graduate. In this paper, we provided a briefoverview of a design of a curriculum on cloud computingbased on our experience at UTSA. We provided an overviewof cloud computing based on NIST’s characterization of thecloud and outlined a set of tasks that needed to be carried outfor designing a cloud curriculum. We then provided a samplecontent of a cloud computing course that could be offered overa period of a semester. This was based on a course that wedeveloped at UTSA. Our hope is that by sharing our work,education institutions across the world can adapt and enhanceour work to their particular needs. Further, this can lead to astandardized curriculum on cloud computing that will preparethe students well-versed in this technology at the time theygraduate.

REFERENCES

[1] Michael Armbrust et al. “A view of cloud computing”.In: Communications of the ACM 53.4 (2010), pp. 50–58.

[2] Rajkumar Buyya, Chee Shin Yeo, and Srikumar Venu-gopal. “Market-oriented cloud computing: Vision, hype,and reality for delivering it services as computingutilities”. In: High Performance Computing and Com-munications, 2008. HPCC’08. 10th IEEE InternationalConference on. Ieee. 2008, pp. 5–13.

[3] Rajkumar Buyya et al. “Cloud computing and emergingIT platforms: Vision, hype, and reality for deliveringcomputing as the 5th utility”. In: Future Generationcomputer systems 25.6 (2009), pp. 599–616.

[4] Eucalyptus. 2013 (accessed April 20, 2013). URL: http://www.eucalyptus.com/eucalyptus-cloud.

[5] Ian Foster et al. “Cloud computing and grid computing360-degree compared”. In: Grid Computing Environ-ments Workshop, 2008. GCE’08. Ieee. 2008, pp. 1–10.

[6] Google App Engine. 2013 (accessed April 20, 2013).URL: https://developers.google.com/appengine/.

[7] Heroku. 2013 (accessed April 20, 2013). URL: http://www.heroku.com/.

[8] Meiko Jensen et al. “On technical security issuesin cloud computing”. In: Cloud Computing, 2009.CLOUD’09. IEEE International Conference on. IEEE.2009, pp. 109–116.

[9] Tim Mather, Subra Kumaraswamy, and Shahed Latif.Cloud security and privacy: an enterprise perspectiveon risks and compliance. O’Reilly Media, 2009.

[10] Peter Mell and Timothy Grance. “The NIST definitionof cloud computing (draft)”. In: NIST special publica-tion 800 (2011), p. 145.

[11] Microsoft Azure. 2013 (accessed April 20, 2013). URL:www.windowsazure.com/.

[12] Daniel Nurmi et al. “The eucalyptus open-source cloud-computing system”. In: Cluster Computing and theGrid, 2009. CCGRID’09. 9th IEEE/ACM InternationalSymposium on. IEEE. 2009, pp. 124–131.

[13] OpenShift. 2013 (accessed April 20, 2013). URL: https://www.openshift.com/.

[14] OpenStack. 2013 (accessed April 20, 2013). URL: http://www.openstack.org/.

[15] Oracle VirtualBox. 2013 (accessed April 20, 2013).URL: https://www.virtualbox.org/.

[16] Thomas Ristenpart et al. “Hey, you, get off of my cloud:exploring information leakage in third-party computeclouds”. In: Proceedings of the 16th ACM conference onComputer and communications security. ACM. 2009,pp. 199–212.

[17] Cong Wang et al. “Privacy-preserving public auditingfor data storage security in cloud computing”. In: IN-FOCOM, 2010 Proceedings IEEE. IEEE. 2010, pp. 1–9.