Visão geral
Ao expandirem a estratégia de infraestrutura como código (IaC), as organizações começam a adotar essas práticas para automatizar os processos de TI em cada etapa do ciclo de vida operacional. Da mesma forma como a IaC padroniza a criação, o provisionamento e a implantação da infraestrutura, as equipes de TI podem adotar a operação como código (OaC) para programar o gerenciamento e a manutenção de sistemas após a implantação. Você pode ir além nessa abordagem, adotando a política como código (PaC) para automatizar os processos de conformidade, risco e governança das aplicações e soluções.
Implantar a automação para acelerar a entrega e melhorar a eficiência é um objetivo comum entre as equipes de aplicações e infraestrutura. No entanto, a maioria delas continua dependendo de abordagens manuais para as operações do Dia 2 e a governança. A automação traz muitos benefícios para essas áreas, mas aplicar essa tecnologia nos processos do Dia 2 exige que as equipes aprendam a utilizar novas ferramentas e métodos. As práticas de operação e política como código simplificam essa mudança cultural, expandindo a estratégia de Infraestrutura como Código (IaC) já estabelecida. Isso permite que as organizações apliquem conhecimentos e ferramentas que já possuem a diversas tarefas.
Seguindo os métodos de IaC, as empresas podem adotar a OaC e a PaC, convertendo as práticas recomendadas em código para automatizar tarefas rotineiras de todos os processo operacionais. Isso viabiliza a automação de ponta a ponta. Essas abordagens de automação como código asseguram que os processos sejam executados de maneira consistente e escalável. Assim, as equipes podem criar e manter aplicações, infraestruturas e cargas de trabalho com o mínimo de intervenção manual, garantindo a conformidade do início ao fim.
Infraestrutura como código (IaC)
Tradicionalmente, a criação e o gerenciamento de infraestruturas de TI como servidores, instâncias de computação em nuvem, sistemas operacionais, armazenamento, balanceadores de carga e outros endpoints envolviam processos manuais demorados. No entanto, à medida que as infraestruturas se tornam cada vez mais conteinerizadas e distribuídas por diversas plataformas (como data centers, multiclouds e locais de edge), algumas delas vêm sendo implantadas como código, principalmente na nuvem.
A implantação como código permite ativar a infraestrutura com mais rapidez para atender aos aumentos rápidos na demanda e às necessidades de escalabilidade. Esse benefício também trouxe mais complexidade e urgência para a gestão da infraestrutura, com as organizações precisando, muitas vezes, provisioná-la, implementá-la e desativá-la diariamente. Como acompanhar o ritmo? As equipes de TI adotaram a IaC para automatizar esses processos.
O que a IaC envolve?
Na abordagem de IaC, você define, provisiona e gerencia a infraestrutura usando um código que é executado automaticamente. Ela cria arquivos de configuração com as especificações da infraestrutura, o que facilita a edição e a distribuição de infraestruturas e instâncias de computação em nuvem configuradas corretamente. A IaC codifica e documenta essas especificações, ajudando as equipes a evitar alterações específicas não documentadas e garantindo que o mesmo ambiente seja provisionado consistentemente todas as vezes.
Ao automatizar a infraestrutura com a IaC, os desenvolvedores não precisam provisionar e gerenciar manualmente os componentes sempre que criam uma aplicação ou fazem uma implantação. Como resultado, isso aumenta drasticamente a velocidade e a consistência, além de diminuir o downtime e os erros humanos. Com essa abordagem, as organizações também podem incorporar práticas recomendadas ao código da automação para que toda tarefa seja executada com base na experiência das equipes.
Como ampliar a estratégia de IaC
Para a maioria das organizações, a IaC foi uma transformação desafiadora, já que desenvolver ferramentas e implementar novas maneiras de trabalhar são processos que levam tempo. Por outro lado, as equipes foram recompensadas com a flexibilidade para decidir suas prioridades e mais agilidade na maneira de responder aos problemas. Hoje, muitas ferramentas de automação são compatíveis com a IaC, e muitas equipes de TI adotam essa mudança cultural para usufruir dos diversos benefícios que ela oferece.
Com as ferramentas e os métodos criados para a IaC, as equipes de TI estão começando a adotar a abordagem de automação como código em processos que vão além de provisionamento, configuração e implantação de aplicações, em todo o ciclo de vida operacional. A definição de ciclo de vida operacional pode variar, mas, em geral, ele costuma ser segmentado em dias:
- Dia 0: design. Especificar as versões, configurações e modelos de provisionamento para a infraestrutura
- Dia 1: implantação. Instalar e configurar a infraestrutura.
- Dia 2: manutenção. Gerenciar, fazer a manutenção e atualizar os sistemas relacionadas à infraestrutura implantada.
Enquanto a IaC oferece uma maneira consistente de criar e provisionar a infraestrutura nos Dias 0 e 1, a operação como código incorpora essa abordagem às tarefas do Dia 2, como gerenciar, fazer a manutenção e atualizar sistemas (processos contínuos que só terminam se você desprovisionar a aplicação ou serviço).
Operação como código (OaC): automatize as operações do Dia 2
Tradicionalmente, o trabalhos manuais como monitorar o funcionamento dos sistemas, instalar upgrades e resolver problemas fazem parte das tarefas do Dia 2. Quando um servidor ou aplicação falham, as equipes de TI podem receber um alerta de ticket, mas isso é apenas um sintoma que precisa ser investigado. Uma pessoa precisará avaliar o problema. Para isso, ela possivelmente fará login na caixa física, explorará o sistema em busca da causa e recorrerá a outros especialistas de TI para encontrar uma solução. Eventualmente, o problema será resolvido, mas o processo leva tempo, principalmente quando pensamos em escala empresarial.
O curioso é que, embora a complexidade das operações do Dia 2 tenha aumentado tanto quanto o volume de tarefas de infraestrutura dos Dias 0 e 1, a automação ainda não é muito usada para enfrentar os desafios dessa etapa. Muitas organizações adotam a IaC para automatizar os processos dos Dias 0 e 1, mas agora essa mesma abordagem pode ser aplicada a operações de data center, ambientes de nuvem e implantações de edge para limitar a expansão descontrolada da tecnologia e liberar recursos.
O que a operação como código envolve?
A operação como código é uma progressão natural da IaC. Ela envolve o uso da automação para codificar o conhecimento acumulado pelas equipes de operações e infraestrutura, ou seja, toda a experiência adquirida ao solucionar problemas. Isso significa que o conhecimento operacional se torna um recurso acessível e não fica restrito a algumas pessoas nas equipes.
A OaC é o processo de padronizar, codificar e sistematizar o conhecimento e a experiência operacional das equipes sobre o Dia 2. Para adotar a OaC, as organizações precisam:
- Implementar a padronização adotando uma base de código comum a toda a organização, o que aprimora a consistência operacional.
- Codificar o conhecimento operacional e incorporar práticas recomendadas aos processos automatizados.
- Sistematizar ferramentas e processos distintos em uma abordagem integrada, de ponta a ponta.
A experiência prática relacionada ao Dia 2 é convertida em código, ou seja, algo que pode ser executado automaticamente à medida que os sistemas se tornam cada vez mais inteligentes, complexos e interdependentes.
Assim como em todos os usos da automação, a operação como código não foi criada para substituir as pessoas. Na verdade, ela ajuda as equipes a eliminar tarefas manuais e monótonas para se concentrarem em projetos inovadores. Ao combinar o conhecimento das equipes com abordagens compartilhadas, a OaC também estimula a colaboração entre vários modelos operacionais e estruturas de trabalho.
Avance para a política como código
Incorporar métodos de IaC e OaC à governança libera as equipes de TI dos processos complicados e baseados em solicitação, principalmente quando se trata da aplicação de políticas: regras, condições ou instruções criadas para assegurar que as operações atendam aos requisitos de conformidade, sigam as práticas recomendadas e cumpram as diretivas empresariais.
Depois que a infraestrutura e as operações são definidas e gerenciadas como código, as equipes de segurança e conformidade podem usar as mesmas estratégias para aplicar políticas ao código em questão e padronizar a governança. Para isso, é preciso adotar uma abordagem de política como código.
A automação não é uma garantia de conformidade e governança desde o início. As políticas precisam ser aplicadas de maneira consistente para que a IaC e a OaC sejam implementadas corretamente em todos os estágios do ciclo de vida operacional. Os métodos de governança tradicionais costumam incluir:
- Fluxos de trabalho com processos de aprovação que dificultam a entrega de soluções para necessidades específicas.
- Permissões de segurança rigorosas com controle de acesso baseado em funções (RBAC) ou em atributos (ABAC), que permitem definir quem tem autorização para modificar determinadas tecnologias, de que formas específicas, em que situações particulares ou quando quais características estão presentes.
Essas abordagens manuais são demoradas e suscetíveis a erros. O objetivo a política como código é automatizar esses processos. Por exemplo, a automação pode ser configurada para impedir que a equipe de TI crie uma instância na nuvem que não esteja em conformidade com os padrões empresariais, ou para evitar que entreguem um código que não cumpra uma determinada exigência de conformidade. O RBAC e o ABAC ainda são necessários, mas a PaC possibilita a criação de um processo muito mais granular e automatizado para determinar o que pode ser feito e quando.
O que a política como código envolve?
Seguindo estratégias semelhantes à IaC e OaC, a PaC automatiza o processo de conformidade ao incorporar políticas e requisitos de segurança ao código. Assim, é possível integrar padrões a todos os processos e aplicar as mesmas regras com consistência por diferentes equipes. Ao definir, atualizar, compartilhar e fiscalizar políticas usando código, a PaC centraliza a governança e facilita a aplicação eficiente de políticas a cada ação de TI. E tudo isso é documentado e feito de maneira consistente.
Quando as políticas são definidas como código, conseguimos aplicá-las de forma mais integrada à infraestrutura no momento de sua ativação e implantação. O mesmo vale para as operações, quando executamos tarefas automatizadas. Essa é a melhor forma de garantir uma abordagem padronizada, independentemente de onde ou quando a automação acontecer. Por exemplo, imagine que um funcionário executa a automação para corrigir um problema em um host específico. Com as políticas codificadas em cada ação, você impede que essa pessoa faça algo que viole as regras da equipe.
A PaC também alinha os recursos e ambientes técnicos aos padrões definidos. Por exemplo, as equipes podem usar a PaC para assegurar que os recursos de computação confidenciais não tenham uma rota direta para a Internet (o que possivelmente viola a política de segurança) ou limitar as portas de serviço ao HTTPS e SSH.
A IA vem expandindo a capacidade da TI além do alcance e controle humanos, atuando como um multiplicador de escalabilidade para diversos sistemas Ao utilizarem um serviço de IA como o Red Hat® Ansible® Lightspeed com o IBM watsonx Code Assistant para acelerar o desenvolvimento da automação, as equipes de TI conseguem integrar políticas ao código e injetar a governança no modelo de aprendizado desde o início. Por exemplo, depois que a ferramenta de IA incorpora as políticas ao modelo de aprendizado, os criadores de conteúdo podem escrever códigos automaticamente alinhados aos requisitos de conformidade obrigatórios.
A automação da governança com a PaC assegura que o gerenciamento baseado em IA ofereça eficiências transformadoras, mantendo o controle esperado, de forma que a conformidade seja integrada em tudo que é feito para a equipe de TI.
Desafios da adoção da automação como código
Em resumo, qualquer tipo de transformação que venha da automação como código é um desafio cultural. Com a experiência adquirida com a automação da IaC, as equipes de TI podem aplicar os mesmos métodos e ferramentas para adotar uma abordagem mais eficiente e adaptável por todo o ciclo de desenvolvimento.
A implementação do DevOps trouxe muitos benefícios para as empresas, mas também grandes dores de cabeça. No entanto, o esforço generalizado para adoção dessa abordagem mostrou que é possível realizar transformações culturais em grande escala. A automação sempre envolve mudar a maneira como as tarefas são executadas. Porém, para adotar uma estratégia de automação como código unificada, é preciso transformar a forma como as equipes colaboram por meio do compartilhamento de práticas em todos os estágios das operações. A IaC, OaC e PaC são peças fundamentais desse trabalho.
Para ajudar na transição para estratégias de automação como código, as equipes devem:
- Pensar como desenvolvedores de software: use o git e outros repositórios ao promover uma cultura de desenvolvimento e implantação modernos em todas as áreas do negócio.
- Priorize a automação: se você tem um novo projeto ou algo que queira criar, não passe direto para o desenvolvimento. Pense primeiro em como você pode aplicar a automação a isso. Comece com os projetos de automação mais simples e expanda.
- Comece pelas experiências e habilidades individuais: compense a baixa disponibilidade de talentos incorporando o conhecimento de cada pessoa da organização à automação para que o conteúdo e o know-how delas sejam compartilhados entre as equipes.
Para que a automação como código dê certo, é preciso difundir essa filosofia por todas as equipes, das pessoas que projetam os sistemas àquelas que os gerenciam. Essas abordagens são muito mais do que automatizar tarefas de vez em quando em algumas equipes e esperar que tudo funcione: elas viabilizam uma disciplina e estratégia compartilhada que os profissionais podem construir juntos.
Para colocar essa estratégia em ação, as equipes também precisam ir além das soluções específicas que só servem para determinados casos de uso e não se aplicam a toda a empresa. Utilizar muitas ferramentas no processo, pode tornar a IaC e o DevOps excessivamente complexos e gerar dívida técnica. Com uma plataforma de automação unificada, a mesma linguagem de automação utilizada para realizar tarefas de nuvem, infraestrutura, rede e configuração pode ser aplicada aos processos operacionais em diferentes áreas, o que ajuda as equipes de TI a gerenciarem o ciclo de vida completo, de ponta a ponta.
Como a Red Hat pode ajudar?
O Red Hat Ansible Automation Platform oferece todas as ferramentas necessárias para implementar a automação em toda a empresa, incluindo o Event-Driven Ansible, analytics, segurança reforçada e um amplo ecossistema de conteúdo certificado e validado para promover novas iniciativas de automação. A solução utiliza o YAML legível para que usuários com diversos níveis de habilidade possam compartilhar, analisar e gerenciar o conteúdo de automação na organização.
Com o Ansible Automation Platform, sua organização consegue codificar a experiência das equipes de operações, infraestrutura e aplicações em Ansible Playbooks e Ansible Rulebooks baseados no YAML. É possível usar os playbooks e rulebooks para incorporar padrões de solução conhecidos às abordagens de automação como código. Além disso, o Event-Driven Ansible pode acionar essa automação para você quando um evento específico acontecer.
Com o know-how integrado aos playbooks e rulebooks, suas equipes podem automatizar as respostas da TI para limitar o desvio de configurações, diminuir os problemas de manutenção a longo prazo e reduzir o tempo médio de resolução (MTTR). O design modular do Event-Driven Ansible permite que você automatize as ações de TI quando e onde necessário, em diferentes domínios e casos de uso de todos os estágios do ciclo de vida operacional.
Além de tornar as abordagens de automação como código mais acessíveis, o Red Hat Ansible Lightspeed com o IBM watsonx Code Assistant ajuda você a converter o know-how sobre diferentes áreas em um código YAML confiável que pode ser escalado por equipes e áreas de atuação. Os usuários podem fazer uma solicitação de tarefa em linguagem natural, e o Ansible Lightspeed interage com os modelos de base do IBM watsonx para gerar recomendações de código para a criação de Ansible Playbooks. Com esse serviço, você aumenta a produtividade, eficiência e precisão de membros da equipe com diversos níveis de experiência, implementando uma automação mais consistente na organização.
Quer uma experiência hands-on?
A Red Hat oferece laboratórios interativos em um ambiente pré-configurado do Ansible Automation Platform. Acelere o desenvolvimento e a implantação, simplifique análises e operações, e garanta uma experiência consistente de ponta a ponta. Utilize os laboratórios para testar, praticar e adquirir conhecimento sobre como construir, gerenciar e escalar práticas de TI.