Você vai precisar de uma plataforma para automação e orquestração. Serverless pode ser exatamente o que você estava procurando.
Sem servidor (também conhecido como A Função como Serviço (Function as a Service) ainda está em seus primórdios. E qualquer tecnologia que esteja apenas começando a se desenvolver tende a precisar responder à pergunta "mas para que serve?" Isso é particularmente verdadeiro em uma época em que há algum novo desenvolvimento ou tecnologia clamando por nossa atenção quase diariamente.
Os casos de uso típicos para sistemas sem servidor giram em torno de sua capacidade de aproveitar o poder da nuvem para tipos específicos de cargas de trabalho, como processamento de imagens ou mineração de dados. Mas hoje em dia, há organizações que usam o serverless para propósitos menos atraentes, como automatizar operações.
Na verdade, eu poderia argumentar (e acho que farei isso porque sou eu) que a automação sem servidor é talvez um dos meios mais eficientes de automatizar operações hoje em dia. Aqui estão quatro razões pelas quais vou sugerir que você considere seriamente o serverless como uma plataforma para automatizar operações.
1. É orientado a eventos
Em um sistema orientado a eventos, ações fazem com que coisas aconteçam. Eventos (às vezes chamados de ações ) podem ser acionados de várias maneiras, mas provavelmente seriam invocados por meio de uma chamada de API REST, seja por meio de uma linha de comando (pense em "curl") ou de uma interface web simples. Isso inclui tarefas como provisionar um serviço, atualizar uma configuração ou desabilitar uma regra de firewall. Basicamente, a implantação de aplicativos na produção – e, posteriormente, seus serviços de rede e aplicativos necessários – é decomposta em uma série de “ações”. Muitas ações no pipeline são acionadas pela conclusão de uma ação anterior, o que mapeia perfeitamente os conceitos de “sequência de ações” em ambientes sem servidor como o OpenWhisk . Afinal, a orquestração de implantação é a automação de um processo que compreende muitas tarefas automatizadas menores e individuais. Cada um deles pode ser representado adequadamente por uma chamada de API em um ambiente sem servidor, com uma chamada de API abrangente iniciando toda a sequência.
2. Promove a infraestrutura como código e a reutilização
Modelos e scripts se encaixam na noção de infraestrutura como código, mas um sistema baseado em servidor atenderia existencialmente ao critério. Isso promove ainda mais a reutilização de artefatos e construções de implantação, encapsulando-os como código injetado no processo. Isso significa processos previsíveis, repetíveis e consistentes que podem ser medidos e otimizados ao longo do tempo. Uma abordagem de “uma tarefa, uma função” incentiva ainda mais a componibilidade e permite uma criação mais fluida do processo que pode ser facilmente conduzida pela injeção de diferentes funções com base em um pipeline gerado dinamicamente.
3. É “sem servidor”
Agora, todos nós sabemos que serverless não é literalmente sem servidores. Mas o mesmo conceito – de que a infraestrutura de hardware (e software) subjacente é “invisível” para aqueles que a utilizam – que a torna atraente para os desenvolvedores deve torná-la atraente também para as operações de infraestrutura e rede. Lembre-se de que, depois de começar a automatizar e orquestrar o pipeline de implantação, você precisará de software e sistemas para gerenciá-lo. Isso significa servidores e softwares que devem ser licenciados, mantidos, gerenciados, dimensionados, protegidos – bem, você entendeu. Você já sabe o quão desafiador é gerenciar aplicativos voltados para o consumidor, imagine o mesmo para aplicativos voltados para operações. Uma infraestrutura sem servidor, uma vez estabelecida, fornece uma plataforma consistente sobre a qual você pode criar qualquer número de fluxos de trabalho sem se preocupar com a infraestrutura subjacente. O que significa que os mesmos benefícios que atraem os desenvolvedores para a tecnologia sem servidor também podem ser obtidos pelas operações.
4. É poli-tudo
Você pode estar pensando: o que isso tem a ver? Bom, deixa eu te contar. Nenhum data center é executado em uma infraestrutura heterogênea e, mesmo dentro do subconjunto de um único fornecedor, as organizações executam vários modelos e versões de hardware e software semelhantes. Um dos desafios que as organizações enfrentam é gerenciar a variedade de dispositivos e versões no ambiente. A maioria dos ambientes sem servidor já oferece suporte a uma ampla variedade de linguagens e conjuntos de ferramentas (uma ação pode ser escrita em Python, outra em node.js), bem como ações "baseadas em imagem", que são contêineres que executam, bem, qualquer coisa. Em um mundo onde você está tentando orquestrar um processo composto de tarefas que automatizam um conjunto tão diverso de sistemas, a capacidade de usar a ferramenta que funciona melhor (e talvez a única) é uma bênção para as operações.
O problema é que, diferentemente da maioria dos aplicativos que são constantemente acessados e usados por usuários consumidores e corporativos, as tarefas operacionais são executadas com pouca frequência e, às vezes (embora não gostemos de admitir), sem muito aviso, como resposta a incidentes de segurança ou disponibilidade no ambiente mais amplo. Isso significa que um sistema orientado a eventos, como o serverless, parece ser uma boa opção. Ele fornece uma plataforma “sempre ativa” que pode executar uma ampla variedade de tarefas em todo o espectro operacional. Em um minuto, ele pode executar uma tarefa relacionada à segurança – atualizar uma regra de firewall. O próximo passo pode ser disparar uma ação para injetar um novo serviço de aplicativo – digamos, um WAF – no caminho de dados de um aplicativo como resposta a uma exploração de dia zero que precisa de reparação imediata. A mesma plataforma pode fornecer o mecanismo para executar praticamente todas as tarefas operacionais necessárias, de forma automatizada e extensível.
Os eventos podem até ser acionados pela criação de um tíquete ou por um comando de bot de um sistema que habilita o ChatOps, como o Slack, e extrair automaticamente as informações necessárias do tíquete ou comando para usar quando as ações apropriadas forem invocadas para concluir a tarefa.
O Serverless é focado em desenvolvedores, mas os princípios e mecanismos subjacentes o tornam uma alternativa atraente para criar seus próprios sistemas de orquestração operacional ou depender de um conjunto de sistemas fracamente acoplados que trazem consigo seus próprios desafios operacionais e de integração.
Se você está apenas começando sua jornada de automação operacional, talvez seja interessante dar uma boa olhada nas plataformas sem servidor para empresas para ver o quão bem elas podem atender às suas necessidades.