/AppController

Primary LanguagePythonOtherNOASSERTION

AppController

AppController is a cloud auto-sclaing framework.

Branches

  • release : stable branch ready for production
  • develop : developpment branch

Directory tree

  • core : main directory, contains all intelligence
  • libs: all libraries required by core program
  • libs/mon : all monitoring libs required by core to get in touch with monitoring system
  • libs/cloud : all cloud libs required by core to get connected to a cloud API
  • lb-agent/ : lb-agent.py to be run on load balancing VM.

Core

Core is the main part of this program. Core can perform a bunch of actions :

  • deploy virtual instances
  • destroy virtual instances

To create or duplicate more exactly a virtual instance core will have to perform :

  • get master instance id - a healthy instance
  • get informations about master instance
    • block storage attached ( sring )
    • tags ( dict )
    • instance type - vCore and RAM ( string )
    • keypair ( string )
    • security groups ( dict )
    • region ( srting )
    • zone ( string )
  • build a master from a running instance
  • use this master to launch new instances
  • destroy master

Requirements to launch virtual instances :

  • master id ( string )
  • region ( string )
  • zone ( string )
  • keypair ( string )
  • security groups ( dict )

Requirements to destroy virtual instances :

  • virtual instance id ( string )

Events

Several events can trigger AppController core :

  • url not responding within timeout
  • cpu usage over treshold
  • memory usage over treshold

How to get back to the initial values ?

  • url is responding within timeout

AND

  • cpu usage on all hosts are under treshold

AND

  • memory usage on all hosts are under treshold

then decrease the number of virtual instance.

LICENSE

Read license!