Operon: Acelera o desempenho da Ansible


Estou muito satisfeito por finalmente apresentar o Operon , o substituto de alto desempenho do Ansible Engine. O Operon foi projetado para grandes instalações e é distribuído por assinatura. Ele lança playbooks, módulos, plug-ins e ferramentas de terceiros existentes sem modificação, usando um mecanismo avançado, aumenta significativamente o número real de nós endereçados em uma execução, potencialmente economizando horas com cada chamada.


O Operon é instalado separadamente e em conjunto com o Ansible Engine: você pode transferir gradualmente seus projetos para ele ou usá-lo na inicialização, se desejar.


Abaixo está um gráfico da execução de 416 tarefas common.yml do DebOps 0.7.2 implementadas via SSH:



Comparado com o Ansible Operon limpo, reduz o tempo de execução por nó em cerca de 60%. Mas com lançamentos em massa, a vantagem é muito maior. Veja como o tempo de operação está aumentando (hardware: Xeon E5530 de 8 GB e 8 núcleos; implantado nas máquinas virtuais do Google Cloud via SSH em 18ms):



Para cada execução, 416 tarefas foram executadas em cada nó, incluindo itens de loop. Em uma execução de 1024 nós, 540 496 tarefas foram concluídas em 54 minutos; rendimento médio - 151 tarefas / segundo. A escala horizontal é óbvia: quase 4x, de 256 a 1024 nós.


A execução do Ansible de 256 nós teve que ser cancelada: por um longo período de tempo, não produziu resultados, teve que ser reiniciada várias vezes, reduzindo o número de processos de 40 para 10, para que o Ansible não esgotasse seus recursos de RAM. Pode ter funcionado com 13 processos, mas tivemos que recusar novas tentativas: já gastamos 2 dias de tempo da máquina.


Para a execução final, antes do cancelamento, o Ansible concluiu 89% das tarefas em 6 horas e 13 minutos:



Operon implementado em todos os nós durante cada execução paralela. A execução de 1024 processos em 8 núcleos fornece um aumento quase imperceptível na carga e, em 24 núcleos, o número de processos cresce até 6144. Se executássemos o mesmo número de tarefas nesse número de nós, apenas com 16 núcleos, achamos que poderíamos executar concluir não em 54 minutos, mas em 27.


O consumo de memória é muito previsível e, em grande parte, separado dos processos. Com 256 processos, o Operon consome quatro vezes menos que o Ansible consome com 10; ao mesmo tempo, o processador consome pelo menos 15 vezes menos tempo do processador.



Aqui a curva entra em declínio: o Ansible é executado em 64 nós com 40 processos, enquanto o 256 é executado em 10. O Ansible é executado em 256 nós, com 1,6 Gb / processo; portanto, independentemente dos recursos de RAM disponíveis, foi criada uma restrição severa ao paralelismo possível.


Operon é um novo passo na abordagem de desenvolvimento que estreou com o Mitogen for Ansible . Ele herda as grandes melhorias no desempenho de baixo nível necessárias para milhares de usuários:




Não apenas software


A produtividade é um efeito colateral da mudança cultural em direção a uma maior orientação ao usuário, compatibilidade e internalização de custos. Temos algo a mostrar, mas para você experimentar totalmente o sabor do novo produto, tenho o prazer de anunciar que haverá uma garantia de sintaxe de playbook com compatibilidade direta - além de restaurar algumas construções desatualizadas do Ansible Engine.


incluem :


- include: "i-will-always-work.yml" 

loops "com"


 - debug: msg={{item}} with_items: ["i", "will", "always", "work"] 

"ações de squash"


 - apt: name: "{{item}}" with_items: ["i", "will", "always", "work"] 

hífens nos nomes dos grupos


 $ cat hosts [i-will-always-work.us.mycorp.com] host1 

mesclagem de hash


 # I will always work [defaults] hash_behaviour = merge 

As remessas do Operon com sintaxe compatível com o Ansible 2.9 receberão suporte contínuo , e a desativação da sintaxe no Ansible Engine não afetará o Operon no futuro. Essas alterações prejudicam as instalações de trabalho sem melhorar seus recursos e são a principal fonte de trabalho para corrigir erros durante as atualizações.


Com o tempo, essa garantia se estende à semântica do mecanismo e além.


Como participar?


Inicialmente, a Operon será distribuída com o suporte da Network Genomics , e essa é uma experiência e compromisso com um serviço que você não encontrará em nenhum outro lugar. Se sua equipe estiver presa na armadilha da implantação ou cansada de consertar atualizações por anos, considere solicitar uma avaliação e, sem demora, escreva-me um e - mail - para esclarecer dúvidas e pontos incompreensíveis.


O melhor software é de domínio público; portanto, um lançamento público ocorrerá quando formos capazes de fornecer um certo nível de suporte gratuito. Assine a nossa newsletter para ser informado a tempo sobre os lançamentos futuros.


A Operon irá melhorar o desempenho do Windows?
Sim Se você tiver problemas de desempenho durante as implantações do Windows, fique atento por enquanto.


A Operon melhorará o desempenho dos dispositivos de rede?
Sim A Operon apresenta um redesenho arquitetônico que se estende muito além da camada de transporte e é igualmente aplicável a todos os tipos de conexões.


O Operon é uma ramificação Ansible?
Não. Operon é uma reescrita incremental do mecanismo, um pequeno componente de cerca de 60 mil linhas de código, das quais cerca de um quarto foram substituídas. Cada instalação do Ansible inclui cerca de 715k linhas, das quais a grande maioria, como o Operon, é suportada independentemente pela grande comunidade do Ansible.


O Motor Ansible da Operon Melhorará?
Sim A Operon já está promovendo uma melhoria no Ansible Engine e, como é um refinamento, há um incentivo para fazer uma contribuição, para ajustar o código sempre que necessário.


O Operon é gratuito?
Sim O Operon é lançado sob a mesma GPL da Ansible e você pode usar livremente o código sob esta licença.


O Operon quebra a compatibilidade?
Não. O Operon não viola a compatibilidade com o conjunto padrão de módulos, interfaces de plug-in ou o ecossistema Ansible circundante e não planeja violá-lo. Compatibilidade - em primeiro lugar: você não deve ficar para trás de futuras melhorias, nem esquecer a compatibilidade com versões anteriores, como estabilidade aprimorada da sintaxe do manual.


Preciso do Operon se tiver planos para apenas um nó?
A Operon garantirá a competitividade contínua das habilidades nas quais você investiu tanto. Oferece maior flexibilidade que anteriormente simplesmente não existia: liberdade de escolha de um mecanismo. Com o Operon, você ganha, mesmo que não o use diretamente.

Source: https://habr.com/ru/post/pt473948/


All Articles