Como adicionar os serviços de entrega de aplicações da F5 ao OpenStack

Introdução

O OpenStack, que está rapidamente se tornando a plataforma de nuvem dominante para o fornecimento de infraestrutura como serviço (IaaS), agora viabiliza nuvens privadas, públicas e privadas gerenciadas. À medida que as nuvens OpenStack hospedam cada vez mais aplicações de produção essenciais aos negócios, os serviços avançados de entrega de aplicações para as camadas 4 a 7 tornam-se indispensáveis. Esses serviços oferecem segurança, escalabilidade e otimização adicionais para garantir que essas aplicações essenciais permaneçam seguras, rápidas e disponíveis. A F5 é a principal fornecedora de serviços avançados de entrega de aplicações para data centers e nuvens públicas e privadas, inclusive as baseadas em OpenStack. Os serviços de entrega de aplicações da F5 podem ser incorporados ao projeto de uma nuvem OpenStack, e a análise antecipada das opções disponíveis ajuda a planejar com eficiência a arquitetura e a implantação do OpenStack.

O que é o OpenStack?

O OpenStack é uma plataforma de software de código aberto usada para fornecer serviços de computação em nuvem. O OpenStack, que começou como um projeto conjunto entre a NASA e a Rackspace Hosting, é atualmente gerenciado pela Fundação OpenStack, cuja missão é promover o software e a comunidade OpenStack.

Atualmente, várias organizações comerciais produzem sua própria distribuição do OpenStack ou oferecem serviços adicionais, como suporte, consultoria ou soluções pré-configuradas.

O OpenStack é composto por diversos componentes que fornecem os vários serviços necessários para criar um ambiente de computação em nuvem. Esses componentes estão amplamente documentados em outros materiais. No entanto, há vários módulos diretamente relevantes para uma implantação do F5 OpenStack.

Um elemento fundamental do OpenStack é a API RESTful, por meio da qual os componentes da infraestrutura podem ser configurados e automatizados. Em muitos casos de uso do OpenStack — como a criação de uma nuvem multilocatário de autoatendimento ou de uma infraestrutura para dar suporte às práticas de DevOps —, a orquestração orientada por API é essencial. A possibilidade de reduzir o tempo de implantação de semanas para minutos ou de implantar centenas de serviços por dia costuma ser a principal motivação para a migração para uma plataforma de nuvem. Para que isso seja eficaz, todos os componentes da infraestrutura devem fazer parte da estrutura de automação. Muitas aplicações precisarão de serviços avançados de entrega de aplicações (como segurança de aplicações ou controle de acesso) para estarem realmente prontas para produção. Portanto, é fundamental que esses serviços sejam integrados às ferramentas de orquestração e provisionamento do OpenStack.

Projetos, locatários e redes

A multilocação é um conceito importante no OpenStack. No OpenStack, um grupo de usuários é chamado de projeto ou locatário. (Os dois termos são intercambiáveis.) É possível atribuir aos projetos cotas de recursos, como computação, armazenamento ou imagens. Uma das decisões mais importantes ao projetar uma arquitetura multilocatária é como a rede será estruturada para os locatários. As plataformas F5® BIG-IP® oferecem diversas opções de multilocação e separação de redes para permitir a interoperabilidade com a multilocação do OpenStack.

Rede de provedor

As redes de provedores geralmente usam redes planas (sem marcação) ou, mais comumente, redes VLAN (com marcação 802.1Q). Elas correspondem de perto às redes tradicionais de data centers. As redes OpenStack são definidas e criadas pelo administrador e compartilhadas entre os locatários.

Em alguns casos, as instâncias de computação de um locatário terão interfaces conectadas diretamente à rede do provedor. Os locatários não definem suas próprias redes; eles simplesmente se conectam às redes configuradas do provedor usando intervalos de endereços IP definidos pelo administrador do provedor. Em outros casos, os locatários criarão configurações de rede virtual dentro das redes do provedor.

Rede de locatários

Os administradores podem permitir que os locatários criem suas próprias arquiteturas de rede específicas, que geralmente são controladas pelo OpenStack Neutron por meio de instâncias do Open vSwitch nos nós de computação, embora outras soluções de rede definida por software (SDN) também possam ser usadas. VLANs ou túneis Ethernet transparentes que utilizam a tecnologia GRE ou VXLAN permitem a comunicação entre as instâncias de computação dos locatários e as isolam dos demais locatários. No início de 2016, o tunelamento GRE era o método de implantação mais comum. Os locatários podem criar suas próprias redes e faixas de endereços IP, que podem se sobrepor entre diferentes locatários. Cada locatário pode ter um roteador OpenStack para permitir a comunicação fora de suas redes. Isso é feito por meio da alocação de um ou mais endereços IP flutuantes ao locatário, que o roteador do locatário converte no endereço IP privado configurado para ele. (Observe que os endereços IP flutuantes do OpenStack Neutron e do BIG-IP são conceitos diferentes; a forma como a plataforma BIG-IP gerencia o isolamento de locatários será abordada posteriormente.)

Serviços de entrega de aplicações da F5

Os produtos da F5 oferecem uma ampla gama de serviços avançados de entrega de aplicações, desenvolvidos para proporcionar escalabilidade, disponibilidade e segurança em várias camadas. Alguns exemplos importantes (mas não exaustivos) incluem:

A plataforma BIG-IP

A plataforma BIG-IP está disponível em edições físicas, virtuais e em nuvem. A plataforma fornece serviços de aplicativos por meio de módulos de software BIG-IP. Uma plataforma BIG-IP pode executar um ou mais módulos de software para atender às necessidades dos aplicativos e pode ser implantada como uma unidade autônoma ou em clusters de alta disponibilidade.

A plataforma BIG-IP é um proxy bidirecional, com estado, de altíssimo desempenho e cópia zero. Compreender esse princípio arquitetural básico pode ajudar a esclarecer como a plataforma BIG-IP fornece serviços e a fundamentar as escolhas arquiteturais.

Figura 1: A arquitetura da plataforma BIG-IP

Os clientes se conectam ao dispositivo ou à instância BIG-IP, que se conecta aos servidores de back-end (ou, em alguns casos, como nos serviços de DNS, processa o tráfego da aplicação e responde diretamente ao cliente). Isso cria um “isolamento” TCP, com a regeneração completa da sessão TCP entre o cliente e o servidor. Dentro desse isolamento lógico, a plataforma BIG-IP fornece serviços de entrega de aplicações. À medida que o tráfego da aplicação passa pela plataforma, ele pode ser inspecionado, alterado e controlado, permitindo que a plataforma BIG-IP ofereça controle total sobre o tráfego de entrada e de saída da aplicação.

A plataforma BIG-IP também possui a certificação do ICSA Labs para firewalls de rede e de aplicações web, para os quais a separação de tráfego e a segurança da plataforma são rigorosamente testadas, proporcionando uma garantia adicional de segurança da plataforma.

Juntando tudo: F5 e OpenStack

Os serviços e as plataformas de entrega de aplicações do OpenStack e da F5 se combinam para oferecer serviços de nível de produção às aplicações hospedadas no OpenStack. Os serviços de entrega de aplicações da F5 podem ser acessados de duas maneiras no OpenStack: pelo serviço Neutron Load Balancing as a Service (LBaaS) versão 2 e pela orquestração Heat. (A F5 também oferece suporte à integração do LBaaS versão 1 com o Neutron, mas a comunidade OpenStack descontinuou a API da versão 1 a partir da versão Liberty do OpenStack).

LBaaS

O Neutron LBaaS oferece serviços básicos de balanceamento de carga para instâncias de computação (e, consequentemente, de aplicações). Esses serviços se limitam a um subconjunto essencial de funções e recursos comuns a uma ampla variedade de plataformas de balanceamento de carga.

O modelo de entrega de serviços LBaaS abstrai os recursos que fornecem o serviço dos próprios serviços. Os recursos que fornecem os serviços fazem parte da infraestrutura do OpenStack, em vez de estarem incluídos nos recursos do tenant do OpenStack. Esse modelo é às vezes chamado de "sob a nuvem".

Figura 2: Implantação de LBaaS sob a nuvem

O OpenStack LBaaS utiliza diversos objetos lógicos para criar uma configuração de balanceamento de carga.

O modelo de objetos é mostrado na Figura 3.

Figura 3: O modelo de objetos do OpenStack LBaaS

Como em todas as operações do OpenStack, o LBaaS é gerenciado por meio de uma API RESTful. A API permite que os locatários façam chamadas REST para criar, atualizar e excluir objetos do LBaaS, com várias etapas entre a chamada de API de um locatário e uma alteração de configuração realizada em uma instância do BIG-IP.

Figura 4: A arquitetura do OpenStack LBaaS

O mapeamento entre os objetos do LBaaS e as chamadas de API para criá-los ou atualizá-los em uma configuração em uma instância do BIG-IP é realizado pelo driver F5 OpenStack LBaaS. O driver LBaaS permite que uma instância do BIG-IP se torne uma provedora de serviços de balanceamento de carga em uma nuvem baseada no OpenStack.

O driver F5 LBaaS é, na verdade, composto por dois componentes distintos:

  • O plug-in F5 LBaaS, que é instalado em um servidor que executa o serviço de API do Neutron
  • O processo do agente F5 LBaaS (que inclui o driver), instalado no host que executará o processo do agente. Cada grupo de serviços de dispositivos (uma coleção de dispositivos BIG-IP em um cluster) requer um processo de agente separado.

O driver LBaaS recebe tarefas resultantes de chamadas à API do LBaaS feitas pelo locatário e as converte em chamadas à API F5 iControl® para criar ou atualizar objetos de configuração no dispositivo BIG-IP ou na edição virtual. Quando os locatários usam redes de locatários isoladas e túneis de sobreposição de rede ou VLANs, o driver LBaaS permite que vários locatários sejam atendidos por uma única instância do BIG-IP ou configuração de alta disponibilidade (HA). O plug-in F5 LBaaS cria as chamadas de API necessárias para a instância do BIG-IP e para o Nova, garantindo que o tráfego do locatário seja roteado para o objeto de escuta isolado do locatário (VIP, na terminologia do BIG-IP) na instância compartilhada do BIG-IP.

Isolamento de tenants

Em ambientes multilocatários, uma parte fundamental do Nova é garantir que os locatários permaneçam isolados uns dos outros. Os componentes de LBaaS do BIG-IP utilizam diversos recursos de multilocação do BIG-IP para garantir a separação do tráfego dos locatários.

Para entender com mais detalhes como e quando esses recursos de multilocação são usados, consulte o README do driver e do agente F5 OpenStack LBaaS.

O LBaaS fornece um sistema simples, orientado por API, para implantar serviços de balanceamento de carga no OpenStack, oferecendo balanceamento de carga básico para um grande número de clientes. No entanto, a API disponibiliza apenas um subconjunto das funções de um Controlador de Entrega de Aplicações (ADC) completo. Esta tabela compara o LBaaS e os serviços nativos do BIG-IP em relação a algumas propriedades importantes de entrega de aplicações, como suporte a protocolos, serviços adicionais e monitores de integridade.

Quando os recursos avançados de um proxy completo da camada de aplicação forem necessários, a implantação dos serviços de entrega de aplicações da F5 usando o serviço de orquestração OpenStack Heat e os modelos associados poderá combinar a criação simples e automatizada de serviços com configurações de serviço mais complexas.

Serviço de orquestração Heat e modelos

O OpenStack Heat é um serviço de orquestração que gera aplicações em execução com base em modelos. O modelo do Heat descreve a infraestrutura em um ou mais arquivos de texto, e o serviço Heat executa as chamadas de API apropriadas para criar os componentes necessários. O serviço Heat pode ser estendido para além dos módulos principais por meio do uso de plug-ins personalizados.

O plug-in F5 Heat permite que os modelos do Heat criem configurações avançadas de entrega de aplicativos em qualquer dispositivo BIG-IP ou edição virtual com acesso à rede que possa ser alcançado pelo servidor que executa o serviço Heat. A instância do BIG-IP também precisará de conectividade e roteamento para as instâncias do locatário, pois essa conectividade não é configurada pelo plug-in do Heat.

Os templates do Heat usam uma linguagem de marcação simples, YAML, desenvolvida para ser legível por humanos e fácil de usar. Os templates do Heat são declarativos, o que significa que basta definir os componentes de infraestrutura desejados e deixar que os provedores subjacentes criem a configuração definida.

Os modelos do Heat permitem criar cenários mais avançados de entrega de aplicações, especialmente quando combinados com o sistema de modelos F5 iApps®. Os modelos do iApps permitem criar repetidamente configurações de entrega de aplicações, bastando fornecer o modelo necessário e os valores específicos da instância. Configurações complexas de entrega que utilizam recursos avançados, como serviços de firewall de aplicações Web, aceleração de aplicações e algoritmos avançados de balanceamento de carga, podem ser implementadas com simples chamadas de API.

Os templates do Heat funcionam com instâncias das edições virtuais do BIG-IP no ambiente de rede de cada locatário (“na nuvem”), bem como com appliances BIG-IP implantados na rede física subjacente. O dispositivo BIG-IP não precisa participar de nenhuma chamada à API de rede do Neutron, pois é tratado como qualquer outro nó de computação do locatário.

Figura 5: Implantação na nuvem com um appliance BIG-IP
Figura 6: Implantação sobre a nuvem com uma edição virtual do BIG-IP

O plug-in F5 Heat está disponível no repositório F5 Github. Esse repositório contém tanto o plug-in Heat — instalado no servidor que executa o mecanismo Heat — quanto exemplos de modelos do Heat.

Opções flexíveis de plataforma

Os serviços de entrega de aplicações da F5 estão disponíveis em diversas plataformas, todas com os mesmos recursos de entrega de aplicações, pois executam o mesmo sistema operacional principal e o mesmo micronúcleo da F5.

Dispositivos F5 e chassis F5 VIPRION®

As plataformas de hardware da F5 oferecem alto desempenho e enorme escalabilidade para ambientes que exigem um grande número de clientes ou locatários, ou para casos de uso que demandam alta taxa de transferência. Um único par de alta disponibilidade (HA) pode atender a centenas de locatários e milhões de clientes. Os dispositivos de hardware da F5 oferecem acordos de nível de serviço (SLAs) para taxas de conexão e reduzem significativamente a carga do ambiente computacional subjacente por meio do uso de hardware especializado no processamento de SSL e TCP. Quando são necessários serviços de segurança de rede e mitigação de ataques distribuídos de negação de serviço (DDoS), as plataformas de hardware da F5 oferecem excelente desempenho e altos níveis de proteção. O suporte a vários espaços de endereçamento sobrepostos e a protocolos de sobreposição de rede permite que os dispositivos de hardware sejam usados na maioria dos ambientes multilocatários.

Edições virtuais do F5 BIG-IP

As edições virtuais do F5 BIG-IP estão disponíveis para a maioria dos hipervisores (incluindo KVM) e para uso em provedores de infraestrutura como serviço (IaaS) de nuvem pública, como Amazon AWS e Microsoft Azure. As edições virtuais (VEs) do BIG-IP também estão disponíveis em diversas capacidades, desde uma edição para laboratório até versões prontas para produção, com upgrades conforme o crescimento para taxas de transferência que variam de 25 Mb a 10 Gb. O licenciamento por volume e os pools de licenças flexíveis permitem o gerenciamento dinâmico do ciclo de vida das instâncias do BIG-IP em ambientes de teste e desenvolvimento. A cobrança por uso também está disponível em ambientes de nuvem pública. As edições virtuais do BIG-IP oferecem os mesmos serviços de entrega de aplicações que as plataformas de hardware, mas não contam com o hardware especializado nem com a escalabilidade dos appliances.

As edições virtuais do BIG-IP podem ficar totalmente contidas em uma rede de locatário. Vistas pelo OpenStack simplesmente como outra instância de computação, elas são configuradas por modelos do Heat ou podem ser usadas como provedor de LBaaS.

1Consulte o Guia de Integração do F5 e OpenStack para obter informações detalhadas.

Como o plug-in F5 LBaaS pode comportar várias instâncias do agente e do driver F5, é possível combinar dispositivos de hardware e edições virtuais do BIG-IP na mesma configuração de LBaaS.

Como em todas as decisões de arquitetura, a opção certa é aquela que melhor atende aos requisitos específicos da solução. É possível criar soluções escaláveis e de alto desempenho usando hardware ou edições virtuais do BIG-IP. Os requisitos gerais de escala e serviços devem ajudar a orientar os arquitetos de infraestrutura na escolha entre hardware, software ou uma combinação dos dois. Para um consumidor ou locatário que deseja apenas provisionar serviços, a escolha entre LBaaS e Heat é mais importante do que a própria plataforma de entrega.

Alta disponibilidade

A alta disponibilidade é essencial em pilhas de rede e de aplicativos de missão crítica e, como esperado, a plataforma BIG-IP conta com uma arquitetura de alta disponibilidade robusta. Os dispositivos e as edições virtuais BIG-IP podem ser implantados como dispositivos autônomos (por exemplo, em ambientes de teste e desenvolvimento), pares de alta disponibilidade ou grupos de dispositivos ativos N-way com até quatro dispositivos. Todos esses tipos de implantação são compatíveis com plataformas OpenStack.

Escalabilidade

A capacidade de adicionar recursos extras ao LBaaS ou aos recursos BIG-IP do locatário permite que administradores ou locatários lidem com aumentos no volume de processamento das aplicações ou no número de locatários. A expansão vertical ou horizontal sem interrupção dos serviços é essencial para criar uma nuvem ágil e escalável.

A plataforma BIG-IP pode ser dimensionada tanto vertical quanto horizontalmente: os appliances e as edições virtuais podem ser dimensionados verticalmente por meio de upgrades de licença, e o chassi VIPRION pode ser dimensionado verticalmente com a adição de blades de hardware. O plug-in LBaaS do BIG-IP gerenciará vários agentes e drivers (cada um deles gerenciando uma única instância ou cluster do BIG-IP), permitindo o dimensionamento horizontal. Quando vários agentes estiverem em uso, o plug-in LBaaS da F5 manterá, por padrão, todos os objetos do balanceador de carga LBaaS de um determinado tenant atribuídos a um dispositivo BIG-IP (ou cluster).

Ao usar instâncias do BIP-IP VE em um tenant, elas também podem ser ampliadas por meio de licenças ou com a adição de novas instâncias para atender a novas cargas de trabalho.

Conclusão

À medida que as implantações do OpenStack passam a hospedar cada vez mais aplicações críticas de produção, cresce a necessidade de serviços robustos e de alta qualidade para a entrega de aplicações no OpenStack. Os serviços de entrega de aplicações da F5 oferecem a capacidade, a segurança e os recursos avançados de que essas aplicações críticas precisam, aliados à agilidade e à baixa sobrecarga operacional proporcionadas por uma nuvem baseada no OpenStack.