Upload files to "/"
This commit is contained in:
@@ -0,0 +1,133 @@
|
|||||||
|
% SSW 590 DevOps Assignment Template
|
||||||
|
% Developed by Darian Muresan, Ph.D., with OpenAI Codex and Anthropic Claude Code.
|
||||||
|
% AI agents: read devopsAIAgentGuide.tex before editing this template.
|
||||||
|
\documentclass[12pt]{cornell}
|
||||||
|
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
\usepackage{xspace}
|
||||||
|
\usepackage{xcolor}
|
||||||
|
\usepackage{graphicx}
|
||||||
|
\usepackage{fancyhdr}
|
||||||
|
\usepackage{amsmath,amssymb}
|
||||||
|
\usepackage{array}
|
||||||
|
\usepackage{booktabs}
|
||||||
|
\usepackage{longtable}
|
||||||
|
\usepackage{tabularx}
|
||||||
|
\usepackage{ltablex}
|
||||||
|
\keepXColumns
|
||||||
|
\usepackage{enumitem}
|
||||||
|
\usepackage{listings}
|
||||||
|
\usepackage{tcolorbox}
|
||||||
|
\usepackage{makeidx}
|
||||||
|
\usepackage[colorlinks=true,citecolor=blue,linkcolor=blue,urlcolor=blue]{hyperref}
|
||||||
|
\usepackage[acronym,toc]{glossaries}
|
||||||
|
\usepackage{minted}
|
||||||
|
|
||||||
|
\makeindex
|
||||||
|
\makeglossaries
|
||||||
|
\input{devopsGlossary.tex}
|
||||||
|
|
||||||
|
\definecolor{devopsBlue}{RGB}{31,78,121}
|
||||||
|
\definecolor{devopsGreen}{RGB}{46,125,50}
|
||||||
|
\definecolor{devopsRed}{RGB}{183,28,28}
|
||||||
|
\definecolor{devopsGray}{RGB}{90,90,90}
|
||||||
|
\definecolor{devopsLightBlue}{RGB}{232,240,247}
|
||||||
|
|
||||||
|
% Replace these values for each assignment.
|
||||||
|
\newcommand{\AssignmentTitle}{Linux Commands}
|
||||||
|
\newcommand{\AssignmentNumber}{2}
|
||||||
|
\newcommand{\DocumentVersion}{1.4}
|
||||||
|
\newcommand{\DocumentStatus}{}
|
||||||
|
\newcommand{\CourseNumber}{SSW 590}
|
||||||
|
\newcommand{\CourseName}{DevOps}
|
||||||
|
\newcommand{\Instructor}{Maxwell Friedman, Alex Nemirovsky, Sofia Stoeckel, and Magdola Nagy}
|
||||||
|
\newcommand{\Organization}{Stevens Institute of Technology}
|
||||||
|
\newcommand{\DocumentDate}{September 16th, 2026}
|
||||||
|
\newcommand{\DueDate}{}
|
||||||
|
\newcommand{\VERSION}{Version \DocumentVersion}
|
||||||
|
|
||||||
|
\hypersetup{
|
||||||
|
pdftitle={\CourseNumber\ --- Assignment \AssignmentNumber: \AssignmentTitle},
|
||||||
|
pdfauthor={\Instructor},
|
||||||
|
pdfcreator={Darian Muresan, Ph.D., with OpenAI Codex and Anthropic Claude Code},
|
||||||
|
pdfsubject={Reusable DevOps course assignment template},
|
||||||
|
pdfkeywords={DevOps, automation, delivery pipeline, infrastructure as code, evidence}
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcolumntype{Y}{>{\raggedright\arraybackslash}X}
|
||||||
|
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
|
||||||
|
\setlength{\tabcolsep}{4pt}
|
||||||
|
\renewcommand{\arraystretch}{1.12}
|
||||||
|
\setlength{\LTpre}{6pt}
|
||||||
|
\setlength{\LTpost}{6pt}
|
||||||
|
|
||||||
|
% Stable IDs make activity, evidence, and artifact references durable.
|
||||||
|
\newcommand{\ArtifactLabel}[2]{\phantomsection\label{#1:#2}}
|
||||||
|
\newcommand{\ArtifactID}[2]{\texttt{#2}\ArtifactLabel{#1}{#2}\index{#1!#2}}
|
||||||
|
\newcommand{\ArtifactRef}[2]{\hyperref[#1:#2]{\texttt{#2}}}
|
||||||
|
\newcommand{\ActivityID}[1]{\ArtifactID{Activity}{#1}}
|
||||||
|
\newcommand{\ActivityRef}[1]{\ArtifactRef{Activity}{#1}}
|
||||||
|
\newcommand{\EvidenceID}[1]{\ArtifactID{Evidence}{#1}}
|
||||||
|
\newcommand{\EvidenceRef}[1]{\ArtifactRef{Evidence}{#1}}
|
||||||
|
\newcommand{\ChapterLabel}[1]{\label{Chapter:#1}}
|
||||||
|
\newcommand{\ChapterRef}[1]{\hyperref[Chapter:#1]{Chapter~\ref*{Chapter:#1}}}
|
||||||
|
\newcommand{\StatusPass}{\textbf{\footnotesize\textcolor{devopsGreen}{PASS}}}
|
||||||
|
\newcommand{\StatusPending}{\textbf{\footnotesize\textcolor{devopsGray}{PENDING}}}
|
||||||
|
\newcommand{\StatusFail}{\textbf{\footnotesize\textcolor{devopsRed}{FAIL}}}
|
||||||
|
|
||||||
|
\newtcolorbox{devopsNote}[1][]{
|
||||||
|
colback=devopsLightBlue, colframe=devopsBlue, boxrule=0.6pt, arc=1mm, title=#1
|
||||||
|
}
|
||||||
|
|
||||||
|
\lstset{
|
||||||
|
backgroundcolor=\color{white}, basicstyle=\ttfamily\footnotesize,
|
||||||
|
breaklines=true, frame=single, keywordstyle=\color{blue},
|
||||||
|
commentstyle=\color{devopsGreen}, numbers=left, numbersep=6pt,
|
||||||
|
numberstyle=\tiny\color{devopsGray}, showstringspaces=false,
|
||||||
|
stringstyle=\color{devopsRed}, tabsize=2
|
||||||
|
}
|
||||||
|
|
||||||
|
\changenormalspacing{\singlespacing}
|
||||||
|
\begin{document}
|
||||||
|
\pagenumbering{roman}
|
||||||
|
\singlespacing
|
||||||
|
\include{prologue}
|
||||||
|
\include{devopsIntroduction}
|
||||||
|
\include{linuxCommands}
|
||||||
|
\include{digitalOceanDocker}
|
||||||
|
\include{latexDocker}
|
||||||
|
\include{projectProposal}
|
||||||
|
\include{giteaStartup}
|
||||||
|
|
||||||
|
\setcounter{page}{1}
|
||||||
|
\pagenumbering{arabic}
|
||||||
|
\pagestyle{fancy}
|
||||||
|
\fancyhf{}
|
||||||
|
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
|
||||||
|
\lhead{\small Assignment \AssignmentNumber}
|
||||||
|
\chead{\small\nouppercase{\leftmark}}
|
||||||
|
\rhead{\small\thepage}
|
||||||
|
\lfoot{\small\CourseNumber}
|
||||||
|
\cfoot{\small\copyright\ \Organization}
|
||||||
|
\rfoot{\small\VERSION}
|
||||||
|
\renewcommand{\headrulewidth}{0.4pt}
|
||||||
|
\renewcommand{\footrulewidth}{0.4pt}
|
||||||
|
|
||||||
|
\bibliographystyle{IEEEtran}
|
||||||
|
\bibliography{devopsReferences}
|
||||||
|
|
||||||
|
\appendix
|
||||||
|
\include{devopsDocumentGuide}
|
||||||
|
\include{devopsAIAgentGuide}
|
||||||
|
\include{devopsAIPromptLog}
|
||||||
|
|
||||||
|
\glsaddall
|
||||||
|
\printglossaries
|
||||||
|
\cleardoublepage
|
||||||
|
\phantomsection
|
||||||
|
\ChapterLabel{Index}
|
||||||
|
\addcontentsline{toc}{chapter}{Index}
|
||||||
|
\markboth{Index}{Index}
|
||||||
|
\printindex
|
||||||
|
\end{document}
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
\chapter{Document Authoring Guide}
|
||||||
|
\ChapterLabel{DocumentGuide}
|
||||||
|
\index{LaTeX}
|
||||||
|
\index{document conventions}
|
||||||
|
\index{Appendix!Document Authoring Guide}
|
||||||
|
|
||||||
|
\section{How to Use This Appendix}
|
||||||
|
Use this appendix to maintain the template's file conventions, build process,
|
||||||
|
and review rules. Update it when the document structure or toolchain changes.
|
||||||
|
|
||||||
|
\section{Template Provenance}
|
||||||
|
This template was developed by \textbf{Darian Muresan, Ph.D.}, in conjunction
|
||||||
|
with \textbf{OpenAI Codex} and \textbf{Anthropic Claude Code}. Keep this
|
||||||
|
attribution distinct from the assignment-specific instructor metadata.
|
||||||
|
|
||||||
|
\section{File Naming and Responsibilities}
|
||||||
|
Every chapter file shall use the \texttt{devops} prefix, a PascalCase chapter
|
||||||
|
name, and the \texttt{.tex} suffix. Each such file shall contain one complete
|
||||||
|
chapter, beginning with \texttt{\string\chapter\{...\}}, and all of its
|
||||||
|
sections and subsections. Do not split one chapter into section-level
|
||||||
|
\texttt{.tex} files. For example, all of Chapter~2 is contained in
|
||||||
|
\path{devopsExampleAssignment.tex}. Do not add requirements or
|
||||||
|
architecture-design chapters; this template records a DevOps learning activity
|
||||||
|
and its operational evidence.
|
||||||
|
|
||||||
|
\section{Synonyms and Controlled Terms}
|
||||||
|
\index{synonyms}
|
||||||
|
Use one preferred term for each important concept. If an assignment uses
|
||||||
|
equivalent terms, record them here before release. For example, state whether
|
||||||
|
``continuous delivery'' refers to \gls{cd} generally or specifically excludes
|
||||||
|
automatic production deployment. Add important terms to
|
||||||
|
\texttt{devopsGlossary.tex} and index them where used.
|
||||||
|
|
||||||
|
\section{Building the PDF}
|
||||||
|
The template requires a LaTeX distribution with \texttt{pdflatex},
|
||||||
|
\texttt{bibtex}, \texttt{makeglossaries}, and \texttt{makeindex}.
|
||||||
|
Install the tools using the platform instructions below, then run one of the
|
||||||
|
following platform builds.
|
||||||
|
|
||||||
|
\subsection{macOS and Linux Build}
|
||||||
|
\begin{verbatim}
|
||||||
|
make -f makefileMacLinux pdf
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\subsection{Windows PowerShell Build}
|
||||||
|
\begin{verbatim}
|
||||||
|
.\makefilePowerShell.ps1 -Action pdf
|
||||||
|
\end{verbatim}
|
||||||
|
The completed build regenerates references, bibliography, glossary, and index.
|
||||||
|
Review the log and visually inspect affected PDF pages. Do not edit generated
|
||||||
|
auxiliary files or the PDF directly.
|
||||||
|
|
||||||
|
\section{Install LaTeX Tools on macOS}
|
||||||
|
\index{macOS}
|
||||||
|
\index{MacTeX}
|
||||||
|
\subsection{Recommended Installation}
|
||||||
|
Install the current full \href{https://www.tug.org/mactex/}{MacTeX}
|
||||||
|
distribution. It includes TeX Live, \texttt{pdflatex}, \texttt{bibtex},
|
||||||
|
\texttt{latexmk}, \texttt{makeglossaries}, \texttt{makeindex}, and useful
|
||||||
|
applications such as TeXShop and TeX Live Utility. The full distribution is the
|
||||||
|
least troublesome choice for this template because it includes the packages
|
||||||
|
used by the glossary, table, listing, color, and hyperlink features.
|
||||||
|
|
||||||
|
Either download the signed installer from the MacTeX web site and complete the
|
||||||
|
macOS installation dialog, or, if Homebrew is already installed, run:
|
||||||
|
\begin{verbatim}
|
||||||
|
brew install --cask mactex
|
||||||
|
\end{verbatim}
|
||||||
|
Close and reopen Terminal after installation. If the TeX commands are not
|
||||||
|
found, add the MacTeX binary directory to the current shell session:
|
||||||
|
\begin{verbatim}
|
||||||
|
export PATH="/Library/TeX/texbin:$PATH"
|
||||||
|
\end{verbatim}
|
||||||
|
Do not place this command in a shell profile until it has been verified on the
|
||||||
|
local computer.
|
||||||
|
|
||||||
|
\subsection{Verification and Compilation}
|
||||||
|
From the template directory, verify the tools:
|
||||||
|
\begin{verbatim}
|
||||||
|
command -v pdflatex bibtex latexmk makeglossaries makeindex
|
||||||
|
\end{verbatim}
|
||||||
|
Each command should print a path. Then create the PDF:
|
||||||
|
\begin{verbatim}
|
||||||
|
make -f makefileMacLinux pdf
|
||||||
|
\end{verbatim}
|
||||||
|
To remove generated intermediate files while keeping the PDF, run:
|
||||||
|
\begin{verbatim}
|
||||||
|
make -f makefileMacLinux clean
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\section{Install LaTeX Tools on Windows}
|
||||||
|
\index{Windows}
|
||||||
|
\index{MiKTeX}
|
||||||
|
\subsection{Recommended Installation}
|
||||||
|
Install the current Basic MiKTeX distribution using the official
|
||||||
|
\href{https://miktex.org/howto/install-miktex}{MiKTeX Windows installation
|
||||||
|
guide}. During installation, choose a per-user installation when appropriate
|
||||||
|
and set missing-package installation to \emph{Ask me first} or \emph{Yes}.
|
||||||
|
The latter is convenient for a student machine with Internet access; the former
|
||||||
|
makes each package installation explicit.
|
||||||
|
|
||||||
|
Open MiKTeX Console after installation, apply available updates, and install
|
||||||
|
the \texttt{latexmk} package if the verification command below cannot find it.
|
||||||
|
On an organization-managed computer, obtain approval before installing software
|
||||||
|
or changing execution policy.
|
||||||
|
|
||||||
|
\subsection{Verification and Compilation}
|
||||||
|
Open a new PowerShell window in the template directory and verify:
|
||||||
|
\begin{verbatim}
|
||||||
|
Get-Command pdflatex,bibtex,latexmk,makeglossaries,makeindex
|
||||||
|
\end{verbatim}
|
||||||
|
Each command should display a command record. Build the PDF with:
|
||||||
|
\begin{verbatim}
|
||||||
|
.\makefilePowerShell.ps1 -Action pdf
|
||||||
|
\end{verbatim}
|
||||||
|
If PowerShell blocks the script under a managed execution policy, ask the
|
||||||
|
system administrator for the approved procedure. Do not bypass institutional
|
||||||
|
security policy. To remove intermediate build files, run:
|
||||||
|
\begin{verbatim}
|
||||||
|
.\makefilePowerShell.ps1 -Action clean
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\section{Common Build Problems}
|
||||||
|
\begin{tabularx}{\linewidth}{L{3.0cm}Y}
|
||||||
|
\toprule \textbf{Symptom} & \textbf{Resolution}\\ \midrule
|
||||||
|
Command not found & Close and reopen the terminal. On macOS, verify the TeX
|
||||||
|
binary path; on Windows, verify MiKTeX completed installation and is on the user PATH.\\
|
||||||
|
Missing LaTeX package & Use MiKTeX Console or its approved on-the-fly package
|
||||||
|
installation prompt on Windows. On macOS, install the full MacTeX distribution
|
||||||
|
or use TeX Live Utility to add the missing package.\\
|
||||||
|
References or glossary incomplete & Run the supplied platform build instead of
|
||||||
|
a single \texttt{pdflatex} command; it runs BibTeX, the glossary tool, and the
|
||||||
|
index tool in the required order.\\
|
||||||
|
Script is blocked & Follow the institution's approved PowerShell policy or run
|
||||||
|
the documented build commands with an approved administrator.\\ \bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\section{Authoring and Review Rules}
|
||||||
|
Replace bracketed placeholders with assignment facts. Keep operational examples
|
||||||
|
safe, bounded, and free of credentials. Link activities to evidence, retain
|
||||||
|
history, and state unknowns or instructor decisions explicitly. Rebuild after
|
||||||
|
structural, cross-reference, table, glossary, or index changes.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
\chapter*{Document History}
|
||||||
|
\addcontentsline{toc}{chapter}{Document History}
|
||||||
|
\index{document history}
|
||||||
|
\section*{How to Use This Chapter}
|
||||||
|
Add the newest approved change at the top. Retain every approved entry and
|
||||||
|
link each entry to the changed chapter, table, figure, or controlled artifact.
|
||||||
|
|
||||||
|
\begin{tabularx}{\linewidth}{L{3.1cm}L{2.2cm}YL{2.0cm}}
|
||||||
|
\caption{Document Update History\label{Table:DocumentHistory}}\\
|
||||||
|
\toprule \textbf{Date / Version} & \textbf{Author Initials} & \textbf{Change} & \textbf{Changed At}\\ \midrule
|
||||||
|
\endfirsthead
|
||||||
|
\multicolumn{4}{l}{\small\itshape Document Update History (continued)}\\
|
||||||
|
\toprule \textbf{Date / Version} & \textbf{Author Initials} & \textbf{Change} & \textbf{Changed At}\\ \midrule
|
||||||
|
\endhead \bottomrule \endlastfoot
|
||||||
|
September 24, 2026 / 1.5 & MF, AN, SS, MN & Created the Digital Ocean Docker Deployment, LaTeX, and Project Proposal chapters. & \ChapterRef{DigitalOceanDocker}, \ChapterRef{LatexDocker}, \ChapterRef{ProjectProposal}\\
|
||||||
|
September 16, 2026 / 1.4 & MF, AN, SS, MN & Created the Linux Commands chapter at \texttt{linuxCommands.tex}. & \ChapterRef{LinuxCommands}\\
|
||||||
|
September 2, 2026 / 1.3 & DDM, CDX & Established the one-file-per-chapter convention, added it to the AI Agent Usage Guide, and consolidated the complete example assignment chapter into \texttt{devopsExampleAssignment.tex}. & \ChapterRef{ExampleAssignment}, \ChapterRef{AIAgentGuide}, \ChapterRef{DocumentGuide}\\
|
||||||
|
September 2, 2026 / 1.2 & DDM, CDX & Added macOS MacTeX and Windows MiKTeX installation, verification, compilation, cleanup, and troubleshooting instructions to the Document Authoring Guide appendix. & \ChapterRef{DocumentGuide}\\
|
||||||
|
September 2, 2026 / 1.1 & DDM, CDX & Reorganized the example assignment as one chapter with activity, workflow, evidence, retrospective, and submission sections so each homework can follow the same chapter pattern. & \ChapterRef{ExampleAssignment}\\
|
||||||
|
September 2, 2026 / 1.0 & DDM, CDX & Created the reusable SSW 590 DevOps assignment template from the architecture template infrastructure; replaced requirements and design chapters with activity, workflow, evidence, retrospective, and submission chapters. & \ChapterRef{Introduction}, \ChapterRef{ExampleAssignment}, \ChapterRef{AIAgentGuide}\\
|
||||||
|
\textit{[date / version]} & \textit{[initials]} & \textit{[approved change and rationale]} & \textit{[link]}\\
|
||||||
|
\end{tabularx}
|
||||||
@@ -0,0 +1,126 @@
|
|||||||
|
\chapter{Example Assignment}
|
||||||
|
\ChapterLabel{ExampleAssignment}
|
||||||
|
\index{activity brief}
|
||||||
|
\index{workflow}
|
||||||
|
\index{automation}
|
||||||
|
\index{infrastructure as code}
|
||||||
|
\index{evidence}
|
||||||
|
\index{observability}
|
||||||
|
\index{rollback}
|
||||||
|
\index{retrospective}
|
||||||
|
\index{continuous improvement}
|
||||||
|
\index{submission}
|
||||||
|
\index{cleanup}
|
||||||
|
|
||||||
|
\section{Activity Brief}
|
||||||
|
\subsection{Scenario}
|
||||||
|
Describe the operational scenario and why it matters. Use a bounded,
|
||||||
|
non-production system. \textit{Example: A team must deploy a small service
|
||||||
|
reliably to a remote Linux host and recover from a failed release.}
|
||||||
|
|
||||||
|
\subsection{Activities}
|
||||||
|
Assign stable IDs to each assessed activity. Add rows as needed.
|
||||||
|
\begin{tabularx}{\linewidth}{L{2.1cm}L{3.1cm}Y}
|
||||||
|
\caption{Activity Register\label{Table:ActivityRegister}}\\
|
||||||
|
\toprule \textbf{ID} & \textbf{Activity} & \textbf{Completion criterion}\\ \midrule
|
||||||
|
\ActivityID{ACT-01} & \textit{[Prepare environment]} & \textit{[repeatable environment baseline is present]}\\
|
||||||
|
\ActivityID{ACT-02} & \textit{[Automate workflow]} & \textit{[workflow runs from documented inputs]}\\
|
||||||
|
\ActivityID{ACT-03} & \textit{[Observe and recover]} & \textit{[evidence shows monitoring and recovery]}\\ \bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\subsection{Success Criteria}
|
||||||
|
State observable outcomes, not implementation prescriptions. Include security,
|
||||||
|
cost, cleanup, and reproducibility criteria where applicable.
|
||||||
|
|
||||||
|
\subsection{Assessment Rubric}
|
||||||
|
\begin{tabularx}{\linewidth}{L{3.2cm}L{2.0cm}Y}
|
||||||
|
\toprule \textbf{Criterion} & \textbf{Weight} & \textbf{Evidence expected}\\ \midrule
|
||||||
|
Reproducible workflow & \textit{[points]} & \textit{[automation and clean-run proof]}\\
|
||||||
|
Operational quality & \textit{[points]} & \textit{[observability, rollback, security]}\\
|
||||||
|
Evidence and explanation & \textit{[points]} & \textit{[commands, outputs, rationale]}\\
|
||||||
|
Reflection & \textit{[points]} & \textit{[failure analysis and improvement]}\\ \bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\section{Workflow and Implementation}
|
||||||
|
\subsection{Environment Baseline}
|
||||||
|
Specify the authorized environment, prerequisites, access model, versioned
|
||||||
|
inputs, and teardown procedure. Record commands in a repository script or
|
||||||
|
infrastructure-as-code definition; do not rely on a sequence of undocumented
|
||||||
|
console clicks.
|
||||||
|
|
||||||
|
\subsection{Procedure}
|
||||||
|
For each activity, state the goal, input, command or automation entry point,
|
||||||
|
expected result, and rollback or cleanup action. Link the corresponding
|
||||||
|
activity identifier and evidence identifier.
|
||||||
|
|
||||||
|
\begin{lstlisting}[language=bash,caption={Replace with a safe, repeatable workflow entry point.}]
|
||||||
|
# ./scripts/provision.sh --environment sandbox
|
||||||
|
# ./scripts/deploy.sh --version <tag>
|
||||||
|
# ./scripts/destroy.sh --environment sandbox
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
\subsection{Operational Controls}
|
||||||
|
Describe least-privilege access, secret handling, logging, monitoring, change
|
||||||
|
control, budget guardrails, backup or rollback, and resource cleanup. A secret
|
||||||
|
shall be referenced by its approved storage location, never pasted into this
|
||||||
|
document or committed to the repository.
|
||||||
|
|
||||||
|
\subsection{Failure Exercise}
|
||||||
|
Define one safe failure or degradation scenario. State the trigger, expected
|
||||||
|
signal, diagnosis path, recovery action, and evidence required. Never direct
|
||||||
|
students to disrupt shared or production infrastructure.
|
||||||
|
|
||||||
|
\section{Evidence Register}
|
||||||
|
\subsection{How to Use This Section}
|
||||||
|
Evidence demonstrates an actual execution; an expected result is not evidence.
|
||||||
|
Use sanitized command output, logs, screenshots, links to versioned files, or
|
||||||
|
recorded metrics. Redact secrets and personal information.
|
||||||
|
|
||||||
|
\begin{tabularx}{\linewidth}{L{1.7cm}L{2.2cm}L{2.6cm}Y}
|
||||||
|
\caption{Evidence Register\label{Table:EvidenceRegister}}\\
|
||||||
|
\toprule \textbf{ID} & \textbf{Activity} & \textbf{Evidence type} & \textbf{Location and interpretation}\\ \midrule
|
||||||
|
\EvidenceID{EVD-01} & \ActivityRef{ACT-01} & \textit{[log / script / image]} & \textit{[repository path or sanitized URL; what it demonstrates]}\\
|
||||||
|
\EvidenceID{EVD-02} & \ActivityRef{ACT-02} & \textit{[pipeline output]} & \textit{[location; result and relevant timestamp]}\\
|
||||||
|
\EvidenceID{EVD-03} & \ActivityRef{ACT-03} & \textit{[monitoring / recovery output]} & \textit{[location; failure signal and recovery result]}\\ \bottomrule
|
||||||
|
\end{tabularx}
|
||||||
|
|
||||||
|
\subsection{Evidence Quality Checks}
|
||||||
|
Evidence should identify the executed version, environment, time, command or
|
||||||
|
automation entry point, outcome, and any deviation from the expected result.
|
||||||
|
State failures plainly; they are valuable inputs to the retrospective.
|
||||||
|
|
||||||
|
\section{Retrospective}
|
||||||
|
\subsection{Outcome}
|
||||||
|
Summarize what happened, including completed work, gaps, and unexpected
|
||||||
|
behavior. Distinguish facts from interpretation.
|
||||||
|
|
||||||
|
\subsection{Flow and Feedback}
|
||||||
|
Identify queues, handoffs, manual steps, slow feedback, and sources of rework.
|
||||||
|
Explain which changes improved delivery flow or made failures visible sooner.
|
||||||
|
This emphasis on flow, feedback, and continual learning is consistent with the
|
||||||
|
DevOps framing introduced in \cite{PhoenixProject}.
|
||||||
|
|
||||||
|
\subsection{Improvement Experiments}
|
||||||
|
Propose one or more small, testable improvements. State the hypothesis, change,
|
||||||
|
measurement, expected result, and risk. Do not represent a proposal as an
|
||||||
|
approved production change.
|
||||||
|
|
||||||
|
\subsection{Team Contributions}
|
||||||
|
For team assignments, concisely identify each member's meaningful contribution
|
||||||
|
and any collaboration constraints.
|
||||||
|
|
||||||
|
\section{Submission and Cleanup}
|
||||||
|
\subsection{Submission Checklist}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Versioned automation, configuration, and runbook are committed.
|
||||||
|
\item Evidence links resolve and contain no secrets or personal data.
|
||||||
|
\item The retrospective is complete and distinguishes results from proposals.
|
||||||
|
\item Remote resources have been destroyed or explicitly transferred as directed.
|
||||||
|
\item The repository identifies the final commit or release tag.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\subsection{Academic Integrity and Responsible Use}
|
||||||
|
Follow the course policy for collaboration and AI assistance. Cite external
|
||||||
|
code, tutorials, and AI-generated material as required by the instructor.
|
||||||
|
Students remain responsible for understanding, testing, and explaining all
|
||||||
|
submitted work.
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
\newacronym{ai}{AI}{artificial intelligence}
|
||||||
|
\newacronym{ci}{CI}{continuous integration}
|
||||||
|
\newacronym{cd}{CD}{continuous delivery or continuous deployment}
|
||||||
|
\newacronym{iac}{IaC}{infrastructure as code}
|
||||||
|
\newacronym{slo}{SLO}{service-level objective}
|
||||||
|
\newglossaryentry{automation}{name={automation},description={A repeatable, version-controlled procedure executed by software rather than undocumented manual steps}}
|
||||||
|
\newglossaryentry{deployment}{name={deployment},description={The controlled delivery of a versioned change to an environment}}
|
||||||
|
\newglossaryentry{evidence}{name={evidence},description={A retained record of an actual execution, observation, or review}}
|
||||||
|
\newglossaryentry{observability}{name={observability},description={The ability to infer system behavior from signals such as logs, metrics, traces, and health checks}}
|
||||||
|
\newglossaryentry{pipeline}{name={pipeline},description={An automated sequence that builds, tests, packages, and/or deploys a change}}
|
||||||
|
\newglossaryentry{rollback}{name={rollback},description={A controlled return to a known acceptable version or state after a failed or harmful change}}
|
||||||
|
\newglossaryentry{runbook}{name={runbook},description={A documented operational procedure for a repeatable task or incident response}}
|
||||||
|
\newglossaryentry{synonyms}{name={synonyms},description={Equivalent terms used in this assignment; record preferred terms to avoid ambiguity in instructions and evidence}}
|
||||||
Reference in New Issue
Block a user