Automatizando os serviços de aplicações da F5: um guia prático
Introdução
Automatizar a implantação e o gerenciamento da configuração de dispositivos de entrega e segurança de aplicações tornou-se uma prática praticamente obrigatória. No relatório de 2017 da IDG FutureScape, a automação e o gerenciamento de múltiplas nuvens foram classificados como algumas das principais iniciativas que impactariam as empresas até 2021. A automação proporciona escalabilidade, confiabilidade e integração à implantação dos serviços essenciais de segurança, otimização e disponibilidade de que as aplicações precisam — e integra sua entrega aos fluxos de trabalho orquestrados de compilação, teste e implantação que estão se consolidando como o modelo predominante de implantação de aplicações.
Até mesmo a automação simples de tarefas básicas, como adicionar novos servidores virtuais ou membros de pools, pode permitir que a equipe de operações ofereça recursos de autoatendimento aos responsáveis pelas aplicações ou a outros sistemas automatizados, além de liberar tempo para trabalhos mais produtivos, como desenvolver a próxima geração de ferramentas de automação.
A necessidade de automação se torna ainda mais importante quando uma organização começa a adotar várias plataformas de nuvem para fornecer serviços de TI. Ao tentar implantar serviços em vários locais com diferentes características de plataforma, a automação pode ajudar a reduzir o aumento da sobrecarga operacional e os erros decorrentes da falta de familiaridade com novas plataformas.
Mas como automatizar e o que automatizar? Com diferentes modelos operacionais, interfaces e linguagens, o software de automação pode atuar na camada de um único dispositivo ou como ferramentas mais complexas que abrangem vários sistemas. Todas as plataformas de nuvem de infraestrutura como serviço (IaaS) oferecem suas próprias ferramentas nativas para implantar infraestrutura e serviços virtuais. Além disso, a F5 oferece diversas interfaces e opções de orquestração. Embora essa ampla variedade de ferramentas e opções permita automatizar da maneira mais adequada à sua organização, escolher a ferramenta certa pode ser uma tarefa desafiadora — e o risco de maior complexidade e proliferação de ferramentas é real.
Neste documento, apresentaremos uma visão geral das maneiras de automatizar a implantação, o gerenciamento e a configuração de appliances F5 BIG-IP (físicos e virtuais), além de algumas orientações sobre como escolher o caminho mais adequado para sua empresa.
Automação: algumas considerações importantes
O espectro da automação
A automação abrange uma série de atividades. Em uma das extremidades do espectro está o desenvolvimento de scripts simples escritos em Bash, TMSH, Python ou outras linguagens, que podem ser executados localmente para agilizar as atividades de configuração manual. Na outra extremidade do espectro está um sistema completo de “infraestrutura como código”, que combina gerenciamento de código-fonte, orquestradores de fluxo de trabalho e, possivelmente, várias ferramentas de automação para criar um sistema no qual a configuração da infraestrutura é definida e alterada por meio de arquivos de texto armazenados em um repositório. Entre esses dois extremos, há diversas opções para ajudar você a gerenciar a implantação e a configuração de uma plataforma BIG-IP.

Mutável vs. imutável
A maioria das implantações atuais do BIG-IP pode ser considerada mutável, o que significa que podemos esperar que sua configuração mude ao longo do tempo. Isso ocorre porque a plataforma BIG-IP é implantada principalmente como um dispositivo multilocatário que fornece serviços a várias aplicações. À medida que novas aplicações são implantadas — ou que as aplicações existentes são dimensionadas ou exigem serviços adicionais —, a configuração do BIG-IP é atualizada de acordo. Esse método de implantação permite que as equipes de infraestrutura gerenciem um conjunto de infraestrutura centralizada que fornece serviços às aplicações a partir de uma plataforma comum.
No entanto, às vezes, as plataformas BIG-IP são implantadas como parte de uma pilha de aplicações independente, na qual os serviços de um determinado BIG-IP estão vinculados a uma aplicação ou serviço específico. Nessa situação, poderíamos tratar a configuração do BIG-IP como imutável; ou seja, a configuração é instalada durante a inicialização ou como parte da imagem de software e não é alterada durante o ciclo de vida da instância do BIG-IP. As alterações de configuração são realizadas modificando a imagem de software ou o conteúdo do script do agente de inicialização e, em seguida, fazendo uma nova implantação. Esse modelo costuma ser chamado de “nuke and pave”. Embora seja menos comum de modo geral, a disponibilidade de novos modelos de licenciamento do BIG-IP compatíveis com instâncias por aplicação, ferramentas de licenciamento aprimoradas e ferramentas como F5 cloud libs (um conjunto de scripts e bibliotecas Node.js desenvolvido para ajudar a integrar um BIG-IP a uma nuvem) está tornando esse modelo de implantação uma opção viável para organizações que precisam que uma aplicação tenha uma pilha isolada e estreitamente integrada, tanto de código quanto de infraestrutura.

Declarativo vs. imperativo
Há dois modelos conceituais para disponibilizar interfaces de automação aos consumidores. Os esquemas de automação mais comuns da “primeira onda” tendem a seguir um modelo imperativo. Nos modelos de automação imperativos, o consumidor da automação geralmente precisa saber tanto o que deseja alcançar quanto as etapas específicas (normalmente por meio de chamadas de API) necessárias para isso. Muitas vezes, isso transfere para o consumidor a responsabilidade de compreender os detalhes de configuração de serviços avançados, além da complexidade e do esforço adicionais para integrar esses serviços a ferramentas de automação. É como pedir um sanduíche especificando cada uma das operações necessárias para prepará-lo, em vez de simplesmente pedir, bem, um sanduíche e esperar que quem o prepara saiba quais operações realizar e em que ordem.
Em contrapartida, uma interface declarativa permite que os consumidores (humanos ou máquinas) criem serviços solicitando o que desejam. Não é necessário conhecer detalhadamente todas as etapas exigidas, pois o destino da automação conta com fluxos de trabalho pré-configurados ou modelos de serviço para criar a configuração com base nos resultados desejados. Embora uma interface declarativa exija uma configuração inicial um pouco mais complexa, essa complexidade é compensada pela simplicidade da operação após a criação de modelos de serviço adequados. Por isso, em geral, esse é o mecanismo preferencial para a criação de sistemas de automação.
Diretamente ou por meio de uma ferramenta de gerenciamento
Outra decisão que você precisará considerar é se as chamadas de API de automação devem ser feitas por ferramentas de terceiros diretamente ao dispositivo que precisa ser alterado ou por meio de uma ferramenta de gerenciamento adicional. As ferramentas de gerenciamento podem abstrair e simplificar as operações, além de oferecer camadas adicionais de controle e registro em comparação com uma conexão direta à entidade gerenciada. No entanto, você precisará dar suporte a essa ferramenta para garantir que suas camadas de gerenciamento tenham alta disponibilidade em situações nas quais a capacidade de fazer alterações rapidamente seja essencial.

API, agente de inicialização ou CLI?
Os dispositivos BIG-IP são mais comumente automatizados por meio da API REST, que disponibiliza a maior parte das funcionalidades do BIG-IP por meio de um esquema documentado. Os módulos fornecidos pela F5 para ferramentas de automação, como o Ansible, fazem amplo uso da API REST. Além de oferecer uma interface imperativa para cada configuração, as chamadas à API REST podem ser usadas para iniciar modelos de iApp da F5, em que os valores para configurar o serviço iApp são enviados como uma carga JSON na chamada à API. A inclusão do recurso iControl LX também permite criar um endpoint de API definido pelo usuário, capaz de executar uma operação de várias etapas com uma única chamada à API.
Outra maneira comum de automatizar a configuração do BIG-IP é usar agentes de inicialização, que são executados durante a inicialização e podem buscar informações externas para configurar a plataforma BIG-IP. Os agentes de inicialização costumam ser usados para realizar a configuração inicial e integrar dispositivos, além de poderem buscar scripts e arquivos de configuração adicionais em sites de terceiros, como o GitHub, ou em seu próprio repositório. Os agentes de inicialização também podem ser usados para configurar completamente uma plataforma BIG-IP, especialmente se você tiver optado por uma configuração fixa por aplicativo.
A configuração de inicialização mais comum é cloud-init, que está habilitada em todas as imagens do BIG-IP VE (exceto no Microsoft Azure), mas é mais adequada para uso em implantações na AWS e no OpenStack. Além do cloud-init, a F5 fornece uma série de bibliotecas de inicialização em nuvem para ajudar a configurar o BIG-IP durante a inicialização.
Se você optar por usar agentes de inicialização para configurar uma plataforma após a inicialização, tenha especial atenção ao gerenciamento de falhas caso sejam usadas fontes externas, principalmente quando uma instância puder ser iniciada como parte de um evento de escalabilidade. Se os recursos externos estiverem indisponíveis, como o sistema se comportará? Serão criados dispositivos “zumbis” adicionais na tentativa de acompanhar a demanda?
Em alguns casos, os sistemas de automação podem agir como usuários e executar comandos da CLI. Embora isso possa ocasionalmente resolver alguns problemas quando as chamadas de API não forem suficientes, em geral, a dificuldade de suporte e a fragilidade da solução fazem com que esse seja o método usado apenas como último recurso.
Modelos e playbooks
Templates e playbooks podem criar implantações automatizadas e construir infraestruturas com certo grau de padronização. O nível adequado de padronização torna sua infraestrutura mais robusta e fácil de manter. Templates bem elaborados oferecem uma interface declarativa, na qual a entidade solicitante (usuário ou máquina) precisa conhecer apenas as propriedades necessárias, e não os detalhes da implementação. Realizar implantações exclusivamente por meio de templates e corrigir problemas apenas ajustando esses templates pode resultar em um serviço de maior qualidade, pois, em geral, os problemas são corrigidos uma única vez e, em seguida, os serviços são reimplantados com base no novo template.
Integrações de plataforma
As ferramentas de integração de plataforma vinculam a configuração dos serviços BIG-IP a plataformas de computação, como nuvens privadas ou sistemas de gerenciamento de contêineres. Os mecanismos variam entre plataformas e implementações, mas geralmente se enquadram em três modelos:
Substituição dos serviços F5 em uma estrutura de plataforma existente
Nesse modelo, os serviços F5 são inseridos usando uma estrutura de plataforma existente, como ao usar o F5 como o Roteador da OpenShift Container Platform ou ao usar o F5 com o sistema Balanceamento de Carga como Serviço (LBaaS) do OpenStack. O uso desses mecanismos exige poucas alterações nos procedimentos operacionais, pois uma interface nativa da plataforma é usada para configurar os serviços, e o driver fornecido e outros softwares convertem de forma transparente as diretivas de configuração da plataforma em uma configuração do F5. No entanto, lembre-se de que somente os recursos disponíveis por meio da interface nativa da plataforma podem ser implantados com facilidade.
Inscrição em eventos da plataforma
Outro método comum de integração consiste em fazer com que um módulo de software (como o Container Connector para Kubernetes e Mesos) assine eventos em uma plataforma e, em seguida, modifique uma configuração com base nesses eventos. Você pode selecionar quais eventos e serviços implantar adicionando tags ou rótulos aos aplicativos que precisam ser atendidos e configurando o software conector para monitorar eventos com as tags necessárias.
Integração com ferramentas de gerenciamento de plataformas
Muitas plataformas de nuvem privada têm sistemas de gerenciamento desenvolvidos para automação. A VMware, por exemplo, tem várias ferramentas de gerenciamento e integração, incluindo o vRealize Orchestrator (vRO), para o qual há um plugin de terceiros para configuração do BIG-IP. Outros exemplos incluem o plugin para o sistema de criação de modelos OpenStack HEAT.
Descoberta de serviços
Embora não seja uma solução de automação completa, a descoberta de serviços é uma maneira simples e eficiente de integrar as configurações do BIG-IP às mudanças no ambiente. A descoberta de serviços funciona consultando periodicamente o sistema de nuvem por meio de uma API para obter uma lista de recursos e modificando a configuração do BIG-IP de acordo com essa lista. Isso é especialmente útil em ambientes nos quais os recursos são configurados em grupos de dimensionamento automático, pois o dimensionamento dos recursos de computação de back-end exige que o balanceador de carga esteja ciente dos novos recursos. Os componentes de descoberta de serviços são fornecidos com as soluções de dimensionamento automático na nuvem da F5 para AWS e Azure.
Ferramentas comuns de automação: um guia de recursos
Embora não seja possível abordar todas as ferramentas de automação ou orquestração existentes, apresentamos abaixo uma lista das ferramentas, dos casos de uso e dos recursos mais comuns entre os clientes da F5.
-------------------------
Integrações de idiomas
Idioma
Status
Exemplos e fonte
Python
Contribuição da F5
https://github.com/F5Networks/f5-common-python
Go
Contribuição do usuário
https://github.com/f5devcentral/go-bigip
PowerShell
Compatível com F5
https://devcentral.f5.com/wiki/icontrol.powershell.ashx
Ferramentas de gerenciamento de configuração e automação de infraestrutura
Ferramenta
Status
Exemplos e fonte
Ansible
Contribuição da F5
https://github.com/F5Networks/f5-ansible
Terraform
Contribuição da F5
https://github.com/f5devcentral/terraform-provider-bigip
Puppet
Contribuição da F5
https://github.com/f5devcentral/f5-puppet
Chef
Contribuição do usuário
https://github.com/target/f5-bigip-cookbook
SaltStack
Terceiros
https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.f5.html
Sistemas de Modelos de Infraestrutura
Plataforma
Status
Exemplos e fonte
AWS
Compatível com F5 2
https://github.com/F5Networks/f5-aws-cloudformation
Azure
Compatível com F5¹
https://github.com/F5Networks/f5-azure-arm-templates
Compatível com F5 1
https://github.com/F5Networks/f5-google-gdm-templates
OpenStack
Compatível com F5¹
https://github.com/F5Networks/f5-openstack-hot
----------------------------
Agentes de inicialização e scripts de nuvem
Bibliotecas de nuvem
https://github.com/F5Networks/f5-cloud-libs
---------------------------
Integrações de plataforma
Plataformas de gerenciamento de contêineres
Plataforma
Status
Exemplos e fonte
Kubernetes
Compatível com F5¹
https://github.com/F5Networks/k8s-bigip-ctlr
Maratona
Compatível com F5 1
https://github.com/F5Networks/marathon-bigip-ctlr
CloudFoundry
Compatível com F5¹
https://github.com/F5Networks/cf-bigip-ctlr
Plataformas de nuvem privada
Plataforma
Status
Exemplos e fonte
OpenStack (LBaaS)
Compatível com F5¹
https://github.com/F5Networks/f5-openstack-lbaasv2-driver
OpenStack (Heat)
Compatível com F5¹
https://github.com/F5Networks/f5-openstack-hot
VMWare (vRO)
Terceiros
https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/
-------------------
Uma observação sobre ferramentas de orquestração e fluxo de trabalho
As ferramentas e integrações acima representam formas automatizadas de implantar e configurar a plataforma BIG-IP para fornecer serviços de disponibilidade, segurança e escalabilidade de aplicações. Embora essenciais, esses serviços constituem apenas uma parte da implantação de uma aplicação full-stack. A criação de uma pilha completa de aplicações, incluindo servidores, dados, código compilado da aplicação e infraestrutura, de maneira coordenada e testada, exige mais do que uma simples ferramenta de automação.
Você precisará de uma ferramenta de orquestração de nível superior, com fluxos de trabalho associados e integrações com diversos sistemas de automação. Essas ferramentas são usadas principalmente em práticas de Integração Contínua/Entrega Contínua (CI/CD), nas quais a automação é necessária para praticamente todas as implementações. Embora existam várias ferramentas de orquestração, o Jenkins talvez seja a mais comum, e há exemplos de fluxos de trabalho disponíveis que mostram como usar Jenkins, F5 e Ansible para incorporar os recursos de infraestrutura como código da F5 a um fluxo de trabalho de CI/CD. Em geral, no entanto, a ferramenta de orquestração usará uma das ferramentas de automação de configuração para efetivamente realizar as alterações necessárias à implantação dos serviços.
Licenciamento
As plataformas BIG-IP precisam de licenciamento para funcionar, portanto, é útil incluir o licenciamento no caminho crítico da automação. Em ambientes altamente dinâmicos, nos quais pode ser necessário aumentar ou reduzir rapidamente a escala dos dispositivos virtuais BIG-IP ou criá-los para fins de teste e desenvolvimento, os modelos de licenciamento devem ser avaliados com cuidado.
Na nuvem pública, uma opção é usar versões do BIG-IP com cobrança por uso (disponíveis nos marketplaces de nuvem). As instâncias com cobrança por uso obterão a licença automaticamente, e os custos serão cobrados pelo provedor de nuvem conforme o uso ou com base em um compromisso de tempo.
Outra opção é usar conjuntos de licenças reutilizáveis adquiridas por assinatura (ou em caráter perpétuo) em conjunto com o F5 BIG-IQ License Manager, que permitirá atribuir e revogar licenças de um conjunto.
Você pode automatizar as etapas de licenciamento por meio de agentes de inicialização e chamadas de API, o que exigirá acesso de saída à Internet para o servidor de licenças da F5 (mesmo no caso de licenças por uso em plataformas de nuvem).
O que usar e quando?
Dependendo da sua organização, escolher as ferramentas certas de automação e orquestração pode ser muito fácil ou uma tarefa difícil. É fácil se você já adotou uma ferramenta ou metodologia para outros componentes e só precisa integrar o BIG-IP ao sistema. Mesmo sem a integração com uma ferramenta específica, a avançada API REST do iControl, combinada com os recursos do iControl LX e do cloud-init, torna relativamente simples integrar o BIG-IP a uma ferramenta de automação existente (especialmente quando combinada com modelos do iApp, que podem ser usados para criar até mesmo uma configuração complexa com uma única chamada de API).
No entanto, se você estiver começando do zero, as coisas podem ser mais complexas. Assim como na escolha de qualquer outra solução, o primeiro passo deve ser entender seus requisitos. Embora este documento não possa elaborar uma lista de requisitos para você, apresentamos a seguir um conjunto de perguntas e recomendações para ajudá-lo em sua avaliação.
- Modelo de automação: Um modelo declarativo será muito mais simples de usar para os consumidores da sua orquestração. Eles só precisam saber o que desejam, em vez de conhecer todas as etapas do procedimento para chegar lá.
- Possíveis plataformas e ambientes: A esta altura, parece inevitável que os contêineres e diversas plataformas de nuvem sejam uma parte essencial da infraestrutura de aplicações — portanto, planeje-se adequadamente.
- Habilidades: Você já tem experiência em algumas das tecnologias subjacentes? Lembre-se de que essas competências podem existir fora do seu departamento, mas dentro da empresa como um todo. Nesse caso, pode ser uma boa ideia escolher uma ferramenta que use uma linguagem já adotada pela sua organização.
- Capacidade de suporte: Crie apenas sistemas aos quais você possa oferecer suporte. Isso pode parecer óbvio, mas um dos segredos do sucesso é escolher um nível de complexidade que sua organização consiga implementar, maximizando os benefícios da automação sem gerar sobrecarga operacional excessiva.
Pacotes de soluções de nuvem privada da F5
Os pacotes de soluções de nuvem privada da F5 são uma maneira fácil de adquirir a tecnologia e os serviços necessários para disponibilizar os serviços de aplicações da F5 em diversos ambientes de nuvem privada. Os pacotes reúnem software, hardware e serviços profissionais para criar uma solução completa e validada para diversas plataformas de nuvem privada. O uso de pacotes de soluções de nuvem privada pode fornecer uma implantação de referência que pode ser replicada em outras plataformas, criando um conjunto mais uniforme e consistente de serviços de entrega e segurança de aplicações em vários ambientes.
Conclusão
O aumento dos níveis de automação de TI é inevitável. Adotar uma abordagem estratégica para fornecer os principais serviços de entrega e segurança de aplicações garantirá que as aplicações implantadas pela sua organização permaneçam seguras e disponíveis. A automação também pode ajudar a reduzir a sobrecarga operacional, especialmente ao trabalhar com várias plataformas e nuvens públicas.
Escolher o sistema de automação certo pode ser desafiador e, idealmente, deve ser resultado de um esforço colaborativo e abrangente, levando em consideração tanto as competências disponíveis em sua equipe quanto a capacidade de suporte do sistema. Seja qual for a solução escolhida, você pode ter a certeza de que a plataforma BIG-IP e a experiência da F5 estarão disponíveis para ajudar a fornecer os serviços de nível empresarial dos quais suas aplicações dependem, independentemente de onde estejam implantadas.
PUBLICADO EM 09 DE FEVEREIRO DE 2018
