Muitas vezes me perguntam depois de falar em conferências o que o cão F5 tem na corrida. Ultimamente, esse tópico geralmente é DevOps ou está relacionado a DevOps de alguma forma.
A realidade é que serviços afins de aplicativos, como balanceamento de carga, estão sendo puxados para aplicativos , para um ambiente mais ágil, orientado por software e automatizado que compõe a rede de aplicativos. É aí que sistemas centrados em computação e aplicativos, como caches (pense em memcached e redis), bancos de dados e contêineres, estão sendo implantados usando metodologias de CI/CD (integração contínua/entrega contínua) que dependem de muita automação e orquestração.
F5 – e mais especificamente, BIG-IP – é quase sinônimo de balanceamento de carga. Fazemos isso desde antes da virada do século e muitos algoritmos e conceitos básicos de balanceamento de carga que você usa hoje com outros balanceadores de carga foram, de fato, inventados aqui. Então, dizer que sabemos alguma coisa sobre aplicativos de balanceamento de carga é pouco. E fazemos isso com software implantado em hardware personalizado ou até mesmo na nuvem .
Esse software é habilitado com uma API. Ela é chamada de iControl e está disponível em sabores SOAP e REST, para sua conveniência programática. Esta API permite que qualquer pessoa (até eu) provisione, configure e controle os serviços de balanceamento de carga (e outros) de um BIG-IP para qualquer aplicativo.
Agora, como eu disse, os serviços afins aos aplicativos estão migrando para os aplicativos a cada dia. Escalabilidade – balanceamento de carga – é um desses serviços. Hoje em dia, é um componente crítico para qualquer aplicação e, cada vez mais, para os microsserviços que compõem as aplicações modernas. Conforme apontado pela Microsoft em um artigo de 2015 sobre serviços de escala:
Na presença de máquinas diversas e abundantes, o desenvolvedor é forçado a pensar em particionar a carga de trabalho do aplicativo, bem como a conectividade de rede necessária para dar suporte a cada esquema de particionamento. Um aspecto muito importante da conectividade existe entre usuários externos e o serviço em si. Com exceção dos menores serviços, alguma forma de mecanismo de balanceamento de carga é necessária para distribuir a carga das conexões de entrada nas caixas FE. Muitos megaserviços também têm subserviços, que são balanceados por carga. [ênfase adicionada]
O balanceamento de carga não é uma reflexão tardia; é um complemento natural aos aplicativos e serviços atuais para permitir a escala (e confiabilidade) necessárias para manter os usuários satisfeitos e os negócios funcionando. Isso torna cada vez mais verdade que o balanceamento de carga é parte da arquitetura geral do aplicativo. E de fato deveria ser, pois a adição de qualquer componente à arquitetura de um aplicativo pode introduzir problemas ou questões de integração que precisam ser superados. Problemas que precisam ser resolvidos antes que o aplicativo entre em produção, não depois. O tempo necessário para encontrar e corrigir problemas na produção é muitas vezes maior do que em ambientes de desenvolvimento ou teste e, portanto, incluir o balanceamento de carga na arquitetura do aplicativo significa uma transição mais suave (e rápida) para a produção e para as mãos dos usuários.
Mas isso significa que você precisa ser capaz de integrar o balanceador de carga aos processos automatizados pela cadeia de ferramentas DevOps que impulsionam cada vez mais a integração e a entrega em ambientes de desenvolvimento e teste. Isso significa oferecer um conjunto abrangente de ferramentas programáticas, como APIs e modelos, que permitem tratar a infraestrutura como código e automatizar seu provisionamento e configuração. É isso que o iControl (REST ou SOAP) faz para o F5.
Um BIG-IP pode ser integrado ao DevOps nas fases de implantação, teste e lançamento, aproveitando suas APIs nativas usando praticamente qualquer linguagem que você goste (aqui estão Powershell , Python e Perl) ou por meio de estruturas como Chef e Puppet e ferramentas como Ansible e SaltStack . Os iApps , nossos modelos que descrevem uma configuração de serviço de aplicativo, podem ser tratados como código: armazene-os no Github, recupere-os e implante-os como estão ou personalize-os com um script.
Basicamente, os serviços de aplicativos BIG-IP, como balanceamento de carga e muitos dos serviços de desempenho e segurança de aplicativos, devem ser integrados mais cedo, no processo de CI/CD, para garantir que esses serviços críticos funcionem perfeitamente com o aplicativo, conforme o esperado.
Eventualmente, veremos cada vez mais dispositivos tradicionalmente de “rede” se encaixarem em um mundo DevOps, à medida que a pressão para mover aplicativos mais rapidamente, com mais frequência e com menos interrupções continua a levar os líderes empresariais e de TI de cabeça para a economia de aplicativos.
Para uma análise mais aprofundada das ferramentas DevOps que você pode usar com o BIG-IP, confira esta postagem no DevCentral " F5 Friday: Ferramentas DevOps e F5 "