Sail(Cloud Developer)
Cloud Developers design and develop cloud applications, services, and products.
Course Description:
Learners will gain knowledge and develop hands-on experience solving real-world problems in the field of cloud development. Conceptually, the course will introduce this domain and cover the topics of cloud infrastructures, virtualization, software-defined networks and storage, cloud storage, and programming models (analytics frameworks).
Modern data centers enable many of the economic and technological benefits of the cloud paradigm; hence, we will describe several concepts behind data center design and management and software deployment. Subsequently, learners will learn about different cloud storage concepts including data distribution, durability, consistency and redundancy.
Projects will utilize public cloud infrastructures Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform (GCP). Learners will utilize MapReduce, interactive programming using Jupyter Notebooks, and data science libraries to clean, prepare and analyze a large data set. Learners will orchestrate the deployment of auto-scaled, load-balanced and fault-tolerant applications using virtual machines (VMs), Docker containers and Kubernetes, as well as serverless computing through Functions as a Service. In addition, learners will develop different analytics applications using batch, iterative and stream processing frameworks. It is our goal that learners will develop the required skills needed to become a cloud developer.
Prerequisites:
- Practical Programming with Python
- Cloud Administrator
- Intermediate programming skills (Python and Java)
- Basic Linux and Bash scripting skills
Duration:
- 8 weeks per quarter
- 15 weeks per semester
Learning Objectives
Learners who complete the Cloud Developer course should be able to:
- Design, architect, implement, test, deploy, monitor and maintain cloud-based applications;
- Identify the appropriate tools and architectures to implement a cloud-based design;
- Analyze the tradeoffs between different tools and cloud offerings to meet real-world constraints;
- Evaluate performance characteristics of cloud-based services to implement optimizations