This specialization is a four-course sequence of hands on project-intensive immersive courses aimed at computer professionals to give them an in-depth experience in developing different layers of a Cloud computing infrastructure including software defined networks, distributed runtime systems, application development, and network function virtualization. Each course (roughly 4-5 one hour videos) is organized as discussion of the technical details pertaining to that topic (from selected readings from research papers and other online resources). Each one-hour video is followed by a “hands-on workshop” assignment (roughly 2 hours of development work) which involves developing code and experimentation using a cloud platform of the concepts discussed in the one-hour video lecture.
This course provides an introduction to data center networking technologies, more specifically software-defined networking. It covers the history behind SDN, description of networks in data-centers, a concrete data-center network architecture (Microsoft VL2), and traffic engineering.
This course covers Network Function Virtualization from the perspective of a systems engineer.
It first discusses the proliferation of middleboxes in enterprise networks and the necessity of
virtualizing these components just like software applications. It then details several
optimizations in operating systems to facilitate efficient networking on virtualized hardware
followed by design decisions in user-plane libraries for bypassing the kernel for efficient packet
processing. It then covers the challenges and solutions for building scalable systems for
providing networking services in datacenters, specifically the synergy between SDN and NFV to
achieve this. The course concludes with a discussion of real-world applications of NFV
technology in the cloud computing ecosystem.
This course provides an introduction to programming frameworks and their implementation issues in the Cloud. It explains multiple topics, including: scalable distributed data stores, resource management (for supporting multi-tenancy and elasticity) and virtualization techniques. Optionally, the student will also be guided in the implementation of a basic version of the distributed runtime system for the Map-Reduce programming framework
This course provides an introduction to the development and support for Cloud-native applications, more specifically it delves into best practices of developing applications; migrating on premise applications to the cloud; the basic building blocks and properties expected from Cloud applications. The course also provide highlights of some novel cloud applications, including geo-distributed computations.