Introduction

Completed

We now move on to the next part of the course, namely cloud storage. Storage is an important aspect of cloud computing and has seen a lot of innovation in the last decade or so.

We will begin with a description of the types of and characteristics of data. We will then move to typical applications and their requirements on storage systems.

We will then explore storage devices and recap the various types of devices that are currently used in storage systems. Next, we will visit the various abstractions that are used to organize data—either as blocks on disk, files within a file system, or objects in a database. We will then explore each of those abstractions in detail.

The first abstraction we will dive into is file systems. We will discuss the different types of file systems as well as their design considerations. We will then explore databases, consider the various design choices made when creating database systems, and discuss the three main types of databases that are popular today: relational, NoSQL, and NewSQL databases. We will finally end this unit with a discussion on a class of cloud-specific storage systems, namely object storage as a cloud service.

Learning objectives

In this module, you will:

  • Describe the overall characteristics of data.
  • List and classify different data types within the data taxonomy.
  • Identify the problems of scale and management in big data.
  • Discuss the various application requirements in storage, and map the design choices for storage systems.
  • Recall the memory hierarchy in computer systems and explain the tradeoffs of cost, performance, and capacity at each layer.
  • Recall the various types of devices used in storage systems.
  • Describe the various abstractions exposed to applications in storage systems.
  • Discuss the design considerations of local and distributed file systems.
  • Compare and contrast different types of databases and their design tradeoffs.
  • Identify the characteristics of a relational database system.
  • Discuss the concepts of cloud object storage.
  • Identify the characteristics of a NewSQL database system.

Prerequisites

  • Understand what cloud computing is, including cloud service models, and common cloud providers.
  • Know the technologies that enable cloud computing.
  • Understand how cloud service providers pay for and bill for the cloud.
  • Know what datacenters are and why they exist.
  • Know how datacenters are set up, powered, and provisioned.
  • Understand how cloud resources are provisioned and metered.
  • Be familiar with the concept of virtualization.
  • Know what the different types of virtualization are.
  • Understand CPU virtualization.
  • Understand memory virtualization.
  • Understand I/O virtualization.