Giter VIP home page Giter VIP logo

devops-example-application's Introduction

Devops example application

This application serves as an example to show different methodologies for deployment and building in DevOps.

It consists of four services:

  • frontend
  • proxy
  • backend
  • redis

App diagram with request flow

  +--------------+                                      +--------------+
  |              |                                      |              |
  |   Frontend   |                                      |    Redis     |
  |              |                                      |              |
  +----------+---+                                      +----------+---+
       ^     |                                               ^     |
       |     |                                               |     |
       1     2                                               5     6
       |     |                                               |     |
       |     v                                               |     v
  +----+---------+             +-------------+          +----+---------+
  |              +------3----->|             +----4---->|              |
  |    Client    |             |    Proxy    |          |    Backend   |
  |              |<-----8------+             |<---7-----+              |
  +--------------+             +-------------+          +--------------+

App UI

The application displays proxy and backend instances with version and hostname. Also displays which instances handled the current connection by connecting them by an arrow.

App view

How to run the application

To start the application cd into the .deployment folder and either run dip provision or docker-compose up -d.

In case of docker compose the command will need to be run multiple times because of dependencies, dip tool handles it automatically.

Folder and file structure

Application folders

Whole application is kept in frontend, backend and proxy folders. Each consists of service code, makefile for building and running the application, Dockerfile and files used to deploy to Google Cloud environment.

Other folders

  • .build - builds all components using dip. Used by CI.
  • .deployment - deploys whole project using dip. Can be deployed locally or on external server
  • .github - stores workflows for Github Actions
  • ansible - configures Jenkins server and staging and production environments with auto deployment. To be used with terraform folder
  • doc - documentation related files
  • jenkins - container related files to deploy Jenkins locally
  • terraform - code for deploying infrastructure using Hetzner Cloud and Cloudflare
  • test - files for testing infrastructure

Files

  • Jenkinsfile - different Jenkinsfiles used by Jenkins
  • .travis.yml - Travis CI pipeline

Author

Jan Kacik

devops-example-application's People

Contributors

consek avatar martastaporek avatar

Stargazers

 avatar  avatar

Watchers

 avatar

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.