Project proposal: Implementation of a DevOps pipeline for a small, open-source Flask application - #3113
Open
AlexWigren wants to merge 5 commits into
Open
Project proposal: Implementation of a DevOps pipeline for a small, open-source Flask application#3113AlexWigren wants to merge 5 commits into
AlexWigren wants to merge 5 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Assignment Proposal
Title
Implementation of a DevOps pipeline for a small, open-source Flask application
Names and KTH ID
Deadline
Category
Description
Our proposed project consists of implementing a simple but robust CI/CD pipeline for a small open-source project, utilizing IaC to deploy it in the cloud. Specifically, the application we have chosen is a simple CRUD implementation utilizing Flask and SQLAlchemy, generously provided by its author Samim Sarkar, which may be found here.
We have used the grading criteria to outline the following plan which we believe satisfies all the requirements for the project:
CI: GitHub Actions will be used to run the CI pipeline on pull requests and pushes. We will run automated tests with pytest and perform static code analysis with Ruff (Thereby fulfilling the additional requirement for using a quality/static analysis element), verifying that the application can be successfully built as a Docker image.
CD: After changes are merged to the main branch and all CI checks pass, our application will be automatically built as a Docker image and then deployed to our chosen cloud infrastructure (Our current plan is to use Google Cloud if everything works out).
IaC: To enable our deployment of the application, we will use Terraform as our IaC solution to define and manage the cloud infrastructure.
Quality/Security Automation: As we mentioned in the CI bullet, we intend to use Ruff to perform static analysis.
If you have any thoughts or feedback on our plan, we would be happy to hear it!
Relevance
We believe the above project plan is satisfactory from a relevance perspective. We use many different types of automation to enable CI/CD, following DevOps principles. We use infrastructure as Code principles with Terraform and we also take advantage of a quality automation with Ruff. The tools we have chosen are well known and mature, being used in the real world for production pieplines.