CSE 201: Developing Cloud Services

Overview

This hands-on course is the fundamental course of Cloud Software Engineering. It gives you the fundamental knowledge in cloud computing and how to develop cloud-cased services. At the end of this course, you will be able to design and implement highly available and scalable services using cloud infrastructure, expose APIs to mobile, web, and other clients to access your services and ensure security and performance.

This course is well suited for people who have experience in traditional software development and want to explore the opportunities that cloud computing offers. If you have already completed our basic and advanced software engineering courses or have extensive experience in developing traditional or mobile software, this is the course for you. Prerequisite for this course are the CSE 101: Beginning Software Engineering and CSE 102: Advanced Software Engineering courses or completion of the equivalent assessment. This course is part of the Cloud Software Engineer Learning Path.

Why Cloud Is Different?

Developing for the cloud is not the same as developing mobile or packaged applications. It is also different from the traditional server-side development where you have complete control over the hardware and the resources your application or service is running on. In the cloud, you don’t own the hardware and control the resources and you need to consider aspects like failures, compromised security or reduced performance.

However, you gain other things not previously available in on-premise environments. Elasticity and virtually unlimited capacity, worldwide distribution and readily available services allow you to achieve bigger scale and faster time to market for your services. Of course, all this requires a new set of skills and knowledge that are in high demand by the current employers.

Learning the concepts of cloud software engineering is crucial for your success in technology.

What Will You Learn?

Throughout this course, you will get foundational knowledge in the following areas:

  • Overview of technologies
    • Virtualization and containerization
    • Networking and communication
    • Web APIs
  • Cloud services architectures and patterns
    • IaaS, PaaS and SaaS
    • Commonly used cloud services
  • Designing scalable and performant cloud services
    • Using cloud services in your design
    • Designing for high availability
    • Designing for worldwide scale
    • Designing for security
    • Designing for failure
    • Design for portability between clouds
  • Developing REST APIs to enable access from the web and mobile clients
  • Developing single-page applications (SPAs) accessing your APIs

Homework

Homework assignments will be given at the end of each session, and discussed at the beginning of the next session. Assignments will include solving small programming problems, topics research or functionality design.

Assignments need to be completed and submitted for evaluation before the next session starts.

Prerequisites

Successful completion of CSE 101: Beginning Software Engineering and CSE 102: Advanced Software Engineering or completion of acceptance test (see Where to Start?) is required for this course.

Familiarity with HTML5, CSS and JavaScript is recommended because we will develop web application as part of the course.

This is a bring-your-own-computer course! Please make sure you bring your laptop (Mac or Windows) and have it ready with the following setup:

  • Python binaries installed. We will use Python 2.7 for this course however, we will outline some differences between Python 2.x and 3.x
  • Text editor for editing configuration files. You can choose any text editor that you are familiar with. If you don’t have one we recommend Komodo Edit or Visual Studio Code which are lightweight, cross-platform (Mac and Windows) IDE
  • Git client installed. You can install the command line clients linked below. We also recommend SourceTree (available on both Mac and Windows) for people who prefer GUIs instead
  • Docker installed. You can get Docker installations from the following locations

Computer Requirements

Standard off-the-shelf laptop will be sufficient for this course however here are some requirements and recommendations:

  • 8GB RAM required; more recommended
  • 50GB free disk space; SSD preferred
  • WiFi for access to the Internet (wired connectivity is not provided)
  • Chrome, Firefox or Safari browser

Also, make sure you have Admin/Root access to your machine’s OS if additional software installation is required.

Attendance Policy

No refunds will be issued for this course. Rebooking is possible no less than two weeks in advance.

This course is eligible for a professional certificate. In order to obtain the certificate, 90% attendance and 90% of the available homework points is required.

Arriving on-time, participation in discussions, and demonstration of professional courtesy to others are required.

Course Details

Duration: 50 hours
(weekend and evening schedules available)
Tuition Fee: $1,655

Related Courses

Related Workshops