Modular Enterprise-Grade Automated Docker
Most recent changes:
MEGADocker makes microservices using 4 fundamental building blocks:
Mobs: an armada of manikins running around doing your bidding
-- which are composed of
Manikins: little wooden dolls that want do your bidding
-- which, in turn, are composed of
Mites: magical doodads that bring a manikin to life to do your bidding
and
Memories: how a manikin remembers what your bidding is.
You'll use MEGADocker to make your Mob of Manikins. MEGADocker manages the Mites, and tells you what Memories you Mob mandates, and where you might find that information. Then you just tell your Mob their Memories and make them march out to do your magnificent bidding.
You can also make your own Mites and mold them into all manner of Manikins to make your Mobs much mightier.
Mites contain snippets of plain text (in the form of TypeScript objects that conform to the IMite
interface or the ICustomMite
interface) that contain part of a Manikin's file. This is almost always a snippet of YAML used to create a Manikin in a pod.yml
or docker-compose.yml
file, although a Mite may contain any kind of snippet necessary to make a required file (such as a .conf
file) for any application you can think of.
Memories are the choices a user needs to make to configure a Mob. Memories can contain any kind of data, and their values will modify the output of one or more Mites in your Mob. For instance, if your Manikin needs to know where a volume is on your host to save data, when you add that Manikin to your Mob, the Memories Table will add a Memory to request the location of that folder. If another Manikin in your Mob also needs access to that Memory, it will automatically have access to that information.
Manikins are microservices running in your Docker swarm.
MEGADocker Mobs require a minimal core of Manikins to run services that are necessary for the Mob to function. When you generate a new Mob, these Manikins will already be in it, and their Memories will be in the Memories Table waiting for you to populate them.
MEGADocker includes Manikins for a number of common uses, and we add more all the time. These Manikins are optional, strictly speaking, but you'll probably want a few to do something useful for you.
While MEGADocker includes many Manikins, we can't do everything… yet. If you find that we are missing that one Manikin you need, you can write it yourself and build a custom version of MEGADocker for yourself. Of course, we'd love it if you added those Manikins to this repo, but you don't have to. Because MEGADocker is open source, you can look at any of the source code for existing Manikins and Mites to see how we do it.
Mobs represent a full stack of microservices (Manikins) deployed across a cluster or swarm of hosts. Mobs are saved as a .zip
file containing an entire directory meant to be used in Docker swarm mode.