Announcing Exoframe 3.0 — easy complex deployments & Docker Swarm support

Written by yamalight | Published 2018/05/23
Tech Story Tags: docker | nodejs | devops | continuous-integration | continuous-delivery

TLDRvia the TL;DR App

Exoframe is a self-hosted tool that allows simple one-command deployments using Docker. If you are not familiar with it — you can find out more in the article on initial release and the project repository.

I am happy to announce the release of Exoframe 3.0!Two major highlights for this release are complex deployment recipes and Docker Swarm support.

Deployment recipes

Docker allows to deploy complex systems using docker-compose files, but they are limited due to Docker constraints — you cannot wait for services to become available, cannot execute post-init scripts, it might be hard to prepare configs, etc. There are of course workarounds for some of those things — some of them are mentioned in the official Docker docs, others discussed in github issues.

Exoframe aims to address those problems with “recipes” feature. It provides a way to run third-party complex deployment recipes (that are essentially javascript code that has direct access to Docker daemon).Those recipes provide a quick and easy way to deploy complex projects in one command.

The way recipe work is pretty straightforward:

  1. Developer writes an exoframe recipe and publishes it on npm
  2. User installs and configures Exoframe on server and locally
  3. User executes recipe with exoframe setup recipe-name where recipe-name is the package name from npm
  4. Exoframe pulls the recipe from npm and presents a set of developer-defined questions to the user (see screenshot below)
  5. Once the user answers the questions, Exoframe server executes the recipe code and sets up the system in a required way

Example wordpress recipe execution

As an example recipe, you can deploy Wordpress backed by MariaDB along with PHPMyAdmin by simply executing exoframe setup exoframe-recipe-mysql and answering a set of simple questions (screenshot above).

If that doesn’t look convincing — I don’t blame you, that deployment is pretty simple and can be easily done with one docker-compose.yml :)Here’s an example of something a bit more complex — HOBBIT platform. You can find the setup guide for it here — as you can see, it’s not exactly simple and there’s more to it than just running docker-compose up. And here’s how the setup looks with Exoframe recipe:

Example HOBBIT project recipe execution

Looks exciting? Give it a try! And don’t forget to share all the awesome recipes you build!

Docker Swarm support

A slightly smaller new feature in 3.0 (but something that’s been frequently requested by the community) is Docker Swarm support.Exoframe can now work in Swarm environments and allows you to deploy your services to Swarm in exactly same way you deployed them to one Docker server. Note that if you are using custom deployment templates — they have to be updated to support Swarm.The support also extends to the setup recipes mentioned above. Of course, the recipes do need to support Swarm themselves to work correctly.

I would love to hear your feedback on this new release. Feel free to send it over to GitHub or Twitter!


Published by HackerNoon on 2018/05/23