CIS1912 DevOps

Who are we?

Clarice Wang

  • Senior studying CIS
  • Likes hiking, longboarding, playing Stardew Valley, and doing puzzles
  • Office Hours: 12:00-1:00 Mondays

Ryan Tanenholz

  • Sophomore studying CIS
  • Likes yelling at the Ravens, cooking, and never finishing side projects
  • Office Hours: 4:00-5:00 Wednesdays

David Cao

  • 4th year PhD studying Cryptography
  • Likes badminton, surfing, and locally reproducible production environments
  • Office Hours: 3:00-4:00 Tuesdays

Administrative Things

  • Grading
    • 50% homeworks (4 assignments)
    • 35% final project
    • 15% attendance and participation
  • Canvas for grades
  • Ed for discussion
  • Late Policy
  • Class Materials
    • cis1912.org for lecture notes + guides
    • GitHub classroom for assignments/labs
  • Collaboration Policy
  • Laptop Policy
Please create a GitHub account if you do not have one already!

What is DevOps?

What is DevOps?

  • Straight from Google's ✨ AI Overview :sparkles
    • DevOps is a cultural and professional movement in the software industry that emphasizes rapid, frequent, and reliable software delivery by combining development (Dev) and operations (Ops) teams.
  • Essentially, how do we build new features fast and safely?

A World Without DevOps

  • Developer writes code for feature
  • Developer asks Ops to deploy
  • Ops deploys code and deals with its reliability

Why does this suck?

A World Without DevOps

  • Ops person has no idea what the code they're deploying is
  • This new feature might require application specific knowledge, as well as take a few iterations to roll our
  • When something fails in production, the Ops team is notified not the Developer

A World With DevOps

  • Give Developers the tools they need to deploy & monitor changes
    • Automated testing and deployments (CI/CD)
    • Automatic rollbacks
    • Metrics and observability
  • DevOps is not a role!
  • The difference between a good engineer and a great one is their knowledge of DevOps!

Course Goals

  • Teach you how systems are built and managed in the "real world"
  • Learn the driving philsophies behind why we do things certain ways
  • Implement said philosphies as code and/or organizational structure
  • Teach you (a little bit) about backend paradigms
  • We will be primarily using Python and JS (next.js), but this is not the focus of the course

Who this course is for

  • Given the amount of background knowledge assumed, Aimed at primarily Juniors and Seniors
  • If you are unfamiliar with backend-frontend, databases, HTTP/networking, this course will be very difficult
  • You should not be afraid of large codebases
  • You should have the ability to learn primarily from documentation

Jarvis

Waitlist

Lab

Intro to GitHub Classroom & Setup

Let's first get familiar with how we'll be releasing and submitting assignments.

https://classroom.github.com/a/4_gCXSNs

Now, let's get a simple OAuth2 server running locally:

https://www.cis1912.org/labs/08-28-setup/