Server-tools: [RFC] Odoo orientado a serviços

Criado em 8 jun. 2017  ·  7Comentários  ·  Fonte: OCA/server-tools

Estou trabalhando em um novo projeto de arquitetura para dividir o Odoo em várias instâncias de aplicativos dedicados, todos vinculados ao mesmo banco de dados e armazenamento de arquivos. Isso nos fornecerá uma abordagem orientada a serviços para Odoo, sem ter que realmente distribuir por meio de eventos.

Em minha pequena experiência antes de criar este RFC - consegui fazer DoS a instância do aplicativo do site, mas a instância da Web estava funcionando como um campeão. Isso cria um isolamento físico entre nossas camadas de aplicativo e pode isolar possíveis pontos de barra.

Seria algo parecido com isto (desculpe pelo material extra, isto é para algo maior - a parte relevante é a seção mais abaixo):

soa odoo

Um dos principais problemas que prevejo com essa arquitetura é que criaremos uma corrida competitiva para as execuções de tarefas agendadas entre as instâncias distribuídas. Diante disso, precisamos de um módulo que desabilite as tarefas agendadas com uma variável de ambiente - não acho que isso já seja possível.

Além disso - a maior parte do trabalho será tratada pelo balanceador de carga, portanto, os módulos não são necessariamente necessários. Todas as instâncias são tecnicamente capazes de realizar qualquer ação, portanto, não será um desastre se algo der errado.

Provavelmente estou faltando algumas coisas aqui, então este será um documento ativo. Gostaria de saber se mais alguém fez algo semelhante a isso.

Itens de ação:

  • [] Módulo para desativar tarefas agendadas com uma variável de ambiente
question

Comentários muito úteis

@lasley @dreispt Também informo ou
https://github.com/odoo/odoo/pull/12515

Eu ficaria muito feliz se este recurso estivesse vivo e o OCA fosse mantido em algum lugar ...

Todos 7 comentários

Se você quer dizer ir.cron por "tarefas agendadas", desabilitá-las já é possível (pelo menos no modo workers, eu não verifiquei no modo threaded) no arquivo de configuração do Odoo: max_cron_threads = 0 .
(Editar: olhando para o código, parece funcionar tanto nos modos de trabalho quanto de thread)

O servidor de aplicativos AFAIK Odoo foi projetado para ser escalável adicionando mais trabalhadores ou mais servidores de aplicativos lado a lado.
A restrição é que eles devem compartilhar o mesmo servidor de arquivos (para dados de sessão e anexo) e servidor db.
E você pode configurar seu balanceamento de carga para que a solicitação do cliente da web para um grupo de servidores de aplicativos e as solicitações do site vão para outro grupo de servidores de aplicativos.

Se você não tiver problemas com os dois requisitos, AFAICS tem tudo pronto para usar.

Sim, eu ia dizer exatamente o que @ sylvain-garancher e @dreispt acabaram de dizer: tudo já está lá, ainda da era pré-docker.

Se você compartilha a mesma imagem base entre as instâncias de back-end e front-end, pode simplesmente iniciar as de front-end adicionando --max-cron-threads=0 ao comando de inicialização.

Espero que em breve o Infinit chegue a 1.0 e torne o compartilhamento de armazenamento de arquivos muito mais fácil.

Viva, obrigado @ sylvain-garancher, @dreispt , @Yajo - você certamente está certo - isso funciona como uma loucura! Eu ❤️ Odoo

Espero que em breve o Infinit chegue a 1.0 e torne o compartilhamento de armazenamento de arquivos muito mais fácil.

Você já olhou para o GlusterFS? Esta é a abordagem recomendada pela Red Hat

@lasley @dreispt Também informo ou
https://github.com/odoo/odoo/pull/12515

Eu ficaria muito feliz se este recurso estivesse vivo e o OCA fosse mantido em algum lugar ...

Sim @lasley, eu já um plugin de volume do Docker (eles foram comprados pelo Docker por algum motivo ...).

@Yajo Ohhhhhh isso é bom- vou ter que ficar de olho no Infinit também!

Esta página foi útil?
0 / 5 - 0 avaliações