If I understand the docs correctly, currently the fly proxy is unaware of differences between machines beyond ports.
This means that if you create two completely different machines inside the same app that expose themselves on the same public port (e.g. 80), incoming requests to the proxy will effectively randomly distribute requests between the two completely different machines.
In effect, if you want to use the fly proxy you would currently need to create a separate app for each different machine. Is this correct?
If so, are there any plans to make the proxy “machine aware” so that requests can be routed to specific machines using maybe path routing? Or this is feature more intended for advanced use by internally hitting the machines directly using their IPv6 addresses?
Fly proxy will route to the nearest machines with a service listening on the requested port. Indeed, the proxy does not know if machines on the same port run different code.
The good news is that we’re actively working on ways to route traffic to specific machines or groups of machines. We wanted to get the core functionality in front of developers as early as possible.
Thanks for letting me know! That makes sense and no worries re: the error message, I’m guilty of worse
Are you able to share an approximate timeframe for when dedicated CPUs might become available? Is it on the order of days, weeks, months? (The reason I ask is because I’d like to use them as build agents and 2GB is just a bit too small)
We don’t have any plans to bring the dedicated CPUs back. The 2GB limit is per CPU and not in total (not sure if you were already doing this) so if you request 2 CPUs, you can have up to 4GB of memory (with a max of 8 CPUs and 16GB of memory).
That’s brilliant, thank you! I was looking at this code in flyctl which is why I thought that dedicated CPUs were the only way to get more RAM - but maybe the code is outdated.
I can get back to building now. This is a seriously cool product you folks have built
If I create a machine with guest config {"cpu_kind": "shared", "cpus": 8, "memory_mb": 16384} will it be charged at $0.0000957/s (the price listed for a dedicated-cpu-8x with 16GB)? Likewise, I’m able to create a machine with {"cpu_kind": "shared", "cpus": 8, "memory_mb": 10240} - how would this be priced?
The reason I ask is because it looks like there was a price premium for dedicated, so it’s hard to know what I’ll be charged. Would it be fair to say that even if the pricing isn’t yet determined, those dedicated prices would be a reasonable upper bound on the eventual price?
awesome thanks! I peaked in the flyctl source code and saw some undocumented stuff for machines and postgres, so just wanted to mention that I’m trying to rig something together with sqlite/litestream and machines.
There’s no built in way to upload to a volume. If I were doing this, I’d add a tiny little API in each machine that could accept files and put them where you needed them.
This is something we will have features for at some point, but it’s going to be a while.
@kurt I’m curious what you think of https://tus.io/ ? it seems like if i can get that onto a machine, it would save me the trouble of implementing the file upload part of the tiny api, which seems to be the tricky part. i’d probably try to copy something like Resumable Uploads | YouTube Data API | Google Developers which seems like a pain