Elixir on ARM servers

Hi there! With ARM getting serious about disrupting the cloud market, and major providers like AWS and Packet starting to offer servers with great price/performance ratios, the future for ARM servers look bright - and it seems like Elixir and ARM are a great match.

Has your “Elixir on ARM” dev journey been smooth? What is the state of tooling/deployment? Would love to hear from anyone running or looking to run Elixir apps on ARM servers (whether in production or just experimenting).

3 Likes

The Nerves project targets various ARM boards and it works very well (e.g. RasPi boards), as does GRiSP.

Once the BEAM is installed and running, the tooling is the same. Probably your biggest issues will come from libraries with natively compiled code which is not able to be built on ARM either due to the code itself or the build system employed.

2 Likes

I run elixir on a Raspberry PI 4, works like a charm. :grin:

4 Likes

I’ve run elixir on ARM in production for a few years… (scaleway and packet) - no issues

2 Likes

We run both erlang and elixir apps without issues on 32-core aarch64 servers from Ampere (FreeBSD, and have checked linux too. You can test drive these servers at https://packet.com/ and I’m happy to share any further info.

We currently run OTP22 mainly, and all the NIFs we use work just fine.

I’d write a long blog post, but modern UNIXes Just Work. You’ll likely never even know it’s different until you check the uname or number of OTP schedulers.

5 Likes

Hello,

Another approach is use Yocto Project and meta-erlang to build an image that runs on ARM servers. That would be more work if you are not familiar with YP.

1 Like

Based in the comments of this thread, is it safe to assume that we will not have any problems developing Elixir Applications on the new ARM Apple Laptop?

Any comments or suggestions?

Best regards

1 Like

Someone tried compiling Elixir on Apple Silicon when the DTK was released but ran into issues. Not sure of the current status: https://groups.google.com/g/elixir-lang-core/c/9s6-BIxaCz8/m/i-NmhjabAQAJ

2 Likes

Someone with access to the DTK fixed the issues in a pull request. This fix will be included in OTP 23.1.

7 Likes

It’s pretty safe to say - it’s not going to be an issue. Actually we (Erlang Solutions) are in the midst of packaging Erlang for AWS Gravitron (ARM) architecture. Speaking of which, is anyone running production Erlang on Amazon ARM systems?

5 Likes

I believe many Nerves applications have been running on ARM in production successfully. There are also docker images for ARM available: https://hub.docker.com/repository/docker/hexpm/elixir.

5 Likes

For future reference… The gravitron build didn’t happen (lack of resources as business is booming) but docker “official” images built by the mysterious Mr C0B are available from docker hub in arm64v8 architecture. You can refer to the Dockerfile for that project if you need to verify build flags etc.