Skip to content

Commit

Permalink
Merge remote
Browse files Browse the repository at this point in the history
  • Loading branch information
Uqqasha committed Sep 17, 2024
2 parents 2f05863 + dc65a47 commit 71b2621
Show file tree
Hide file tree
Showing 53 changed files with 1,748 additions and 11 deletions.
34 changes: 34 additions & 0 deletions .github/workflows/lecture_participation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Lecture Participation Information

on:
issue_comment:
types: [created]

permissions:
issues: write

jobs:
track-participation:
if: github.event.issue.number == 2370
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Setup Python
uses: actions/[email protected]
with:
python-version: '3.11.8'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f ./tools/requirements.txt ]; then pip install -r ./tools/requirements.txt; fi
- name: Update participation tracker
working-directory: tools
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO_FULLNAME: ${{ github.repository }}
TRACKER_ISSUE_NUMBER: ${{ github.event.issue.number }}

run: python track_participation.py --printMarkdown --publish
65 changes: 54 additions & 11 deletions contributions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,59 @@ General Intro about the course.

### Week 2

* Presentation: [Property-based testing in Python using Hypothesis](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/samkh-atheers)
* Demo: [Enforcing version consistency between identical package dependencies in monorepos](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/hallkvi-ieinberg)
* Presentation: [Introducing Team City pipelines a CI/CD tool for samll, mid-sized dev teams by JetBrains](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/rikj-hocker)
* Demo: [CircleCI Pipeline Improved with Cache and Parallel Workflow](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/hexu-yinanhu)
* Presentation: [Bridging Development and Operations: BDD in Automated Frontend Testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/noelt-miladsf)
* Demo: [Continuous integretion testing of node and service availability of promox instances](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/mqnguyen-golman)
* Presentation: [Split.io, a Feature Flag tool, that can be used for A/B Testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/lvainio-oscols)
* Demo: [Integrating Robocop Analysis Report in SonarQube](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/uqqasha)
* Presentation: [The Crowdstrike bug, and the importance of high-quality testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/ghenn-vikfor)
* Presentation: [Automated UI testing using Playwright](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/catir-robcla)
* Presentation: [Mockito: What it is, how it works, and how it improves automated testing in Java](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/maxisr-jbiorck)
1. [Property-based testing in Python using Hypothesis](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/samkh-atheers)
1. [Enforcing version consistency between identical package dependencies in monorepos](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/hallkvi-ieinberg)
1. [Introducing Team City pipelines a CI/CD tool for samll, mid-sized dev teams by JetBrains](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/rikj-hocker)
1. [CircleCI Pipeline Improved with Cache and Parallel Workflow](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/hexu-yinanhu)
1. [Bridging Development and Operations: BDD in Automated Frontend Testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/noelt-miladsf)
1. [Continuous integretion testing of node and service availability of promox instances](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/mqnguyen-golman)
1. [Split.io, a Feature Flag tool, that can be used for A/B Testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/lvainio-oscols)
1. [Integrating Robocop Analysis Report in SonarQube](https://github.com/KTH/devops-course/tree/2024/contributions/demo/week2/uqqasha)
1. [The Crowdstrike bug, and the importance of high-quality testing](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/ghenn-vikfor)
1. [Automated UI testing using Playwright](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/catir-robcla)
1. [Mockito: What it is, how it works, and how it improves automated testing in Java](https://github.com/KTH/devops-course/tree/2024/contributions/presentation/week2/maxisr-jbiorck)

### Week 3

1. [Github Actions workflow for deploying to an AWS Lambda function.](https://github.com/KTH/devops-course/pull/2373)
1. [The importance of containerization ](https://github.com/KTH/devops-course/pull/2390)
1. [An Empirical Study of Architecting for Continuous Delivery and Deployment](https://github.com/KTH/devops-course/pull/2407)
1. [Get started with Terraform : Continuous Deployment in AWS through Github Actions](https://github.com/KTH/devops-course/pull/2406)
1. [Continous Deployment and Rollback using Railway](https://github.com/KTH/devops-course/pull/2436)
1. [Understanding Security Threats in Open-Source Software CI/CD Pipelines](https://github.com/KTH/devops-course/pull/2411)
1. [Blue-Green Deployment: Ensuring Zero Downtime in Continuous Deployment](https://github.com/KTH/devops-course/pull/2412)
1. [Automated Changelog-Driven Deployments with GitHub Actions and Release Please](https://github.com/KTH/devops-course/pull/2413)
1. [An Interactive Demonstration of Automated Canary Deployment using AWS and GitHub Actions](https://github.com/KTH/devops-course/pull/2414)
1. [Flyway: Version Control for Databases](https://github.com/KTH/devops-course/pull/2404)
1. [Deployment and rollbacks with Kubernetes](https://github.com/KTH/devops-course/pull/2415)
1. [From Continuous Delivery to Continuous Deployment in GoCD with Gomatic.](https://github.com/KTH/devops-course/pull/2418)
1. [Harness: World's first AI-augmented software delivery platform](https://github.com/KTH/devops-course/pull/2425)
1. [Automating Software Releases with jReleaser and GitHub Actions](https://github.com/KTH/devops-course/pull/2426)
1. [Using ArgoCD for Continuous Deployment in Kubernetes](https://github.com/KTH/devops-course/pull/2435)
1. [Gitlab CI/CD workflow for deploying fullstack web application on self-hosted server via docker.](https://github.com/KTH/devops-course/pull/2437)
1. [Reducing Downtime with Blue-Green Deployment using Vercel](https://github.com/KTH/devops-course/pull/2445)
1. [Continuous Deployment in IoT Edge devices using Azure ](https://github.com/KTH/devops-course/pull/2441)
1. [_Microservices: Architecting for Continuous Delivery and DevOps_](https://github.com/KTH/devops-course/pull/2399)
1. [Revisiting the practices and pains of microservice architecture in reality: An industrial inquiry](https://github.com/KTH/devops-course/pull/2416)
1. [Exploring Canary Deployments in Modern DevOps](https://github.com/KTH/devops-course/pull/2424)
1. [Rainbow deployments and its role in modern CD](https://github.com/KTH/devops-course/pull/2422)

### Week 4

1. [_CRISP-ML(Q). The End-to-End Machine Learning Workflow_](https://github.com/KTH/devops-course/pull/2417)
1. [The importance of reliable testing methods](https://github.com/KTH/devops-course/pull/2398)
1. [Using Bicep to edit Azure resources as code](https://github.com/KTH/devops-course/pull/2398)
1. [Tensorboard: A suite of visualization tools to understand, debug, and optimize TensorFlow programs for ML experimentation](https://github.com/KTH/devops-course/pull/2442)
1. [Dynamic model rollbacks using MLflow](https://github.com/KTH/devops-course/pull/2452)
1. [CodeRabbit: Automated AI Code Reviews](https://github.com/KTH/devops-course/pull/2460)
1. [Machine Learning Operations (MLOps): Overview, Definition, and Architecture](https://github.com/KTH/devops-course/pull/2464)
1. [Predicting Node Failures in an Ultra-Large-Scale Cloud Computing Platform: An AIOps Solution](https://github.com/KTH/devops-course/pull/2472)
1. [TinyMLOps: Operational Challenges for Widespread Edge AI Adoption](https://github.com/KTH/devops-course/pull/2478)
1. [Elyra: an open-source JupyterLab extension for creating ML pipelines](https://github.com/KTH/devops-course/pull/2471)
1. [MLOps: A Taxonomy and a Methodology](https://github.com/KTH/devops-course/pull/2473)
1. [What is a Feature Store in ML?](https://github.com/KTH/devops-course/pull/2482)
1. [Feast in MLOps](https://github.com/KTH/devops-course/pull/2476)
1. [Using Comet ML to analyze and compare the performance of ML models](https://github.com/KTH/devops-course/pull/2485)
1. [MLOps for Cyber-Physical Production Systems: Challenges and Solutions](https://github.com/KTH/devops-course/pull/2486)
1. [Quality Assurance in MLOps Setting: An Industrial Perspective](https://github.com/KTH/devops-course/pull/2479)

27 changes: 27 additions & 0 deletions contributions/demo/week3/hugomal-oschel/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Assignment Proposal

## Title

Automating Software Releases with jReleaser and GitHub Actions

## Names and KTH ID

- Hugo Malmberg ([email protected])
- Oscar Hellgren ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description

We will demonstrate how to automate the software release process using jReleaser and GitHub Actions. The GitHub Actions workflow will be triggered when a new release tag is pushed to the repository. jReleaser will handle tasks such as generating a changelog from commit messages, packaging the software, signing artifacts.


**Relevance**

jReleaser is an emerging tool for automating software releases, making it a valuable addition to any DevOps pipeline. This demo will show how jReleaser can simplify the release process by automating tedious tasks like changelog generation, artifact signing, and multi-platform distribution. Using GitHub Actions for automation further showcases how continuous integration and delivery can be extended to cover the entire lifecycle of a software project, from code changes to final release.
28 changes: 28 additions & 0 deletions contributions/demo/week3/jbiorck-maxisr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Assignment Proposal

## Title

Automated Changelog-Driven Deployments with GitHub Actions and Release Please


## Names and KTH ID

- Johann Biörck ([email protected])
- Max Israelsson ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description
We want to demonstrate how to automate versioning and changelog generation into an automated CI/CD pipeline (GitHub Actions) using release-please, ensuring that new updates are correctly tracked and reflected in production deployments. To display changes clearly, we want to create a simple website which we will make small changes on during the demo. During the demonstration we plan to show a commit with a conventional commit message that release-please accepts and we also plan to show what happens when you write a commit message which is not accepted.


**Relevance**


An important part of DevOps and CD is automation, and this automates part of the CI/CD pipeline.
30 changes: 30 additions & 0 deletions contributions/demo/week3/lvainio-oscols/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Assignment Proposal

## Title

From Continuous Delivery to Continuous Deployment in GoCD with Gomatic.


## Names and KTH ID

- Leo Vainio ([email protected])
- Oscar Olsson ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description

Story: Manager wants to go from Continuous Delivery to Continuous Deployment using the same platform (GoCD).

We will demonstrate how we can change the configuration in GoCD to go from Continuous Delivery to Continuous Deployment. We will use a small example project for this demo and we will use Gomatic to allow us to configure the GoCD pipeline in code.


**Relevance**

GoCD is a CI/CD tool which is useful to know how to use. Also, it’s important to understand the difference between Continuous Delivery and Continuous Deployment and in this demo our goal is to illustrate the main differences. In Continuous Delivery, changes that pass automated tests still need manual approval but in Continuous Deployment even the deployment step is automated.
32 changes: 32 additions & 0 deletions contributions/demo/week3/noakj-maals/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Assignment Proposal

## Title

An Interactive Demonstration of Automated Canary Deployment using AWS and GitHub Actions

## Names and KTH ID

- Noak Jönsson ([email protected])
- Marcus Alström ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description
A live demonstration of how GitHub actions and AWS can be used to achieve Automated Canary Deployments.
We will start off by inviting the audience to visit an application we have deployed using ECS on AWS.
We will then show how newly commited code on github can be automatically deployed to our ECS which will be accesible by a specified percentage of users through the use of a load balancer.
After explaining our use of the Canary deployment strategy, and how this can be achieved in AWS, we will then ask the audience to again view the application, where some will see the newest deployed version (... and some might even see a bug), while the rest will see the stable version.
Lastly we will show how to rollback a deployed verion in case of a bug being reported.

**Relevance**

Canary Deployment, or any form of Progressive deployment, is an effective Continuous Deployment technique which allows new code changes to be deployed to a subset of users, rather than the entire user base, ensuring that any bugs which were not discovered during testing are not deployed to all users.
Continuous deployment allows for a more rapid feedback loop with users, leading to unwanted features or bad design choices being reported back to developers faster who can then make adaptations in their strategy.
However, as software bugs are inevitable, and no testing framework is guaranteed to discover all bugs or erroneous behavior, canary deployment adds an extra safety net where critical bugs are not deployed to an entire user base.
AWS is a leading provider of cloud services and thus seems like a good candidate for showing a practical example of this type of deployment.
34 changes: 34 additions & 0 deletions contributions/demo/week3/noelt-miladsf/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

# Assignment Proposal

## Title

Reducing Downtime with Blue-Green Deployment using Vercel

## Names and KTH ID

- Noel Tesfalidet ([email protected])
- Milad Farahani ([email protected])

## Deadline
- Week 3

## Category
- Demo

## Description
This demo will cover the importance of having a deployment strategy and show how
blue green deployment can be achieved on the web hosting platform Vercel (https://vercel.com/).
The demo will entail showing some basic website (Blue environment) and making a small change
to the site (Green environment) during the demo. The new deployment/website will be configured on stage to direct some of
the traffic to the domain to go to the Blue environment and some to the Green environment with no downtime.

**Relevance**
Blue-Green Deployment is relevant to DevOps because it provides a strategy for seamless
releases with minimal downtime. This is a core objective of DevOps practices. When having
two separate environments, a "Blue" one for the current version and a "Green" one for the
new version, it allows teams to deploy new code with safety. Developers can also test the
code in production and switch traffic between environments with minimal risk. This strategy
reduces the impact of failures and enables quick rollbacks. It also promotes continuous
delivery and deployment, which improves factors such as speed and reliability of software releases.

26 changes: 26 additions & 0 deletions contributions/demo/week3/rikj-millear/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Assignment Proposal

## Title

Gitlab CI/CD workflow for deploying fullstack web application on self-hosted server via docker.

## Names and KTH ID

- Rikard Johansson ([email protected])
- Mille Af Rolén ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description

In this demo, we will walk you through configuring GitLab CI/CD for the automated deployment of a full-stack web application on a self-hosted server using Docker. We will cover the prerequisites, CI/CD variables, setting up a Docker image, installing necessary packages, SSH access to the server, and pulling the latest Docker container to recreate the application.

**Relevance**

This demo is relevant because it demonstrates how to streamline the deployment process using GitLab CI/CD, on a self hosted server. Automating the deployment of a full-stack web application reduces manual effort. By integrating Docker, it enhances portability and scalability, allowing developers to deploy applications seamlessly to self-hosted servers or other environments.
30 changes: 30 additions & 0 deletions contributions/demo/week3/robcla-hocker/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Assignment Proposal

## Title

Deployment and rollbacks with Kubernetes

## Names and KTH ID

- Robin Claesson ([email protected])
- Simon Hocker ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description

We want to give a demo for how you can configure a Kubernetes cluster. We will start with giving a short introduction into the world of microservice and container architecture, then dive straight into Kubernetes and its purposes.

We will then begin the demo by showing a configuration file for a Kubernetes cluster, and then start it up, showing how the cluster represents the configuration. Following that, we demonstrate how to increase the replicas of a pod to scale with demand.

We will then update the configuration to change the version of one of the pods and show how the cluster is updated. This new version will contain a bug, and to fix this we will show how to use the rollback feature of Kubernetes to go back to the previous working version, then deploy a corrected version without the bug.

**Relevance**

Kubernetes a modern system for deploying containers in a micro service architecture. As applications grew to hold many complex containers across numerous servers, the system would become too complex for mainstream services to keep up. Problems arose consisting of how to coordinate, schedule and communicate between such an abundance of containers, how to scale them, etc. Google introduced Kubernetes to solve these problems.
35 changes: 35 additions & 0 deletions contributions/demo/week3/samkh-atheers/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Assignment Proposal

## Title

Continous Deployment and Rollback using Railway

## Names and KTH ID

- Sam Khosravi ([email protected])
- Atheer Salim ([email protected])

## Deadline

- Week 3

## Category

- Demo

## Description

Our demo will show how one can deploy their github project using Railway, we will show how to set up the connection with Railway so that the project becomes deployed.
Then we will show how the application redeploys when the code changes (continuous deployment).
Finally we will show one can perform a rollback to previous deployment using Railway.
Along the way we will also showcase relevant features that Railway provides that are tied with the demo like showing build logs, and deployment logs,
where one can set environment variables, and monitor resource usage (here, we will only show the CPU and memory usage of the deployment).

**Relevance**

The proposal is relevant to DevOps as it shows how Railway can be used as tool to perform Continuous Deployment (CD) which is a big part of DevOps.
Also we are showing rollbacks which is also an important feature to have when using Continous Deployment, and finally we are introducing Railway to everyone in the
class (Railway has never been showcased before) which can be used to deploy various other things like databases and docker images.



Loading

0 comments on commit 71b2621

Please sign in to comment.