Armada: platform for microservices and Docker orchestration tool
Armada is an open source complete platform designed to develop, deploy, configure and discover microservices. This solution is written in Python and based on Docker, thus takes advantage of both high-level programming language and containerization. It is easy to ship an app built on your machine to production and prevent missing dependencies or conflicting libraries.
Armada cluster consists of a set of hosts called ships and an Armada agent that is running on each of them. This agent controls the entire cluster and allows you to manage Docker images: create them, push/pull to/from repositories (dockyards) and run them on any ship. Images can be shared between Armada clusters using dockyards.
Multiple separated clusters can be used to distinguish different environments, such as development, testing and production. To improve security of specific environment, you can restrict access to ships. Armada also features meaningful service's health checks and load balancing.
Quickly create light, disposable microservices using Armada-microservice image, clone entire sets of microservices and seamlessly update them using Armada. This platform enables such useful features as automatic configuration deployment and multiple ways for service-discovery (mini-DNS, local proxy, dynamic querying).
Apart from a lot of practical tools for microservices, Armada provides a complete workflow from development to deployment and migration that is independent from applications and infrastructure. This smooths relations between Devs & Ops, since Ops can oversee/run/stop/restart services without indepth knowledge of the app's work. At the same time, Armada eliminates developers’ need to wait for Ops to supply machines with desired environment, installed packages, dependencies etc.
The things you could do with Armada:
- Manage services on any server from any server.
- Manage multiple image repositories (development, production etc.).
- Create new services right away based on convenient templates.
- Utilize power of vagrant to quickly setup services on your own box.
- Build and deploy new versions of all your services in consistent way.
- Discover services via nice urls. Service monitoring based on user defined health checks.
- Separate code from configuration.
- Connect to dependent services (and load balance between them) in the simplest way possible.
- Have access to various “armadized” services that can help you take full advantage of Armada good practices - see full list.
Armada is more than just a Python-based tool or a Docker orchestration solution, it defines conventions and good practices aimed at making this platform more service oriented. Following these conventions and separating configuration from code will make codebase maintenance and deployment a much easier task. Find more information at Armada website.