Giter Club home page Giter Club logo

away-zone's Introduction

AwayZone

image

A highly available web application - that's Always On (pun intended :D) - relying on an automated health check system to notify the team when something is not working as expected.

Dependencies

  • Docker
  • make
    • make is pre-installed in most Linux systems.
    • In macOS it is included as part of the Xcode command line utils. It can be installed with the following command:
    xcode-select --install
    

Usage

Build and init web and health-checker applications

make run-dev

Stop running containers

make stop-dev

Just build images

make build

Miscellaneous

To list all available commands just run:

make

Implementation Plan, check list:

Implement an HTTP server/web application

  • Implement a simple HTTP server app
  • Expose endpoints GET /health and GET /status
  • Return random sample data to simulate database connectivity status
  • Log response errors
  • On error, trigger alert notification

Write a client script app for health check

  • query a single health check endpoint, using HTTP protocol
  • get the list of endpoints from a .env file or env vars
  • get the check interval from external configuration file
  • Collect request/response metrics
  • make it async to query two endpoints simultaneously in random order
  • Run in intervals, instead of just once

Contaneirize the health check system

  • Build docker image
  • Create a docker compose file

Package the solution with helm

  • Build a helm chart
  • Organize helm values files per environment

Deploy via IaC to an orchestrated environment:

  • Create a pulumi program
  • Use pulumi to deploy helm charts to Kubernetes

Provision infrastructure for application

  • Terraform - Create azure-aks-cluster module
  • Terraform - Create project/root module to provision a CSP environment per region
  • Provision managed Kubernetes cluster, using terraform

Documentation

  • Improve README
  • Document service's endpoints using OpenAPI spec

Prepare presentation, simple slides

  • Plan presentation steps. Prepare a few slides, if needed
  • Perhaps list and sort acceptance criterias, plus bonus point, and go through sections that cover group of related criteria? Might be a way to get the presentation organized and move fast, giving room for questions

README

  • Improve README, branding, logo, be fun, ... AWAA ZONE, from TOW-AWAY ZONE, parking not allowed, not parking, always running, always on, ...
  • Rename repo to use new name

away-zone's People

Contributors

jfoliveira avatar

Stargazers

Diego Queiroz avatar

Watchers

 avatar

Forkers

diegiwg

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.