You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,7 +49,7 @@ The schedule is at <https://www.kth.se/social/course/DD2482/calendar/>
49
49
50
50
51
51
To pass the course, the student has to complete and pass between 3 and 5 tasks:
52
-
* The tasks are in category: "[presentation (mandatory)](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#presentations)", "[demo (mandatory)](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#demos)", "[scientific paper](https://github.com/KTH/devops-course/blob/2024/grading-criteria.paper)", "[executable tutorial](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#executable-tutorials)", "[contribution to open-source](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#open-source-contributions)", "[feedback](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#feedback)" (presentation and demos are mandatory, at most one in the same category, it is not necessary to cover everything).
52
+
* The tasks are in category: "[presentation (mandatory)](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#presentations)", "[demo (mandatory)](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#demos)", "[scientific paper](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#scientific-papers)", "[executable tutorial](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#executable-tutorials)", "[contribution to open-source](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#open-source-contributions)", "[feedback](https://github.com/KTH/devops-course/blob/2024/grading-criteria.md#feedback)" (presentation and demos are mandatory, at most one in the same category, it is not necessary to cover everything).
53
53
* The [grading criteria page](grading-criteria.md) is the unique reference which explains how to pass each task category.
54
54
* The student proposes a category and a topic, which is discussed and accepted by the TA. The proposal is made as a [structured pull-request](https://github.com/KTH/devops-course/blob/2024/.github/pull_request_template.md) on this repository. The 3-5 graded contributions must have little overlap.
55
55
* The same student cannot choose the same topic for two different tasks. The 3-5 tasks should cover different aspects of DevOps.
Copy file name to clipboardExpand all lines: contributions/README.md
+68Lines changed: 68 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,3 +61,71 @@ General Intro about the course.
61
61
1.[Quality Assurance in MLOps Setting: An Industrial Perspective](https://github.com/KTH/devops-course/pull/2479)
62
62
1.[The importance of reliable testing methods](https://github.com/KTH/devops-course/pull/2397)
63
63
64
+
### Week 5
65
+
66
+
1.[Comparing the differential mechanisms of declarative Terraform and imperative AWS infrastructure as code.](https://github.com/KTH/devops-course/pull/2387)
67
+
1.[Ensuring Terraform environment stability with Github Actions](https://github.com/KTH/devops-course/pull/2380)
68
+
1.[Using Serverless and Terraform to automate the deployment of a web application to AWS](https://github.com/KTH/devops-course/pull/2391)
69
+
1.[_AWS Cloud Development Kit - Define your cloud application resources using familiar programming languages_](https://github.com/KTH/devops-course/pull/2392)
70
+
1.[Declarative and reproducible deployments with NixOS](https://github.com/KTH/devops-course/pull/2400)
71
+
1.[_AIAC: An AI Infrastructure-as-code Generator_](https://github.com/KTH/devops-course/pull/2395)
72
+
1.[_Saltstack: Grains, States and Pillars_](https://github.com/KTH/devops-course/pull/2394)
73
+
1.[Dockerfile Compliance Scanning with Docker Bench and Trivy](https://github.com/KTH/devops-course/pull/2432)
74
+
1.[Using Bicep to edit Azure resources as code](https://github.com/KTH/devops-course/pull/2398)
75
+
1.[Vagrant - How a group of students can experience IaC at home](https://github.com/KTH/devops-course/pull/2440)
76
+
1.[Comparing Pulumi and Terraform: Imperative Language vs. Declaritive Language](https://github.com/KTH/devops-course/pull/2444)
77
+
1.[Terraform - Using infrastructre as code in DevOps](https://github.com/KTH/devops-course/pull/2458)
78
+
1.[The do’s and don’ts of infrastructure code: A systematic gray literature review](https://github.com/KTH/devops-course/pull/2499)
79
+
1.[Cost Optimization with Infrastructure as Code](https://github.com/KTH/devops-course/pull/2484)
80
+
1.[BlueBuild: The Cloud-Native Desktop Paradigm](https://github.com/KTH/devops-course/pull/2508)
81
+
1.[Check-mate: Keep your OpenTofu configurations problem-free](https://github.com/KTH/devops-course/pull/2511)
82
+
1.[_TruffleHog - Identifying vulnerable management of secrets for IaC_](https://github.com/KTH/devops-course/pull/2510)
83
+
1.[Using Pulumi Policy as Code to enforce rules on IaC managed cloud resources.](https://github.com/KTH/devops-course/pull/2489)
84
+
1.[Strimzi - Easy Apache Kafka on Kubernetes](https://github.com/KTH/devops-course/pull/2514)
85
+
1.[Infrastructure as code for dynamic deployments](https://github.com/KTH/devops-course/pull/2515)
86
+
1.[Creating Spotify playlist using Terraform](https://github.com/KTH/devops-course/pull/2531)
87
+
1.[Disaster Recovery using Terraform](https://github.com/KTH/devops-course/pull/2544)
88
+
89
+
### Week 6
90
+
91
+
1.[GitGuardian: Preventing Data Leaks Through Automated Security](https://github.com/KTH/devops-course/pull/2396)
92
+
1.[Yet another cybersecurity risk assessment framework](https://github.com/KTH/devops-course/pull/2402)
93
+
1.[Using Bitwarden Secret Manager to centrally store, manage, and deploy secrets at scale.](https://github.com/KTH/devops-course/pull/2409)
94
+
1.[Making your NPM security wishes come true.](https://github.com/KTH/devops-course/pull/2421)
95
+
1.[Continuous Information Flow Control](https://github.com/KTH/devops-course/pull/2439)
96
+
1.[Comparing pnpm, npm and yarn](https://github.com/KTH/devops-course/pull/2443)
97
+
1.[Dynamic Secrets in HashiCorp Vault](https://github.com/KTH/devops-course/pull/2447)
98
+
1.[_Streamlining Python Dependency Management with Poetry_](https://github.com/KTH/devops-course/pull/2449)
99
+
1.[_Hardening GitHub Actions for increased security_](https://github.com/KTH/devops-course/pull/2468)
100
+
1.[Ensuring the integrity and source of software packages](https://github.com/KTH/devops-course/pull/2477)
101
+
1.[Detecting vulnerabilities in Python code using static code analysis with Bandit](https://github.com/KTH/devops-course/pull/2507)
102
+
1.[Integrating Organizational Policies Using Open Policy Agent](https://github.com/KTH/devops-course/pull/2512)
103
+
1.[Using dependabot to automatically detect vulnerabilities in imported packages](https://github.com/KTH/devops-course/pull/2513)
104
+
1.[Arc Browser's impotant security breach and why SecDevOps is important](https://github.com/KTH/devops-course/pull/2545)
105
+
1.[The event stream incident - vulnerabilities of open source dependencies and possible mitigations. ](https://github.com/KTH/devops-course/pull/2525)
106
+
1.[NixOS: Reproducibility with Flakes and Secrets](https://github.com/KTH/devops-course/pull/2546)
107
+
1.[Secure your git and CD pipeline with SOPS.](https://github.com/KTH/devops-course/pull/2526)
108
+
1.[Challenges and solutions when adopting DevSecOps: A systematic review](https://github.com/KTH/devops-course/pull/2550)
109
+
1.[Using Semgrep to find vulnerabilities](https://github.com/KTH/devops-course/pull/2551)
110
+
1.[Machine Learning-Based Run-Time DevSecOps: ChatGPT Against Traditional Approach](https://github.com/KTH/devops-course/pull/2556)
111
+
1.[Implementing and Automating Security Scanning to](https://github.com/KTH/devops-course/pull/2547)
112
+
1.[Integrate RetireJS into Github workflow](https://github.com/KTH/devops-course/pull/2553)
113
+
1.[The Seven Sins: Security Smells in Infrastructure as Code Scripts](https://github.com/KTH/devops-course/pull/2552)
114
+
1.[Using static analysis with SonarCloud to identify security flaws.](https://github.com/KTH/devops-course/pull/2558)
115
+
1.[Automating Private Dependency Management and Version Integration](https://github.com/KTH/devops-course/pull/2569)
116
+
117
+
### Week 7
118
+
119
+
1.[DevOps Education - Challenges and Recommendations](https://github.com/KTH/devops-course/pull/2448)
1.[AI Anomaly Detection for log monitoring](https://github.com/KTH/devops-course/pull/2496)
122
+
1.[Infrastructure as Code Using Ansible Playbooks](https://github.com/KTH/devops-course/pull/2536)
123
+
1.[DevOps at Scale: Managing Complex Service Architectures in Large Technical Companies](https://github.com/KTH/devops-course/pull/2523)
124
+
1.[Chaos Engineering with Chaos Monkey](https://github.com/KTH/devops-course/pull/2549)
125
+
1.[Data Version Control for MLOps with DVC](https://github.com/KTH/devops-course/pull/2560)
126
+
1.[A Case Study of Developer Bots: Motivations, Perceptions, and Challenges](https://github.com/KTH/devops-course/pull/2532)
127
+
1.[Understanding GDPR and its importance for DevOps](https://github.com/KTH/devops-course/pull/2585)
128
+
1.[ChatOps Bots for Monitoring and Incident Response in DevOps](https://github.com/KTH/devops-course/pull/2592)
129
+
1.[Metrics vs Logging for DevOps Monitoring (Comparing Prometheus and ELK Stack)](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week7/linussve-daniellw/README.md)
130
+
1.[Software licencing overview and compliance automation](https://github.com/KTH/devops-course/pull/2614)
Our demo will be of the CMT Saltstack. Our Demo will first introduce a brief overhead of some common configuration management tools and Saltstack's place among these. After this we will show Saltstacks flexibility in its features and its Event features.
23
+
24
+
25
+
**Relevance**
26
+
Our demo will showcase one of the alternatives to scalable configuration management tools, Saltstack (Salt), and how it shines in terms of customizability and flexibility.
27
+
SaltStack has significant relevance to DevOps practices, as it provides tools that directly align with the core principles of DevOps: automation, collaboration, continuous delivery, and infrastructure management.
This demo will demonstrate mainly how terraform can be used as a strong tool for disaster recovery and creating Virtual Machines on Google Cloud Services, as well as how to create an infrastructure as desired using terraform.
26
+
27
+
**Relevance**
28
+
29
+
By automating recovery processes, organizations can improve resilience, efficiency, reliability, compliance, and customer experience. This is essential in today's fast-paced, technology-driven world, where downtime can have severe
Using Terraform to create a Spotify playlist as an application of Infrastructure as Code (IaC) demonstrates how we can automate the management of infrastructure through code. This can then be transitioned to OpenTofu, an open-source Terraform fork, to highlight flexibility in tool choice within a DevOps pipeline.
23
+
24
+
**Relevance**
25
+
26
+
OpenTofu is a fork of Terraform that was created after HashiCorp, the company behind Terraform changed the licensing model. OpenTofu retains the same core functionality as Terraform but is community-driven and free from licensing restrictions. Transitioning from Terraform to OpenTofu for managing the Spotify playlist highlights the ability to switch tools without drastically changing the overall workflow. The configuration files remain largely the same, demonstrating tooling flexibility and the importance of open-source alternatives in DevOps environments. Using Terraform/OpenTofu to manage a Spotify playlist makes the process more collaborative. Anyone with access to the codebase can propose changes to the playlist, enabling more structured and transparent change management between teams.
As an organization's systems grow in breadth and complexity, it becomes paramount to have a single source of truth which can accurately document how the organization's infrastructure is organized, what services should be running where, and what state exists to be kept under consideration for, e.g., backups. Additionally, it is important that this information is sufficient to rebuild the entire network (or parts thereof), ideally in an automated manner and with the least friction possible.
22
+
23
+
I intend to present a solution to this problem, which comprises a tight integration of three different tools, each of which specializing in declarative definitions at different levels: Terraform is used to provision machines and configure them, NixOS ensures their reproducibility and of the environment they provide, and Nomad handles runtime orchestration of jobs according to concrete specifications.
24
+
25
+
This is the solution currently in use by KTH's Computer Science Chapter (Datasektionen), where I am responsible for all systems and overarching IT infrastructure. My plan for this demo is to showcase how one might introduce a new host running a new service (e.g., Vaultwarden), highlighting the different steps and considerations involved. The goal is not to explain how to set up the base declarative structure, but rather to demonstrate an incremental change that would be realistic in day-to-day operations and thus exemplify the benefits and quirks of using Infrastructure-as-Code.
26
+
27
+
**Relevance**
28
+
29
+
Reproducibility and centralized self-documentation are very attractive core tenets to a growing number of organizations, given the immense benefits they usually imply - this makes Infrastructure-as-Code (IaC) a very important concept to understand and keep in mind when considering different solutions and architectures. However, IaC is difficult to explain due to the multitude of parts involved, so one may sometimes find it hard to understand concretely how it works and what normal usage looks like. My demo strives to show a realistic example of how a professional might make use of IaC to assist them in their normal operations.
Managing Kubernetes secrets can be challenging, especially when the infrastructure is defined in code in a public git repository. By default, Kubernetes secrets are only base64 encoded but not encrypted which is not sufficiently secure. Sealed Secrets is a tool that allows secrets to be encrypted by the developer and remain so until they reach the cluster.
22
+
23
+
In this demo, I will begin by demonstrating how secrets can be distributed without Sealed Secrets to illustrate the security risk. I will then introduce Sealed Secrets and demonstrate how it solves this problem and makes the distribution more secure.
24
+
25
+
**Relevance**
26
+
27
+
This demo is relevant to DevOps as it addresses secure secret management in Kubernetes which is a key principle in DevSecOps.
0 commit comments