|Topic||Time Devoted to Each Topic||Activity|
|Continuous Deployment||1 week||Students learn about core concepts related to continuous deployment and devops.|
Workshop on git, branches, provisioning servers, hooks.
|Configuration Management||1 week||Students learn about package managers, configuration management tools, and virtualization.|
Workshop on automatically configuring a webserver using configuration management tools.
|Build Management||1 week||Students learn about build servers, build teams, pipelines, and containers.|
Workshop on a simple build server using a containers.
|Static Analysis||1 week||Students learn about parsing source code, source complexity analysis, static checking tools.|
Workshop on computing simple complexity metrics of source code.
|Test Management||2 weeks||Students learn about automatic test case generation, test prioritization, mutation and generation based fuzzing, random testing, and branch and statement coverage.|
Workshop on test case generation using feedback directed random testing.
Workshop on fuzz testing.
|Infrastructure Management||1 week||Students learn about concepts related to application infrastructure: load balancers, routing, regions and availability zones.|
|Feature Flags/Property Sets||1 week||Students learn about runtime configuration, user experimentation, dark launches, and feature flags.|
Workshop on implementing queues, caches, and simple load balancer.
|Staging + Deployment||1 week||Students learn about deployment strategies, staging, data migration strategies, and canary analysis.|
Workshop on blue/green deployment.
|Advanced Container Management||1 week||Students learn about orchestration and managing multiple containers.|
Workshop on ambassador pattern and docker-based deployment.
|Analysis and Monitoring||1 week||Students learn about monitoring server health, collecting metrics, resilience testing, and event analysis (e.g. flame graphs).|
Workshop on implementing simple server health and chaos monkeys.
|Technology Talks ||2 Weeks||students will learn how to Contrast and compare different advanced strategies for deployment of software.|
|Demonstrations ||1 Week||hands-on projects while understanding models and research ideas behind the tools and processes|
|Guest Lecture ||1 Week||students will learn from industry of how the technology is deployed in practice.|