BLOG

F5 Sexta-feira: Configuração como código com F5 AS3

Miniatura de Lori MacVittie
Lori MacVittie
Publicado em 24 de agosto de 2018
  • Compartilhe via AddThis
configuração como cabeçalho de código

Durante anos, a programabilidade do plano de controle foi dominada por APIs. De F5, isso significa iControl. Primeiro como uma interface SOAP e depois como REST, o iControl proporcionou à NetOps o que seu nome indica: controle sobre todos os aspectos de uma configuração BIG-IP.

Esse método não vai desaparecer. As APIs fornecem o controle granular que muitas organizações precisam para gerenciar suas implantações de serviços de aplicativos. Eles também são essenciais para esforços de integração com parceiros e novos ambientes.

Isso não significa que as APIs sejam a "única maneira verdadeira" de automatizar a operação de um BIG-IP. De fato, no movimento para adotar uma abordagem mais contínua para implantação de aplicativos e serviços de aplicativos, surgiu um método alternativo. Esse método é declarativo, no qual um estado final de configuração é descrito pelo operador e a responsabilidade pela implementação é transferida para o sistema de destino.

Há muitos motivos para adotar um método declarativo de configuração, sendo o menor deles seu alinhamento com abordagens DevOps, como infraestrutura como código e implantação contínua. Este é o objetivo por trás do F5 AS3: fornecer uma interface declarativa que diminua a dependência de APIs e aumente a capacidade de implementar um pipeline de implantação contínua e totalmente automatizado. É mais apropriado chamar isso de configuração como código , já que não estamos realmente construindo a infraestrutura a partir do código, como o termo indica. 

Por que declarativo

AS3 é um formato declarativo que usa pares de chave-valor JSON para descrever uma configuração BIG-IP. Do IP virtual ao servidor virtual, aos membros, pools e nós necessários, o AS3 fornece um formato simples e legível para descrever uma configuração. Depois de obter a configuração, tudo o que é necessário é levá-la ao BIG-IP, onde a extensão AS3 a aceitará com prazer e executará os comandos necessários para transformá-la em uma configuração BIG-IP totalmente funcional e implantada.

Exemplo de tradução da descrição do VIP e do pool em bigip.conf como uma declaração AS3

bigip.conf

Declaração AS3

ltm virtual /Common/serviceMain {
destino /Common/10.0.1.10:80
protocolo ip tcp
máscara 255.255.255.255
pool /Common/web_pool
origem 0.0.0.0/0
translação-endereço habilitada
translação-porta habilitada
}

ltm pool /Common/web_pool {
membros {
/Common/192.0.1.10:80 {
endereço 192.0.1.10 
}
/Common/192.0.1.11:80 {
endereço 192.0.1.11
}
}
monitor /Common/http
}
"serviçoPrincipal": {
"classe": "Serviço_HTTP",
"endereços virtuais": [
"10.0.1.10"
],
"pool": "web_pool"
}

"web_pool": {
"classe": "Pool",
"monitores": [
"http"
],
"membros": [
{
"servicePort": 80,
"endereços do servidor": [
"192.0.1.10",
"192.0.1.11"
]
}
]
}

A capacidade de descrever uma configuração BIG-IP dessa maneira permite que as operações adotem uma abordagem de configuração como código para implantar serviços de aplicativos. Aproveitando um repositório, podemos extrair automaticamente configurações do AS3 para implantação. Além dos usos de automação, os repositórios fornecem uma maneira mais moderna e fácil de integrar para versionar e gerenciar configurações e permitir uma reversão rápida no caso de um problema com a configuração.

Por exemplo, usando os recursos de Webhook do GitHub, podemos iniciar automaticamente uma implantação após a confirmação de uma configuração AS3 nova/atualizada. Para fazer isso, precisamos de um servidor Webhook aguardando uma notificação de que uma nova definição de serviço (AS3) foi confirmada. Essas notificações vêm na forma de um gancho , que é um objeto JSON que contém informações sobre o evento. Uma vez recebido, o servidor Webhook analisa o hook e recupera o AS3 referenciado do GitHub e inicia o processo de configuração. 

Integração com webhook

Você pode baixar a versão mais recente do AS3 no GitHub . A documentação sobre a implantação da extensão AS3, bem como configurações de exemplo do AS3, estão disponíveis aqui .

O protótipo do Webhook foi desenvolvido por Nathan Pearce , Defensor do Desenvolvedor no Escritório do CTO. Para mais protótipos e exemplos de integração do BIG-IP com pipelines de CI/CD e telemetria, você pode seguir Nathan e F5 Networks no GitHub.