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 |
|
2 |
9/18 |
Linux fundamentals |
Assignment 1 |
3 |
9/25 |
Infrastructure fundamentals |
Assignment 2 |
4 |
10/2 |
Cloud computing |
Assignment 3 |
5 |
10/9 |
Cloud computing |
Assignment 4 |
6 |
10/16 |
Cloud computing |
Assignment 5 |
7 |
10/23 |
Midterm |
|
8 |
10/30 |
DevOps |
Assignment 6 |
9 |
11/6 |
Infrastructure as code |
Assignment 7 |
10 |
11/13 |
Configuration Management |
Assignment 8 |
11 |
11/20 |
CI/CD Pipelines |
Assignment 9 |
12 |
11/27 |
Containers |
Assignment 10 |
13 |
12/4 |
Service Discovery |
Assignment 11 |
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:
-
the nature of the offense,
-
the penalty imposed within the course;
-
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)
-
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…
-
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….
-
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…
-
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.
-
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….