PRESIDENCY UNIVERISTY, BENGALURU School of Engineering Computer Science and Engineering Cloud Computing (CSE306) VII Semester 2018-19 Syllabus 1. Introduction 2. Virtualization 3. Cloud Computing Architecture 4. Aneka – Cloud Application Platform 5. High Throughput and Data Intensive Computing 6. Security and Standards in Cloud Computing 7. Cloud Platforms in Industry Syllabus Text Books: 1. “John Rittinghouse and James Ransome, “Cloud Computing, Implementation, Management and Security”, CRC Press. 2. “Mastering Cloud Computing”, Rajkumar Buyya, Christian Vecchiola, and Thamarai Selvi. McGraw Hill Education. Reference books: 1. David E.Y. Sarna, “Implementing and Developing Cloud Applications”, CRC Press 2. Anthony T Velte, Toby J Velte, Robert Elsenpeter, “Cloud Computing: A Practical Approach”, Tata McGraw-Hill. Self Learning Topics • Sl. No. Pedagogy Topics • 1. Self-learning topics Aneka Cloud Platform, EC2 • 2. Participative Learning Infrastructure Security Challenges • 3. Experiential Learning Installation of VM Workstation • 4. Technology Enabled Learning NPTEL – Cloud Computing • Coursera – Cloud Computing 1. INTRODUCTION • Cloud Computing at a Glance o Vision o Definitions o Cloud Computing Reference Model o Characteristics and Benefits o Challenges • Historical Developments o Distributed Systems o Web 2.0 o Service and Utility Oriented Computing • Building Cloud Computing Environments o Application Development o Infrastructure and System Development • Computing Platforms and Technologies Social Media Applications - used for Communication Collaboration Applications Storage Applications Educational / Entertainment Application Laptop Internet Browser CLOUD I N Internet T E R N E T Devices Devices Browser I N T E R N E T Smart Phone Browser I N T E R N E T Browser Personal Computer Operating Systems for PCs and Laptops 1. Windows 2. Ubuntu 3. Linux 4. Mac, etc.. Tablet Operating Systems for Mobile Phones 1. IOS - for iPhones developed by Apple 2. Android (Marshmallow (6.0), Nougat(7.0), Oreo(8.0) developed by Google Browser Types: 1. Google Chrome 2. Mozilla Firefox 3. Internet Explorer 4. Safari etc. Computing in Computer Science • Computing includes Designing and building hardware and software systems for a wide range of purposes Processing, structuring, and managing various kinds of information Doing scientific studies using computers Creating and using communications and entertainment media 8 Process virtual machines – application are run by specific program(virtual machine) than by OS. This technique allows isolating the execution of applications and providing a finer control on the resources accessed. 9 Evolution of Cloud Computing Computing as a service 12 Traditional utilities Water Electricity Natural gas Telephone network Computing is being transformed to a model consisting of services that are commoditized and delivered in a manner similar to traditional utilities Computing as a Utility Users access services based on their requirements without regard to where the services are hosted or how they are delivered 13 Vision of Cloud Computing I need to grow my infrastructure, but I do not know for how long… I cannot invest in infrastructure, I just started my business…. I have a lot of infrastructure that I want to rent … I have a surplus of infrastructure that I want to make use of I have infrastructure and middleware and I can host applications I want to focus on application logic and not maintenance and scalability issues I have infrastructure and provide application services I want to access and edit my documents and photos from everywhere.. One view of Cloud Computing “I don’t care where my servers are, who manages them, where my documents are stored, or where my applications are hosted. I just want them always available and access them from any device connected through Internet. And I am willing to pay for this service for as a long as I need it” Definition of the term “Cloud Computing” Definition 1 - Rajkumar Buyya “A Cloud is a type of parallel and distributed system consisting of a collection of inter-connected and virtualized computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements SLA established through negotiation between the service provider and consumers” . Definition 2 - National Institute of Standards and Technology (NIST), USA “A cloud is a computing infrastructure and software model for enabling ubiquitous access to shared pools of configurable resources (e.g., computer networks, servers, storage, applications and services), which can be rapidly provisioned with minimal management effort, often over the Internet.” Definition of the term “Cloud Computing” Definition 3 “Cloud computing refers to both the applications delivered as services over the Internet and the hardware and system software in the data centers that provide those services. “ Cloud computing allows renting infrastructure, runtime environments (platform), and services (applications) on a payper-use basis. Concept of a “Service” in Cloud Computing A Service is any commodity that a provider organization provides on a rental basis, which the consumer utilizes. Some examples from day-to-day experiences: Hotel -> Food Lodge -> Room ATM? College? Hospital/ Doctor? Commodity=something sold for money Concept of a “Service” in Cloud Computing In the Cloud scenario, the provider Organization (Microsoft, Oracle, Amazon, Google) offers the following commodities as services: 1. Infrastructure components (Hardware) -> Storage, Servers, Networking 2. Platform to run applications -> Runtimes (JRE, CLR), Operating Systems (Windows, Linux), Databases (MySQL, Oracle) 3. Applications -> Gmail, Facebook, CRM, etc. All these services are offered through Web APIs (Application Programming Interfaces) Ex: Office 365 suite of applications, Google Drive suite of applications Types of Services available in cloud computing • IaaS --- Infrastructure as a Service --- server, memory, CPU processor, storage space, network components, disk space, hard disk • PaaS---Platform as a Service --- Provides run time environment for developers – visual studio, IDE, WORD , OPERATING SYSTEM, VMWARE • SaaS – Software as a Service- ALL TYPE OF APPLICATION – FACEBOOK, GMAIL. Google drive, google document,etc • Stack of cloud computing --- arrangement of services • SaaS • PaaS • IaaS IaaS- Adv • Investment cost is reduced • Minimal management effort IaaS- Disadv Network delay Network problem PaaS--- Adv • Helps to create application and deploy it on cloud. • Install it on your machine • PaaS – Disadv • Software license issue • Migration issue SaaS- Adv • All types of applications are readily available • You don’t have to install it. • Just download and work with it SaaS---- Disadv Due to network issues, applications can not be downloaded Cloud Computing SERVICE Reference Model Web 3.0 Interfaces Software as a Service End user applications Scientific applications Office automation, Photo editing, CRM, and Social Networking Examples: Google Documents, Facebook, Flickr, Salesforce Platform as a Service Runtime Environment for Applications Development and Data Processing Platforms Examples: Windows Azure, Hadoop, Google AppEngine, Aneka Infrastructure as a Service Virtualized Servers Storage and Networking Examples: Amazon EC2, S3, Rightscale, vCloud S3: Amazon Simple Storage Service Vendors of SPI Model Benefits of using the SPI Model 1. Large enterprises can offload some of their activities to the cloud-based Systems. 2. Start-ups can deliver products without up-front costs. Ex: Students can develop Apps and deploy in Android without owning any server/ infrastructure. 3. System developed can focus on business logic instead of infrastructure complexity or scalability. 4. End users can access their documents from everywhere and using any device. Types of Clouds (Cloud Deployment Models) 1. Public Cloud - A model where services are offered over the Internet that is open for public use, on a pay-perusage basis. 2. Private Cloud - A model where the services are offered to a single organization. 3. Hybrid Cloud - A model that is a mix of both the private and public clouds. 4. Community Cloud - Is an infrastructure shared by several organizations supporting a specific community. Characteristics of the Cloud for CSP and CSC 1. No up-front commitments- COST & MANAGEMENT 2. On-demand access 3. Nice pricing 4. Simplified application acceleration and scalability 5. Efficient resource allocation 6. Energy efficiency Customer Service point <CSP> Common Service Center<CSC> Cloud Computing Challenges: Dealing with too many issues Scalability Reliability Billing Utility & Risk Management Programming Env. & Application Dev. Software Eng. Complexity Uhm, I am not quite clear…Yet another complex IT paradigm? Challenges in Cloud Computing 1. Security in terms of confidentiality and protection of data 2. Dynamic provisioning of Cloud resources - efficiency, technical challenges 3. Continuous monitoring and supervision of lesser known providers 4. Migration issues from on-premise to Cloud 5. The problem of metering Five core technologies that influence Cloud Computing 1. Distributed Systems 2. Virtualization 3. Web 2.0 4. Service Orientation 5. Utility Computing Distributed Systems Definition: A distributed system is a collection of independent computers that appears to its users as a single coherent system. 1. Mainframes - Used for bulk data processing tasks involving online transactions, ERP, Supercomputers 2. Clusters - Cheap machines connected by highbandwidth network 3. Grid computing - Appeared in 90s, Users can consume resources as utilities such as power, gas and water. Dynamic aggregation of clusters from geographical areas 4. Cloud computing - Large datacenters hosted by single organization, have infinite virtual capacity and tolerant to failures, pay-per-use basis Grid Computing It is for Application Oriented Cloud Computing It is for Service Oriented The resources are distributed among The computing resources are managed different computing units for centrally and are placed over multiple processing a simple task. servers in clusters. Grids are generally owned and The cloud servers are owned by managed by an organization within its Infrastructure providers and are premises placed in physically disparate locations It operates within a corporate network It can also be accessed through the Internet It provides a shared pool of computing It involves dealing with a common resources on an as-needed basis. problem using varying number of computing resources. Web 2.0 The web is primary interface through which CC delivers its services. Web 2.0 brings interactivity and flexibility into web pages. XML and AJAX Ex: Google documents, Google Maps, Flickr, Facebook, Twitter, YouTube, Wikipedia, etc.. 35 Web 2.0 (contd..) Service Oriented Computing A Web service is any piece of software that makes itself available over the internet and uses a standardized XML messaging system. A client invokes a Web service by sending XML request, and receives the XML response. SOC introduces two concepts: 1. Quality of Service 2. Software as a Service Building Cloud-Computing Environment Application Development Applications that leverage CC benefit from its capability of dynamically scaling on demand. Web applications => Web 2.0 technologies, the web has become platform for developing rich and complex applications – ERP. Resource-intensive application – considerable amount of resources is required to complete execution on a reasonable time frame -scientific applications. 38 • Infrastructure and System development Distributing computing, virtualization, service orientation and Web 2.0 form the core technologies enabling the provisioning of cloud services from anywhere in the globe. 39 Computing Platforms/ Cloud Platforms and Technologies • Amazon Web Services (AWS) Offers comprehensive cloud IaaS services. AWS is known for its compute and storage on demand services, namely EC2 and S3. EC2 instances are deployed either by using AWS console or WS API S3 is organized into buckets – container of objects stored in binary form range of services: networking support, caching systems, DNS, database support and so on. 40 Google App Engine Providing PaaS Service Scalable runtime environment for executing scalable and high performance web applications These services include: in-memory caching, scalable data storage, job queues, messaging Developers can build and test applications on their own machine by using AppEngine SDK Languages supported are – Python, Java and Go Microsoft Azure Is a cloud operating system and a platform for developing applications Runtime environment for web applications and distributed applications Application are organized as roles: Web role, worker role, Virtual machine role Also supports storage, networking, caching and content delivery and others 41