Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Microsoft

Cloud developer

Microsoft via Microsoft Learn

Overview

  • Module 1: Carnegie Mellon University's Cloud Developer course. Get an introduction to virtualization, one of the many technologies that power the cloud. Learn what virtualization is, its benefits, and how cloud resources are shared.
  • In this module, you will:

    • Identify major reasons that virtualization is becoming essential, especially on the cloud
    • Identify some of the main limitations of traditional operating systems to enable the cloud computing paradigm
    • Indicate how system complexity can be managed in terms of levels of abstractions and well-defined interfaces, and specify their applicability to virtualization and the cloud
    • Define resource sharing, explain why it is needed, discuss its two main implementations, and indicate its applicability to virtualization
    • Outline the main differences between sharing of uniprocessor and multiprocessor systems and the pros and cons of sharing multiprocessor systems in time and space

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 2: Carnegie Mellon University's Cloud Developer course. Take a deep dive into virtualization by understanding its formal definition as well as the different types of virtual machines.
  • In this module, you will:

    • Define virtualization, and distinguish between its applicability to a single system component and to an entire machine
    • Identify different virtual machine types, and indicate the main technique that enables each type.
    • Recognize the different classes of system virtual machines.

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 3: Carnegie Mellon University's Cloud Developer course. Learn about how computing power is virtualized using virtual CPUs. Covers different types of CPU virtualization.
  • In this module, you will:

    • Distinguish between different modes of operations in various systems such as traditional operating systems and virtualized systems
    • Identify the three main classes of system instructions
    • Indicate the condition to enable efficient hypervisors
    • Explain how a hypervisor can handle system traps
    • Identify the difference between efficient hypervisors and hypervisors
    • Describe why and when code patching is needed
    • Recognize the dissimilarity between full virtualization and paravirtualization
    • Explain the advantages and disadvantages of full virtualization and paravirtualization
    • Identify the difference between emulation and direct native execution
    • 'Recognize the two types of emulation: interpretation and binary translation'
    • Explain some major interpretation and binary translation techniques
    • Compare and contrast decode-and-dispatch, direct-threaded, and indirect-threaded interpreters
    • Identify the difference in virtual CPU allocation between symmetric multiprocessing and uniprocessor virtual machines
    • 'Describe the two major virtual CPU schedulers in Xen: Simple Earliest Deadline First and Credit Scheduler'

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 4: Carnegie Mellon University's Cloud Developer course. Learn how memory is virtualized to support cloud resources. Covers different types of memory mapping and related issues.
  • In this module, you will:

    • Identify how most general-purpose operating systems support virtual memory
    • Discuss the one-level page mapping between virtual and physical addresses
    • Identify the difference between one-level page mapping, as provided in traditional operating systems, and two-level page mapping, as provided in system memory virtualization
    • Discuss multiple-level page mapping as implied by various virtualized environments, such as native and user-mode hosted virtualized systems
    • Define memory overcommitment, and discuss the benefits it provides to virtualized systems
    • Describe what reclamation techniques are and why they are needed
    • Explain memory ballooning in VMware ESXi as an example of a reclamation technique

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 5: Carnegie Mellon University's Cloud Developer course. Learn about how computer input/output is virtualized. Covers I/O basics and a case study of virtualizing I/O.
  • In this module, you will:

    • Recognize how CPU and I/O devices communicate in traditional systems
    • Identify how many I/O device drivers can/should be supported per physical device for different virtualized systems, such as native and dual-mode hosted virtualized systems
    • Recognize the need for and ease of intercepting I/O requests by the hypervisor
    • Identify at which system interfaces the hypervisor can intercept I/O requests
    • Explain the pros and cons of intercepting I/O requests at different system interfaces
    • Describe the overall I/O virtualization process as applied to a network interface card
    • Discuss Xen Project's approach to I/O virtualization

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 6: Carnegie Mellon University's Cloud Developer course. Learn about how storage and network resources can be virtualized to support software defined datacenters.
  • In this module, you will:

    • Recall the design considerations in datacenter networks and describe the need for virtualization to support multiple tenants
    • Compare and contrast traditional datacenter networks and software-defined networking (SDN) for the purposes of multi-tenant networks
    • List the various types of storage systems used in datacenters
    • Compare and contrast traditional datacenter storage and software-defined storage (SDS) and list some of the benefits of SDS

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 7: Carnegie Mellon University's Cloud Developer course. Discover what the cloud is, the history of cloud computing, what types of clouds are available, and how you might use the cloud.
  • In this module you will:

    • Explain the concept of cloud computing
    • Briefly understand how computing systems across domains dealt with scale before the cloud
    • Briefly recall the recent history of cloud computing, illustrating its evolution
    • List some of the enabling technologies in cloud computing, and discuss their significance
    • Differentiate cloud service models, such as IaaS, PaaS, and SaaS
    • Enumerate the different types of clouds, and compare and contrast them
    • List some of the common cloud providers and their associated cloud stacks
    • Recall popular cloud use case scenarios

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 8: Carnegie Mellon University's Cloud Developer course. Learn how developers pay to use the cloud and how cloud providers are able to charge for their services. Get an overview of how the cloud is kept secure.
  • In this module, you will:

    • Discuss some of the advantages and disadvantages of the cloud paradigm
    • Articulate the economic benefits as well as the issues/risks of the cloud paradigm for users
    • Articulate the economic benefits as well as the issues/risks of the cloud paradigm for cloud service providers
    • Define service level agreements (SLAs) and service level objectives (SLOs), and illustrate their importance in cloud computing
    • Enumerate and explain various threats in cloud security
    • Enumerate and explain various controls in cloud security

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 9: Carnegie Mellon University's Cloud Developer course. Datacenters are what power the cloud. Learn what they are, how they work, and challenges in managing them.
  • In this module, you will:

    • Learn about the history and fundamentals of datacenters
    • Understand the issues related to size, density, and efficiency growth for datacenters
    • Be aware of the challenges in managing cloud datacenters

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 10: Carnegie Mellon University's Cloud Developer course. Take a deep dive into datacenters to discover how they are laid out and how computing resources are provisioned and metered.
  • In this module, you will:

    • Describe various information technology components that you find in a datacenter
    • Recall facilities' components to a datacenter
    • Recall the various features provided by cloud middleware
    • Describe the resource provisioning process from the context of a cloud service provider
    • Recall the issues related to resource metering for cloud service providers
    • Describe the metering architecture in OpenStack's Ceilometer
    • Recall the service components of OpenStack and identify their individual functions

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 11: Carnegie Mellon University's Cloud Developer course. Get into the nitty-gritty of cloud computing to understand how resources are provisioned, billed, and monitored. Learn about how to orchestrate cloud infrastructure with examples.
  • In this module, you will:

    • Recall the various features provided by cloud middleware
    • Describe the resource provisioning process from the context of a cloud service provider
    • Recall the issues related to resource metering for cloud service providers
    • Describe the metering architecture in OpenStack's Ceilometer
    • Recall the concept of cloud orchestration and enumerate its benefits
    • Recall the service components of OpenStack and identify their individual functions

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 12: Carnegie Mellon University's Cloud Developer course. Learn how developers write programs that run on the cloud, including how to deploy, be fault-tolerant, load balance, scale, and deal with latency.
  • In this module, you will:

    • Evaluate different considerations when programming applications that run on clouds
    • Evaluate different considerations when deploying applications on clouds
    • Compare and contrast proactive and reactive measures for fault tolerance in cloud applications
    • Describe the importance of load balancing in cloud applications and enumerate various methods to achieve it
    • Enumerate the strategies and considerations in scaling cloud applications
    • Motivate the case for minimizing tail latency and discuss the various strategies to reduce tail latency
    • Describe the strategies to optimize total operational cost of using cloud services

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 13: Carnegie Mellon University's Cloud Developer course. Learn all about data and get an overview of how it's stored, including local and distributed file systems, databases, and object storage.
  • 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

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 14: Carnegie Mellon University's Cloud Developer course. Discover how distributed file systems work, then learn about Hadoop and Ceph.
  • In this module, you will:

    • Review the design goals and architectural characteristics of Hadoop distributed file system (HDFS)
    • Review the design goals and architectural characteristics of the Ceph file system (Ceph FS)
    • Compare and contrast HDFS and the Ceph file system

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 15: Carnegie Mellon University's Cloud Developer course. Learn about two more types of storage - NoSQL databases and object storage - with case studies from industry.
  • In this module, you will:

    • Explain the Apache HBase, Apache Cassandra and MongoDB NoSQL database data models.
    • List the common operations in HBase, Cassandra, and MongoDB.
    • Summarize the architectures of HBase, Cassandra, and MongoDB.
    • List the use cases of HBase, Cassandra, and MongoDB.
    • Explain the OpenStack Swift cloud object storage data models.
    • Discuss the consistency guarantees provided by Swift.

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 16: Carnegie Mellon University's Cloud Developer course. Learn about distributed programming and why it's useful for the cloud, including programming models, types of parallelism, and symmetrical vs. asymmetrical architecture.
  • In this module, you will:

    • Classify programs as sequential, concurrent, parallel, and distributed
    • Indicate why programmers usually parallelize sequential programs
    • Explain why cloud programs are important for solving complex computing problems
    • Define distributed systems, and indicate the relationship between distributed systems and clouds
    • Define distributed programming models
    • Indicate why synchronization is needed in shared-memory systems
    • Describe how tasks can communicate by using the message-passing programming model
    • Outline the difference between synchronous and asynchronous programs
    • Explain the bulk synchronous parallel (BSP) model
    • Outline the difference between data parallelism and graph parallelism
    • Distinguish between these distributed programs: single program, multiple data (SPMD); and multiple program, multiple data (MPMD)
    • Discuss the two main techniques that can be incorporated in distributed programs so as to address the communication bottleneck in the cloud
    • Define heterogeneous and homogenous clouds, and identify the main reasons for heterogeneity in the cloud
    • State when and why synchronization is required in the cloud
    • Identify the main technique that can be used to tolerate faults in clouds
    • Outline the difference between task scheduling and job scheduling

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 17: Carnegie Mellon University's cloud developer course. MapReduce was a breakthrough in big data processing that has become mainstream and been improved upon significantly. Learn about how MapReduce works.
  • In this module, you will:

    • Identify the underlying distributed programming model of MapReduce
    • Explain how MapReduce can exploit data parallelism
    • Identify the input and output of map and reduce tasks
    • Define task elasticity, and indicate its importance for effective job scheduling
    • Explain the map and reduce task-scheduling strategies in Hadoop MapReduce
    • List the elements of the YARN architecture, and identify the role of each element
    • Summarize the lifecycle of a MapReduce job in YARN
    • Compare and contrast the architectures and the resource allocators of YARN and the previous Hadoop MapReduce
    • Indicate how job and task scheduling differ in YARN as opposed to the previous Hadoop MapReduce

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 18: Carnegie Mellon University's cloud developer course. GraphLab is a big data tool developed by Carnegie Mellon University to help with data mining. Learn about how GraphLab works and why it's useful.
  • In this module, you will:

    • Describe the unique features in GraphLab and the application types that it targets
    • Recall the features of a graph-parallel distributed programming framework
    • Recall the three main parts in the GraphLab engine
    • Describe the steps that are involved in the GraphLab execution engine
    • Discuss the architectural model of GraphLab
    • Recall the scheduling strategy of GraphLab
    • Describe the programming model of GraphLab
    • List and explain the consistency levels in GraphLab
    • Describe the in-memory data placement strategy in GraphLab and its performance implications for certain types of graphs
    • Discuss the computational model of GraphLab
    • Discuss the fault-tolerance mechanisms in GraphLab
    • Identify the steps that are involved in the execution of a GraphLab program
    • Compare and contrast MapReduce, Spark, and GraphLab in terms of their programming, computation, parallelism, architectural, and scheduling models
    • Identify a suitable analytics engine given an application's characteristics

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 19: Carnegie Mellon University's cloud developer course. Spark is an open-source cluster-computing framework with different strengths than MapReduce has. Learn about how Spark works.
  • In this module, you will:

    • Recall the features of an iterative programming framework
    • Describe the architecture and job flow in Spark
    • Recall the role of resilient distributed datasets (RDDs) in Spark
    • Describe the properties of RDDs in Spark
    • Compare and contrast RDDs with distributed shared-memory systems
    • Describe fault-tolerance mechanics in Spark
    • Describe the role of lineage in RDDs for fault tolerance and recovery
    • Understand the different types of dependencies between RDDs
    • Understand the basic operations on Spark RDDs
    • Step through a simple iterative Spark program
    • Recall the various Spark libraries and their functions

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

  • Module 20: Carnegie Mellon University's cloud developer course. The increase of available data has led to the rise of continuous streams of real-time data to process. Learn about different systems and techniques for consuming and processing real-time data streams.
  • In this module, you will:

    • Define a message queue and recall a basic architecture
    • Recall the characteristics, and present the advantages and disadvantages, of a message queue
    • Explain the basic architecture of Apache Kafka
    • Discuss the roles of topics and partitions, as well as how scalability and fault tolerance are achieved
    • Discuss general requirements of stream processing systems
    • Recall the evolution of stream processing
    • Explain the basic components of Apache Samza
    • Discuss how Apache Samza achieves stateful stream processing
    • Discuss the differences between the Lambda and Kappa architectures
    • Discuss the motivation for the adoption of message queues and stream processing in the LinkedIn use case

    In partnership with Dr. Majd Sakr and Carnegie Mellon University.

Syllabus

  • Module 1: Share cloud resources
    • Introduction
    • Overview of virtualization
    • Benefits of virtualization
    • Virtualization vs. traditional operating systems
    • Abstractions in computing
    • Interfaces in computing
    • Basics of resource sharing
    • Multiprocessor resource sharing
    • Summary
  • Module 2: Understand virtualization
    • Introduction
    • Formally define virtualization
    • Types of virtual machines
    • Summary
  • Module 3: Virtualize computing power
    • Introduction
    • Virtualize CPU instructions
    • Full virtualization vs. paravirtualization
    • Implement virtualization by using emulation
    • Use virtual CPUs
    • Summary
  • Module 4: Virtualize memory
    • Introduction
    • One-level page mapping
    • Two-level page mapping
    • Memory overcommitment
    • Reclaiming memory and memory issues
    • Summary
  • Module 5: Virtualize I/O
    • Introduction
    • I/O basics
    • Virtualize I/O devices
    • How Xen does I/O virtualization
    • Summary
  • Module 6: Storage and network virtualization
    • Introduction
    • Software-defined datacenters
    • Networking within datacenters
    • Virtual networks for software-defined datacenters
    • Storage within datacenters
    • Software-defined storage
    • Summary
  • Module 7: Foundations of cloud computing for developers
    • Introduction
    • Definition of cloud computing
    • Before the cloud
    • The evolution of cloud computing
    • Building blocks of the cloud
    • Types of clouds
    • Major cloud providers
    • Cloud use cases
    • Summary
  • Module 8: Economics of cloud computing
    • Introduction
    • Pros and cons of cloud computing
    • Economics of cloud computing for users
    • Economics for cloud service providers
    • SLAs and SLOs
    • Cloud security threats
    • Cloud security control and auditing
    • Summary
  • Module 9: Datacenter trends in cloud computing
    • Introduction
    • Fundamentals of datacenters
    • History of datacenters
    • Size, density, and efficiency growth
    • Challenges in cloud datacenters
    • Summary
  • Module 10: Datacenter components
    • Introduction
    • IT equipment
    • Infrastructure and facilities
    • Geographic location criteria
    • Costs
    • Power and efficiency
    • Redundancy
    • Reliability metrics
    • Summary
  • Module 11: Cloud management
    • Introduction
    • Cloud middleware
    • Resource provisioning
    • Meter and monitor cloud services
    • Cloud orchestration and automation
    • Case study: OpenStack
    • Summary
  • Module 12: Build applications on the cloud
    • Introduction
    • Programming the cloud
    • Deploy applications on the cloud
    • Build fault-tolerant cloud services
    • Load balancing
    • Scale resources
    • How to deal with tail latency
    • Economics for cloud applications
    • Summary
  • Module 13: Cloud storage overview
    • Introduction
    • Data overview
    • Applications and requirements
    • Storage devices
    • Storage abstractions
    • Local file systems
    • Distributed file systems
    • Databases
    • Database design: Schema and scalability
    • Database design: Consistency and the CAP theorem
    • Relational databases
    • NoSQL databases
    • NewSQL databases
    • Object storage as a cloud service
    • Summary
  • Module 14: Case studies: Distributed file systems
    • Introduction
    • History of distributed file systems
    • Case study: Hadoop distributed file system (HDFS)
    • Case study: CEPH file system
    • Comparison of Hadoop versus Ceph file systems
    • Summary
  • Module 15: Case studies: NoSQL databases and cloud object storage
    • Introduction
    • Apache HBase
    • MongoDB
    • Apache Cassandra
    • Cloud object storage: OpenStack Swift and Ceph Object Gateway
    • Summary
  • Module 16: What is distributed programming?
    • Introduction
    • Categories of computer programs
    • Why use distributed programming?
    • Distributed programming on the cloud
    • Programming models for clouds
    • Synchronous vs. asynchronous computation
    • Types of parallelism
    • Symmetrical vs. asymmetrical architecture
    • Cloud challenges: Scalability
    • Cloud challenges: Communication
    • Cloud challenges: Heterogeneity
    • Cloud challenges: Synchronization
    • Cloud challenges: Fault tolerance
    • Cloud challenges: Scheduling
    • Summary
  • Module 17: Distributed computing on the cloud: MapReduce
    • Introduction
    • Programming model
    • Data structure
    • Example MapReduce programs
    • Computation and architectural models
    • Job and task scheduling
    • Fault tolerance
    • YARN
    • Summary
  • Module 18: Distributed computing on the cloud: GraphLab
    • Introduction
    • Data structure and graph flow
    • Architectural model
    • Programming model
    • Computational model
    • Fault tolerance
    • An example application in GraphLab
    • Comparison of distributed analytics engines
    • Summary
  • Module 19: Distributed computing on the cloud: Spark
    • Introduction
    • Spark overview
    • Resilient distributed datasets
    • Lineage, fault tolerance, and recovery
    • Programming in Spark
    • The Spark ecosystem
    • Summary
  • Module 20: Message queues and stream processing
    • Introduction
    • Message queues
    • Message queues: Case study
    • Stream processing systems
    • Streaming architectures: Case study
    • Big data processing architectures
    • Real-time architectures in practice
    • Summary

Reviews

Start your review of Cloud developer

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.