Automatizando serviços de aplicativos F5: Um guia prático

INTRODUÇÃO

Automatizar a implantação e o gerenciamento de configuração de entrega de aplicativos e dispositivos de segurança se tornou uma prática quase obrigatória. No relatório IDG FutureScape de 2017, a automação e o gerenciamento de múltiplas nuvens foram classificados como algumas das principais iniciativas que impactarão os negócios até 2021. A automação traz escala, confiabilidade e integração à implantação dos serviços essenciais de segurança, otimização e disponibilidade que os aplicativos precisam, e torna sua entrega parte dos fluxos de trabalho orquestrados de criação, teste e implantação que estão surgindo como o modelo dominante de implantação de aplicativos.

Até mesmo a automação simples de tarefas básicas, como adicionar novos servidores virtuais ou membros de pool, pode permitir que as operações forneçam capacidade de autoatendimento aos proprietários de aplicativos ou outros sistemas automatizados, além de liberar tempo para trabalhos mais produtivos, como criar a próxima onda de ferramentas de automação.

A necessidade de automatizar assume uma importância ainda maior quando uma organização começa a adotar diversas plataformas de nuvem para fornecer serviços de TI. Quando você está tentando 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 diminuir erros devido à falta de familiaridade com novas plataformas.

Mas como e o que automatizar? Com diferentes modelos de operação, interfaces e linguagens, o software de automação pode funcionar em uma única camada de dispositivo ou como ferramentas multissistema mais complexas. 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, o F5 oferece uma variedade de interfaces e opções de orquestração. Embora essa variedade de ferramentas e opções ofereça a oportunidade de automatizar da maneira que melhor se adapta à sua organização, escolher a ferramenta certa pode ser uma tarefa assustadora — e o risco de complexidade e proliferação de ferramentas é real.

Neste artigo, forneceremos uma visão geral das maneiras pelas quais você pode automatizar a implantação, o gerenciamento e a configuração de dispositivos F5 BIG-IP (físicos e virtuais), juntamente com alguns conselhos sobre como escolher o caminho certo para o seu negócio.

Automação: Algumas considerações importantes

O espectro da automação

A automação abrange uma gama de atividades. Em uma extremidade do espectro está o desenvolvimento de scripts simples escritos em Bash, TMSH, Python ou outras linguagens que podem ser executados localmente para acelerar atividades de configuração manual. Na outra ponta do espectro está um sistema completo de “infraestrutura como código” que combina gerenciamento de código-fonte, orquestradores de fluxo de trabalho e (potencialmente) múltiplas ferramentas de automação para criar um sistema onde a configuração da infraestrutura é definida e alterada com arquivos de texto contidos em um repositório. Entre esses dois extremos, há diversas opções diferentes para ajudar você a gerenciar a implantação e a configuração de uma plataforma BIG-IP.

Ilustração simples de como a infraestrutura como código e a integração de ferramentas de orquestração são a melhor solução, conforme descrito no blog.

Mutável vs. imutável

A maioria das implantações atuais do BIG-IP podem ser consideradas mutáveis, 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 para vários aplicativos. À medida que novos aplicativos são implantados, ou os aplicativos existentes são dimensionados ou exigem serviços adicionais, a configuração do BIG-IP será atualizada para corresponder. Esse método de implantação permite que equipes de infraestrutura gerenciem um conjunto de infraestrutura centralizada, que fornece serviços para aplicativos de uma plataforma comum.

No entanto, às vezes, as plataformas BIG-IP são implantadas como parte de uma pilha de aplicativos discreta, onde os serviços de um BIG-IP específico são vinculados a um aplicativo 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 na inicialização ou como parte da imagem do software e não é alterada durante o ciclo de vida da instância do BIG-IP. As alterações de configuração são efetuadas alterando a imagem do software ou o conteúdo do script do agente de inicialização e, em seguida, reimplantando. Este modelo é frequentemente chamado de “nuclear e pavimentar”. Embora menos comum no geral, a disponibilidade de novos modelos de licenciamento BIG-IP para oferecer suporte a instâncias por aplicativo, ferramentas de licenciamento aprimoradas e ferramentas como bibliotecas de nuvem F5 (um conjunto de scripts e bibliotecas Node.js projetados para ajudar você a integrar um BIG-IP em uma nuvem) estão tornando esse modelo de implantação uma opção viável para organizações que exigem que um aplicativo tenha uma pilha isolada e fortemente vinculada de código e infraestrutura.

Ilustração gráfica de infraestrutura imutável e mutável

Declarativo vs. imperativo

Existem dois modelos conceituais de como as interfaces de automação são expostas aos consumidores. Os esquemas de automação de “primeira onda” mais comuns tendem a um modelo imperativo. Em modelos de automação imperativos, o consumidor de automação geralmente precisa saber o que deseja alcançar e as etapas explícitas (geralmente por meio de chamadas de API) para alcançá-los. Isso geralmente coloca o fardo de entender os detalhes de configuração de serviços avançados — bem como a complexidade e o esforço adicionais para integrar os serviços com ferramentas de automação — sobre o consumidor. É como pedir um sanduíche especificando cada operação necessária para fazê-lo, em vez de apenas pedir, bem, um sanduíche, e esperar que o sanduicheiro saiba quais operações executar em que ordem para fazê-lo.

Em contraste, uma interface declarativa permite que os consumidores (humanos ou máquinas) criem serviços pedindo o que desejam. Não é necessário conhecimento detalhado de todas as etapas necessárias, pois o alvo da automação tem fluxos de trabalho pré-configurados ou modelos de serviço para criar a configuração com base nos resultados necessários. Embora uma interface declarativa envolva uma configuração inicial um pouco mais complexa, essa complexidade é compensada pela simplicidade da operação quando modelos de serviço adequados são criados. Isso faz com que, em geral, seja o mecanismo preferido para construir sistemas de automação.

Diretamente ou por meio de uma ferramenta de gestão

Outra decisão que você precisa considerar é se as chamadas de API de automação devem ser feitas de ferramentas de terceiros diretamente para o dispositivo que precisa ser alterado ou por meio de uma ferramenta de gerenciamento adicional. Ferramentas de gerenciamento podem abstrair e simplificar operações e podem oferecer camadas adicionais de controle e registro em vez de uma conexão direta com a entidade gerenciada. No entanto, você precisará dar suporte a essa ferramenta para garantir que suas camadas de gerenciamento estejam altamente disponíveis em situações em que a capacidade de fazer alterações rapidamente é crítica.

Ilustração gráfica do Via Management Server versus Direct

API, agente de inicialização ou CLI?

Os dispositivos BIG-IP são mais comumente automatizados por meio da API REST, que expõe a maior parte da funcionalidade do BIG-IP por meio de um esquema documentado . Os módulos fornecidos pelo F5 para ferramentas de automação como o Ansible fazem uso extensivo da API REST. Além de oferecer uma interface imperativa por configuração, as chamadas da API REST podem ser usadas para iniciar modelos iApp do F5, onde os valores para configurar o serviço iApp são passados como uma carga útil JSON na chamada da API. A adição do recurso iControl LX também permite a criação de um ponto de extremidade de API definido pelo usuário que pode executar uma operação de várias etapas a partir de uma única chamada de API.

Outra maneira comum de automatizar a configuração do BIG-IP é usar agentes de inicialização, que são executados na inicialização e podem buscar informações externas para configurar a plataforma BIG-IP. Os agentes de inicialização são frequentemente usados para executar a configuração inicial em dispositivos “integrados” e podem buscar scripts e arquivos de configuração adicionais de sites de terceiros, como o GitHub, ou do 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ê escolheu uma configuração fixa por aplicativo.

A configuração de inicialização mais comum é cloud-init , que é habilitada em todas as imagens BIG-IP VE (exceto no Microsoft Azure), mas é mais adequada para uso em implantações AWS e OpenStack. Juntamente com o cloud-init, o F5 fornece uma série de bibliotecas de inicialização em nuvem para ajudar a configurar o BIG-IP na inicialização.

Se você optar por usar agentes de inicialização para configurar uma plataforma após a inicialização, preste muita atenção ao gerenciamento de falhas se fontes externas forem usadas, especialmente quando uma instância pode ser iniciada como parte de um evento de dimensionamento. Se os recursos externos não estiverem disponíveis, como o sistema se comportará? Serão criados dispositivos “zumbis” adicionais para tentar atender à demanda?

Em alguns casos, os sistemas de automação podem se comportar como usuários e executar comandos CLI. Embora isso possa ocasionalmente resolver alguns problemas em que as chamadas de API podem não ser concluídas, em geral a dificuldade de suporte e a fragilidade da solução fazem com que esse seja o método de último recurso.

Modelos e manuais

Modelos e manuais podem criar implantações automatizadas e construir infraestruturas com um certo grau de padronização. O nível apropriado de padronização torna sua infraestrutura mais robusta e sustentável. Modelos bem criados oferecem uma interface declarativa, onde a entidade solicitante (usuário ou máquina) precisa apenas conhecer as propriedades necessárias, e não os detalhes de implementação. A implantação estritamente por meio de modelos e a correção apenas por meio da correção de modelos pode levar a um serviço de maior qualidade, pois os problemas geralmente são corrigidos uma vez e, então, os serviços são reimplantados a partir do novo modelo.

Integrações de plataforma

Ferramentas de integração de plataforma vinculam a configuração de serviços BIG-IP a plataformas de computação, como nuvem privada ou sistemas de gerenciamento de contêineres. Os mecanismos variam entre plataformas e implementações, mas geralmente se enquadram em três modelos:

Substituindo serviços F5 em uma plataforma existente
Neste modelo, os serviços F5 são inseridos usando uma construção de plataforma existente, como usar o F5 como o OpenShift Container Platform Router ou usar o F5 com o sistema OpenStack Load Balancing as a Service (LBaaS) . O uso desses mecanismos exige pouca mudança nos procedimentos operacionais, já que uma interface nativa da plataforma é usada para configurar serviços, e o driver fornecido e outros softwares traduzem as diretivas de configuração da plataforma em uma configuração F5 perfeitamente. Lembre-se, no entanto, de que apenas os recursos disponíveis por meio da interface nativa da plataforma podem ser facilmente implantados.

Assinatura de eventos da plataforma

Outro método de integração comum é que um módulo de software (como o Container Connector para Kubernetes e Mesos) assine eventos dentro de uma plataforma e então modifique uma configuração com base nos eventos. Você pode selecionar quais eventos e serviços implantar marcando ou rotulando os aplicativos que precisam ser atendidos e configurando o software do conector para monitorar eventos com as marcações necessárias.

Integração com ferramentas de gerenciamento de plataforma 

Muitas plataformas de nuvem privada têm sistemas de gerenciamento projetados para automação. A VMware, por exemplo, tem diversas 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 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 poderosa de integrar configurações de BIG-IP com mudanças no ambiente. A descoberta de serviços funciona por meio da pesquisa periódica do sistema de nuvem via API para recuperar uma lista de recursos e modificar a configuração do BIG-IP adequadamente. Isso é especialmente útil em ambientes onde os recursos são configurados em grupos de dimensionamento automático, porque o dimensionamento do recurso de computação de back-end exige que o balanceador de carga esteja ciente dos novos recursos. Os componentes de descoberta de serviço são fornecidos com soluções de dimensionamento automático em nuvem F5 para AWS e Azure .

Ferramentas comuns de automação: Um guia de recursos 

Embora não possamos cobrir todas as ferramentas de automação ou orquestração concebíveis, abaixo está uma lista das ferramentas, casos de uso e recursos mais comuns em uso entre os clientes da F5.

Integrações de idiomas

Linguagem

Status

Exemplos e Fonte

Python

F5 contribuiu

https://github.com/F5Networks/f5-common-python

Ir

Contribuição do usuário

https://github.com/f5devcentral/go-bigip

PowerShell

F5 suportado

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

F5 contribuiu

https://github.com/F5Networks/f5-ansible

Terraformar

F5 contribuiu

https://github.com/f5devcentral/terraform-provider-bigip

Fantoche

F5 contribuiu

https://github.com/f5devcentral/f5-puppet

Chefe de cozinha

Contribuição do usuário

https://github.com/target/f5-bigip-cookbook

Pilha de Sal

Terceiro

https://docs.saltstack.com/en/latest/ref/runners/all/salt.runners.f5.html

 

Sistemas de Modelos de Infraestrutura

Plataforma

Status

Exemplos e Fonte

AWS

F5 Suportado2

https://github.com/F5Networks/f5-aws-cloudformation

Azure

F5 Suportado1

https://github.com/F5Networks/f5-azure-arm-templates

Google

F5 Suportado1

https://github.com/F5Networks/f5-google-gdm-templates

OpenStack

F5 Suportado1

https://github.com/F5Networks/f5-openstack-hot

 

Agentes de inicialização e scripts de nuvem

Nuvem-init
https://devcentral.f5.com/articles/f5-in-aws-part-5-cloud-init-single-nic-and-scale-out-of-big-ip-in-v12-21476

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

F5 Suportado1

https://github.com/F5Networks/k8s-bigip-ctlr

Maratona

F5 Suportado1

https://github.com/F5Networks/marathon-bigip-ctlr

CloudFoundry

F5 Suportado1

https://github.com/F5Networks/cf-bigip-ctlr

 

Plataformas de Nuvem Privada

Plataforma

Status

Exemplos e Fonte

OpenStack (LBaaS)

F5 Suportado1

https://github.com/F5Networks/f5-openstack-lbaasv2-driver

OpenStack (Calor)

F5 Suportado1

https://github.com/F5Networks/f5-openstack-hot

VMWare (vRO)

Terceiro

https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/

Uma nota sobre ferramentas de orquestração e fluxo de trabalho 

As ferramentas e integrações acima representam maneiras automatizadas de implantar e configurar a plataforma BIG-IP para fornecer disponibilidade de aplicativos, segurança e serviços de dimensionamento. Esses serviços, por mais essenciais que sejam, constituem apenas uma parte de uma implantação de aplicativo full-stack. Criar uma pilha de aplicativos completa com servidores, dados, código de aplicativo compilado e infraestrutura de maneira coordenada e testada requer 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 vários sistemas de automação. Essas ferramentas são mais comumente usadas em práticas de trabalho de Integração Contínua/Entrega Contínua (CI/CD), para as quais a automação é necessária para todas as implementações práticas. Embora existam diversas ferramentas de orquestração, o Jenkins é talvez o mais comum, e há fluxos de trabalho de exemplo disponíveis que mostram como você pode usar o Jenkins, o F5 e o Ansible para incorporar recursos de infraestrutura como código do F5 em um fluxo de trabalho de CI/CD. Em geral, no entanto, a ferramenta de orquestração funcionará por meio de uma das ferramentas de automação de configuração para realmente fazer alterações nos serviços de implantação.

Licenciamento

As plataformas BIG-IP exigem licenciamento para funcionar, por isso é útil incluir o licenciamento no caminho crítico da automação. Em ambientes altamente dinâmicos, onde dispositivos virtuais BIG-IP podem precisar ser rapidamente ampliados ou reduzidos ou criados para fins de teste e desenvolvimento, os modelos de licenciamento devem ser considerados cuidadosamente.

Na nuvem pública, um caminho é usar versões de cobrança de serviços públicos do BIG-IP (disponíveis em mercados de nuvem). As instâncias de cobrança de serviços públicos serão autolicenciadas, e os custos serão cobrados pelo provedor de nuvem com base no pagamento conforme o uso ou no compromisso de tempo.

Outra opção é usar pools de licenças reutilizáveis adquiridas por assinatura (ou perpetuamente) junto com o F5 BIG-IQ License Manager , que permitirá que você atribua e revogue licenças de um pool.

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 da Internet ao servidor de licença F5 (mesmo no caso de licenças de utilitários em plataformas de nuvem).

O que usar quando?

Dependendo da sua organização, escolher as ferramentas certas de automação e orquestração pode ser uma tarefa muito fácil ou 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 integração em uma ferramenta específica, a rica API REST do iControl combinada com os recursos do iControl LX e o cloud-init tornam a integração do BIG-IP em uma ferramenta de automação existente relativamente simples (especialmente se 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, entender suas necessidades deve vir em primeiro lugar. Embora este artigo não possa elaborar sua lista de requisitos para você, aqui está um conjunto de perguntas e recomendações para ajudá-lo a fazer sua avaliação

  • Modelo de automação: Um modelo declarativo será muito mais simples para seus consumidores de orquestração interagirem. Os consumidores só precisam saber o que querem, em vez de passar por todos os procedimentos necessários para chegar lá.
  • Plataformas e ambientes potenciais: Assumir que contêineres e uma variedade de plataformas de nuvem serão uma parte essencial da infraestrutura de aplicativos parece inevitável neste momento — planeje adequadamente.
  • Habilidades: Você já tem habilidades em algumas das tecnologias subjacentes? Tenha em mente que essas habilidades podem existir fora do seu departamento, mas dentro da empresa como um todo. Se sim, pode fazer sentido escolher uma ferramenta que use uma linguagem que sua organização já adotou.
  • Suportabilidade: Crie apenas sistemas que você possa suportar. Isso pode parecer óbvio, mas a chave para o sucesso é escolher o nível de complexidade que você pode oferecer à sua organização, de modo a maximizar os benefícios da automação, sem causar sobrecarga operacional excessiva.

Pacotes de soluções de nuvem privada 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 fornecer serviços de aplicativos da F5 em diversos ambientes de nuvem privada. Os pacotes reúnem software, hardware e serviços profissionais para criar uma solução validada e pronta para uso para diversas plataformas de nuvem privada. O uso de pacotes de soluções de nuvem privada pode fornecer um modelo de implantação que pode ser replicado em outras plataformas para criar um conjunto mais uniforme e consistente de serviços de entrega e segurança de aplicativos em vários ambientes.

Conclusão

Níveis crescentes de automação de TI são inevitáveis. Adotar uma abordagem estratégica para fornecer serviços essenciais de entrega e segurança de aplicativos garantirá que os aplicativos implantados pela sua organização sejam mantidos seguros e disponíveis. A automação também pode ajudar a reduzir sua sobrecarga operacional, especialmente ao trabalhar em múltiplas plataformas e nuvens públicas.

Escolher o sistema de automação certo pode ser desafiador e, idealmente, deve ser feito como um esforço colaborativo e holístico, tendo em vista os conjuntos de habilidades disponíveis para você, bem como a capacidade de suporte do sistema. Seja qual for a solução escolhida, você pode ter certeza de que a plataforma BIG-IP e a experiência da F5 estarão disponíveis para ajudar você a fornecer os serviços de nível empresarial dos quais seus aplicativos dependem, não importa onde eles sejam implantados.

Publicado em 09 de fevereiro de 2018
  • Compartilhe no Facebook
  • Compartilhar para X
  • Compartilhe no Linkedin
  • Compartilhar por e-mail
  • Compartilhe via AddThis

Conecte-se com F5

F5 LABS

O que há de mais moderno em inteligência de ameaças a aplicativos.

DEVCENTRAL

A comunidade F5 para fóruns de discussão e artigos de especialistas.

Sala de redação da F5

Notícias, blogs F5 e muito mais.