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.1 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 impacto do 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. 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.
Há uma série de pontos-chave de automação no ciclo de vida da entrega de serviços de aplicativos. Dependendo do seu modelo de infraestrutura e métodos de implantação de aplicativos, pode ser necessário desenvolver todos eles ou apenas alguns.
Se você estiver implantando serviços em um BIG-IP físico ou virtual de alta capacidade e multilocatário, as atividades de bootstrapping e integração não serão uma alta prioridade, em comparação com a implantação, o monitoramento e a atualização das configurações de serviços de aplicativos para as centenas ou milhares de aplicativos que eles oferecem suporte.
Se você estiver analisando um modelo de implantação em que cada aplicativo tem instâncias BIG-IP dedicadas em vários ambientes – incluindo instâncias potencialmente efêmeras criadas sob demanda para teste e controle de qualidade – então automatizar os processos de bootstrapping e integração é tão parte do caminho crítico quanto implantar os próprios serviços do aplicativo.
Seja qual for o seu ambiente e quantos processos você precisa automatizar, há alguns tópicos importantes que você precisa considerar.
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.
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.
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 um sanduíche com a expectativa de que o sanduicheiro saiba as operações (e a ordem das operações) necessárias 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.
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á garantir que suas camadas de gerenciamento estejam altamente disponíveis em situações nas quais a capacidade de fazer alterações rapidamente é crítica.
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 pela F5 para ferramentas de automação como Ansible fazem uso extensivo da API REST. A adição do recurso iControl LX também permite a criação de um endpoint de API definido pelo usuário que pode executar uma operação multietapas 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. Isso é especialmente importante se fontes externas forem usadas, principalmente 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 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 podem levar a um serviço de maior qualidade, pois os problemas geralmente só precisam ser corrigidos uma vez. Os serviços são reimplantados a partir do novo modelo, e as atualizações feitas no modelo evitam que o mesmo problema ocorra uma segunda vez.
Ferramentas de integração de plataforma vinculam a configuração de serviços BIG-IP a plataformas 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:
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 .
Então – existe um esquema de automação F5 recomendado? Sim e não. Há tantas variáveis a considerar que conselhos totalmente prescritivos não ajudam. No entanto, reunimos os principais blocos de construção que achamos que você precisará em uma família de produtos coordenada.
A família de produtos F5 Automation Toolchain compreende os blocos de construção de automação e orquestração fundamentais que permitem integrar as plataformas BIG-IP da F5 em padrões de automação comuns, como cadeias de ferramentas de CI/CD.
A cadeia de ferramentas de automação F5 contém os seguintes componentes principais
A família Automation Toolchain foi projetada para gerenciar o ciclo de vida de entrega de serviços de aplicativos, desde a implantação da plataforma (por meio de modelos de nuvem) até a integração, configuração de serviço e telemetria e registro avançados para garantia de desempenho do aplicativo em uso.
Esta crescente família de ferramentas suportadas representa a direção futura para automatizar serviços de aplicativos F5 – mas isso não significa que outras integrações não existam ou não sejam suportadas – veja a seção “Outras ferramentas de automação” deste documento.
A extensão F5 Applications Services 3 (AS3) fornece uma maneira simples e consistente de automatizar a implantação de serviços de aplicativos da camada 4-7 na plataforma BIG-IP por meio de uma API REST declarativa. O AS3 usa um modelo de objeto bem definido representado como um documento JSON. A interface declarativa torna o gerenciamento de implantações de serviços de aplicativos F5 fácil e confiável.
Diagrama: A Arquitetura AS3
A extensão AS3 ingere e analisa as declarações e faz as chamadas de API iControl apropriadas para criar o estado final desejado no BIG-IP de destino. A extensão pode ser executada na instância do BIG-IP ou por meio do AS3 Container – um contêiner/VM separado que executa a extensão AS3 e, em seguida, faz chamadas de API externas para o BIG-IP.
Chamadas AS3 também podem ser feitas via BIG-IQ , que fornece licenciamento, gerenciamento, visualização e controle de acesso para plataformas BIG-IP, e alimenta o F5 Cloud Edition , que traz instâncias sob demanda e por aplicativo do BIG-IP combinadas com análises poderosas.
A extensão Declarative Onboarding fornece uma interface simples para levar uma plataforma F5 BIG-IP logo após a inicialização até o estado pronto para implantação de segurança e gerenciamento de tráfego para aplicativos. Isso inclui configurações do sistema, como licenciamento e provisionamento, configurações de rede, como VLANs e Self IPs, e configurações de cluster, caso você esteja usando mais de um sistema BIG-IP.
Após a conclusão do processo de integração, os serviços do aplicativo podem ser implantados usando qualquer processo de automação (ou manual) que você selecionar.
O Onboarding Declarativo usa um esquema JSON consistente com o esquema AS3 e tem uma arquitetura semelhante. A integração declarativa é fornecida como um RPM independente de TMOS que é instalado em um BIG-IP recém-inicializado durante a primeira etapa da fase de integração.
O BIG-IP é um poderoso gerador de aplicativos, segurança e telemetria de rede. A extensão Telemetry Streaming fornece uma interface declarativa para configurar o streaming de estatísticas e eventos para consumidores terceiros, como:
Assim como acontece com os outros membros da família Automation Toolchain, a configuração é gerenciada por meio de uma interface declarativa usando um esquema JSON simples e consistente.
O gateway de serviços de API é uma imagem de contêiner do Docker que permite que extensões personalizadas do iControl LX sejam executadas em uma plataforma independente do TMOS. Isso pode ajudar você a dimensionar e gerenciar suas implantações F5 abstraindo as operações de gerenciamento das plataformas BIG-IP individuais.
Os modelos de nuvem usam as funções de automação de implantação de nuvens públicas e privadas para provisionar e inicializar dispositivos virtuais BIG-IP.
Atualmente, o F5 tem modelos suportados para as seguintes nuvens:
A F5 está desenvolvendo ativamente os modelos de nuvem para cobrir uma gama mais ampla de cenários de implantação – envie problemas ou solicitações de pull por meio do repositório github relevante.
Os serviços de aplicativos são apenas uma camada na pilha de tecnologia que cria um aplicativo funcional. Integrar, construir e implantar todos os componentes para levar um aplicativo da confirmação do código à implantação operacional e ao monitoramento envolve um grande número de etapas dependentes, que precisam ser executadas na ordem correta. Automatizar essa tarefa é tarefa das ferramentas de orquestração que criam pipelines de fluxo de trabalho de tarefas e ferramentas coordenadas.
A maioria dos pipelines começa com um repositório de código-fonte que contém o código para o aplicativo, os testes e a configuração da infraestrutura.
Com ferramentas como AS3, modelos de nuvem e integração declarativa, você pode armazenar todas as informações de configuração necessárias para criar e configurar serviços de aplicativos como parte de um pipeline de implantação.
Em arquiteturas que usam plataformas de hardware ou software BIG-IP multilocatário de longa duração, você só precisará da configuração AS3 gerenciada como parte do repositório de código de um aplicativo. Por outro lado, em cenários em que você deseja iniciar instâncias dedicadas sob demanda como parte do processo de implantação, o gerenciamento de modelos e declarações de integração declarativa deve fazer parte do repositório do seu aplicativo.
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 usados pelos 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 suportado |
https://github.com/F5Networks/f5-aws-cloudformation |
Azure |
F5 suportado |
https://github.com/F5Networks/f5-azure-arm-templates |
F5 suportado |
https://github.com/F5Networks/f5-google-gdm-templates |
|
OpenStack |
F5 suportado |
https://github.com/F5Networks/f5-openstack-hot |
Agentes de inicialização e scripts de nuvem
Nuvem-init
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 suportado |
https://github.com/F5Networks/k8s-bigip-ctlr |
Fundição de Nuvem Pivotal |
F5 suportado |
https://github.com/F5Networks/cf-bigip-ctlr |
Maratona |
F5 suportado |
https://github.com/F5Networks/marathon-bigip-ctlr |
Red Hat OpenShift |
F5 suportado |
Plataformas de Nuvem Privada
Plataforma |
Status |
Exemplos e Fonte |
OpenStack (LBaaS) |
F5 suportado |
https://github.com/F5Networks/f5-openstack-lbaasv2-driver |
OpenStack (Calor) |
F5 suportado |
https://github.com/F5Networks/f5-openstack-hot |
VMWare (vRO) |
Terceiro |
https://bluemedora.com/products/f5/big-ip-for-vrealize-operations/ |
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 e implantar serviços.
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).
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á. A família F5 Automation Toolchain representará a implantação ‘modelo’ para novos sites no futuro.
Plataformas e ambientes potenciais: É inevitável que contêineres e uma variedade de plataformas de nuvem sejam uma parte essencial da infraestrutura de aplicativos — 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 sua 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.
A crescente automação dos sistemas de TI é inevitável. Adotar uma abordagem estratégica para os principais serviços 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 sua capacidade de dar suporte ao sistema que você constrói. 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.
Uma observação sobre o suporte ao F5. O F5 oferece suporte para vários modelos e ferramentas, mas não para todos. Quando o software está disponível no Github, o código suportado é encontrado apenas nas pastas “suportadas” nos repositórios F5. Outros softwares terão as políticas de suporte definidas nos arquivos leia-me relevantes.