Courses

Cloud Computing

Prerequisites. Programming, operating systems, networks.

Textbook. Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Kai Hwang, Jack Dongarra, Geoffrey C. Fox, Morgan Kaufmann, 2013.

Learning Outcomes. Recall (knowledge), interpret (comprehension), apply, analyse, create (synthesis), evaluate.

  1. Understand the main concepts, key technologies, benefits, and characteristics of cloud computing.
  2. Identify the architecture associated with cloud computing, including SaaS, PaaS, IaaS, public cloud, private cloud, and hybrid cloud.
  3. Write a research paper and present the results.
Ch. Title Description
01 Introduction What are cloud services? What is cloud computing? Business shift. Job market. Examples of cloud services.
02 Concepts Computing shift. Economical driver. Definition. Cloud characteristics. Deployment models. Delivery models. Examples. Inherent problems
03 Web APIs The API Economy. Distributed Systems. WS-* Services. What is REST? REST and SOAP. REST principles. REST design guidelines
04 Cloud Platforms Cloud Offerings. AWS Platform (Compute, Storage, Communication and Additional Services). Tools and Kits. Billing and Pricing
05 Application Design Architectures (1-4 tiers). High Availability and Scalability. AWS EC2 Images, ELB, Lunch Configurations, Auto Scaling and Cloud Watch
06 Cloud BPM Cloud BPM. Concepts (Domains, workflows, activities, workers, deciders and schedulers). How to run a Workflow? Implementing Workflows

Ch. 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.

Ch. 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.

Ch. 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
  • Lab 2. REST and Django
  • Ch 4. Building a REST API. Lightweight Django by Julia Elman, Mark Lavin, O’Reilly Media, 2014.
  • Ch 4. The Resource-Oriented Architecture. RESTful Web Services by Leonard Richardson and Sam Ruby, O’Reilly Media, 2007.
  • Ch 1. General Info, Ch 2. EC2 Recipes, Ch 3. S3 Recipes. Python and AWS Cookbook by Mitch Garnaat, O’Reilly Media, 2011.

Ch. 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 Offerings. AWS Platform (Compute, Storage, Communication and Additional Services). Tools and Kits. Billing and Pricing

Ch. 05 __ 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. Architectures (1-4 tiers). High Availability and Scalability. AWS EC2 Images, ELB, Lunch Configurations, Auto Scaling and Cloud Watch

Ch. 06 __ Cloud BPM

Summary. Cloud BPM (Business Process Management) is a class of automation software which enable organizations to design, implement, analyze, and improve their workflows or business processes. A workflow is a sequence of multiple tasks that processes data between humans and/or systems aimed at accomplishing a well-defined objective. For instance, booking an airline ticket as a workflow may encompass multiple activities, such as selection of itinerary, submission of personal details, payment validation and booking confirmation. Amazon web services have mainly two dedicated managed services for workflow implementation: Simple Workflow Service (SWF) and Step Functions. SWF service defines an interface and task-based API for workflow orchestration and provides state persistence for workflow executions. The interface makes it easy to coordinate work across distributed application components by providing a programming model and infrastructure for coordinating distributed components and maintaining their execution state in a reliable way.

Key points covered. Cloud BPM. Concepts (Domains, workflows, activities, workers, deciders and schedulers). How to run a Workflow? Implementing Workflows

Key points covered. Cloud BPM. Workflows Patterns (Sequence, Parallel Split, Synchronization, Exclusive Choice, Simple Merge, Multi-Choice)