Skip to content

Latest commit

 

History

History
331 lines (245 loc) · 15.9 KB

syllabus.adoc

File metadata and controls

331 lines (245 loc) · 15.9 KB

GRADUATE PROGRAMS IN SOFTWARE
University of St. Thomas
St. Paul, MN 55105

SYLLABUS Fall 2017 SEIS 665
Version 2017.08.26


Course Title
DevOps & Cloud Infrastructure

Meeting Time Place
Mondays, 5:45 - 9:00 PM, OSS 428

Credit Value
3 semester credits

Prerequisites
SEIS 610

Instructor
Jason Baker

E-Mail Address
[email protected]

Phone Number
612-695-7775 (cell)

Office Address
By Appointment

Office Hours
Before class or by appointment
(Remote conferencing via Google Hangouts/ Skype encouraged)


Course Description

This course covers the engineering and design of IT infrastructure, focusing on cloud-scale distributed systems and modern DevOps practices. IT infrastructure deployment practices are rapidly changing as organizations build infrastructure as code and adopt cloud computing platforms. We will examine the theory behind these modern practices and the real-world implementation challenges faced by IT organizations.

While the lessons will cover a number of theoretical concepts, we will primarily learn by doing. Students will gain hands-on experience with several widely-adopted IT platforms including Github, AWS, and Docker.


Course Objectives

  • Understand how IT organizations are deploying modern infrastructure and how to build infrastructure as code.

  • Understand how to architect cloud-scale distributed systems and the key design patterns used to enhance scalability and reliability within these systems.

  • Develop specific skills related to DevOps practices including source control management, package management, and configuration management.


Required Texts

Infrastructure as Code by Kief Morris, 1st Edition.
ISBN: 9781491924358

Additional writings (whitepapers, blogs, etc) as assigned by the instructor.


Attendance Policy and Studying

  • Instructor will enter attendance into Canvas weekly

  • 2-3 hours work for each hour of in class instruction is the academic standard, so plan on spending 6-9 hours a week out of class on readings and assignments. If you don’t currently have much experience working with GitHub and Linux, plan on budgeting more time.


Amazon Web Services
Most class assignments will make use of infrastructure running on Amazon Web Services (AWS). The University of St. Thomas is an AWS Educate Institution which means that students can apply for $100 worth of AWS credits per year. Students should sign up for an AWS account using their @stthomas.edu email address at http://aws.amazon.com/. After signing up for an account, you can apply for educational credits at https://www.awseducate.com/Application.

The educational credits should cover the costs associated with your usage of AWS in this class throughout the semester. However, if you use AWS in other classes you may consume all of your available credits. You are responsible for paying any expenses not covered by these credits.


Canvas
Lecture notes (powerpoint/pdf format), lecture recordings, and grades will be available on Canvas (https://www.stthomas.edu/canvas).


Github
We will use Github throughout the course and a free Github account is required to complete assignments. You can create an account, if you don’t already have one, by going to the website: https://github.com/join

Students are strongly encouraged to sign up and participate in free Git training before the start of the semester if they haven’t used Git before. Training is available at: https://www.codeschool.com/courses/try-git


Slack
Slack is a great real-time chat and collaboration tool for teams. Sign up for a free account at https://ustseis665.slack.com/signup using your @stthomas.edu email address. We will all join this team for the duration of the course and make use of chat channels while working on projects.


Computers
A computer is an essential tool for this class since several of the lectures will include opportunities for hands-on learning. A personal computer is strongly encouraged.

A computer is a powerful learning tool, but it can also be a distraction in a classroom setting. The course will move at a quick pace and will cover a wide breadth of technical material. Try to minimize web surfing and personal communications during lectures so that you do not miss out on key insights and important learnings. 


Linux
Understanding the Linux command line interface is critical to success in this course. It’s likely that some students have significant amounts of experience with Linux while others have none. We will spend some time at the beginning of the course covering essential Linux skills so that everyone has an opportunity to successfully complete assignments.

It’s not possible to teach Linux in a few hours during the class lectures. If you have never used Linux before, you will need to invest extra time in the early weeks of this course getting comfortable with the operating system. There are plenty of free Linux training videos on the Internet and I strongly encourage you to check these out if you lack Linux experience. For example, here is a free online course you can take:

By completing the required course assignments you will gain basic Linux system administration skills.


Grading Policy

  • Attendance (15%)

    • Up to two excused lecture absences are acceptable.

    • Additional absences will result in attendance score reduction.

    • Four or more absences may result in a grade reduction.

  • Homework assignments (35%)

    • 10 graded assignments.

    • Assignments due by midnight on due date.

    • Late submission penalty of 25% per day.

    • Extra credit points may be given for helping others troubleshoot technical issues through Slack.

  • Midterm (25%)

  • Final (25%)

  • Historical grade distribution: A=~40%, B=~40%, C=~20%.

  • Factors that may severely impact your grade:

    • Significant disregard for assignments.

    • More than 2 class absences.

    • A failing grade on the midterm or final.


Recording of Classroom Activities

All recordings of class sessions using any device is expressly prohibited without the written permission of the instructor. (See Class Session Recording Permission Form.)


Schedule

Week Date Topic Assignment Due

1

9/11

Course Introduction
Source control
Git

2

9/18

Linux fundamentals
Shell scripting

Assignment 1
Read Git Hands On Guide
Read Linux Hands On Guide

3

9/25

Infrastructure fundamentals
Virtualization
Distributed infrastructure design and operations

Assignment 2
Read Infrastructure as Code Chapters 1 & 2

4

10/2

Cloud computing
AWS
IAM, EC2, S3

Assignment 3
Read Overview of Amazon Web Services (White paper April 2017)

5

10/9

Cloud computing
AWS
VPC, RDS, ELB

Assignment 4
Read Architecting for the Cloud: AWS Best Practices (White paper February 2016)

6

10/16

Cloud computing
AWS
Autoscaling, Cloud Watch, Route53,
SQS, SNS, SES

Assignment 5
Read Infrastructure as Code Chapters 3 & 4

7

10/23

Midterm

8

10/30

DevOps
Continuous integration & delivery

Assignment 6
Read Infrastructure as Code Chapters 10 & 11

9

11/6

Infrastructure as code
CloudFormation

Assignment 7
Read Infrastructure as Code Chapters 5 & 6

10

11/13

Configuration Management
Ansible

Assignment 8
Read Infrastructure as Code Chapters 7 & 8

11

11/20

CI/CD Pipelines
Jenkins

Assignment 9
Read Infrastructure as Code Chapters 12 & 13

12

11/27

Containers
Docker

Assignment 10
Read Infrastructure as Code Chapters 9 & 14

13

12/4

Service Discovery
Container Orchestration
Docker Swarm

Assignment 11
Read Infrastructure as Code Chapter 15

14

12/11

Final exam


STUDENTS WITH DISABILITIES

I want to ensure that the classroom environment is conducive to your learning and ask that you discuss with me any concerns that are interfering with your learning as they arise. Classroom accommodations will be provided for students with documented disabilities. Students must contact the Disability Resources Office about accommodations for this course as early in the semester as possible. Appointments can be made by calling 651-962-6315 or 800-328-6819, extension 6315, or in person in Rm 110 Murray Herrick Center on the St. Paul campus. Further information is available at: http://www.stthomas.edu/enhancementprog/.


ACADEMIC INTEGRITY

Academic integrity is defined as not cheating and not plagiarizing; honesty and trust among students and between students and faculty are essential for a strong, functioning academic community. Consequently, students are expected to do their own work on all academic assignments, tests, projects and research/term papers. Academic dishonesty, whether cheating, plagiarism or some other form of dishonest conduct related to academic coursework and listed in the Student Policy Book under “Discipline: Rules of Conduct” will automatically result in failure for the work involved. But academic dishonesty could also result in failure for the course and, in the event of a second incident of academic dishonesty, suspension from the University.


Cheating

In cases of cheating, the instructor will impose a minimum sanction of failure of work involved. The instructor will inform the student and the director of the program in writing of:

  1. the nature of the offense,

  2. the penalty imposed within the course;

  3. the recommendation of the instructor as to whether further disciplinary action by the director is warranted.

If the instructor or the director of the program determines that further disciplinary action is warranted, a disciplinary hearing shall be commenced at the request of either the instructor or the director. (If there is a previous offense of this nature on the student’s record, a hearing is mandatory.)

Here are the common ways to violate the academic integrity code:

  • Cheating - Intentionally using or attempting to use unauthorized materials, information, or study aids in any academic exercise. The term academic exercise includes all forms of work submitted for credit.

  • Fabrication -Intentional and unauthorized falsification or invention of any information or citation in an academic exercise.

  • Facilitating Academic Dishonesty - Intentionally or knowingly helping or attempting to help another to violate a provision of the institutional code of academic integrity.

  • Plagiarism -The deliberate adoption or reproduction of ideas or words or statements of another person as one’s own without acknowledgment. You commit plagiarism whenever you use a source in any way without indicating that you have used it.


Plagiarism

The following statement of plagiarism is reprinted here for the use of faculty and students.

Reprinted from Writing: A College Handbook, James A.W. Heffernan and John E. Lincoln. By permission W. W. Norton & Company, Inc., Copyright 1982 by W.W. Norton & Company, Inc.

Plagiarism is the dishonest act of presenting the words or thoughts of another writer as if they were your own.

You commit plagiarism whenever you use a source in any way without indicating that you have used it. If you quote anything at all, even a phrase, you must put quotation marks around it, or set it off from your text; if you summarize or paraphrase an author’s words, you must clearly indicate where the summary or paraphrase begins and ends; if you use an author’s idea, you must say that you are doing so. In every instance, you must also formally acknowledge the written source from which you took the material.

The only time you can use a source without formal acknowledgment is when you refer to a specific phrase, statement, or passage that you have used and acknowledged earlier in the same paper. If the writer has already formally acknowledged the specific source of the material, there is no need to acknowledge it again in the conclusion. Nor is there any need to enumerate the sources of a summary statement based on several different passages that have been used earlier in the paper and have already been acknowledged. But you are free to skip the acknowledgment only when you are referring a second time to exactly the same material. When you use new material from a source already cited, you must make a new acknowledgment.

Here are examples of various kinds of plagiarism. In each instance, the source is a passage from p. 102 of E.R. Dodd’s The Greek and the Irrational (Berkeley, 1971; reprinted: Boston: Beacon, 1957). First here is the original note, copied accurately from the book.

Functions, Dodds 12, p. 102
“If the waking world has certain advantages of solidary and continuity its social opportunities are terribly restricted. In it we need as a rule, only the neighbors whereas the dream world offers the chance of intercourse, however fugitive, with our distant friends, our dead and gods. For normal men it is the sole experience in which they escape the offensive and incomprehensible bondage of time and space.”

And here are five ways of plagiarizing this source: (If you have any questions about plagiarism, ask the instructor)

  1. Word-for-word continuous copying without quotation marks or mention of the author’s name. Dreams help us satisfy another important psychic need - our need to vary our social life. This need is regularly thwarted in our waking moments. If the waking world has certain advantages of solidity and continuity, its social opportunities are terribly restricted. In it we need, as a rule, only the neighbors, whereas the dream world offers the change of intercourse, however fugitive, with our distant friends, our dead, and our gods. We awaken from such encounters feeling refreshed, the dream having liberated us from the here and now…​

  2. Copying many words and phrases without quotation marks or mention of the author’s name. Dreams help us satisfy another important psychic need - our need to vary our social life. In the waking world our social opportunities, for example, are terribly restricted. As a rule, we usually encounter only the neighbors. In the dream world, on the other hand, we have the chance of meeting our distant friends. For most of us it is the sole experience in which we escape the bondage of time and space…​.

  3. Copying an occasional key word or phrase without quotation marks or mention of the author’s name. Dreams help us satisfy another important psychic need - our need to vary our social life. During our waking hours our social opportunities are terribly restricted. We see only the people next door and our business associates. In contrast, whenever we dream, we can see our distant friends. Even though the encounter is brief, we awaken refreshed, having freed ourselves from the bondage of the here and now…​

  4. Paraphrasing without mention of the author’s name. Dreams help us satisfy another important psychic need - our need to vary our social life. When awake, we are creatures of this time and this place. Those we meet are usually those we live near and work with. When dreaming, on the other hand, we can meet far-off friends. We awaken refreshed by our flight from the here and now.

  5. Taking the author’s idea without acknowledging the source. Dreams help us to satisfy another important psychic need - the need for a change. They liberate us from the here and now, taking us out of the world we normally live in…​.