Design of a Cloud Computing Course...
Transcript of Design of a Cloud Computing Course...
Design of a Cloud Computing Course Sequence
Prasad Calyam, Ph.D. Assistant Professor, Department of Computer Science
IUCEE (Indo Universal Collaboration for Engg. Education) Webinar Talk, October 28th 2016
What is Cloud Computing?
MU Cloud Computing 2
• Classic Computing – ‘Buy and Own’ – Approx. 18-month cycle for
hardware/software procurement
– Plan for peak needs of resources, could be expensive!
– Client software installation (e.g., MS Word), dedicated
• Cloud Computing – ‘Subscribe and Use’ like any
other “utility” such as water, gas, etc.
– Instantly use and pay $ for only what you use
– Elastic resource reservations – Web Apps (e.g., Google Docs),
Mobility, Multi-tenancy
Cloud Computing Challenges?
Resource Monitoring
Pricing/Billing
Provisioning On-Demand Risk/Trust
Management
Energy Efficiency
Security/
Privacy Legal & Regulatory
Data Centers
Standards and Tools
Scalability
App
Marketplaces
Reliability
3
Slide adapted from Hwang, Fox, Dongarra
MU Cloud Computing
VIMAN Lab Cloud Computing Research
• Cloud Resource Allocation – Computer and network virtualization models, algorithms, tools
• Cloud Performance Monitoring – Software-defined measurements and performance diagnosis
• Cloud Testbeds for Apps, Marketplaces – e.g., Manufacturing/Healthcare/Education
• Cloud Security – Cyber attacks defense, Federated Policy Management
4
h"p://people.cs.missouri.edu/~calyamp
MU Cloud Computing
Cloud Computing I Course Information • Pre-requisites:
– Object Oriented Programming – (Operating Systems-I), (Computer Networks-I), (Cyber Security-I)
• Students: – 30 to 60 class sizes – mix of undergraduate and graduate students
• Textbook: – Distributed and Cloud Computing - by K. Hwang, J. Dongarra, and G. Fox;
First Edition [ISBN: 9780123858801] (required) • Reference books:
– Programming Amazon EC2 - by J. Vliet and F. Paganelli [Online copy available] (optional)
– Cloud Computing: Principles and Paradigms - by R. Buyya, J. Broberg, A. Goscinski (optional)
• Teaching Assistant: – Monitors and answers student issues in Blackboard Discussion Forum
5 MU Cloud Computing
See Course Report - http://faculty.missouri.edu/calyamp/publications/geni-cclabs-gree14.pdf
Cloud Computing I Course Objectives
• Be competent with principles and architectures that integrate computing theories and information technologies
• Be competent with distributed system models, computer virtualization concepts, network virtualization concepts
• Be competent with the design, programming and application of distributed and cloud computing systems
and… • Be familiar with cyber-security and service-oriented concepts
relating to use/design of cloud computing systems • Be familiar with App customization of cloud computing
infrastructures, and standards through hands-on experience
6 MU Cloud Computing
Cloud Computing II Course Information • Pre-requisite:
– CS 4001/7001 Cloud Computing I or Instructor Consent • Textbook:
– Cloud Computing: Principles and Paradigms - by R. Buyya, J. Broberg, A. Goscinski (optional)
• Reference books: – Cloud Computing: Concepts, Technology & Architecture - by T.
Erl [Online copy available at MU Library] (optional) – Proceedings of top-tier cloud computing conferences and
journals • e.g., SIGCOMM, INFOCOM, NSDI, OSDI, Cloud, UCC, CloudCom,
TCC, TSC, TDSC, TNSM, … NOTE: This course is a research-oriented course with semi-formal discussion of advanced topics
7 MU Cloud Computing
Cloud Computing II Course Objectives
• Be competent with advanced principles of distributed system models, and enabling technologies for cloud computing
• Be competent with conducting literature survey of works on management and security of virtual machines/containers and virtualization of clusters, networks and data centers
• Be competent with advanced design, programming, standards and application of cloud computing systems
and… • Be familiar with how to identify and address gaps in research
and technology of latest cloud computing advances • Be familiar with App customization of cloud computing
infrastructures, and standards through hands-on experience
8 MU Cloud Computing
Cloud Computing I Course Lab Assignments • 6 labs to develop technical background and skills for working with
distributed system and related software environments
• 3 Amazon Web Services (AWS) labs - http://aws.amazon.com – Received $100 usage credit per student through their academic program – Focus areas:
• Instance setup with Cloud Watch alarm for billing alerts • Web App setup with EC2, S3 and Cloud Watch • Autoscaling to handle user load bursts in a Web App
• 3 GENI labs - http://groups.geni.net/geni/wiki – “Calyam_UMissouri_Fall2013” Project in GENI portal (http://portal.geni.net) – Focus areas:
• Slice setup for “Hello GENI” experiment • Instrumentation & Measurement Web App setup with GENI Rack VMs and
OnTimeMeasure software • OpenFlow controller programming for 2 traffic engineering applications:
QoS Control based on enterprise policy, and Load Balancing • [Additional CloudLab InterCloud Webservices homework/lab]
9 MU Cloud Computing
Cloud Computing I Course Topics Schedule
• Week 1 – 4: Introduction – Distributed system models and
enabling technologies • Scalable, utility computing
evolution and concepts • Networked systems related
technologies • Performance, security, and
energy efficiency issues – AWS overview discussion – GENI overview discussion – AWS Lab 1 – GENI Lab 1
• Week 5 – 6: Virtualization – Virtual machines and
virtualization of clusters, networks and data centers
• Levels of virtualization implementation
• Structures/tools and mechanisms for resource management
– AWS topics discussion – AWS Lab 2
10 MU Cloud Computing
Cloud Computing I Course Topics Schedule (2)
• Week 7 – 9: Architectures – Cloud platform architecture
with security over virtualized data centers
• Public, private and hybrid clouds ecosystem
• Public clouds and service offerings such as IaaS, PaaS, SaaS, DaaS
• Inter-cloud resource management
• Cloud security and trust management
– GENI topics discussion – GENI Lab 2
• Week 10 – 12: Services – Service-oriented architectures
for distributed computing • Web services and message-
oriented middleware • Discovery, registries, metadata,
publish-subscribe – AWS topics discussion – GENI topics discussion – AWS Lab 3 – MU Data Center Tour – GENI Lab 3
11 MU Cloud Computing
Cloud Computing I Course Topics Schedule (3)
• Week 13 – 16: Applications – Cloud programming and software environments
• Cloud application requirements and constraints • MapReduce, Hadoop library, Pig Latin • Programming support, approaches on real cloud platforms
– Teams formation & 2-Page Project Plan – In-Class “Circle Time” for Project Teams – Project Team Presentations/Demos
12 MU Cloud Computing
Cloud Computing II Course Topics
• Cloud Resource Optimization – Modeling performance, security, and energy efficiency issues – Defragmentation, multi-tenancy, cost-benefit analysis
• Cloud Engineering – Structures/tools and scheduling mechanisms for networks and data centers – Hybrid cloud setup, monitoring service level agreements, service pricing
• Cloud Security – Federated identity and access management – Intercloud web services security and trust management
• Cloud Applications – Programming for software-defined networks and data centers – Approaches for Application development on real cloud platforms based on
Big Data Analytics, Internet-of-Things (IoTs), Mobile Clouds • Cloud Standards
– Current and emerging standards
13 MU Cloud Computing
InterCloud Lab/Homework with OpenStack
• Purpose of the Lab – Deploy your own “personal cloud” on NSF CloudLab (https://www.cloudlab.us)
to understand how to program web services across multi-cloud platforms that are orchestrated using OpenStack cloud operating system
1. OpenStack Overview
2. OpenStack Infrastructure Deployment
3. OpenStack Dashboard
4. OpenStack Command Line
5. Intercloud WebServices
MU Cloud Computing 14
InterCloud Web Services
MU Cloud Computing 15
• Create an Intercloud API to display deployed instances in your experiment that can be accessible externally through RESTful web services
• Start by creating a web application, then convert it into a RESTful service to allow client requests to display various available instances information
Your “Personal Cloud” Access Curl Client
Browser RESTClient
Instance Types
MU Cloud Computing 16
CloudLab Homework Q&A What to turn in for Grading?
1. Provide a screenshot of the “Network Topology” after a new instance is created; Explain the graph.
2. Provide screenshot of the ‘controller’ node with the MAC Address clearly displayed.
3. List in detail the resources available for the deployed cloud infrastructure (vCPUs, RAM, Floating IPs, Security Groups, and Volumes)
4. List the necessary changes in the profile file to add an extra compute node, and submit a revised RSpec.
5. Extend the Intercloud API to display user list (KEYSTONE) as: curl -u clouduser:EasyPassword15 -i http://[IP]:8090/list_user Provide screenshot of the output.
6. By using your AWS instance setup in AWS Lab-2, write a web service client (use any language of your preference) to request and display the cloud information available in the JSON file in a simple web site. Include the Amazon DNS link and the code in your submission report.
17 MU Cloud Computing
Final Course Project • Objective:
– To develop programming and performance evaluation skills – To reinforce the understanding of major concepts in the course
• Graduate Student team projects require use of either C/C++ or Java, as well as cloud-platform specific tools and applications
• Undergraduate student participation is optional (extra credit)
• Approach: – Solve a “real” problem in a GENI/AWS testbed
• Teams: Core Logic Team, Testbed Team, User Interface Team • Must use web services, show design tradeoffs (e.g., how VM
obfuscation for ‘security’ complicates ‘manageability’ of infrastructure) • Build upon Cloud Computing material covered in class • Student domain expert for each project
– In-Class “Circle Time” to provide on-going guidance – Final Project Presentations/Demos – 25% Grade based on overall team performance, peer-reviews
18 MU Cloud Computing
Project Lifecycle
User Federated IAM
Performance Variance due to Design Tradeoffs GENI/AWS/Other Discovery/Reservation Hosting
Application Dashboard
19 MU Cloud Computing
Spring 2016 Final Course Project Ideas 1. Custom Image Templates enabled Platform-as-a-Service
– Based on requirements from SoyKB testbed in GENI and AWS – Concepts of Custom Image Templates, Service Optimization, Workflow Monitoring
2. Software-defined Networking for Intelligent Data Movement – Based on requirements from GENI Intelligent Data Movement Service – Concepts of Network Virtualization, Route Computation, Video Delivery
3. Moving Target Defense for Resilient Cloud Management – Based on requirements from cyber attack defense testbed in DeterLab/GENI – Concepts of Cyber Attack Generation, Proactive and Reactive Migration Triggers
4. Internet-of-Things Integration for mHealth-based Fitness Monitoring – Based on requirements from “Fitbit” data tracking for Teens using AWS – Concepts of App Workflow, Resource Brokering, Reward Models
20 MU Cloud Computing
Some Thoughts…
• GENI provided an excellent platform to develop and administer hands-on laboratory exercises for students in the Course on cloud computing topics such as: – Distributed system resource discovery and management – Federated identity and access management – Application/system/network performance measurement and
adaptation – Software-defined networking with OpenFlow
• Student Learning enabled through GENI/AWS – Experimental testbed setup, related web services, and programming
practices – Perception change of App and their high scalability in Cloud – Understanding Architecture diagrams! – Hands-on Experience with advanced computing technologies – Supplement class discussions of concepts through Lab exercises
21 MU Cloud Computing
Some Student Quotes…
“I am able to visualize the architecture diagrams” “Labs in GENI were exciting!” “There are a lot of technologies and terminology…” “It takes time to understand detailed instructions in labs” “I no longer view Apps as simply code executing on a single machine” “I appreciate the fact that there is a ‘user view’ and ‘provider view’…” “When to use what virtualization is challenging”
22 MU Cloud Computing
Other thoughts…
• Detailed instructions were needed to complete the labs – Using distributed system/network resources and working with tools
such as those in GENI/AWS was a new experience
• AWS and GENI/CloudLab combination benefits – Many similarities in tools, best practices – reinforced learning!
• GENI Project Office/CloudLab co-ordination was important – To determine timing of labs, ensuring resource availability
• Offering a two parts (Cloud Computing I & II) course in consecutive semesters could be effective – Allows to have more in-depth GENI, CloudLab and AWS
experiments, hands-on education, graduate research initiation
23 MU Cloud Computing
Thank you for your attention!
24 MU Cloud Computing
AWS Lab-1 Steps
• Lab # 1 – AWS Account Setup and Services Overview • Purpose of the Lab
– Understand definitions of various Amazon Web Services (AWS) and their use in cloud computing based web applications that are accessible over the Internet through an AWS account
25
Amazon Web Services
AWS Architecture
AWS Account CreaJon
Add AWS EducaJon Credit
for $100
Launch instance
Add a Bill
Alarm
MU Cloud Computing
AWS Lab-2 Steps
• Lab # 2 – AWS Resource Discovery and Instance Setup • Purpose of the Lab
– Use the AWS account for the discovery, reservation and access of virtual compute/storage infrastructure instances; setup a platform along with web-application and related basic firewall configurations within your reserved infrastructure resources
26 MU Cloud Computing
AWS Lab-3 Steps
• Lab # 3 – Platform/Application Provisioning and Auto Scaling Adaptation
• Purpose of the Lab – Launch new instances through Images taken from your current instance
state, include them to a load balancer configuration, and apply CloudWatch alarms for automatically scaling up and scaling down using AutoScaling service adaptations based on usage load demands
27
S3 Simple Storage
Service
RDS RelaJonal Database Service
ELB ElasJc Load Balancer
AutoScaling integrated to ELB
Cloud Watch
Alarms and AcJons
Clean-‐up Resources
MU Cloud Computing
GENI Lab-1 Exercise
• Lab # 1 – GENI Account Setup and Services Overview • Purpose of the Lab
– Setup your GENI account, and use it to reserve an experiment environment a.k.a. “slice” that features 2 compute nodes communicating over a Layer 2 connection
– Run a “Hello GENI” experiment with GUI (Flack) and Command-line (Omni) tools in your reserved slice by automatic installation and execution of software to perform basic bandwidth measurement tests between the nodes
GENI Terminology GENI Architecture
GENI Account CreaJon
GENI Environment
Setup
GENI "Hello World"
28 MU Cloud Computing
References for GENI Lab-1
• Chapter 1, Distributed and Cloud Computing, Hwang, Fox & Dongarra • GENI Terminology/Architecture:
http://groups.geni.net/geni/wiki/GeniNewcomersWelcome • GENI Tutorial Paper:
http://www.sigcomm.org/sites/default/files/ccr/papers/2012/January/2096149-2096161.pdf
• GENI Omni Tool: http://trac.gpolab.bbn.com/gcf/wiki/Omni • GENI Flack Tool: http://www.protogeni.net/ProtoGeni/wiki/FlackManual • GENI Understanding Aggregate Manager exercise:
http://groups.geni.net/geni/wiki/GENIEducation/SampleAssignments/UnderstandAMAPI/Procedure
29 MU Cloud Computing
GENI Experiment Workflow
30 MU Cloud Computing
GENI Lab-1 Q&A 1. Provide a screenshot of the reserved slice resources in your GENI portal
account
2. What would be the added capabilities and benefits in performing an experiment on GENI Future Internet infrastructure versus the commercial Internet?
3. Define: (i) slice, (ii) sliver, (iii) aggregate manager and (iv) Rspec
4. How does Federated Identity and Access Management in the GENI portal allow you to use your Pawprint and password to login? What are the benefits of this approach?
5. Explain the role of “Experiment Control Tools” such as Omni, Gush and Flack in GENI. What are the advantages of using the Omni command line tool in comparison to using the Flack GUI tool?
6. What is the significance of generating the SSH and SSL keys in your .ssh folder?
31 MU Cloud Computing
GENI Lab-2 Exercise
• Lab # 2 – Instrumentation and Measurement of GENI Slice • Purpose of the Lab
– Install and configure a distributed measurement Web App viz., “OnTimeMeasure” within a slice
– Configuration involves ‘Node Beacons’ at measurement points, and a ‘Root Beacon’ that acts as a central intelligence module
– Schedule measurements from the Root Beacon and query/visualize performance between two compute nodes that host Node Beacons
– Performance data collection comprises of network health metrics such as round trip delay, loss, jitter and throughput
Install OnTimeMeasure
Configure OnTimeMeasure
Control (start/stop)
measurements
Query Measurements
Add Custom Metric
32 MU Cloud Computing
References for GENI Lab-2
• Chapter 3 Distributed and Cloud Computing, Hwang, Fox & Dongarra • OnTimeMeasure Tutorial: http://groups.geni.net/geni/wiki/OnTimeMeasure • OnTimeControl: http://groups.geni.net/geni/wiki/OTM-Control • OnTimeMeasure Custom Metric Integration:
http://groups.geni.net/geni/wiki/OTM-CustomMetric • OnTimeMeasure demo video on Graphite:
http://ontime.oar.net/demo/dashboard.htm • Miscellaneous OnTimeMeasure demo videos: http://ontime.oar.net/demo
33 MU Cloud Computing
GENI I&M Overview
Reference: P. Calyam, M. Sridharan, Y. Xiao, K. Zhu, A. Berryman, R. Patali, “Enabling Performance Intelligence for ApplicaJon AdaptaJon in the Future Internet”, Journal of Communica:ons and Networks (JCN), 2011. h"p://groups.geni.net/geni/a"achment/wiki/FirstGenCalyam/fi-‐onJmemeasure-‐vdcloud_jcn11.pdf
34 MU Cloud Computing
OnTimeMeasure I&M Overview
35 MU Cloud Computing
GENI Lab-2 Q&A
1. Provide screenshots of your OnTimeMeasure instance’ Graphite page for ‘RoundTripDelay’ of node2 -> node1, node1-> node2 and ‘MemFree’ of node1 and node2
2. Explain the role and functions of “Instrumentation and Measurement Tools” such as OnTimeMeasure, and GEMINI Tool Set in GENI infrastructure
3. Briefly explain in your own words the architecture of the ‘OnTimeControl’ framework (refer OnTimeMeasure wiki)
4. Describe the workflow that was involved when you added the custom metric feature to your OnTimeMeasure instance in the last step of your experiment
36 MU Cloud Computing
GENI Lab-3 Exercise
• Lab # 3 – SDN and QoE Measurement in GENI Slice • Purpose of the Lab
– Install and configure a virtual desktop App (e.g., video player), and a network emulator within a slice
• GENI Delay Node for network emulation - http://geni-app-developer-documentation.readthedocs.org/en/latest/resources/delay.html
– Understand topology setup and OpenFlow controller configuration – Explore client-side encoding, and network-side transit selection
adaptation and measure QoE improvement – Performance data collection comprises of metrics such as:
• Perceptible Impairment MOS (Subjective QoE) • Bandwidth consumption (Objective QoE)
Setup Slice with VNC Client/Server
Configure Network Emulator, Measure QoE
degradaJon
Configure OpenFlow Controller
Measure QoE improvement with
adaptaJon
37 MU Cloud Computing
SDN and QoE Measurement Overview (Experiment w/o Load-Balancing)
38 MU Cloud Computing
SDN and QoE Measurement Overview (Experiment w/ Load-Balancing)
39 MU Cloud Computing
OpenFlow Switch
Client In Port
Out Port
SUNNW PG48 50 51
SUNNW PG49 50 51
ATLANTA PG46 52 52
ATLANTA PG47 52 52
ATLANTA PG46 20 52
ATLANTA PG47 20 52
VDC-Analyst OpenFlow Demonstration
Route setup Step-‐1 Cross-‐traffic Impact Step-‐2 Load-‐balancing
Improvement Step-‐3
OpenFlow Switch
Client In Port
Out Port
ATLA PG46 20 52
ATLA PG47 20 52
OpenFlow Switch
Client In Port
Out Port
ATLANTA PG46 20 52
ATLANTA PG47 20 52
SUNNW PG48 50 52
SUNNW PG49 50 52
Video runs smooth, GUI applicaJons are responsive
Video freezes, disconnects, GUI applicaJons are not responsive
Video runs smooth, GUI applicaJons are responsive
40 MU Cloud Computing
0.21
15.36
0
5
10
15
20
ApplicaJon Cross-‐Traffic
VDC-Analyst OpenFlow Demonstration
Route setup Step-‐1 Cross-‐traffic Impact Step-‐2 Load-‐balancing
Improvement Step-‐3
Video runs smooth, GUI applicaJons are responsive
Video freezes, disconnects, GUI applicaJons are not responsive
Video runs smooth, GUI applicaJons are responsive
Bandwidth Consumed (Mbytes/s)
4.45
14.8
0
5
10
15
20
ApplicaJon Cross-‐Traffic
4.6 0
0
5
10
15
20
ApplicaJon Cross-‐Traffic
41 MU Cloud Computing