F5 e conteinerização

INTRODUÇÃO

As organizações lutam constantemente entre adotar mudanças tecnológicas para abrir novas oportunidades de negócios e proteger os negócios de novos desafios e riscos. Neste artigo, examinaremos a conteinerização e como a adoção dessa tecnologia em produtos F5 afeta profissionais de TI, arquitetos e tomadores de decisões de negócios.

Nos últimos 20 anos, a virtualização transformou a computação de servidores, permitindo que vários sistemas operacionais separados sejam executados em uma plataforma de hardware. Uma abordagem mais moderna é a conteinerização (ou virtualização do sistema operacional), que permite que vários aplicativos sejam executados em uma única instância de um sistema operacional host. Cada instância do aplicativo compartilha os binários e bibliotecas instalados na única instância do sistema operacional. A Figura 1 compara essas abordagens.

Figura 1 - Comparando máquinas virtuais com contêineres

Ao contrário das máquinas virtuais (VMs), os contêineres podem compartilhar o mesmo sistema operacional, virtualizando no nível do sistema operacional, em vez do nível do hipervisor.

Não é de surpreender que os desenvolvedores gostem de contêineres porque eles tornam o desenvolvimento e a implantação de aplicativos e a criação de microsserviços rápidos e fáceis. A conteinerização também permite maior portabilidade, pois os aplicativos em contêineres são mais fáceis de implantar em diferentes sistemas operacionais, plataformas de hardware e serviços de nuvem. Os contêineres usam menos recursos do que os aplicativos executados diretamente em sistemas operacionais hospedados em bare metal ou em máquinas virtuais.

Geralmente, a maior parte da discussão (e documentação) sobre contêineres se concentra na perspectiva de programação ou DevOps. Como profissional de TI, arquiteto de sistemas ou tomador de decisões de negócios, embora você aprecie a flexibilidade que a conteinerização pode trazer, você pode ter preocupações genuínas sobre como essa mudança afetará a administração, o gerenciamento e o monitoramento de aplicativos e serviços em seu ambiente. Você também quer garantir que a conteinerização não afete negativamente a segurança da rede e dos aplicativos.

Lidando com os desafios modernos de TI

Em um mercado cada vez mais competitivo, os sistemas de TI modernos devem oferecer benefícios comerciais realizáveis. Para atender a esse requisito, é essencial que os departamentos de TI possam aumentar seu capital de aplicativos, projetando e criando arquiteturas que apresentem não apenas mais aplicativos, mas aplicativos com maior funcionalidade, usabilidade aprimorada e integração mais fácil.

O desafio para os diretores de TI é que seus departamentos precisam oferecer maior funcionalidade sem aumentar o número de funcionários. As melhorias na produtividade agora não vêm da contratação de mais pessoas, mas dos avanços em tecnologia e automação que permitem aumentar o número de aplicativos disponíveis para os clientes, gerenciados pela mesma equipe.

A facilidade de implantação de contêineres apresenta um desafio adicional. Os desenvolvedores precisam de educação e orientação para garantir que considerem tanto a escala quanto a segurança ao criar aplicativos, e os profissionais de TI podem ajudá-los a atingir esses resultados. Aqui, você precisa pensar sobre o impacto na produção de plataformas de contêineres como Kubernetes e Docker, e como a necessidade de ser ágil não resulta em resultados indesejáveis de práticas de segurança precárias ou falha em considerar cargas de produção. 

O Kubernetes é uma plataforma de código aberto para gerenciar serviços e cargas de trabalho em contêineres. O próprio Kubernetes surgiu como um sistema de orquestração e agendamento de contêineres do Google, que a empresa doou para a Cloud Native Computing Foundation, tornando o código-fonte aberto a todos. O Docker fornece um tipo semelhante de arquitetura e distribuição de código aberto, consistindo em um conjunto de Software como Serviço (SaaS) e Plataforma como Serviço (PaaS) acoplados. 

Calculando o Tempo para Valorizar

Um fator essencial para proporcionar benefícios comerciais realizáveis é minimizar o tempo de geração de valor. Cada vez mais, fatores como desempenho e latência ficam em segundo plano em relação à facilidade de inserção. Consequentemente, se você tiver dois componentes, ambos com funcionalidade quase idêntica, mas um tiver desempenho mais alto enquanto o outro for mais fácil de integrar, as organizações tendem a escolher o componente que for mais fácil de integrar ao ambiente atual. À medida que a complexidade ambiental aumenta, esse preconceito provavelmente continuará.

Determinando Valor

Ao procurar implementar uma tecnologia como a conteinerização, você precisa de alguma forma de medir o valor que essa nova abordagem traz. Os fatores que afetam o valor normalmente incluem adequação, capacidade, esforço e custo. A equação a seguir fornece um exemplo de como atribuir valor relativo com base nesses fatores.

F5 e conteinerização

As unidades que você usa na equação são irrelevantes; o importante é que elas sejam as mesmas para cada item que você avaliar.

Essa equação destaca que a tecnologia deve ser integrada de forma contínua e que a familiaridade (ou seja, a facilidade de inserção) pode ser mais importante do que os melhores recursos ou desempenho da categoria. Consequentemente, o esforço de implantação tem um efeito de equilíbrio quando se trata de cálculos de valor geral, o que pode resultar em produtos menos capazes sendo mais atraentes para os clientes devido à sua facilidade de inserção.

Um exemplo desse efeito pode ocorrer com duas soluções de monitoramento concorrentes. O produto A tem especificações fantásticas, com os melhores registros e relatórios da categoria. Ele incorpora segurança de nível militar e é altamente gerenciável. Infelizmente, sua interface de linha de comando proprietária, suporte insuficiente para padrões abertos e falta de recursos de integração dificultam a instalação. Também é mais caro do que a maioria dos outros produtos no mercado.

Em comparação, o Produto B não chega nem perto dos recursos do seu rival, embora ainda ofereça níveis aceitáveis de monitoramento e segurança. No entanto, ele supera o produto concorrente em termos de custo e facilidade de instalação. A tabulação das pontuações de cada produto produz a tabela abaixo, com notas atribuídas de 1 a 10 para adequação, capacidade e esforço de instalação, sendo 1 a nota mais baixa e 10 a mais alta.

 

Produto A

Produto B

Adequação

10

4

Capacidade

10

2

Esforço de instalação

10

2

Custo

$ 1.000

$ 500

Valor

20

60

A inserção desses números na equação acima produz a pontuação de valor listada na linha inferior da tabela.

Você pode ver como o produto menos adequado e capaz, que é cinco vezes mais fácil de instalar pela metade do preço, oferece cerca de três vezes mais valor em comparação ao seu melhor rival. Muitas organizações entendem essas considerações e estão cada vez mais usando a facilidade de instalação e integração como um fator-chave ao adotar e implantar novas tecnologias. Abordagens baseadas em contêineres podem reduzir significativamente o esforço de implantação e os custos de controle, mantendo ao mesmo tempo a adequação e a capacidade.

Por que os contêineres estão cada vez mais populares?

Com os aplicativos gerando cada vez mais valor comercial, a conteinerização fornece uma solução lógica para os desafios das práticas de implementação de TI centradas em DevOps. Os contêineres fornecem isolamento da plataforma na qual são executados e entre si, sem a sobrecarga de gerenciamento da execução de máquinas virtuais. Os desenvolvedores podem facilmente criar ambientes de aplicativos que contenham todos os binários e bibliotecas de que precisam, com os recursos de rede e gerenciamento necessários integrados. A conteinerização também simplifica os testes e a implantação de aplicativos.

Ambientes baseados em contêineres oferecem maior utilização de recursos do que computadores virtuais ao aumentar enormemente o número de instâncias de aplicativos que podem ser executadas em um servidor. Sem a sobrecarga dos sistemas operacionais host e convidado, os ambientes de contêiner fazem uso mais eficiente do tempo do processador e do espaço de memória ao compartilhar o kernel do sistema operacional. A conteinerização também oferece mais flexibilidade arquitetônica, pois a plataforma subjacente pode ser uma máquina virtual ou um servidor físico. Estratégia de produto Red Hat1 indica que quase metade dos clientes do Kubernetes que implantarem aplicativos em contêineres no futuro executarão o mecanismo de contêiner diretamente no bare metal.

A conteinerização representa o próximo avanço no caminho da computação baseada em hardware para a virtualização e multinuvem, permitindo até 100% de automação, tempos de criação de serviços em menos de um segundo e tempos de vida de serviço que podem ser medidos em segundos. É esse provisionamento e desprovisionamento imediato de serviços e microsserviços dentro de uma arquitetura de TI moderna que ambientes de contêiner como Docker, OpenShift e Kubernetes permitem.

É importante ressaltar que a conteinerização oferece um benefício essencial no mundo multiplataforma e multinuvem de hoje: a capacidade de portar aplicativos do local para a nuvem, para outro fornecedor de nuvem e de volta para o local novamente, tudo sem alterações no código subjacente. Com a interoperabilidade sendo um fator-chave que sustenta as decisões arquitetônicas, essa portabilidade permite que os departamentos de TI atinjam marcos importantes para implantações de serviços de aplicativos e oferece suporte às equipes de DevOps para atingir as metas organizacionais. Um relatório recente da IBM2 destaca como o uso de contêineres para implantações de aplicativos também permite que as empresas melhorem a qualidade dos aplicativos, reduzam defeitos e minimizem o tempo de inatividade dos aplicativos e os custos associados.

O mesmo relatório também lista aplicativos que são especialmente adequados para ambientes baseados em contêineres, que incluem análise de dados, serviços web e bancos de dados. Aqui, o fator-chave é o desempenho, mas outros fatores relevantes a serem considerados são se os aplicativos provavelmente serão executados em vários ambientes e se eles usam microsserviços para dar suporte a várias equipes de DevOps trabalhando em paralelo. Com contêineres, você pode resolver problemas de desempenho simplesmente criando mais instâncias de um aplicativo, supondo que você implemente um design de arquitetura sem estado e forneça serviços de aplicativo em escala.

Desafios de contêineres

Os contêineres não são totalmente isentos de desafios de implantação e a tecnologia ainda jovem ainda não atingiu o nível de maturidade da virtualização. A seção a seguir destaca alguns dos desafios que os contêineres trazem.

  1. Gerenciamento de chaves – O gerenciamento de chaves entre contêineres pode ser problemático, principalmente porque um dos principais benefícios dos contêineres é a portabilidade. Seu ambiente de gerenciamento de chaves precisa ser capaz de lidar com a movimentação de contêineres entre hosts locais, bem como para a nuvem e vice-versa.
  2. Rede – Os contêineres desafiam os modelos de rede tradicionais devido à velocidade com que os contêineres podem girar para cima e para baixo. Consequentemente, endereços de rede estáticos seriam impraticáveis em tal ambiente. E embora mecanismos de endereçamento como o Protocolo de Configuração Dinâmica de Hosts (DHCP) funcionassem bem com hosts físicos e máquinas virtuais, cargas de trabalho de contêiner podem aparecer e desaparecer antes que o endereço IP do contêiner possa registrá-lo e o próprio contêiner se torne detectável. A separação do hardware de rede física usando redes definidas por software (SDN) baseadas em contêineres é essencial para que você possa migrar topologias inteiras de contêineres de ambientes locais para nuvens privadas e públicas. A maioria dos ambientes de contêiner implementa alguma forma de Interface de Rede de Contêiner (CNI) para executar essa função.
  3. Várias tecnologias de contêiner – Sua organização pode já ter várias tecnologias de contêiner diferentes implementadas em seu ambiente. Mesmo com essas implementações, é provável que sua equipe não tenha um profundo conhecimento técnico de todos esses ambientes. O treinamento é importante, assim como dar tempo para sua equipe se familiarizar com essas diferentes implementações de contêineres. O gerenciamento dessas múltiplas tecnologias de contêineres também é mais caro. No entanto, melhorias na capacidade de gerenciamento, principalmente na versão mais recente do Kubernetes, tendem a fazer com que as organizações padronizem o ambiente mais fácil e mais usado.
  4. Riscos de configuração padrão – Como os aplicativos são desenvolvidos em contêineres, o risco de contêineres mal configurados aumenta. Um exemplo é a implantação de contêineres em sua configuração padrão. Unidade 42 de inteligência global de ameaças em Palo Alto3 identificou recentemente mais de 40.000 dispositivos de contêiner exclusivos que têm as configurações padrão. É claro que nem todas essas instâncias são vulneráveis à exploração, mas isso destaca que práticas básicas de configuração incorreta são comuns e tornam essas organizações alvos de exploração adicional.

Figura 2 - Alcançando a conteinerização equilibrada

Containerização balanceada

Um critério de design vital na conteinerização é o equilíbrio entre os três vetores de desempenho, densidade e confiabilidade, conforme mostrado na Figura 2.

A abordagem do F5 é focar na conteinerização no nível do componente e não no nível do sistema. Essa abordagem traz diversas vantagens, entre elas:

  • Reduzindo o consumo de memória de cada contêiner ao não atribuir memória a funções de rede não utilizadas.
  • Minimizando a dependência do CNI do host, evitando assim problemas de desempenho de rede.
  • Implementar componentes pequenos e leves, que reduzem o domínio de falhas ao nível do assinante/usuário.

A conteinerização em nível de componente nos permite atingir esse equilíbrio triplo por meio de desagregação, agendamento e orquestração. Os produtos F5 que implementam contêineres usarão esses recursos para maximizar os benefícios da conteinerização.

Container Ingress Services da F5

Para dar suporte às organizações na adoção de tecnologias baseadas em contêineres, a F5 oferece o F5® Container Ingress Services , uma integração de contêineres de código aberto. O Container Ingress Services fornece serviços de automação, orquestração e rede, como roteamento, descarregamento de SSL, roteamento HTTP e segurança robusta. Mais importante, ele integra nossa gama de serviços BIG-IP com ambientes de contêineres nativos, como Kubernetes e Red Hat OpenShift.

Em termos de arquitetura, o Container Ingress Services ocupa a seguinte posição em relação aos seus aplicativos em contêineres, adicionando serviços de controlador de entrada de front-door e permitindo visibilidade e análise por meio do BIG-IP.

Figura 3 - Serviços de entrada do contêiner F5

O Container Ingress Services aborda dois dos principais problemas identificados anteriormente neste artigo: escalabilidade e segurança. Você pode dimensionar aplicativos para atender às cargas de trabalho do contêiner e proteger os dados do contêiner habilitando serviços de segurança. Com a integração da plataforma BIG-IP, você pode implementar o desempenho de aplicativos de autoatendimento em seu ambiente de orquestração. O uso do Container Ingress Services também reduz a probabilidade de os desenvolvedores implementarem contêineres do Kubernetes com configurações padrão usando gráficos do Helm para implantações e atualizações baseadas em modelos.

Além disso, o Container Ingress Services permite segurança com proteção avançada contra ataques a aplicativos de contêiner e serviços de controle de acesso. Para desenvolvedores de aplicativos e profissionais de DevOps que não estão familiarizados com configurações, os serviços de aplicativos da F5 oferecem políticas prontas para uso e controle de acesso baseado em função (RBAC) com suporte de nível empresarial, além de comunidades de clientes e de código aberto do DevCentral.

NGINX Kubernetes Ingress Controller

Os desafios associados ao Kubernetes nativo estão relacionados ao desenvolvimento e dimensionamento de aplicativos de contêiner modernos sem maior complexidade. Pode haver restrições de desempenho e confiabilidade, e os serviços que fornecem uma porta de entrada para contêineres do Kubernetes podem ser implementados de forma inconsistente, exigindo maior esforço de integração para implantação e configuração.

A solução para esses desafios é o NGINX Kubernetes Ingress Controller , que aprimora o ambiente básico do Kubernetes fornecendo serviços de entrega para aplicativos do Kubernetes. Normalmente, os pods do Kubernetes só podem se comunicar com outros pods no mesmo cluster. A Figura 4 mostra o Kubernetes Ingress Controller fornecendo acesso da rede externa aos pods do Kubernetes, governados usando regras de recursos do Ingress que controlam fatores como o caminho do Universal Resource Identifier (URI), o nome do serviço de suporte e outras informações de configuração. Os serviços disponíveis dependem se você usa o NGINX ou o NGINX Plus. 

Figura 4 – Controlador de entrada NGINX para Kubernetes

As empresas que usam o NGINX ganham recursos como balanceamento de carga, terminação de criptografia SSL ou TLS, reescrita de URI e criptografia SSL ou TLS upstream. O NGINX Plus traz recursos adicionais, como persistência de sessão para aplicativos com estado e autenticação de API JSON Web Token (JWT).

Aspen Mesh

À medida que as organizações adotam microsserviços para desbloquear a agilidade do desenvolvedor e a escalabilidade nativa da nuvem, elas encontram uma curva de aprendizado enquanto as capacidades organizacionais acompanham a tecnologia. Essas organizações querem desbloquear rapidamente os benefícios dos microsserviços, preservando ao mesmo tempo a estabilidade que sustenta a experiência do cliente.

O Aspen Mesh é uma versão totalmente compatível com o service mesh de código aberto Istio que ajuda empresas a adotar microsserviços e Kubernetes em escala e obter observabilidade, controle e segurança de arquiteturas de microsserviços. O Aspen Mesh adiciona recursos empresariais essenciais de malha de serviço, incluindo uma interface de usuário que facilita a visualização e a compreensão do status e da integridade dos seus serviços, RBAC detalhado e recursos de política e configuração que facilitam a condução de um comportamento desejado em seus aplicativos em contêineres.

O Aspen Mesh fornece uma implementação nativa do Kubernetes, que é implantada no seu cluster Kubernetes e pode ser executada na sua nuvem privada ou pública, ou no local. Mais importante, ele pode trabalhar cooperativamente com um mecanismo de entrada baseado em F5, usando o Container Ingress Services para provisionar recursos mais profundos da Camada 7.

Em termos de arquitetura, o Aspen Mesh utiliza um modelo de proxy sidecar para adicionar níveis de funcionalidade e segurança a aplicativos em contêineres, como visto na Figura 5.

Figura 5 - Arquitetura Aspen Mesh

F5 e adoção de contêineres

A F5 está na vanguarda da adoção de contêineres, fornecendo às organizações a capacidade de executar ambientes de aplicativos em contêineres confiáveis, seguros e de alto desempenho que dimensionam serviços de aplicativos em cargas de trabalho simples e massivas, específicas do setor. A tecnologia de contêineres será um facilitador essencial em futuros ambientes de desenvolvimento e implantação de aplicativos, como implementações sem servidor, arquiteturas de malha de serviço e segurança de ponta móvel. Como empresa, a F5 usa sua própria pesquisa de desenvolvimento e implementações comerciais de contêineres para impulsionar e desenvolver aplicativos e serviços que farão a diferença para o seu negócio.

Assim como na virtualização de produtos existentes, incorporamos a tecnologia de contêineres de maneiras que podem não ser imediatamente óbvias para o administrador, mas serão totalmente transparentes para o usuário final. Como cliente, você verá maior desempenho, flexibilidade e segurança. À medida que implementamos esses novos aplicativos e serviços sem problemas, você pode se concentrar em garantir que tenha a funcionalidade de que precisa.

Também estamos trabalhando para adotar as melhores soluções de código aberto em nossos produtos, estendendo os serviços que essas plataformas de código aberto fornecem e aprimorando os recursos de nossos ambientes de contêiner. Nosso objetivo é sempre criar produtos que sejam mais fáceis de implantar, mais rápidos de integrar às suas redes existentes, mais confiáveis e mais seguros.

Para executar nossa estratégia de adoção de contêineres, estamos nos concentrando nas seguintes abordagens:

  • Ampliar a gama de serviços de aplicativos não relacionados à segurança que oferecemos. Aqui, o foco está em fornecer melhores ferramentas que aumentem a observabilidade e a capacidade de gerenciamento de ambientes de contêiner, incluindo gerenciamento de desempenho de aplicativos, registro e rastreamento, depuração aprimorada e monitoramento geral da integridade do aplicativo.
  • Adicione serviços de segurança não orientados ao plano de dados aos contêineres. Aqui, planejamos inovar fornecendo serviços de segurança que reduzem a superfície de ataque em contêineres em execução.
  • Habilite a hospedagem de contêineres de terceiros em produtos F5. Essa opção de integração permitiria que aplicativos desenvolvidos pelo cliente ou por terceiros fossem executados dentro de uma interface de tempo de execução de contêiner flexível em produtos F5 atuais e futuros. Essa abordagem permitiria que a F5 criasse soluções prontas para uso que incluíssem uma variedade de contêineres e aplicativos prontos para uso ou desenvolvidos sob medida, melhorando significativamente a interoperabilidade.
  • Forneça pacotes para serviços de aplicativos existentes usando ferramentas de código aberto. Essa opção cria oportunidades para que possamos oferecer políticas de serviço consistentes entre ambientes antigos e novos.
  • Automatize a escala de aplicativos de contêiner e os serviços de segurança para aumentar os aplicativos sob gerenciamento, ao mesmo tempo em que contém recursos atribuídos para dar suporte a eles.
O Futuro dos Contêineres

A F5 está comprometida com um futuro que vê os contêineres como um mecanismo de entrega fundamental para muitas tecnologias futuras de serviços de aplicativos. Essas tecnologias incluirão serverless, service mesh e mobile edge, mas podem incluir outras abordagens atualmente em desenvolvimento ou ainda não previstas. Estamos redesenhando nossa linha de produtos para incorporar contêineres em nossas soluções sem afetar os aspectos importantes do gerenciamento eficaz de rede.

Assim como ocorre com a virtualização, os próprios contêineres se tornarão mais conscientes dos recursos subjacentes do hardware no qual o mecanismo de contêiner é executado. Multithreading, velocidades de memória, acesso ao armazenamento e rede serão cada vez mais transparentes para os aplicativos executados em cada contêiner, melhorando ainda mais o uso de recursos.

Não vemos os contêineres como um substituto para a virtualização, mas como um complemento a ela. Consequentemente, nossa expectativa é que os contêineres tenham uma vida útil pelo menos igual à da virtualização e que a coexistência continue. Por fim, esperamos que surjam mais níveis de abstração que coexistirão com a virtualização e os contêineres.

Sabemos que uma das principais preocupações dos clientes sempre será a segurança. Consequentemente, a F5 continua a usar sua experiência em dispositivos de hardware e software, firewalls e redes para fornecer a segurança mais rígida possível em todos os seus produtos.

Em resumo, além da nossa tecnologia relacionada a contêineres já existente, a F5 planeja continuar incorporando contêineres à linha de produtos F5, fornecendo a você mais opções de integração, maior confiabilidade, desempenho aprimorado e tempo de implantação reduzido com aplicativos atualizados e futuros.

Para obter mais informações sobre o F5 e o suporte de contêiner para aplicativos, visite f5.com/solutions/bridge-f5-with-container-environments

1 A ascensão dos servidores Kubernetes bare-metal , Container Journal, Mike Vizard, 2019
2 O estado do desenvolvimento de aplicativos baseados em contêineres , IBM Cloud Report, 2018
3 Mal configurado e exposto: Serviços de contêineres , Palo Alto Networks, Nathaniel Quist, 2019

Publicado em 23 de junho de 2022
  • 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.