I wrote a post not to long ago about creating a microservices architecture from scratch as part of series I am doing on modern microservices. Some colleagues and friends of mine suggested I break a portion of that post out into its own so I can continue to update it as the ecosystem grows. This is an attempt to do so. The portion they were talking about was the breakdown of layer and tools within MSA in my post here which laid the initial pass at this. This post will try and fill these layers out and and continue to add to them, there is just no way I can touch every single tool or definition correctly as I see them so please take this as my opinion based on the experience I have had in this ecosystem and please comment with additions, corrections, comments etc.
- Applications / Frameworks / App Manifests
- Scheduling / Scaling
- Management Orchestration
- Monitoring (including Health) / Logging / Auditing
- Runtime Build/Creation (think build-packs and runtimes like rkt and docker)
- Networking / Load Balancing
- Service Discovery / Registration
- Cluster Management / Distributed Systems State
- Container OS’s
- Data Services, Data Intelligence, and Storage Pools
To give you an idea of the tools available and technologies that fall into these categories, here is the list again, but with some of the tools and technologies in the ecosystem added. *Keep in mind this is is probably not an exhaustive list, if you see a missing layer or tool please comment!
*Note: Some of these may seem to overlap, if I put Kubernetes under Orchestration, it could easily fit into Cluster Management, or Scheduling because of its underlying technologies, however this is meant to label something with it’s overall “feel” for how to ecosystem views the tool(s), but some tools may appear in more than one section. I will labels these (overlap)
*Note: I will continue to add links as I continue to update the breakdown*
- Applications / Frameworks / App Manifests
- Docker Compose YML
- Mesos Frameworks (There are many, see Mesos Application Frameworks)
- Cloud Foundry Application Manifest
- Openstack Heat
- Cloudify (kind of orchestration / management as well)
- Scheduling / Scaling
- Fleet
- Marathon (with Mesos)
- Docker Swarm
- Kubernetes Scheduler
- Nomad Scheduler
- Management & Orchestration / PaaS (Orchestration is sometimes an overlapping topic)
- Monitoring / Logging / Auditing
- Service Discovery / Registration
- Cluster Management / Distributed Systems State
- Flocker Control Service / Agents
- Mesos / Mesos Slaves / Mesosphere
- (overlap) Kubernetes Nodes/Masters
- Docker Swarm Agents + Master
- (overlap) CoreOS internals
- GCE Container Engine
- ContainerShip
- Amazon ECS
- Triton (by Joyent)
- Networking / Load Balancing
- Docker Libnetwork
- Weaveworks
- Flannel
- Calico
- OpenContrail
- Pipework
- Triton Network Fabric
- *many other network controllers that tap into vswitches like openvswitch
- HAProxy
- Google HTTP Balancer
- Consul Load Balancing
- (Web servers for load balancing) nginx, tomcat ….etc
- Container Runtimes / Tools
- Docker
- Runc
- LXC
- Systemd-nspawn
- LXD
- Garden (supersedes Warden)
- Rocket (rkt)
- Windows Containers
- Container OSs
- Data Services, Data Intelligence and Storage Pools
- Flocker by ClusterHQ
- Rexray by EMCCode
- Openshift persistent volumes
- Kubernetes Persistent Volumes with GCE
- Docker Volume Plugins
- Portworx
- Datawise.io
- ClusterFS integrations *(note) working with distributed FS like HDFS, XtreemFS etc. or NFS can work.
Again, if you see a missing layer or tool (which I’m sure I am) please comment!
Cheers.
Pingback: Microservices: An architecture from scratch using Docker, Swarm, Compose, Consul, Facter and Flocker | au courant technology
Hey! Great work compiling all of this. I see you’ve included Ruxit and we really appreciate being listed here! I was wondering if you wouldn’t mind including a link back to the website like some other tools are linked. Thank you!
Will do!
Hey Ryan, great list, super useful! A quick heads-up though, I would love it if you would please edit to include Splunk in the ‘Monitoring / Logging / Auditing’ section.
Splunk customers have been integrating with Docker, CoreOS, and others for a long time. More recently, Splunk has written a new log driver that is available now in the experimental binary, and will be incorporated into the next release of the Docker core.
Please check our blog post for details – http://blogs.splunk.com/2015/12/16/splunk-logging-driver-for-docker/
Thanks!
Andi Mann
Chief Technology Advocate
Splunk.
Will do!