Skip to content
/ devoops Public

Paticipation in the course "DevOps, Software Evolution and Software Maintenance" Spring 2020

License

Notifications You must be signed in to change notification settings

jlndk/devoops

Repository files navigation

MiniTwit DevOps project codecov Run SonarCloud on code

A Twitter clone made for the DevOps course at the IT University of Copenhagen. Over the course of the project, we took a barebones Python web application and both refactored it in a different language (C# with ASP.NET Core) and added many useful DevOps related features and practices.

This project is:

  • Containerized using the Docker ecosystem, for easy deployment and scalability.
  • Continuously integrated using GitHub Actions, with automatic unit testing, system testing, code linting, static analysis and coverage reporting.
  • Continuously delivered with automatic GitHub releases.
  • Continuously deployed on DigitalOcean.
  • Fully logged using SeriLog, ElasticSearch and Kibana, ensuring scalable and easily accessible logging.
  • Performance monitored with Prometheus and Grafana, with a nice developer dashboard.

Quick-start

To deploy on a production node, simply clone this repository to the node and run the following two commands:

sudo ./install.sh
./deploy.sh

The scripts should install all dependencies

Setup

This system works on Ubuntu 18.04 LTS, with docker and docker-compose as direct dependencies, and node_exporter as an optional dependency.

On a production environment, the environment variable MINITWIT_ENV has to be set to production to ensure the scripts run with the correct production variables.

Usage

On the production environment, simply run

./deploy.sh

to automatically spin up the docker containers for every part. This uses a special docker-compose script (./doc.sh) to inject proper environment variables and run the docker containers properly.

About

Paticipation in the course "DevOps, Software Evolution and Software Maintenance" Spring 2020

Resources

License

Stars

Watchers

Forks

Packages

No packages published