lessless

lessless

Hi guys,

Since for some strange reason people are still using Edeliver I suppose we can talk about what we want it truly to be.
During 2018 two things happen that in my opinion gives us more flexibility to reshape in a more user-friendly tool:

  • Distillery added appups
  • Edeliver supports only Mix now

Thus now it’s possible to focus on the core deployment tasks:

  • Building release
  • Storing it somewhere
  • Copying it to a designated servers
  • Updating/upgrading an app

From this perspective there are two questions that should be solved:

  • What are alternatives to bash scripting?
  • How we decouple environments and deployment targets?
    As you can now Edeliver supports two environments - staging and production. That’s a very basic scenario. Here is a latest example where it simply doesn’t fit Add support for multiple production environments by meox · Pull Request #301 · edeliver/edeliver · GitHub
    I guess what we really want is to specify an environment and where (which hosts group) we want release to be deployed. Maybe also where it should be built.
  • What deployment guarantees do we want to achieve?
    This is mostly about deployment to a multiple machines. What should happen if deploy fails? Do we want a retry or fallback mechanism for it? This might not be something of an immediate need but keeping it mind can be very useful since it can affect library design.

Please notice, that I’m not talking about deprecating Edeliver due to the respect to the amount of work that was invested into it and since it’s still being used despite being in decay state.

Let’s get a good discussion folks :slight_smile:

Showing Posts 1 to 10

romul

romul

Ruby, Python, Elixir itself.. Everything is better than bash scripts :sweat_smile:

OvermindDL1

OvermindDL1

Not always, bash scripts are succinct, readable, and load fast. ^.^

lessless

lessless OP

I guess we can rewrite most of the BASH scripts through the Mix Tasks

sanswork

sanswork

I feel like every reply to this post could be split off to a new thread debating bash.

I am using edeliver at the moment and honestly it just works and I don’t really have any complaints which is why I continue to use it. I don’t use upgrades always releases. Actually only complaint is the verbosity of the commands required to do a release.

mix edeliver build release && mix edeliver deploy release to production && mix edeliver restart production && mix edeliver migrate production

That is kind of a drag and I tend to just create a one liner shell script in each new project called like deploy with that in it.

Dream changes/questions(all are low priority):

  • I would like a way to signal that a build should be moved direct from the build server to the target hosts without downloading locally in the middle.
  • Interface with platforms to allow the dynamic generation of host lists based off like server tags or something.

Failed deploys should rollback in my opinion.

rodrigues

rodrigues

Agree with @sanswork. It just works, and its setup is simple. I don’t use a lot of it, but it helps quite a bit. I wrap edeliver steps together with our own in one mix APP.deploy task.

These are not necessarily things that really need to become part of edeliver, but I think some of it could simplify deployment:

  1. Have one single command that does the full release cycle (from build until target restart)
  2. Easily make release building to happen in a local Docker (just reference a dockerfile and edeliver handles the rest?)
  3. Delegate admin commands to other tools such as systemd (start/stop/…)
  4. Enforce git tags matching Mixfile version (optional)
lessless

lessless OP

I think update should do the job.

Are you guys doing a single server deploy?

rodrigues

rodrigues

@lessless thanks, nice, didn’t know update did that :+1:t3:

We have apps with single or multiple hosts per env, building and deploying is called locally atm…

sanswork

sanswork

Hadn’t noticed that before thanks.

Only single server on any of my projects at the moment. Mostly deployed from local but I’ve started migrating over to using circleci.

lessless

lessless OP

Thanks for your replies guys, it’s great that it works as a turn key solution for you.

sanswork

sanswork

No worries, thanks for your work on it.

Where Next? Top

Trending in Announcing Top

wojtekmach
Hey everyone! Req is an HTTP client for Elixir that I’ve been working on for quite some time. There is already a lot of HTTP clients out...
New
handnot2
Samly can be used to enable SAML 2.0 Single Sign On in a Plug/Phoenix application. This library uses Erlang esaml to provide plug enabl...
New
woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
MRdotB
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
fuelen
Hi all! I want to present a small library which provides a mix task for generating an Entity-Relationship Diagram for Ecto schemas. You...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
mudasobwa
I am seeing a lot of aplications of Argumentum ad Vericundiam in software discussions. They do link some piece of writing and point us to...
New
AstonJ
This showed up on my feed.. anyone heard of it? Just hype? Ox Alpha is a reasoning model designed for coding, sustained ag...
New
sergio
It’s not that it’s vocabulary is too advanced. It’s something worse. I get lost trying to follow even a paragraph written by Claude. It’...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
akoutmos
@hugobarauna, Dr. Dimitrios Koutmos (my brother) and I (Alex Koutmos) have been hard at work on writing a book on how you can use Elixir ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews