A AWS tem o OpsWorks , que é sua própria versão do Chef.
Temos vários motivos[1] para usar uma configuração chef-servidor/cliente "normal".
Mas o OpsWorks tem um recurso que não consigo encontrar nas configurações do chef-servidor/cliente: carregar instâncias baseadas .
Eles permitem que uma pilha manipule cargas variáveis iniciando instâncias adicionais quando o tráfego é alto e parando instâncias quando o tráfego é baixo, com base em qualquer uma das várias métricas de carga.
Não consegui encontrar muito sobre esse recurso para uma configuração normal do Opscode Chef Server/client. Apenas algumas postagens de blog explicando como usar a API da AWS e a API do servidor Chef para monitorar instâncias da AWS e acionar bootstraps de nó em determinadas condições. Scripts autoconstruídos.
Como isso normalmente é resolvido com o Chef, se é que é? Essa é a tarefa do Chef ou uma terceira ferramenta deve gerenciar esse dimensionamento? Em caso afirmativo, há algum que se encaixe bem na configuração do servidor chef?
[1]: As razões são:
- Isso nos liga à AWS: que é o que a Amazon quer, claro, mas preferimos escolher uma configuração mais neutra.
- Ele não permite executar alguns nós fora da AWS, por exemplo, um servidor de fallback em outro provedor vm ou nossos servidores de gateway existentes e assim por diante.
- Já temos um conjunto personalizado de receitas que precisam ser ligeiramente reescritas para funcionar no ambiente OpsWorks, como o uso de pesquisas, databags e afins.
O Chef não é (principalmente) uma ferramenta de provisionamento. Você usaria os recursos de dimensionamento automático do provedor de nuvem de sua escolha (AWS ASGs, OpenStack Heat etc.). O dimensionamento requer uma visão geral da carga de cada servidor do grupo, enquanto o Chef opera em um nó por vez. Existe uma ferramenta chamada chef-provisioning para gerenciar a criação de servidores (e outras coisas) a partir do Chef DSL, mas você teria que escrever algo para alimentá-lo carregar dados (possivelmente por meio da API do CloudWatch) e criar suas próprias regras de dimensionamento ( limiares, análise preditiva, etc). Ao usar o Chef Client/Server com grupos de dimensionamento automático, você geralmente usaria o Packer para criar uma AMI personalizada com a configuração do Chef e a chave do validador incorporada, para que eles se registrem no Chef Server quando forem ativados.