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.