Fall 2017, CSCI-GA.3033-014, Graduate Division, Computer Science


  DevOps


Instructors: John Rofrano, Nikolai Joukov, Harigovind Ramasamy

Lectures:

Wednesdays 5:10-7:00PM, Room: CIWW 102

Course Abstract:

DevOps is more than just a fusion of development and operations. It is the cultural change that embraces Agile methodology, Lean Manufacturing, Social Coding, Behavior Driven and Test Driven Development, with new tools to provide Continuous Integration, Testing, and Delivery, and a fundamental shift in what it means to "move into production". Developers are empowered to "fail fast" and deploy early and often. Cloud Computing is at the heart of this movement because it allows teams to move at the "speed of need". Cloud Native applications built from loosely coupled microservices require DevOps automation to manage the often complex production pipelines. DevOps allows businesses to move with increased agility and stability so that they can "innovate at scale".

Upon completing this course students will know from hands-on experience how to work as an Agile team, socially code, and setup a DevOps pipeline to continuously integrate and test their code changes and deploy the Cloud Native applications that they write. They will also gain an understanding of what it means for Enterprise IT to use DevOps to become Cloud Native and operate at scale. Students will be given access to IBM Bluemix and Watson Services for the duration of the course and will be submitting their homework on GitHub and deploying their homework to the IBM Bluemix Cloud.

This course is 50% lecture and 50% hand-on so come prepared to learn by doing.

Prerequisites: Programming in either Python, Ruby, Java, or other modern programming language. The course will be taught using Python Flask.

Topics Covered

  • DevOps Introduction and Overview
  • Social Coding with GitHub, Slack, & Webhooks integrations
  • Agile Development and Planning using ZenHub
  • Spotify Engineering Culture (video)
  • Automating Development Environments with Vagrant, VirtualBox, and Docker
  • Creating Cloud Native RESTful microservices with Python Flask and Redis
  • Introduction to Platform as a Service using Cloud Foundry on Bluemix
  • Automating Testing with Behavior Driven Development and Test Driven Development
  • Creating a DevOps Pipeline with Bluemix, Jenkins, and Travis CI
  • Introduction to Docker and Container Clouds
  • Overview of Automated Deployments using Chef, Puppet, Salt, and Ansible
  • Monitoring and Auto Scaling with Blue/Green Deployments in the Cloud
  • Resiliency and DevOps
  • Security and DevOps

Grading:

In this course you will work as part of an Agile Development Team. The project assignments will progressively build a Cloud Native RESTful microservice that you will design, develop, and deploy into the Bluemix Cloud Foundry and Docker Container Cloud using the DevOps methods taught in the classroom. While you will work on the project as a team, students will also be evaluated based on their individual contributions.

50% Mid-term and Final Exams
40% Project Assignments
10% Class Attendance

Related references and quotes:

New York Times: As some tech sectors show signs of slowing, cloud services have created remarkable demand for highly educated engineers and mathematicians. And they are being compensated very well.