Giter Club home page Giter Club logo

minicluster's Introduction

!!! The documentation is not set in stone !!!

Overview

The purpose of this box (the root box) is to manage all other subsystems.

The purpose of this repo is to bootstrap the said root box to the point where all subsystems are ready to run.

It is starting from the base installation of an ArchLinux setup.

The container host (a.k.a. root box)

This kind of box only offers lxc and aggregates logging (syslog-ng) from its containers.

Services running:

  • ssh
  • syslog-ng (buffering and forwarding to analytics, then empty the buffer)
  • lxc
  • health monitoring for lxc containers
  • a lightweight daemon which monitors and restarts the previous services as needed (and logs their downtime to syslog-ng)

Turning an arch host into an lxc host for various systems.

  1. Install packages
  • for actual functionality: augeas lxc syslog-ng
  • for monitoring and administration: cpupower hdparm htop lshw tree wget iotop git net-tools tree ethtool
  • customizations: rxvt-unicode vim zsh
  • from AUR: packer liquidprompt
  • for compiling from AUR: binutils jshon packer fakeroot

The data box

This kind of box has a syslog-ng server which forwards its messages to an event store (e.g. mongodb).

Services running:

  • syslog-ng
  • mongodb
  • an app which gathers intelligence from the event store and summarizes the information (an analytics box)
  • a small app which can push notifications to interested parties when certain events occur

The git box

This kind of box hosts git repositories. Some of them belong to the users, but some are for the infrastructure itself.

The ones for the infrastructure hold apps running in this "cloud" and are located under system/

Once a system's repository's develop branch is pushed:

  1. A new container for that type is created and run, but in a staging environment (i.e. accessible via another hostname or port)
  2. If a staging environment already exists, it is brought down

Once a system's repository's master branch is pushed:

  1. Run 1 and 2, notify the application to do it's health checks, and if everything is ok: block new connections to the current box of this type and forward them to the new box. When the old lxc box does not have any connections, shut it down and remove it

All these steps are done by sending messages over syslog to the root box, which triggers the corresponding processes

The www box

This serves one or more web apps which have business value.

The security box

This stores all sensitive information about its users like:

  • (app, credentials)
  • public keys

and sends back responses to other apps, like:

  • if an user tries to authenticate, given an (app, credentials) tuple, it replies with 0 or 1 if the authentication failed or succeeded
  • if an app wants to store some data about the user, it can do so (encrypted)

This type of box is not user-facing.

This box can also store sensitive information about the network (like ip addresses) and assets (like LDAP).

The honey box

For every user-accessible system, there's a honeypot which makes the attacker think he's hacked the system

The mail box

TODO

The irc box

TODO

minicluster's People

Contributors

flavius avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

thedoctor095

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.