jeffdeville

jeffdeville

Infrastructure as code deployment options in 2024?

Curious what people think about where to host moderately complicated applications these days. (To scope that, I’ve got 2 multi-tenant phoenix apis, 3 postgres db servers, 2 small independent little services, rabbitmq, an opentelemetry collector and log shipper at the moment) Deployed into 3 environments.

Infrastructure as Code is a requirement, which unfortunately rules out fly, which is where we are now. I’m thinking that something like DigitalOcean on Kubernetes, or taking (another) risk on a platform like Render.

Anyone have experience with either of these platforms? Are there other simple options (ahem, not AWS) out there?

First Post!

adw632

adw632

I have looked quite a lot at Vultr but I have not used them. There offering seems competitive and their network was fast when testing all the cloud providers.

Logflare is my pick either hosted or self hosted for logging using google bigquery, very economical.

Other than that I use fly for some things and getting projects up and running in non production quickly. I also host my own gitea on fly.io using sqlite backend rather than using Gitlab or GitHub. It’s very fast.

If you can qualify for the AWS startup $100k credit I wouldn’t ignore AWS.

My biggest challenge for security compliance is that only the major clouds like AWS, Azure or Google meet the requirements. So ultimately for anything of value it has to be those three.

Most Liked

adw632

adw632

Vultr has good global coverage including Australia and SE Asia and a reasonable level of security compliance as well which is also improved recently.

Vultr are also good for HA setups with floating IP which avoids the cost and upper limits on throughout of cloud service load balancers and additional latency.

Vultr also actively support FreeBSD which I prefer for servers due to better networking with Erlang BEAM as FreeBSD kqueue is more efficient and scalable than anything Linux does. The total observaility of every subsystem is something I could not pass up.

AWS also provide a good option with their Firecracker VMs which boot FreeBSD in 25ms. With such a fast boot time you can instantly demand scale and failover without paying for headroom or contingency.

For deployment I also prefer FreeBSD jail’s which are also supported by Nomad.

D4no0

D4no0

I would not trust a word those companies are saying, taking in consideration their reputation at processing and collecting personal data.

drobban

drobban

I switched to FreeBSD - Have no experience in deploying elixir/freebsd to other services as I host on my own hardware.

So far, I’m so happy with the simplicity given with ZFS, jails and amazed how far I’m able to go without all the complexity added by docker.

I sure like the features given by containers like docker - and so far I’m able to solve most of the problems with jails that dock helped me with in the past. Instead of config & docker files - I use shell-scripts.

For me - it has for sure been worth it to really explore the freebsd alternative.

Last Post!

lessless

lessless

The remote builder works flawlessly on macOS; on other OSes, it may be enabled by passing --remote-only to the fly deploy.

Their support is amazing.

But

Their LHR region is the worst PaaS I ever used.

Starting from suspicious network latencies with GCP eu-west-2 region to advice from their support to redeploy until the VM is allocated on a server with enough free memory to accommodate RAM increase request :man_facepalming:, to service disruption when clients from EU were served times faster than from UK and LiveView was timing out for them, till suspicious RAM usage spikes and OOM crashes in the out-of-office hours on the internal tool.

They have the best DX out there, and flyctl is next to perfect, but using them is what actually makes me consider self-hosting.

Going back to the topic I want to mention, Ansible for DevOps [Leanpub PDF/iPad/Kindle] can help set up reusable and declarative deployment scripts.

Where Next?

Popular in Discussions Top

dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
gausby
I asked this very same question on twitter and got some interesting feedback, but I thought it would be a good question to ask here as we...
1207 40165 209
New
eteeselink
Hi all, In the last days, two things happened: A blog post titled “They might never tell you it’s broken” made the rounds. It’s about ...
New
thojanssens1
It would be nice to be able to define a redirect from one route to another from the router.ex file. E.g.: redirect "/", UserController, ...
New
Fl4m3Ph03n1x
Background This question comes mainly from my ignorance. Today is Black Friday, one of my favorite days of the year to buy books. One boo...
New
nunobernardes99
Hi there Elixir friends :vulcan_salute: In a recent task I was on, I needed to check in two dates which of them is the maximum and which...
New
arcanemachine
https://nitter.net/josevalim/status/1744395345872683471 https://twitter.com/josevalim/status/1744395345872683471
New

Other popular topics Top

ashish173
I am using Ecto timestamps with postgres, I can see the timestamps() use the :naive_dateime but for my use case I wanted to store the ti...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49266 226
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New

We're in Beta

About us Mission Statement