Preamble
This is unrequited advice for Fly users wanting help, and no-one needs to heed it. I am merely a Fly enthusiast, with a side-interest in technical mentoring. Should this post unduly ruffle feathers, I shall delete it. However, it may be helpful for new posters. Suggestions for improvements, or general comments, are welcome.
Most questions posted here are incomplete, unreadable, and/or impossible to answer. A number of posters do not know that some folks who help here are hobbyists and volunteers. A good number of question authors have not read the documentation, or even the error messages they are receiving.
I may enjoy a little leeway above employees because employees are, I assume, obligated to be nice to posters who are making no earnest effort to solve their own problems. I don’t want software engineering or systems design to be regarded as dark arts only open to a select few, but I’d not be doing anyone a kindness if I claimed that either are easy. They are nothing of the sort.
I might even go so far as to say that we do not do people a favour if we always spoon-feed answers to them. We are doing fellow engineers a service if we can help them in a way that helps them become more self-sufficient in the future.
Asking questions
So, a few pointers shall now follow. The benefit in following them is that readers may get answers to their problems faster; either they ask better questions, or they may even be guided to answer their own questions.
- Use the formatting tools here. There is a preview window, please use it. The forum software uses Markdown, which is so established as an industry standard that engineers have no excuses not knowing it. Use block formatting for code, config, and logs. Use
inline code formatting
for commands and one-line snippets. It’s worth noting that Markdown is also used in GitHub, GitLab, Bitbucket, Reddit, Jira, and lots of other engineering-related tools. - Consider posting enough detail in your first post that you do not have to be asked for more information. I’d wager more than half of the posts here from Fly users fall into this category. Readers, obviously, cannot see your screen. Include your TOML file and your Dockerfile if they are helpful. Describe what debugging you have done so far. If you used console commands, list them explicitly. If you use deploy tools in GitHub, say so.
- Read the Fly documentation. It is really very good. Find out how to get logs from your machines. Find out how to shell into a machine so you can see what processes are live, or what addresses listeners are attached to. Find out how to scale an app so it contains multiple machines in a region. Find out how to scale an app so it is multi-region.
- If you’re an engineer but you haven’t used Linux or Docker, no problem. You should learn the basics though; a bit of reading in the short term will pay dividends.
- If you are not an engineer, then you may struggle. All the cloud providers would love to provide a system that simplifies system design, and my earlier point about not gatekeeping still applies, but there needs to be a cut-off. We recently had someone demanding to know what an out-of-memory error means, and I am not sure what helpers are meant to answer to that, other than broad generalisations. If you’re an entrepreneur, then I wish you luck, but your risk is not failing: your risk is succeeding, and then having paying customers on your platform that has no engineers supporting it.
- If something does not work in Fly, try building it and running it in Docker on your laptop. If it does not work locally then it definitely won’t work remotely. A good chunk of questions fall into this category; testing a system locally rules out a whole category of problems. The basics of Docker are super-easy to learn: you can get Hello World running in ten minutes, generally on any operating system, free of charge.
- Occasionally things go wrong on the Fly platform. Please be aware that no-one is causing problems deliberately; building global-scale cloud requires extraordinary talent, and things still can go belly-up. Sometimes hardware fails, sometimes there is an unpredictable surge in demand in a region and it causes machine creation problems. Sometimes there is an outage. Please don’t get snippy or abusive in these situations; it doesn’t help the engineers who’re on-call, and your app will not become available faster.
- If you have a billing or account management query, drop a line to billing@fly.io; it is not a bother if you post your question here, but someone will probably ask you to drop an email anyway.
There. What did I leave out?