Escalonando Immich
O Immich foi desenvolvido com práticas modernas de implantação em mente, e o backend é projetado para rodar múltiplas instâncias em paralelo. Ao fazer isso, o único requisito que você precisa estar ciente é que cada instância deve estar conectada à infraestrutura compartilhada. Isso significa que todas elas devem ter acesso às mesmas instâncias do Postgres e Redis, e compartilhar os mesmos arquivos montados nos contêineres.
O escalonamento pode ser útil por diversos motivos. Talvez você tenha um PC gamer que deseja usar para transcodificação e geração de miniaturas, ou talvez você administre um cluster Kubernetes em alguns servidores poderosos que deseja aproveitar.
Se você tem apenas uma máquina para rodar o Immich, escalonar para múltiplos contêineres provavelmente não trará nenhum benefício. Um contêiner do Immich executará várias tarefas em segundo plano simultaneamente, e você pode aumentar esse número no painel de administração.
Os detalhes de como escalonar em várias máquinas variam amplamente entre diferentes ambientes e requerem algum conhecimento para configurar, e por isso este guia não fornece instruções específicas. Em alguns casos, aumentar a escala pode ser tão simples quanto incrementar o número de réplicas em uma implantação no Kubernetes; em outros casos, pode ser necessário configurar túneis de rede ou montagens NFS. Os detalhes ficam como um exercício para o leitor ;)
Workers
Por padrão, cada contêiner em execução de immich-server
vem com múltiplos workers internos. Se você está escalonando apenas para lidar com mais tarefas em segundo plano, pode optar por desativar o worker responsável pela API. Veja workers para mais detalhes.
Reduzindo a escala
Da mesma forma que você pode escalonar para múltiplos contêineres, também pode escolher reduzir a escala. Todo o estado é armazenado no Postgres, Redis e no sistema de arquivos, então não há risco em parar um contêiner immich-server em execução, por exemplo, se você quiser usar sua GPU para jogar alguns jogos. Contanto que haja um worker API em execução, você ainda poderá navegar pelo Immich, e os trabalhos esperarão para serem processados até que haja um worker disponível para eles.