A conta não é o custo
Otimização de custo em pequena escala é, em grande parte, sobre outra coisa que não a conta. Começar pela conta produz semanas de trabalho para economizar o preço de um lanche.
Quanto este sistema custa para rodar
Um servidor virtual privado. Ele roda o contêiner da aplicação, os acessórios dela (o Postgres e o corretor de desafios) e o kamal-proxy.
Um nome de domínio e um registro de contêineres, que é gratuito para este uso no GitHub.
O resto é pequeno. As fontes vêm do fonts.bunny.net e parte do JavaScript do cdn.jsdelivr.net, os dois gratuitos neste volume. O armazenamento é o serviço Disk na mesma máquina, então não há conta de object storage. O Cloudflare fica na frente do site, e os backups rodam fora do repositório.
Então a conta de infraestrutura é pequena e fixa: um servidor, um domínio e alguns serviços cobrados por mês ou gratuitos.
Quanto custa operar
Cada hora gasta nele.
Em qualquer valor realista para o tempo de uma pessoa de engenharia, uma única tarde custa mais que um mês daquele servidor, e uma semana de trabalho custa mais que um ano dele.
Essa é a proporção real, e ela inverte o conselho usual. Para um sistema deste tamanho, o recurso caro é a atenção, e o barato é o hardware.
flowchart TB
C["custo total"] --> I["infraestrutura: um servidor, um domínio"]
C --> T["tempo do operador: cada hora gasta nele"]
I --> S["pequeno, fixo, previsível"]
T --> L["grande, e o que de fato está sendo gasto"]
L --> D["então otimize para tempo, e compre saída do trabalho"]
O que isso muda
Comprar um servidor maior para evitar uma semana de otimização é aritmética correta. Parece errado para quem é de engenharia, porque a conta é visível e o tempo não.
As otimizações do roadmap feitas antes neste projeto o levaram de cerca de 310 milissegundos para cerca de 72 e custaram horas reais. Valeram a pena porque ensinaram algo e melhoraram a experiência de todos os usuários. Mas "economizou dinheiro" teria sido falso, já que o servidor custou o mesmo antes e depois.
A maior parte do trabalho de desempenho nesta escala é comprada com tempo e paga em qualidade de experiência, e não em dinheiro. Deixar claro qual moeda você está gastando evita que as duas se confundam.
Quando a conta começa a importar
Quando um componente é cobrado por uso, e não por mês. Um servidor custa o mesmo ocioso ou ocupado; object storage, banda de saída e serviços cobrados por requisição não.
Os principais custos desta aplicação não são cobrados assim, e é por isso que a conta dela é estável e sem graça. Uma conta estável e sem graça é, ela mesma, um resultado de projeto que vale notar.
Pontos-chave
- A infraestrutura aqui é um servidor, um domínio e alguns serviços de preço fixo ou gratuitos.
- Em qualquer valor realista, uma tarde de trabalho custa mais que um mês daquele servidor.
- O recurso caro neste tamanho é a atenção; o barato é o hardware.
- Comprar um servidor maior para evitar uma semana de trabalho é aritmética correta que parece errada.
- As contas começam a importar quando os componentes são cobrados por uso, e não por mês.
Continue com a aula 2
As decisões que já economizaram
Revê como a pilha Solid, jobs no Puma, armazenamento Disk e um só Postgres reduziram componentes.
Com uma conta grátis você também tem os quizzes, seu progresso e suas anotações, e a discussão.