YSS

YSS OP

Hello, we are running an API with Elixir/Phoenix and when we push a new version, the server goes down for a small amount of time and this is causing issues for our API users.

I have looked into the Hot Code Loading, but wanted to ask people here what their opinion is. Now we are running 1 server instance and we think blue/green deployments would be a solution to have 2 elixir/phoenix servers but we are then into the overhead of making sure the sessions are sticky and basically need to re-organize our complete application.

Thanks for any help if you encountered this situation.

First 7 of 7 Posts Switch mode

garrison

garrison

I’ve been happy using Caddy’s reverse_proxy with Phoenix with very little configuration. I haven’t done blue/green with it but it seems like the cookie lb_policy would work for sticky sessions, though I guess not for API clients.

But do you actually need sessions to stick? If you’re bringing up a new server don’t you actually want new connections to go to the new server?

rhcarvalho

rhcarvalho

What’s your current infrastructure like? Deployment strategy and tooling?

hauleth

hauleth

You do not need hot code reload, you need better deployment strategy and connection draining (so requests “in progress” will be finished).

There are different options how to achieve seamless deployment and from my experience - if you can avoid hot code reload, then it is better to avoid it.

YSS

YSS OP

github acdtions → deploys to single instance elixir/phoenix server

i can setup 2 elixir servers but how will the session sharing work with elixir phoenix if i don’t use sticky sessions? do you have expeirence with this?

YSS

YSS OP

the sessions draining in blue/green deployment isn’t an issue

it’s also the exlir/phoenix webinterface app that will need sticky sessions or i will have to store the sessions if they are shared

LostKobrakai

LostKobrakai

By default sessions are cookie based. The only shared knowledge the servers need is the secret_key configured on the endpoint. Everything is sent to the client and back. That’s at least the case unless you switched to a different session implementation.

YSS

YSS OP

ok thanks so auth on server1→ cookie session is set on client, we use server2 all of a sudden but we sill use that same session and it’s accepted by server1 and server2 because they use the same secret_key?

i remember my elixir phoenix app locking the postgres, how does this work wihen 2 servers connect to the same postgres? arent they both try to lock the tables they work with? thanks!!

— All posts loaded —

Where Next? Top

Trending in Questions Top

stjefim
Hello! Suppose you are building workflow (order / task / payment) processing system with the following requirements: Each workflow con...
New
jonnycharles
I’m in search of an Elixir library that offers PDF generation capabilities similar to Ruby’s Prawn. While there have been discussions abo...
New
spammy
I’m looking to build a personal workflow to quickly deploy web applications written in elixir/phoenix, for local consumption (ie not on t...
New
dli
Before I dive in myself, did anyone successfully sprinkle Hologram into their existing LiveView app? Looking for hints regarding: Addi...
New
bottlenecked
Hi all, I wanted to ask how the community is dealing with post-release steps. Today we have Ecto migrations, which make sure that the db...
New
roeland
Kia ora, We have been using elixir-google-api to connect to Google Drive. However, with the updates to Tesla due to CVEs this is now bro...
New
michallepicki
I am using Oban and occasionally, shortly after a deployment, a handful of jobs can fail because of dependency on other parts of the syst...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New

We're in Beta

About us Mission Statement