Cloud Computing
Clouds, Distributed system, networking. Learn about and build distributed and networked systems for cloud and Big data.
Skills You’ll Gain
Software-Defined Networking
Cloud Application
C++
Cloud Storage
Cloud Infrastructure
NoSQL
Distributed Computing
Cloud Computing
Machine Learning
Big Data
Distributed Algorithm
Graphs
About the Specialization
The Cloud Computing Specialization takes you on a tour through cloud computing systems. We start in in the middle layer with Cloud Computing Concepts covering core distributed systems concepts used inside clouds, move to the upper layer of Cloud Applications and finally to the lower layer of Cloud Networking. We conclude with a project that allows you to apply the skills you’ve learned throughout the courses.
Earn a certificate
Flexible Deadlines
Virtual Training
Level-Intermediary
6 months @ 5 hours/week (Approx.)
How this specialization works:
Take the Course
This Specialization is a series of courses that helps you master the skill of Cloud Computing.
Hands-on Project
Every Specialization includes a hands-on project. You’ll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you’ll need to finish each of the other courses before you can start it.
Earn a Certificate
When you finish every course and complete the hands-on project, you’ll earn a Certificate that you can share with prospective employers and your professional network.
There are 6 Courses in this Specialization
Course 1 – Cloud Computing concepts part 1
Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies – all centered around distributed systems. Learn about such fundamental distributed computing “concepts” for cloud computing.
Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more! Know how these systems work from the inside out. Get your hands dirty using these concepts with provided homework exercises. In the programming assignments, implement some of these concepts in template code (programs) provided in the C++ programming language. Prior experience with C++ is required. The course also features interviews with leading researchers and managers, from both industry and academia.
Course 2 – Cloud Computing concepts part 2
This course builds on the material covered in the Cloud Computing Concepts, Part 1 course.
Course 3 – Cloud Computing Applications part 1 - Cloud systems and infrastructure
Welcome to the Cloud Computing Applications course, the first part of a two-course series designed to give you a comprehensive view on the world of Cloud Computing and Big Data!
We start the first week by introducing some major concepts in cloud computing, the economics foundations of it and we introduce the concept of big data. We also cover the concept of software defined architectures, and how virtualization results in cloud infrastructure and how cloud service providers organize their offerings. In week two, we cover virtualization and containers with deeper focus, including lectures on Docker, JVM and Kubernates. We finish up week two by comparing the infrastructure as a service offering by the big three: Amazon, Google and Microsoft. Week three moves to higher level of cloud offering, including platform as a service, mobile backend as a service and even serverless architectures. We also talk about some of the cloud middleware technologies that are fundamental to cloud based applications such as RPC and REST, JSON and load balancing. Week three also covers metal as a service (MaaS), where physical machines are provisioned in a cloud environment. Week four introduces higher level cloud services with special focus on cloud storage services. We introduce Hive, HDFS and Ceph as pure Big Data Storage and file systems, and move on to cloud object storage systems, virtual hard drives and virtual archival storage options. As discussion on Dropbox cloud solution wraps up week 4 and the course.
Course 4 – Cloud Computing Applications part 2 - Big Data and applications in the Cloud
In this course we continue Cloud Computing Applications by exploring how the Cloud opens up data analytics of huge volumes of data that are static or streamed at high velocity and represent an enormous variety of information. Cloud applications and data analytics represent a disruptive change in the ways that society is informed by, and uses information. We start the first week by introducing some major systems for data analysis including Spark and the major frameworks and distributions of analytics applications including Hortonworks, Cloudera, and MapR. By the middle of week one we introduce the HDFS distributed and robust file system that is used in many applications like Hadoop and finish week one by exploring the powerful MapReduce programming model and how distributed operating systems like YARN and Mesos support a flexible and scalable environment for Big Data analytics. In week two, our course introduces large scale data storage and the difficulties and problems of consensus in enormous stores that use quantities of processors, memories and disks. We discuss eventual consistency, ACID, and BASE and the consensus algorithms used in data centers including Paxos and Zookeeper. Our course presents Distributed Key-Value Stores and in memory databases like Redis used in data centers for performance. Next we present NOSQL Databases. We visit HBase, the scalable, low latency database that supports database operations in applications that use Hadoop. Then again we show how Spark SQL can program SQL queries on huge data. We finish up week two with a presentation on Distributed Publish/Subscribe systems using Kafka, a distributed log messaging system that is finding wide use in connecting Big Data and streaming applications together to form complex systems. Week three moves to fast data real-time streaming and introduces Storm technology that is used widely in industries such as Yahoo. We continue with Spark Streaming, Lambda and Kappa architectures, and a presentation of the Streaming Ecosystem. Week four focuses on Graph Processing, Machine Learning, and Deep Learning. We introduce the ideas of graph processing and present Pregel, Giraph, and Spark GraphX. Then we move to machine learning with examples from Mahout and Spark. Kmeans, Naive Bayes, and fpm are given as examples. Spark ML and Mllib continue the theme of programmability and application construction. The last topic we cover in week four introduces Deep Learning technologies including Theano, Tensor Flow, CNTK, MXnet, and Caffe on Spark.
Course 5 – Cloud Networking
In the cloud networking course, we will see what the network needs to do to enable cloud computing. We will explore current practice by talking to leading industry experts, as well as looking into interesting new research that might shape the cloud network’s future.
This course will allow us to explore in-depth the challenges for cloud networking—how do we build a network infrastructure that provides the agility to deploy virtual networks on a shared infrastructure, that enables both efficient transfer of big data and low latency communication, and that enables applications to be federated across countries and continents? Examining how these objectives are met will set the stage for the rest of the course. This course places an emphasis on both operations and design rationale—i.e., how things work and why they were designed this way. We’re excited to start the course with you and take a look inside what has become the critical communications infrastructure for many applications today.
Course 6 – Cloud Computing Project
Note: You should complete all the other courses in this Specialization before beginning this course.
This six-week long Project course of the Cloud Computing Specialization will allow you to apply the learned theories and techniques for cloud computing from the previous courses in the Specialization, including Cloud Computing Concepts, Part 1, Cloud Computing Concepts, Part 2, Cloud Computing Applications, Part 1, Cloud Computing Concepts, Part 2, and Cloud Networking.
FAQ
1. How long does it take to complete the course?
Time to completion can vary widely based on your schedule. Most learners are able to complete the Specialization in 4-5 months.
2. How Often is each Course Offered?
Each course in the Specialization is offered on a regular schedule with sessions starting about once per month. If you don’t complete a course on the first try, you can easily transfer to the next session, and your completed work and grades will carry over.
3. What are the Pre-requisites of this Course?
Basic working knowledge of computers and computer systems Familiarity with common programming languages (e.g., C, C++, Java)
4. Do I need to take the course in specific order?
It is recommended that the courses in the Specialization be taken in the order outlined. In the Capstone Project, you will have the opportunity to synthesize your learning in all the courses and apply your combined skills in a final project.
5. Upon Completing the Specialisation what will I be able to do?
Time to completion can vary widely based on your schedule. Most learners are able to complete the Specialization in 4-5 months.