- Programming, operating systems, networks.
- Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Kai Hwang, Jack Dongarra, Geoffrey C. Fox, Morgan Kaufmann, 2013.
Recall (knowledge), interpret (comprehension), apply, analyse, create (synthesis), evaluate.
Understand the main concepts, key technologies, benefits, and characteristics of cloud computing.
Identify the architecture associated with cloud computing, including SaaS, PaaS, IaaS, public cloud, private cloud, and hybrid cloud.
Write a research paper and present the results.
Chapter 01 __ Introduction
Summary. The first chapter provides an introduction to the term ‘cloud’. What is the cloud? What is cloud Computing? Where is the cloud? Who is providing clouds? These are all questions you have probably heard and asked yourself. The term ‘cloud’ and ‘cloud computing’ is being used everywhere and often with a fuzzy meaning. Companies are quickly adopting cloud computing since it enables to outsource IT and allows to use the latest technologies without large invertment on infrastructure, software and IT staff. Examples of cloud services include Microsoft OfficeLive, DropBox, AppEngine, SalesForce VMforce, and Amazon EC2.
Key points covered. What are cloud services? What is cloud computing? Business shift. Job market. Examples of cloud services.
Chapter 02 __ Concepts
Summary. The second chapter covers important concepts which are fundamental to understand why cloud computing became so quickly widespread. One of the major benefits of the cloud comes for the economic model it delivers. Cloud service providers adopt a “pay as you go” or OpEx model which allows customers to pay only for what they use (similar to energy or waterwi). Customers do not need to own expensive assets (e.g., data centers, servers, or software), the CapEx. Naturally, the benefits of the cloud go beyond the economic model provided and also include additional positive aspects such as on-demand self-service, broad network access, and elasticity. Different types of software are made available to customers. While, nowadays, many classifications exist, one of the first taxonomies developed included only three main classes: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). Each type identifies which software is made available as a utility. For example, storage, hardware, servers, compilers and development environments, or office applications. Finally, cloud platform can be build for private use, these are called private clouds, or for public usage, these are called public clouds. A use of both types is called a hybrid cloud.
Key points covered. Computing shift. Economical driver. Definition. Cloud characteristics. Deployment models. Delivery models. Examples. Inherent problems.
- Lecture: Cloud Computing Concepts.
- Chapter 4: Cloud Computing Concepts (pp. 111-140). Mastering Cloud Computing: Foundations and Applications Programming, by Rajkumar Buyya, Christian Vecchiola, S.Thamarai Selvi, 2013.
- Chapter 2: Electronic Services (pp. XX-XX). Fundamentals of Service Systems, Cardoso et al., Springer, 2015.
- Lab 1: Amazon AWS: EC2.
- Lab 2: Project Description.
- Lab 2: Project Report Template.
Chapter 03 __ Web APIs
Summary. The dissemination and easy of use of web services and Application Programming Interfaces (API) has enables the edification of an API Economy. Companies can seamlessly work together by integrating their information systems using programming interfaces and provide they as web services. The technologies that made this possible live under the umbrella of distributed systems and correspond to two schools of thought: WS-* Services/SOAP and REST. WS-* Services and SOAP are based on traditional standards (XML, SOAP, HTTP, etc.) and REST where minimal middleware is necessary (only HTTP support is required). These two approaches provide the basic building blocks for cloud computing and are used by most platforms available in the market.
Key points covered. The API Economy. Distributed Systems. WS-* Services. What is REST? REST and SOAP. REST principles. REST design guidelines.
- Lecture: Web API.
- Lab 1: Boto and Amazon AWS.
- Chapter 1: General Info (pp. 1-10). Python and AWS Cookbook by Mitch Garnaat, O’Reilly Media, 2011.
- Chapter 2: EC2 Recipes (pp. 11-45). Python and AWS Cookbook by Mitch Garnaat, O’Reilly Media, 2011.
- Chapter 3: S3 Recipes (pp. 47-63). Python and AWS Cookbook by Mitch Garnaat, O’Reilly Media, 2011.
- Lab 2: REST and Django.
- Chapter 4: Building a REST API (pp. 61-91). Lightweight Django by Julia Elman, Mark Lavin, O’Reilly Media, 2014.
- Chapter 4: The Resource-Oriented Architecture (pp. 79-105). RESTful Web Services by Leonard Richardson and Sam Ruby, O’Reilly Media, 2007.
Chapter 04 __ Cloud Platforms
Summary. Nowadays, there are three public cloud providers in field of IaaS: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, and IBM Bluemix. Other players are emerging. Examples include Open Telekom Cloud from Deutsche Telekom, Telefonica’s Open Cloud, Alibaba, BT, NTT, Orange, Rackspace, Salesforce, etc. Amazon AWS is the leader by innovation and market share. Nonetheless, analysts believe that Microsoft Azure will soon overtake AWS. The AWS platform was launched in 2006. In 2016, it is composed of 35 Availability Zones (AZ) within 13 geographic Regions (e.g., Ireland, Frankfurt, Sao Paulo, Singapore, Tokyo, Sydney, Northern Virginia, Oregon). It has a rich spectrum of services from compute, storage, netowrking, analytics, mobile, developer tools, management tools, and security spaces. To programatically manage complex set ups in the AWS, several tools and and SDK libaries exist. For example, boto can be used to automate AWS services in Python. It allows to write scripts to provide programmatic connectivity to Amazon Web Services.
Key points covered. Cloud Computing Offerings. AWS Platform (Compute Services, Storage Services, Communication Services, Additional Services). Tools and Kits. Billing and Pricing
- Lecture: Cloud Platforms.
- Chapter 9: Cloud Platforms in Industry (pp. 315-351). Mastering Cloud Computing: Foundations and Applications Programming, by Rajkumar Buyya, Christian Vecchiola, S.Thamarai Selvi, 2013.
- Lab: Cloud Platforms: EC2, S3, SNS, SQS.
- Overview of Amazon Web Services, Amazon AWS, Dec 31, 2015
- AWS Simple Icons for Architecture Diagrams
- AWS Essentials Student Guide 2.5, 2013.
Chapter 05 __ Cloud Application Design
Summary. Cloud computing does not only provides a service-based access to virtual machines, more interestingly, it enables to create so called cloud-native applications. Applications that can be developed on a cloud platform, use the many resources available, run at scale with a high reliability, and avoid problems such as the Slashdot Effect. This requires new cloud architectures that depart from traditional enterprise application design to address requirements such as high availability, scalability, and elasticity. For example, IBM Cloud Architecture Center enables developers to understand how to quickly create new cloud native applications using Bluemix, IBM’s PaaS solution. The types of services provided by a cloud platform enable to develop architectures, e.g., with four tiers, which not easily engineered using traditional software platforms. Thus, architectures are evolving into Multitier architectures. Amazon AWS provides an infrastructure which contains the necessary ingredients to develop distributed system with high availability, scalability, and elasticity. Examples of key services include multiple zones, cloudwatch, auto-scaling, elastic load balancers, and message queues. To facilitate the development of native applications, companies and academia is looking into ways to identify and abstract generic architectures which can be reused across domains. Initiatives centered in patterns have been popular. Examples include, Microsoft Cloud Design Patterns, AWS Cloud Design Patterns, and the book Cloud Computing Patterns coming from the academia. Dependability, and in particular reliability, have gained importance since planet-scale cloud application need often to be available 24x7x52. Since native applications can be seen as complex systems with services, behavior, compositions, which are put together using an architectural style driven by decisions, existing concepts and theories from the field of software engineering can be used to evaluate the reliability of theories.
Key points covered. Cloud-native applications. Cloud Architectures (One tier, Two tiers, Three tiers, Four tiers). High Availability Architectures. Scalable Architectures. AWS elements (EC2 Images, Elastic Load Balancing, Lunch Configurations, Auto Scaling Groups, Cloud Watch). Native cloud applications reliability.
Chapter 06 __ Cloud BPM
Key points covered. Cloud BPM. Concepts (Domains, workflows, activities, workers, deciders and schedulers). How to run a Workflow? Implementing Workflows.
Chapter 07 __ NA
Key points covered:.
Chapter 08 __ Cloud BPM
Key points covered. Cloud BPM. Workflows Patterns (Sequence, Parallel Split, Synchronization, Exclusive Choice, Simple Merge, Multi-Choice).
Chapter 09 __ Google Platform
Key points covered:.
Chapter 10 __ Monitoring
Summary. Amazon CloudWatch. Architecture. Terms. Supported AWS Services. Accessing CloudWatch. Regions and Endpoints. CloudWatch Limits. Related AWS Services. Resources.
- Lecture: Cloud Monitoring: Amazon CloudWatch.
Chapter 11 __ Resilience
Summary. Desciption from Charter on waking up at 2 in the morning and about INCREASIng the Covereage.
Key points covered. Simian Army. Fault Injection.
- Lecture: Cloud Resilience: The Simian Army and Chaos Monkey.
- DOST presentation
- Using sequential diagnosis with openstack
Chapter 12 __ OpenStack Platform
Key points covered:.
- See slides from Pluralsight about Introduction To Openstack 2014
- See course RedHat on OpenStack administration