7 pontos por GN⁺ 2023-07-17 | 1 comentários | Compartilhar no WhatsApp
  • Explicação da configuração do autor para operar servidores e infraestrutura de internet
  • Prefere executar software de servidor em máquinas virtuais ou servidores físicos em vez de soluções em nuvem
  • O autor usa uma VM (máquina virtual) da DigitalOcean para seus serviços, executando Debian 10
  • O software do servidor é escrito em Rust e compilado em um único binário
  • Usa systemd para iniciar o binário quando o servidor é iniciado
  • Programas que precisam de banco de dados usam SQLite com uma solução de backup redundante
  • Todos os servidores rodam atrás do nginx para terminação TLS e entrega de arquivos estáticos
  • A configuração é simples e robusta, exigindo manutenção mínima
  • É possível executar vários serviços na mesma VM por meio de isolamento com contas de usuário Unix
  • A configuração de um novo projeto consiste em criar um novo usuário, adicionar um host virtual do nginx, adicionar uma unidade do systemd e executar um script de implantação
  • As mudanças na infraestrutura são feitas lentamente, proporcionando estabilidade e previsibilidade
  • O autor agradece a Julia Evans por incentivá-lo a escrever este artigo

1 comentários

 
GN⁺ 2023-07-17
Discussão no Hacker News
  • Funções de nuvem acionadas por HTTP são uma escolha popular para simplificar a administração de servidores e reduzir a complexidade.
  • Executar cada serviço com uma conta de usuário Unix exclusiva oferece isolamento e segurança.
  • Usar o recurso DynamicUser do systemd pode simplificar o processo de configuração e economizar tempo.
  • Muitos desenvolvedores usam VMs da Linode e Debian GNU/Linux para sites pessoais e de projetos.
  • Common Lisp é uma escolha popular de linguagem para escrever software nessas configurações.
  • Nginx é comumente usado como proxy reverso e para servir arquivos estáticos.
  • Contêineres Docker e docker-compose são opções alternativas para executar serviços.
  • Failover e tempo de atividade são considerações importantes em ambientes de produção.
  • Medidas de segurança como backups, regras de firewall e autenticação SSH baseada em chaves são comumente implementadas.
  • Scripts de implantação e controle de versão são úteis para gerenciar atualizações e reversões de aplicativos.
  • Variáveis de ambiente, limites de abertura de arquivos e configuração de logs são considerações importantes na configuração de serviços.
  • PostgreSQL, NGINX, Redis e Node.js são componentes de software comumente usados.
  • Dokku é uma ferramenta popular para gerenciar implantações e adicionar plugins.
  • Alguns desenvolvedores preferem configurações mais simples, usando um único servidor e contas de usuário Linux padrão.
  • A complexidade pode levar à instabilidade e ao tempo de inatividade, por isso a simplicidade costuma ser preferida, a menos que uma complexidade específica seja realmente necessária.