<<

Session 3 – IaaS and PaaS

Dr. Jean-Claude Franchitti

New York University Computer Science Department Courant Institute of Mathematical Sciences

1 Agenda

1 Session Overview

2 Infrastructure (Continued)

3 (PaaS)

4 Summary and Conclusion

2 Session Agenda

▪ Session Overview ▪ Infrastructure as a Service (Continued) ▪ Platform as a Service (PaaS) ▪ Summary & Conclusion

3 What is the class about?

▪ Course description and syllabus: » http://www.nyu.edu/classes/jcf/CSCI-GA.3033-010/ » http://www.cs.nyu.edu/courses/spring20/CSCI-GA.3033-010/

▪ Session 3 Reference material: » Web sites for various IaaS providers as noted in presentation » Web sites for various PaaS vendors as noted in presentation

4 Icons / Metaphors

Information

Common Realization

Knowledge/Competency Pattern

Governance

Alignment

Solution Approach

5 Agenda

1 Session Overview

2 Infrastructure as a Service (Continued)

3 Platform as a Service (PaaS)

4 Summary and Conclusion

6 IaaS & IaaS Cloud

▪ IaaS Cloud and Amazon EC2 » Amazon EC2 Programming » Deconstructing Provisioning (Create a Machine) in a IaaS Cloud ▪ Understanding and Leveraging On-Demand Infrastructure » How to Preserve State Using Amazon EBS • Persistence Storage for Data (EBS for now) • Persisting /config changes by creating own AMI » • Key enabler for on-demand resource availability ▪ Supporting Elasticity » Elasticity Basics » How Elasticity is Supported in Amazon » Project Ideas ▪ Object-Based ▪ Large File Systems Concepts

7 Cloud History (1/2)

▪ 1950s ▪ Scientist Herb Grosch (author of Grosch's law) postulates that the entire world would eventually operate on dumb terminals powered by about 15 large data centers ▪ 1960s ▪ John McCarthy emits the opinion that "computation may someday be organized as a public utility“ ▪ 1966 ▪ In his book “The Challenge of the Computer Utility, Douglas Parkhill thoroughly explores all the modern- day characteristics of (elastic provision, provided as a utility, online, illusion of infinite supply), and the comparison to the electricity industry and the use of public, private, government, and community forms ▪ 1990s ▪ Telecommunications companies who previously offered primarily dedicated point-to-point data circuits, begin offering virtual private network (VPN) services with comparable quality of service but at a much lower cost ▪ By switching traffic to balance utilization as they see fit, they are able to utilize their overall network bandwidth more effectively ▪ The cloud symbol is used to denote the demarcation point between that which is the responsibility of the provider and that which is the responsibility of the user ▪ Cloud computing extends this boundary to cover servers as well as the network infrastructure ▪ 2006 ▪ Amazon launches Amazon Web Service (AWS) on a utility computing basis ▪ Effort triggered by the finding that he new cloud architecture results in significant internal efficiency improvements allowing small, fast-moving teams to add new features faster and more easily

8 Cloud History (2/2)

▪ 2008 ▪ becomes the first open-source, AWS API-compatible platform for deploying private clouds ▪ OpenNebula (part of RESERVOIR European Commission-funded project) becomes the first open-source software for deploying private and hybrid clouds, and for the federation of clouds ▪ Real Time Cloud Environment created in the framework of the IRMOS European Commission- funded project as a result of efforts focused on providing quality of service guarantees, as required by real-time interactive applications, to cloud-based infrastructures ▪ Gartner sees an opportunity for cloud computing "to shape the relationship among consumers of IT services, those who use IT services and those who sell them"[16] and observes 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.“ ▪ 2012 - (CLUSE 2012), Bangalore, April 2012 ▪ Dr. Biju John and Dr. Souheil Khaddaj incorporated the semantic term into the cloud "Cloud computing is a universal collection of data which extends over the in the form of resources (such as information hardware, various platforms, services etc.) and forms individual units within the virtualization environment. Held together by infrastructure providers, service providers and the consumer, then it is semantically accessed by various users."

9 IaaS Cloud Service Model

▪ IaaS is a facility given to business enterprises that offers users the leverage of extra storage space in servers and data centers ▪ IaaS Cloud Providers Resources ▪ Physical Computers ▪ Virtual Machines ▪ Raw (Block) Storage ▪ Firewalls ▪ Load Balancers ▪ Networks ▪ Local area networks including IP addresses ▪ Internet wide area connectivity ▪ Configurable dedicated virtual private networks in carrier clouds ▪ Resources Characteristics ▪ On demand from large pools installed in providers data centers ▪ Billed on a “utility computing” basis, that is, cost reflects the amount of resources allocated and consumed ▪ Usage Mode ▪ Cloud users install OS images and application software on the cloud machines ▪ Cloud users are responsible for patching/maintaining OS/app software

10 Cloud Computing Characteristics (1/3)

▪ Agility improves with users' ability to re-provision technological infrastructure resources ▪ Application programming interface (API) accessibility to software that enables machines to interact with cloud software in the same way the user interface facilitates interaction between humans and computers. Cloud computing systems typically use REST-based ▪ Cost is claimed to be reduced and in a public cloud delivery model capital expenditure is converted to operational expenditure ▪ This is purported to lower barriers to entry, as infrastructure is typically provided by a third-party and does not need to be purchased for one-time or infrequent intensive computing tasks ▪ Pricing on a utility computing basis is fine-grained with usage-based options and fewer IT skills are required for implementation (in-house) ▪ The e-FISCAL project's state of the art repository contains several articles looking into cost aspects in more detail, most of them concluding that costs savings depend on the type of activities supported and the type of infrastructure available in-house

11 Cloud Computing Characteristics (2/3)

▪ Device and location independence enable users to access systems using a web browser regardless of their location or what device they are using (e.g., PC, mobile phone) ▪ As infrastructure is off-site (typically provided by a third-party) and accessed via the Internet, users can connect from anywhere ▪ Virtualization technology allows servers and storage devices to be shared and utilization be increased ▪ Applications can be easily migrated from one physical to another ▪ Multi-tenancy enables sharing of resources and costs across a large pool of users thus allowing for: ▪ Centralization of infrastructure in locations with lower costs (such as real estate, electricity, etc.) ▪ Peak-load capacity increases (users need not engineer for highest possible load- levels) ▪ Utilization and efficiency improvements for systems that are often only 10–20% utilized ▪ Reliability is improved if multiple redundant sites are used, which makes well-designed cloud computing suitable for business continuity and disaster recovery

12 Cloud Computing Characteristics (3/3)

and Elasticity via dynamic ("on-demand") provisioning of resources on a fine- grained, self-service basis near real-time, without users having to engineer for peak loads ▪ Performance is monitored, and consistent and loosely coupled architectures are constructed using web services as the system interface ▪ Security could improve due to centralization of data, increased security-focused resources, etc., but concerns can persist about loss of control over certain sensitive data, and the lack of security for stored kernels ▪ Security is often as good as or better than other traditional systems, in part because providers are able to devote resources to solving security issues that many customers cannot afford ▪ However, the complexity of security is greatly increased when data is distributed over a wider area or greater number of devices and in multi-tenant systems that are being shared by unrelated users. In addition, user access to security audit logs may be difficult or impossible ▪ Private cloud installations are in part motivated by users' desire to retain control over the infrastructure and avoid losing control of information security ▪ Maintenance of cloud computing applications is easier, because they do not need to be installed on each user's computer and can be accessed from different places

13 IaaS Vendor Solutions (1/4)

▪ e.g., Amazon EC2, HP, , Savvis, , Right Scale, , IBM, Oracle, Verizon

Private Cloud Public Cloud

14 IaaS Vendor Solutions – Public/VPC/Private “Accessible” IaaS (2/4)

▪ Amazon CloudFormation and Underlying Services (EC2) (Public/VPC IaaS/PaaS/SaaS) ▪ http://aws.amazon.com/ ▪ One year free usage tier ▪ GreenQloud ComputeQloud (VPC IaaS/PaaS) ▪ http://greenqloud.com/ ▪ 7-day trial ▪ Cloud computing services company operating out of Iceland, offering truly green cloud computing services powered by emission-free energy sources ▪ Services include carbon neutral cloud server hosting, online storage, backup and cloud based computing and high-performance computing services to companies and consumers ▪ HP Cloud (Public/VPC IaaS/PaaS) ▪ https://www.hpcloud.com/ ▪ Public Beta ▪ (VPC IaaS/PaaS) ▪ http://www.joyent.com/ ▪ SmartOS ▪ Academic program and trial ▪ Oracle Public Cloud (Public/VPC IaaS/PaaS/SaaS) ▪ https://cloud.oracle.com/mycloud/f?p=service:home:0 ▪ 30-day trial ▪ https://blogs.oracle.com/theaquarium/entry/oracle_public_cloud_is_here ▪ Azure (Public/VPC IaaS/PaaS/SaaS) ▪ http://www.windowsazure.com/en-us/ ▪ 90-day trial ▪ http://www.techrepublic.com/blog/datacenter/microsoft-azure-now-offers-iaas-to-compete-with-rackspace-amazon-in-public-cloud-space/5579 15 IaaS Vendor Solutions – Public/VPC/Private “Accessible” IaaS (3/4)

▪ Eucalyptus (Private IaaS) ▪ http://www.eucalyptus.com ▪ Open Source AWS compatible ▪ http://www.eucalyptus.com/learn/amazon-aws-compatibility ▪ 30-day trial ▪ FutureGrid (Public/Research IaaS/PaaS) ▪ https://portal.futuregrid.org/ ▪ Requires approval for qualified research project hosting ▪ Replaces Cloud from University. of Chicago (stopped on 6/8/12) ▪ OpenStack (Open-source Public/Private IaaS/PaaS) ▪ www..org ▪ IaaS Cloud computing project by Rackspace Cloud and NASA (Nebula platform) ▪ Open and scalable for building public and private clouds ▪ Controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface ▪ Modular architecture that encompasses three components: Compute (Nova), Object Storage (Swift), Image Service (Glance) ▪ APIs are compatible with Amazon EC2 and and thus client applications written for can be used with OpenStack with minimal porting effort

16 IaaS Vendor Solutions – Public/VPC/Private IaaS (4/4)

▪ ATT Cloud (VPC IaaS) ▪ http://www.corp.att.com/cloud-services/?WT.SRCH=1&GUID=18FF172A-EB16-4BAF-B395-C10D6A1C9589 ▪ Bluelock Cloud Services (VPC IaaS) ▪ http://www.bluelock.com/virtual-datacenters/ ▪ VMware-based ▪ BMC Cloud Computing Services (VPC IaaS) ▪ http://www.bmc.com/ ▪ CenturyLink/Savvis (VPC IaaS, Data PaaS) ▪ http://www.savvis.com/en-us/pages/home.aspx ▪ Public Cloud (VPC IaaS/PaaS/SaaS) ▪ http://content.dell.com/us/en/enterprise/cloud-computing-component.aspx?ref=clcsn ▪ GoGrid (VPC IaaS) ▪ www..com ▪ IBM SmartCloud (Public/VPC IaaS/PaaS/SaaS) ▪ http://www.ibm.com/cloud-computing/us/en/ ▪ RackSpace Cloud (VPC IaaS/PaaS) ▪ http://www.rackspace.com/cloud/?cm_mmc=PPCCloudBU-_-Google-_-broad-_-cloud+rackspace ▪ Verizon/Terremark Cloud Platform (VPC IaaS) ▪ http://www.verizon.com/cloud ▪ Virtacore (VPC IaaS) ▪ http://www.virtacore.com/publiccloud_overview/?gclid=COWR8aXrx7ACFUJo4AodwzMPMw ▪ Vmware-based Cloud ▪ VMWare vCloud Express (Provider IaaS/PaaS) ▪ http://www.vmware.com/solutions/cloud-computing/public-cloud/vcloud-express.html ▪ Test drive public Clouds via other providers like Bluelock

17 AWS Free Usage Tier

▪ Free Amazon EC2 Micro Instance for a year ▪ Includes free usage tier for: ▪ Amazon S3 ▪ Amazon Elastic Block Store ▪ Amazon Elastic Load Balancing ▪ AWS data transfer ▪ Free usage of AWS Management Console to build and manage applications on AWS ▪ AWS’s free usage tier can be used for anything you want to run in the cloud: ▪ Launch new applications ▪ Test existing applications in the cloud ▪ Gain hands-on experience with AWS ▪ A no additional charge, AWS Elastic Beanstalk allows you to quickly and easily deploy your .NET, PHP, and Java applications using many of the services offered in the free usage tier ▪ See Deploy a Sample in the Free Usage Tier in AWS Getting Started Guide: Free Usage Tier ▪ See Resource section for Getting Started Guides, development tools, and tutorials ▪ See Community Forums to get questions answered as/if needed ▪ Free indefinitely: ▪ SWF ▪ DynamoDB ▪ SimpleDB ▪ SQS ▪ SNS 18 AWS Free Usage Tier

▪ 750 hours of Amazon EC2 Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month* ▪ 750 hours of Amazon EC2 Microsoft Micro Instance usage (613 MB of memory and 32-bit and 64-bit platform support) – enough hours to run continuously each month* ▪ 750 hours of an Elastic Load Balancer plus 15 GB data processing* ▪ 30 GB of Amazon Elastic Block Storage, plus 2 million I/Os and 1 GB of snapshot storage* ▪ 5 GB of Amazon S3 standard storage, 20,000 Get Requests, and 2,000 Put Requests* ▪ 100 MB of storage, 5 units of write capacity, and 10 units of read capacity for Amazon DynamoDB.** ▪ 25 Amazon SimpleDB Machine Hours and 1 GB of Storage** ▪ 1,000 Amazon SWF workflow executions can be initiated for free. A total of 10,000 activity tasks, signals, timers and markers, and 30,000 workflow-days can also be used for free** ▪ 100,000 Requests of Amazon Simple Queue Service** ▪ 100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for Amazon Simple Notification Service** ▪ 10 Amazon Cloudwatch metrics, 10 alarms, and 1,000,000 API requests** ▪ 15 GB of bandwidth out aggregated across all AWS services* ▪ 750 hours of Amazon RDS for SQL Server Micro DB Instance usage (running SQL Server Express Edition in a single Availability Zone) – enough hours to run a DB Instance continuously each month ▪ 20 GB of storage ▪ 10 million I/Os ▪ 20 GB of backup storage for your automated database backups and any user-initiated DB Snapshots

* Available for 12 months following signup date (pay as-you-go above the various thresholds) ** Available indefinitely 19 Amazon Elastic Compute (EC2) Instances http://aws.amazon.com/console/

▪ A virtual server is referred to as an Amazon EC2 instance ▪ Amazon Elastic Compute Cloud (Amazon EC2) is a component of AWS and central to many cloud-based applications ▪ A micro Amazon EC2 instance can be launched in the free usage tier ▪ Micro instances provide a small amount of consistent CPU resources and allow o burst CPU capacity when additional cycles are available (613 MB of memory, up to 2 ECUs (for short periodic bursts), EBS storage only, 32-bit or 64-bit platform) ▪ A micro instance is well suited for lower throughput applications and web sites that consume significant compute cycles only occasionally ▪ To request an Amazon EC2 instance, you use the Request Instances wizard or the Quick Launch wizard to specify an , or AMI ▪ An AMI contains all the information that AWS needs to create the instance ▪ Amazon EC2 instances can also be launched automatically when you deploy a web application using AWS Elastic Beanstalk ▪ http://s3.amazonaws.com/AmazonEC2Tutorial/AmazonEC2Tutorial.html

20 Amazon Simple Storage Service (S3) http://aws.amazon.com/s3/

▪ Amazon S3 is storage for the Internet ▪ Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web ▪ It gives any developer access to the same highly scalable, reliable, secure, fast, inexpensive infrastructure that Amazon uses to run its own global network of web sites ▪ The service aims to maximize benefits of scale and to pass those benefits on to developers. ▪ S3 allows to write, read, and delete objects containing from 1 byte to 5 terabytes of data each. The number of objects you can store is unlimited ▪ Each object is stored in a region-specific bucket and retrieved via a unique, developer-assigned key ▪ Data stored in Amazon S3 is secure by default ▪ Only bucket and object owners have access to the Amazon S3 resources they create ▪ Amazon S3 supports multiple access control mechanisms, as well as for both secure transit and secure storage on disk ▪ Typical use cases ▪ Content storage and distribution ▪ Storage for data analysis ▪ Backup, archiving and disaster recovery ▪ Resources ▪ http://docs.amazonwebservices.com/AmazonS3/latest/dev/

21 Amazon Simple Notification Service (SNS) http://aws.amazon.com/sns/

▪ Amazon Simple Notification Service (Amazon SNS) is a web service that makes it easy to set up, operate, and send notifications from the cloud ▪ It provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers or other applications ▪ It is designed to make web-scale computing easier for developers ▪ Amazon SNS can be leveraged to build highly reliable, event-driven workflows and messaging applications without the need for complex and application management ▪ Amazon SNS provides a simple web services interface and browser-based Management Console that can be used to ▪ Create topics you want to notify applications (or people) about ▪ Subscribe clients to these topics, publish messages, ▪ Have these messages delivered over clients’ protocol of choice (i.e. HTTP, email, SMS, etc.) ▪ Amazon SNS delivers notifications to clients using a “push” mechanism that eliminates the need to periodically check or “poll” for new information and updates ▪ Typical use cases ▪ Monitoring applications ▪ Workflow systems ▪ Time-sensitive information updates ▪ Mobile applications ▪ Resources ▪ Amazon SNS can be easily accessed through the AWS Management Console, which gives users a point- and-click, web-based interface to setup and manage Amazon SNS ▪ For a full list of the available Amazon SNS APIs, please see the Amazon SNS API Reference Guide

22 Amazon CloudWatch http://aws.amazon.com/cloudwatch/

▪ Amazon CloudWatch provides monitoring for AWS cloud resources and the applications customers run on AWS ▪ Developers and system administrators can use it to collect and track metrics, gain insight, and react immediately to keep their applications and businesses running smoothly ▪ Amazon CloudWatch monitors AWS resources such as Amazon EC2 and Amazon RDS DB instances, and can also monitor custom metrics generated by a customer’s applications and services ▪ With Amazon CloudWatch, you gain system-wide visibility into resource utilization, application performance, and operational health ▪ Amazon CloudWatch provides a reliable, scalable, and flexible monitoring solution that you can start using within minutes ▪ No longer need to set up, manage, or scale your own monitoring systems and infrastructure ▪ Easily monitor as much or as little metric data as you need ▪ Programmatic ally retrieve monitoring data, view graphs, and set alarms to help you troubleshoot, spot trends, and take automated action based on the state of your cloud environment ▪ Typical use cases ▪ Monitor Amazon EC2 instances ▪ Monitor other AWS resources ▪ Monitor custom metrics ▪ Access CloudWatch metrics ▪ Resources ▪ http://aws.amazon.com/console ▪ http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/ (custom metrics development)

23 Elastic Load Balancing http://aws.amazon.com/elasticloadbalancing/

▪ Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon EC2 instances ▪ It enables you to achieve even greater fault tolerance in your applications, seamlessly providing the amount of load balancing capacity needed in response to incoming application traffic ▪ Elastic Load Balancing detects unhealthy instances within a pool and automatically reroutes traffic to healthy instances until the unhealthy instances have been restored ▪ Users can enable Elastic Load Balancing within a single Availability Zone or across multiple zones for even more consistent application performance ▪ Elastic Load Balancing can also be used in an Amazon (“VPC”) to distribute traffic between application tiers. ▪ Typical use cases ▪ Improve application fault tolerance ▪ Auto scaling with elastic load balancing ▪ Use elastic load balancing in VPC ▪ Resources ▪ http://aws.amazon.com/console ▪ http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide (Elastic Load Balancing APIs and command line operations)

24 Auto Scaling http://aws.amazon.com/autoscaling/

▪ Auto Scaling allows you to scale your Amazon EC2 capacity up or down automatically according to conditions you define ▪ With Auto Scaling, you can ensure that the number of Amazon EC2 instances you’re using increases seamlessly during demand spikes to maintain performance, and decreases automatically during demand lulls to minimize costs ▪ Auto Scaling is particularly well suited for applications that experience hourly, daily, or weekly variability in usage ▪ Auto Scaling is enabled by Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees ▪ Typical use cases ▪ Automatic EC2 fleet scaling ▪ Maintain EC2 fleet scaling at fixed size ▪ Auto scaling with elastic load balancing ▪ Resources ▪ Auto Scaling Command Line Tools and the Amazon CloudWatch Command Line Tools from Developer Tools ▪ http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/astools.html#Usin gTheCommandLineTools

25 AWS Developer Tools http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=88

▪ AWS Management Console ▪ Auto Scaling Command Line Tool ▪ Amazon EC2 API Tools ▪ AWS Elastic Beanstalk Command Line Tool ▪ Amazon SNS Command Line Interface Tool ▪ Amazon EC2 AMI Tools ▪ Elastic Load Balancing API Tools ▪ Amazon CloudWatch Command Line Tool

26 Amazon EC2 Programming

▪ Amazon EC2 SDK for java on Eclipse » http://aws.amazon.com/eclipse/ » A simple tutorial http://media.amazonwebservices.com/videos/eclipse-java-sdk- video.html ▪ RESTful APIs for invoking EC2 APIs from Java ▪ Interesting projects » Auto-scaling capability on top of basic launch instance interfaces using EC2 APIs • Any thoughts » Monitoring capability (simpler version of CloudWatch) • Integrate provisioning and monitoring into a single portal with historic views and trends » Solution level monitoring • Here you may have a set of VMs that together is a solution • Build a solution monitoring capability that isolated faulty components 27 Amazon Web Services

28 Amazon AWS API

▪ Amazon AWS API » http://docs.amazonwebservices.com/AWSJavaSDK/la test/javadoc/index.html

29 Working with On-Demand Dynamic Resources

▪ Example Scenario » You are the IT administrator for a large Enterprise. You have transformed your company's IT into a virtual infrastructure that you provision, manage and even provide the backup support. You are also making sure you minimize the cost of this virtual infrastructure that you are providing for your business. » You release resources when someone is not using it, but making sure that resources are available (mostly) when needed based on some policy, schedule or active monitoring. » Note that next time a user logs in, he/she is expecting to see the machine with data and software what was there before she logged off last time. ▪ How do you address this scenario? » You need to design an on-demand provision and release mechanism as the base service. » You shall need ability to snapshot a VM and restore it later on from this snapshot. » You need to persist data on a persistent storage. » You shall need the ability to detect when machines are idle. » You may need to provide some form of static IP to make sure login remains the same.

30 Storage Cloud from IaaS

▪ Storage provided as a service ▪ Storage Cloud examples » Amazon EBS (Elastic Block Storage) » Object based storage • Amazon S3 • Storage Cloud ▪ Usage scenarios » Snapshot VMs and stop VM and restart later on • Customize AMIs • High availability

31 Attaching an EBS Volume to an EC2 Instance

▪ Attaching a EBS volume to a VM » 1. Create a EBS volume » 2. Attach to EC2 instance » 3. Create a • if /dev/sdh is the name of the EBS volume, it will be present without a valid partition table , so format the EBS volume: mkfs -t ext3 /dev/sdh » 4. Create a directory /ebs and mount the EBS volume mount /dev/sdh /ebs » 5. Check fstab • vi /etc/fstab

32 Elasticity Basics

▪ We have illustrated on-demand resource provisioning in a IaaS Cloud ▪ Elasticity is the other key attribute – allows users to dynamically request additional resources when needed ▪ What do we need for elasticity? » Detect when current resources are not able to meet the demand » Request right amount of resources in time » Add these resources to existing deployment » Application should be able to use the additional capacity » State vs. stateless issues 33 Usage Scenario: Elasticity

34 Creating your Own Elastic Infrastructure

▪ Monitoring: to detect change for resource capacity » Define ALERTs so that you know when you are running out of capacity ▪ Request additional resources ▪ Ability to add these resources dynamically » Need some form of load balancing ▪ Modify configurations so that new resources are now consumed ▪ Design a simple controller code to enable most of these steps 35 Basic Elasticity Code

36 Generic Solutions for Building Elastic Infrastructure

▪ Several solutions for providing » Example: RightScale, Amazon AWS Autoscale and Elastic Load balancer ▪ Amazon provides Elastic Load Balancer and Autoscale for building generic elastic infrastructure » Elastic Load Balancer (ELB) • Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon EC2 instances. It enables you to achieve even greater fault tolerance in your applications, seamlessly providing the amount of load balancing capacity needed in response to incoming application traffic. Elastic Load Balancing detects unhealthy instances within a pool and automatically reroutes traffic to healthy instances until the unhealthy instances have been restored. Customers can enable Elastic Load Balancing within a single Availability Zone or across multiple zones for even more consistent application performance • http://aws.amazon.com/elasticloadbalancing/ » AutoScale • Auto Scaling allows you to scale your Amazon EC2 capacity up or down automatically according to conditions you define. With Auto Scaling, you can ensure that the number of Amazon EC2 instances you’re using increases seamlessly during demand spikes to maintain performance, and decreases automatically during demand lulls to minimize costs. Auto Scaling is particularly well suited for applications that experience hourly, daily, or weekly variability in usage. Auto Scaling is enabled by Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees • http://aws.amazon.com/autoscaling/ ▪ Let us use Amazon AWS autoscale and ELB to build Elastic Infrastructure 37 AWS Elastic Load Balancer (ELB)

▪ Features of Elastic Load Balancing » Using Elastic Load Balancing, you can distribute incoming traffic across your Amazon EC2 instances in a single Availability Zone or multiple Availability Zones. Elastic Load Balancing automatically scales its request handling capacity in response to incoming application traffic » When used in a Virtual Private Cloud (VPC), you can create and manage security groups associated with your Elastic Load Balancing to provide additional networking and security options » Elastic Load Balancing can detect the health of Amazon EC2 instances. When it detects unhealthy load-balanced Amazon EC2 instances, it no longer routes traffic to those Amazon EC2 instances and spreads the load across the remaining healthy Amazon EC2 instances » Elastic Load Balancing supports the ability to stick user sessions to specific EC2 instances. » Elastic Load Balancing supports SSL termination at the Load Balancer, including offloading SSL decryption from application instances, centralized management of SSL certificates, and encryption to backend instances with optional public key authentication. » Flexible cipher support allows you to control the ciphers and protocols that are accepted by Elastic Load Balancing in the SSL negotiation for client connections. » Elastic Load Balancing supports use of both the Internet Protocol version 4 and 6 (IPv4 and IPv6). » Elastic Load Balancing metrics such as request count and request latency are reported by Amazon CloudWatch. » http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/DeveloperGuide/Welcome. html

38 ELB Setup Using Command Line Tool

Reference: Programming Amazon EC2 – Jurg van Vliet

39 AutoScale (1/3)

▪ Command line tool for autoscale » http://aws.amazon.com/developertools/2535 ▪ Four key configuration concepts » Autoscale groups – holds instances » Launch configurations – that determines which instance is launched » Alarms – that determines when instance is launched » Policies – specify that instances will be launched or terminated

40 AutoScale (2/3) ▪ Autoscale Config

▪ Autoscaling Group

Reference: Programming Amazon EC2 – Jurg van Vliet 41 AutoScale (3/3) - Policies

Reference: Programming Amazon EC2 – Jurg van Vliet 42 Cloud Front, S3, HPC on AWS

▪ CloudFront/S3: » http://www.labnol.org/internet/setup-content-delivery- network-with-amazon-s3-cloudfront/5446/ » http://www.longtailvideo.com/support/jw-player/jw- player-for-flash-v5/49/using-cloudfront ▪ S3fs- » http://aws.amazon.com/customerapps/381446038437 9685 ▪ iRadeo: » http://aws.amazon.com/customerapps/278642934296 0939 ▪ HPC on AWS » http://www.slideshare.net/AmazonWebServices/hpc-

on-aws-6399706 43 Iterative Memory Copy for Live Migration

44 Iterative Copy Result for SpecWeb Workload

45 Amazon S3

▪ An object based storage » http://docs.amazonwebservices.com/AmazonS3/latest/gsg/ ▪ Lot of value-add storage services are being built on top of S3 and S3 interfaces » S3Fox (Firefox add-on with FTP like interface) » S3backup » Transmit (for Mac – to manage everything on S3) » (for Windows, Linux and Mac) ▪ S3 building blocks » Buckets » Objects » Folders » Keys ▪ Access control » User can specify detailed access control for each object ▪ S3 data consistency model » s3fs: http://code.google.com/p/s3fs/wiki/FuseOverAmazon » s3fs is a FUSE filesystem that allows you to mount an Amazon S3 bucket as a local filesystem. It stores files natively and transparently in S3 46 Google Storage for Developers

47 Google Storage Pricing

48 Google Storage Use Cases

49 Google Storage Links

▪ Overall GS page: https://developers.google.com/storage/ind ex ▪ Hello World tutorial: https://developers.google.com/storage/doc s/hellogooglestorage ▪ GS overview: https://developers.google.com/storage/doc s/overview

50 How to Use Google Storage https://developers.google.com/storage/docs/overview

51 Getting Started with Google Storage https://developers.google.com/storage/docs/overview

52 Google Storage: Operations on Buckets

▪ You can perform several operations on buckets. Some frequently-used bucket operations include: » Listing the buckets that you own. You can list your buckets by making a GET request without specifying a bucket or object scope. The request returns an XML document that contains a listing of all your buckets. A request to list buckets must be authenticated, and only the requester's buckets can be listed. That is, you cannot list another user's buckets. » Listing the objects in a bucket. You can list the objects that are in a bucket by making a GET request with bucket scope. The request returns an XML document that contains a listing of the objects in a bucket. To list a bucket's contents you must have at least READ permission on the bucket. You can scope the GET request so that only a subset of objects are returned in the list. To do this, you can use the prefix, marker, delimiter, and max-keys query string parameters. » Creating a bucket. You can create a bucket by making a PUT request with only bucket scope. You can also apply permissions to a bucket at the same time you create it. You can apply a predefined access control list (ACL) to the bucket by using the x-goog-acl header. You can apply individual ACL entries by using the acl query string parameter. All bucket creation requests must be authenticated, and the bucket creator is by default the bucket owner. Bucket ownership can never be changed. » Deleting a bucket. You can delete a bucket by making a DELETE request with only bucket scope. You can delete only empty buckets, and you can delete only buckets that you own. All bucket deletion requests must be authenticated. 53 Google Storage: Operations on Metadata and ACLs

Google Storage lets you list metadata on existing objects and buckets. You can also list and change ACLs on objects and buckets ▪ Retrieving object metadata » You can retrieve the metadata that's associated with an object by making a HEAD request with bucket and object scope. The request returns all of the metadata that's associated with an object. An object's ACLs must grant you at least READ permission to retrieve an object's metadata. ▪ Retrieving bucket and object ACLs » You can retrieve the ACLs for a bucket or object by making a GET request with bucket scope (for bucket ACLs) or bucket and object scope (for objects ACLs). To do this, you use the acl query string parameter. The request returns an XML document that contains a list of ACL entries. You must have FULL_CONTROL permission to retrieve ACLs on a bucket or object. ▪ Applying ACLs to an existing bucket or object » You can apply ACLs to an existing bucket or object by making a PUT request with bucket scope (for bucket ACLs) or bucket and object scope (for object ACLs). To do this you use the acl query string parameter and you specify the ACLs in an XML document in the request body. You must have FULL_CONTROL permission to apply new ACLs to a bucket or object.

54 Operations on Objects

▪ The Google Storage API provides several operations that let you upload, download, delete, and copy objects. Some frequently-used operations include: ▪ Uploading objects. » You can upload an object by making a PUT or POST request with bucket and object scope. You must have WRITE or FULL_CONTROL permission on the bucket into which you are uploading objects. You can use the x-goog-acl request header to specify a predefined ACL for the object when you upload it, or you can use the acl query string parameter to specify individual ACL entries for the object. Predefined ACLs are sometimes referred to as canned ACLs. ▪ Downloading objects. » You can download an object by making a GET request with bucket and object scope. You can download an object only if an object's ACLs grant you READ or FULL_CONTROL permission. ▪ Deleting objects. » You can delete objects by making a DELETE request with bucket and object scope. To delete an object you must have WRITE or FULL_CONTROL permission on the bucket in which the object resides. ▪ Copying objects. » You can copy an object from one bucket to another bucket by making a PUT request with the x-goog-copy-source request header. When you use this header the operation is effectively a GET request followed by a PUT request.

55 Typical API Requests

▪ For most operations you can use either of the following URLs to access an object: » commondatastorage.googleapis.com/bucket/object » bucket.commondatastorage.googleapis.com/object ▪ Both forms support secure sockets layer (SSL) encryption, which means you can use either HTTP or HTTPS. ▪ CNAME Redirects ▪ A CNAME redirect is a special DNS record that lets you use a URL from your own domain to access a resource (bucket and object) in Google Storage without revealing the Google Storage URI. To do this, you must use the following URI in the host name portion of your CNAME record: » c.commondatastorage.googleapis.com ▪ For example, let's assume your domain is example.com and you want to make travel maps available to your customers. You could create a bucket in Google Storage called travel-maps.example.com, and then create a CNAME record in DNS that redirects requests from travel-maps.example.com to the Google Storage URI. To do this, you publish the following CNAME record in DNS: » travel-maps.example.com CNAME c.commondatastorage.googleapis.com. ▪ By doing this, your customers can use the following URL to access a map of Paris: » http://travel-maps.example.com/paris.jpg

56 Tools: Google Storage Manager and GSUtil

▪ Google Storage manager is a web application that lets you perform simple storage management tasks on the Google Storage system. Some typical uses for Google Storage manager include: » Creating and deleting buckets. » Uploading, downloading, and deleting objects. » Making objects publicly readable. » http://code.google.com/apis/storage/docs/gsmanager. html ▪ GSUtil: » http://code.google.com/apis/storage/docs/gsutil.html

57 Sharing and Collaboration

Storing and Maintaining Private Data ▪ In this example, a company's chief financial officer wants to use Google Storage to back up confidential revenue forecasts and sales projection data. The data must be accessible only by the CFO. The company's IT department oversees and manages the company's Google Storage account. Their primary management responsibilities include creating and sharing buckets so that various departments throughout the company have access to Google Storage. ▪ Requirements » To meet the confidentiality and privacy needs of the CFO, the bucket and object permission must ensure that the IT staff can maintain the bucket in which the spreadsheets are stored, but also ensure that the IT staff cannot read (download) the data that is stored in the bucket. To accomplish this, you create a bucket named finance-cfo and you grant the following bucket and object permissions: ▪ Grant the IT department staff FULL_CONTROL permission on the finance-cfo bucket. Granting the IT staff FULL_CONTROL permission enables them to perform common bucket management tasks, such as deleting and overwriting objects in the bucket and changing the ACLs on the bucket. It also allows the IT staff to list the contents of the finance-cfo bucket. ▪ Solution: » Grant the CFO WRITE permission and READ permission on the finance-cfo bucket. Granting the CFO WRITE and READ permission on the finance-cfo bucket lets her upload data to the finance-cfo bucket and lets her list the objects that are in the finance-cfo bucket. » Also, granting WRITE and READ permission to the bucket is always required because you cannot grant WRITE permission without granting READ permission. ▪ When the CFO uploads objects to the finance-cfo bucket, she becomes the owner of the objects. As the owner, she is granted FULL_CONTROL permission on the objects, which lets her download the objects and change the permissions on the objects. Nobody except the CFO can read (download) the objects. Not even the IT staff who created the finance-cfobucket can read the objects she uploaded because they do not have READ permission on the objects. However, the IT staff can still list the contents of the finance-cfo bucket and they can delete and overwrite the files that are stored in the bucket. ▪ The IT department can use a simple Python script to create the finance-cfo bucket and apply the ACLs to the bucket.

58 Implementing Cookie-Based Authentication in Four Easy Steps

▪ Create a bucket for sharing your objects. If you already have a bucket that you want to use, that's fine, but keep in mind you're serving secure content from the bucket. As a best practice, make sure anonymous users don't have READ/WRITE or FULL_CONTROL permission on the bucket. ▪ Upload the object you want to share. When you upload an object you become the owner of the object, which means you are granted FULL_CONTROL permission and you can modify the object's ACLs. ▪ Modify ACLs on the object you uploaded. To allow a user to download an object, you must To use the authenticated browser download feature, grant the user READ or FULL_CONTROL construct a URL to your object using the following permission on the object. syntax: ▪ Provide users with a special URL to the object. https://sandbox.google.com/storage/bucket/object The URL consists of a secure sockets layer (SSL) URI that is scoped to the bucket and the Using the bucket and file name from the example, you object. It doesn't matter how you make this would send the following link to [email protected]: URL available to users. You can send it to them or you can post it on a web page. https://sandbox.google.com/storage/example- ▪ The ACL should show one scope (you) with maps/london.jpg FULL_CONTROL permission and one scope ([email protected]) with READ permission.

59 Google Storage Utils and Tooling

▪ Google Storage Manager ▪ GSUtil

60 Some File Management Tools Based on S3

▪ S3 Explorer: » http://csharpopensource.com/s3explorer.aspx ▪ S3Fox: » http://www.s3fox.net/ ▪ Jungle Disk ▪ Dragon Disk

61 Agenda

1 Session Overview

2 Infrastructure as a Service (Continued)

3 Platform as a Service (PaaS)

4 Summary and Conclusion

62 Platform as a Service (PaaS) – (1/2)

▪ Evolution of computing paradigms and related components: ▪ Distributed computing, utility computing, Cloud computing, , etc. ▪ e.g., Spring vs. VMWare vFabric, vs. VMWare Gemfire, WMWare Hyperic/TC Server/RabbitMQ ▪ Cloud platform services: ▪ Monitoring and management, application servers, messaging, data management, development and testing, integration, business intelligence, etc. ▪ PaaS vendor solutions: ▪ EMC, , HP, IBM, , Rackspace, Savvis, Verizon, force.com, VMware vFabric, OpenStack, Eucalyptus, Storage-as-a- Service platforms (Google Storage, ObjectStore S3, Amazon , etc.) ▪ PaaS mainstream offerings: ▪ Build/extend/migrate/manage Enterprise applications on top of Microsoft Azure, plan/develop/manage Enterprise applications using AWS transformation services ▪ PaaS project - Ongoing programming project (Part II – Builds on Part I) ▪ Leverage various PaaS vendor platform capabilities to configure and extent pre-packaged software platforms for the course project application 63 PaaS Cloud Service Model

▪ PaaS Cloud Providers Resources ▪ and/or typically including operating system, execution environment, database, and web server ▪ Resources Characteristics ▪ With some PaaS offers, the underlying compute and storage resources scale automatically to match application demand such that cloud user does not have to allocate resources manually ▪ Usage Mode ▪ Application developers develop and run their software solutions on a cloud platform without the cost and complexity of buying and managing the underlying hardware and software layers ▪ Examples ▪ Amazon Elastic Beanstalk ▪ ▪ EngineYard ▪ Google App Engine ▪ Microsoft Azure

64 SaaS Cloud Service Model

▪ SaaS Cloud Providers Resources ▪ Cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients ▪ Resources Characteristics ▪ What makes a cloud application different from other applications is its elasticity which can be achieved by cloning tasks onto multiple virtual machines at run-time to meet the changing work demand ▪ Load balancers distribute the work over the set of virtual machines and this process is inconspicuous to the cloud user who sees only a single access point ▪ To accommodate a large number of cloud users, cloud applications can be multitenant, that is, any machine serves more than one cloud user organization ▪ The pricing model for SaaS applications is typically a monthly or yearly flat fee per user ▪ Usage Mode ▪ The cloud users do not manage the cloud infrastructure and platform on which the application is running which eliminates the need to install and run the application on the cloud user's own computers simplifying maintenance and support ▪ It is common to refer to special types of cloud based application software with a similar naming convention: desktop as a service, business process as a service, Test Environment as a Service, communication as a service ▪ Examples ▪ Google Apps ▪ Quickbooks Online ▪ .com

65 Sample Cloud Implementation Model

Other Delivery models

Business Process as a Service (BPaaS)

• BPO/KPO on the Cloud

Development as a Service (DaaS)

66 Session 1 Sequel - Cloud Providers / Vendors

▪ Cloud Technology Providers » Hardware / software providers

▪ Cloud Service Providers » IaaS service providers

▪ Cloud Solution Vendors » PaaS/SaaS/BPaaS solution vendors

67 PaaS Vendor Solutions – Public/Private “Accessible” I/PaaS (1/6)

▪ Amazon Elastic Beanstalk (Public/VPC IaaS/PaaS/SaaS) ▪ http://aws.amazon.com/ ▪ One year free usage tier ▪ Google AppEngine (PaaS/SaaS) ▪ https://developers.google.com/appengine/docs/whatisgoogleappengine ▪ https://developers.google.com/appengine/ ▪ Google Storage (Data PaaS)

▪ http://www.google.com/enterprise/cloud/storage/ ▪ GreenQloud ComputeQloud (VPC IaaS/PaaS) ▪ http://greenqloud.com/ ▪ 7-day trial ▪ Cloud computing services company operating out of Iceland, offering truly green cloud computing services powered by emission-free energy sources ▪ Services include carbon neutral cloud server hosting, online storage, backup and cloud based computing and high-performance computing services to companies and consumers ▪ HP Cloud (Public/VPC IaaS/PaaS) ▪ https://www.hpcloud.com/ ▪ Public Beta

68 PaaS Vendor Solutions – Public/Private “Accessible” I/PaaS (2/6)

▪ Joyent Private IaaS/PaaS) ▪ http://www.joyent.com/ ▪ SmartOS ▪ Academic program and trial ▪ Microsoft Windows Azure (Public/VPC IaaS/PaaS/SaaS) ▪ http://www.windowsazure.com/en-us/ ▪ 90-day trial ▪ http://www.techrepublic.com/blog/datacenter/microsoft-azure-now-offers-iaas-to-compete-with-rackspace-amazon-in-public-cloud- space/5579 ▪ Oracle Public Cloud (Public/VPC IaaS/PaaS/SaaS) ▪ https://cloud.oracle.com/mycloud/f?p=service:home:0 ▪ 30-day trial ▪ https://blogs.oracle.com/theaquarium/entry/oracle_public_cloud_is_here ▪ SalesForce (PaaS/SaaS) ▪ www.force.com ▪ 30-day free trail

69 PaaS Vendor Solutions – Public/Private “Accessible” I/PaaS (3/6)

▪ FutureGrid (Public/Research IaaS/PaaS) ▪ https://portal.futuregrid.org/ ▪ Requires approval for qualified research project hosting ▪ Replaces Nimbus Cloud from University. of Chicago (stopped on 6/8/12) ▪ OpenStack (Open-source Private IaaS/PaaS) ▪ www.openstack.org ▪ IaaS Cloud computing project by Rackspace Cloud and NASA (Nebula platform) ▪ Open and scalable operating system for building public and private clouds ▪ Controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface ▪ Modular architecture that encompasses three components: Compute (Nova), Object Storage (Swift), Image Service (Glance) ▪ APIs are compatible with Amazon EC2 and Amazon S3 and thus client applications written for Amazon Web Services can be used with OpenStack with minimal porting effort 70 PaaS Vendor Solutions – Public/Private “Accessible” I/PaaS (4/6)

▪ Citrix CloudStack (Open-source Management-focused PaaS) ▪ http://cloudstack.org/ ▪ Open source software written in java that is designed to deploy and manage large networks of virtual machines, as a highly available, scalable cloud computing platform ▪ Currently supports the most popular VMware, Oracle VM, KVM, XenServer and Cloud Platform ▪ Offers three ways to manage cloud computing environments: a easy-to-use web interface, command line and a full-featured RESTful API ▪ Citrix acquired cloud.com in 2011 ▪ OpenNebula (Open-source Management-focused PaaS) ▪ http://opennebula.org/about:about ▪ Open-source project developing solution for building and managing virtualized enterprise data centers and cloud infrastructures ▪ Provides a comprehensive management layer to automate and orchestrate the operation of virtualized data centers by leveraging and integrating existing deployed solutions for networking, storage, virtualization, monitoring or user management ▪ RightScale (Management-focused PaaS) ▪ www..com ▪ Free trial ▪ http://www.rightscale.com/products/mycloud-cloudstack.php ▪ https://www.rightscale.com/s/cloud-computing- management.php?_kk=rightscale&_kt=a7d1a613-260c-4dc3-beaf- 4b7b1fa88cba&gclid=CN7wrq7vx7ACFYeo4AodOiPYXQ 71 PaaS Vendor Solutions – Public/Private I/PaaS (5/6)

▪ CenturyLink/Savvis (VPC IaaS, Data PaaS) ▪ http://www.savvis.com/en-us/pages/home.aspx ▪ Dell Public Cloud (VPC IaaS/PaaS/SaaS) ▪ http://content.dell.com/us/en/enterprise/cloud-computing-component.aspx?ref=clcsn ▪ IBM SmartCloud (Public/VPC IaaS/PaaS/SaaS) ▪ http://www.ibm.com/cloud-computing/us/en/ ▪ (Management-focused PaaS) ▪ http://nimbula.com/ ▪ Cloud director software that integrate Linux, KVM and ESXi and achieves automated deployment and configuration and end-user self-service ▪ RackSpace Cloud (VPC IaaS/PaaS) ▪ http://www.rackspace.com/cloud/?cm_mmc=PPCCloudBU-_-Google-_-broad-_- cloud+rackspace ▪ VMWare vCloud Express (Provider IaaS/PaaS) ▪ http://www.vmware.com/solutions/cloud-computing/

72 PaaS Vendor Solutions - Public/Private PaaS (6/6)

▪ CloudBees.com (Java PaaS) ▪ http://www.cloudbees.com/?utm_source=google&utm_medium=cpc&utm_term=cloudbees &utm_content=Try+CloudBees+For+Free&utm_campaign=CloudBees+- +Branding&gclid=CIOYlZf3x7ACFUZN4Aod2AG6YA ▪ Java apps in the Cloud ▪ EngineYard Cloud Platform ▪ http://www.engineyard.com/ ▪ and PhP focus ▪ Level Cloud (Data PaaS)

▪ http://www.levelcloud.net/ ▪ SalesForce Heroku Scalable Cloud Application Platform ▪ http://www.heroku.com/ ▪ Ruby on Rails focus

73 Session 1 Sequel - Vendors Offerings – AWS Platform (1/2)

74 Using AWS’ Elastic Beanstalk PaaS Service

▪ Java, PHP, or .NET applications can be deployed and managed quickly using use AWS Elastic Beanstalk without manually creating the necessary AWS infrastructure ▪ Elastic Beanstalk is built using familiar software stacks such as the Apache HTTP Server for PHP, IIS 7.5 for .NET, and for Java ▪ There is no additional charge for Elastic Beanstalk - you pay only for the AWS resources needed to store and run your applications ▪ AWS Elastic Beanstalk reduces management complexity without restricting choice or control ▪ Simply upload the application and let AWS Elastic Beanstalk automatically handle the details of capacity provisioning, load balancing, scaling, and application health monitoring ▪ AWS Elastic Beanstalk uses highly reliable and scalable services that are available in the free usage tier such as: ▪ Amazon Elastic Compute Cloud (Amazon EC2) ▪ Amazon Simple Storage Service (Amazon S3) ▪ Amazon Simple Notification Service (Amazon SNS) ▪ Amazon CloudWatch ▪ Elastic Load Balancing ▪ Auto Scaling

75 Session 1 Sequel - Vendors Offerings – Windows Azure

Elastic, Ubiquitous, Pay-per-use, Highly Available platform hosted and managed by Microsoft that optimally provides these typical enterprise IT resources on-demand:

Compute, Storage, Integration, Database, Queues, Reporting, Access control, Replication, Content- delivery, Caching..

while allowing you to connect to critical on-premise IT resources.

Compute Storage Management CDN AppFabric Marketplace Management

On- Compute Storage Management Integration Security Database Premise

76 VMware Cloud Application Platform - vFabric

▪ vFabric enables Java developers to leverage the Spring framework for cloud application development ▪ Spring is a comprehensive family of developer frameworks and tools that enable developers build innovative new applications in a familiar and productive way while enabling the choice of where to run those applications, whether inside the datacenter or on private, hybrid, or public clouds

77 Aneka Cloud Application Platform (1/8) (www.manjrasoft.com)

multiple applications multiple applications Thread Task ... MapReduce Aneka Aneka Container Container Core Services Core Services

TCP/IP Aneka

Multi-core Cluster Grid Cloud multiple networks 2100 2100 2100 2100

2100 2100 2100 2100 Internet Architecture Aneka Architecture

78 Aneka Cloud Application Platform (2/8)

◼ Lightweight Container hosting multiple services. ◼ Unlike competitors, all programming models available from within same container ◼ SDK containing APIs for multiple programming models and tools ◼ Runtime Environment for US managing application Patent execution on Clouds (pending) ◼ Suitable for ◼ Development of Enterprise Cloud Applications ◼ Cloud enabling legacy applications ◼ Portability for Customer Apps: ◼ Enterprise ↔ Public Clouds ◼ .NET/Win ↔ Mono/Linux

79 Aneka Cloud Application Platform (3/8)

Applications & Services Application Development

Bag of Tasks Dist. Threads MapReduce … Cloud Middleware

SLA & QoS User Application Platform Management Management Dynamic Aneka Provisioning

Scheduling & Monitoring Billing Execution

Infrastructure Clusters Public Clouds Datacenters Desktop PCs

80 Aneka Cloud Application Platform (4/8) Support for InterCloud Federation of Resources

◼ XenServer Pool

◼ Aneka + Xen Server private Cloud Executors ◼ VMWare Pool Executor Executor ◼ Aneka + VMWare private Scheduler Cloud private enterprise network ◼ Amazon EC2 Pool internet publicly available resources Private Cloud (physical and virtual) ◼ Aneka + public EC2 Scheduler ◼ Windows Azure

◼ Aneka + public Azure ◼ Federation VPN Executors/Schedulers ◼ Span across Clouds Client Libraries (virtual resources) Public Cloud

81 Aneka Cloud Application Platform (5/8) Competition and Advantage

1. Direct competitors 2. Cloud providers: 3. Alternative models (sort of, enterprise) ◼ Amazon (EC2) ◼ Virtualization ◼ (Web apps) ◼ Google (AppEngine) ◼ HPC / ◼ Digipede ◼ Microsoft (Azure) ◼ Datasynapse ◼ Citrix (XenServer) Aneka complements virtualisation and is ◼ Elastra (Web apps) ◼ GoGrid /RackSpace more cost effective ◼ Gigaspaces(app server) Aneka complements ◼ Appistry (web app) Cloud providers ◼ UD

Aneka has significant technology-based advantages  Multiple programming models including Threads, Tasks, and MapReduce  RAD environment for parameter studies using legacy applications  Lightweight and service-oriented system  SLA based resource allocation to meet QoS requirements of users established through a dynamic negotiation.  Overhead and performance better than other systems  Seamless federation of Aneka Clouds with others (Citrix, Amazon EC2)...

82 Aneka Cloud Application Platform (6/8) Sample HealthCare SaaS Cloud for ECG Sensor Heartbeat Data Analysis

Large number of users

A User ECG Sensor

Embedded Bluetooth Enabled Data Processor & Requests User Communication Module

ECG Sensor Module ECG Data 1 Analysis as

SaaS SaaS User Requests 2

Dynamic Scalable Runtime

User QoS based Scaling of

4 Compute Resources

PaaS Bluetooth Bluetooth connectivity 3

Wireless/ Mobile 3G Network IaaS 5 6

83 Aneka Cloud Application Platform (7/8) Sample Scalable Architecture for Titan-Strike Online Gaming Portal

The local scheduler TitanStrike Private Aneka interacts with Aneka Cloud and distributes the load Aneka-based in the cloud. GameController Manjrasoft LAN network Case 2: Aneka Enterprise Cloud = Scalability (Running Game plugins on Demand) Gamers profiles Players statistics logs Distributed logs Team playing log parsing Multiple games

Titan Strike On Line Gaming Portal

Case 1: Single Server = Huge Overload logs Centralized log parsing

Single scheduler controlling the execution of all the logs Single matches. GameController Game Servers

84 Aneka Cloud Application Platform (8/8) Sample Locomotive Design Cad Rendering Application

Aneka Maya Renderer GoFront Private Aneka Cloud

Use private Aneka Cloud LAN network (Running Maya Batch Mode on demand)

Case 2: Aneka Enterprise Cloud Manjrasoft Time (in hrs)

Case 1: Single Server Raw Locomotive Design Files (Using AutoDesk Maya) Using Maya Graphical Mode Single Aneka Directly Server Cloud 4 cores Aneka utilizes idle desktops server (30) to decrease task time from days to hours

85 Agenda

1 Session Overview

2 Infrastructure as a Service (Continued)

3 Platform as a Service (PaaS)

4 Summary and Conclusion

86 Assignments & Readings

▪ Readings ▪ Slides and Handouts posted on the course web site ▪ Assignment for sessions 3 ▪ Assignment #3 (Managing IoT Devices in the Cloud) ▪ Ongoing course project and related Cloud framework setup ▪ Get account on few popular clouds ▪ Microsoft Azure, Amazon AWS (EC2, S3), Google App Engine, Google Storage, IBM Cloud ▪ Course Project ▪ You need to have a team and a project topic by the 5th day of class (project ideas will be provided) ▪ Ongoing class presentations » TBD in session 4

87 Ongoing Course Project

▪ Ongoing semester-long programming project: ▪ Cloud Migration: Study the Oracle ADF Essential application provided and explore how to migrate this application to the Cloud (to be discussed in class) ▪ Active/Intelligent Autonomous Networked Cloud Application: Investigate the design and implementation of an intelligent autonomous networked Cloud application and related underlying framework (hint: refer to the suggested product stack provided in the next slide as applicable and the information provided in class) ▪ Initial focus: provide a high-level description of your application and framework, corresponding design/implementation considerations, and planned implementation timeline ▪ Investigate private and public Cloud support from various providers of Cloud platforms infrastructure vendors (e.g., Amazon EC2/Amazon AWS, IBM Cloud, Windows Azure, , etc.) ▪ Pick at least three Cloud infrastructure vendors and explain your choice ▪ Configure / install your platform to meet the initial requirements of your project ▪ Amazon EC2 Hints: ▪ http://aws.amazon.com ▪ http://s3.amazonaws.com/AmazonEC2Tutorial/AmazonEC2Tutorial.html ▪ Configure and program services as needed to support your initial Cloud project requirements

88 Cloud Marketplace Project – Sample Implementation Stack

89 Related Topics: Cloud Networking Services and Service Platform Design

▪ Virtual Private Cloud Networking ▪ High-Performance, Scalable Load Balancing ▪ Cloud API Gateways ▪ Global Content Delivery Networks ▪ Cloud-Managed High-Performance Network Address Translation ▪ Network Edge Connectivity ▪ Reliable, Resilient, Low-Latency DNS Serving on the Cloud ▪ Network Performance and Availability Optimization on the Cloud ▪ Big Cloud Service Platforms Convergence and Service Offerings (Amazon AWS, Google GCP, Microsoft Azure, IBM Cloud, Force.com Cloud, Clouds at SGI, NASA, and CERN)

90 Next Session: Cloud Platform Servics for Big Data Analytics

▪ Data Science and Big Data Characteristics ▪ Data Collection, Mining, and Analytics on Clouds ▪ Scalable Parallel Computing Over Large Clusters ▪ Data Analytics Frameworks (e.g., Hadoop programming with HDFS/MapReduce and YARN; Spark Core and Resilient Distributed Data Sets; Amazon Elastic MapReduce; Amazon Athena Analytics, Google Cloud Datalab) ▪ Example: Big Data Analytics for Healthcare Applications ▪ Example: Big Data Analytics for Social Media Applications ▪ Scientific Streams Examples ▪ Basic Design Challenges of Streaming Systems ▪ Data Stream Analytics Frameworks (e.g., Spark SQL and Streaming Programming; Amazon Kinesis and Firehose; Kinesis/Spark and the Array of Things; Azure Data Streaming; Kafka, Storm and Heron Streams; Google Dataflow and Apache Beam; Apache Flink) ▪ Example: Streaming Big Data Analytics for Social-Media Applications

91 Any Questions?

92