Giter VIP home page Giter VIP logo

deployment's Introduction

deployment

A repository with scripts, docker-compose, etc to guide deployment.

How does it work

This deployment repo contains a single docker-compose file deployed with docker swarm. The secrets are injected using:

printf "strava-client-secret-here" | docker secret create strava_client_secret -

There are currently 8 secrets defined:

  • strava_client_id: The strava client id.
  • strava_client_secret: The associated secret.
  • db_connection_string: The connections string to the postgres db.
  • db_host: The host of the database (endpoint)
  • db_port: The port on which the database is listening
  • db_user: User that has access to the database
  • db_password: The password for the database
  • db_name: The name of the used database

Continuous deployment is setup using a simple cronjob:

*/1 * * * * cd /var/deployment && git pull && docker stack deploy -c docker-compose.yml api --with-registry-auth

Architecture

The bikedata project consists of various servers:

The frontend server is hosted at https://www.bikedataproject.org/ - a relatively lightweight server. Another server, the data-server (aka the bikedataprojectdata-server) does the heavy lifting (generating the tiles, keeping track of all the data, ...) The webserver acts as a proxy for the data server, the webserver's NGINX forwards the necessary requests.

deployment's People

Contributors

xivk avatar pietervdvn avatar richeza avatar

Stargazers

Diego Canales avatar

Watchers

James Cloos avatar  avatar  avatar

deployment's Issues

[FEATURE] Need metrics

Feature request: We need metrics

Is your feature request related to a problem? Please describe.

There is no problem (yet). We just really need metrics to verify the health and status of our platform!

Describe the solution you'd like

A very basic setup could contain a time-series database (InfluxDB, Prometheus, ...) and a dashboard-tool such as Grafana.

The purpose of the time-series database is to receive metrics data and store it for a certain amount of time, nothing more & nothing less.

The Grafana dashboard can be used for many purposes. Some ideas are:

  1. Monitoring the health of our services with the time-series data;
  2. Visualisation of where our data is localized using maps in Grafana
  3. Metrics showing us the amount of requests, types of errors, responsetimes, ...
  4. Whatever you can come up with that fits a number, graph or map

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.