![O registro da coleta de lixo afeta o desempenho do aplicativo?](https://optimuscloud.com.br/wp-content/uploads/2024/05/1716489843_O-registro-da-coleta-de-lixo-afeta-o-desempenho-do-150x150.jpg)
O registro da coleta de lixo afeta o desempenho do aplicativo?
23 de maio de 2024![As 5 principais técnicas de JavaScript de ponta](https://optimuscloud.com.br/wp-content/uploads/2024/05/1716495724_As-5-principais-tecnicas-de-JavaScript-de-ponta-150x150.jpg)
As 5 principais técnicas de JavaScript de ponta
23 de maio de 2024O Terraform, desenvolvido pela HashiCorp (e recentemente adquirido pela IBM), permite aos usuários definir, construir, alterar e gerenciar infraestrutura usando uma linguagem de configuração declarativa conhecida como HashiCorp Configuration Language (HCL). A configuração declarativa permite definir o estado final pretendido da sua infraestrutura, e as ferramentas impõem esse estado quando executadas.
A configuração declarativa encapsula a abordagem Infraestrutura como Código (IaC), permitindo o provisionamento e o gerenciamento de recursos locais e baseados em nuvem por meio de arquivos de configuração legíveis por humanos. Esses arquivos podem ser versionados, compartilhados e reutilizados, garantindo consistência em todo o ciclo de vida da infraestrutura.
Aqui está um exemplo de HCL usado para gerenciar a ativação de uma instância EC2:
À medida que as empresas adotavam cada vez mais os serviços em nuvem, surgiu um problema muito natural: como você gerencia declarativamente a infraestrutura fornecida por terceiros (seu provedor de nuvem)? A HashiCorp construiu o Terraform em cima de um sistema de plug-in, onde os fornecedores podem construir suas próprias extensões para o Terraform. Essas extensões são chamadas de “provedores”. Os provedores mapeiam a configuração declarativa nas interações de API necessárias, garantindo que o estado desejado seja atendido. Eles atuam como uma ponte entre o Terraform e uma API de terceiros.
Os provedores originais tornaram possível gerenciar sua infraestrutura AWS, Azure e Google Cloud como parte da configuração do Terraform. Desde então, mais APIs de terceiros aderiram ao ecossistema Terraform, possibilitando que as empresas gerenciem ferramentas de monitoramento, gateways e APIs internas personalizadas como parte da configuração de sua infraestrutura.
Por que os provedores são essenciais para as empresas?
Agora você provavelmente está se perguntando: por que todas essas empresas desejam interagir com APIs de terceiros?
As organizações de engenharia precisam de processos de entrega de software consistentes e resilientes que suportem requisitos de negócios em rápida evolução e requisitos de conformidade rigorosos. Clicar em botões em uma UI web faz sentido quando você está avaliando um produto, mas no instante em que você vai para a produção, o mundo muda. De repente, você precisa de um plano de recuperação de desastres. Como revertemos o sistema para uma configuração específica que sabemos que funciona? Você precisa de processos de revisão para garantir que os malfeitores não possam fazer alterações não autorizadas na produção. Estas são apostas para clientes empresariais.
As equipes poderiam criar integrações personalizadas com APIs para gerenciar suas configurações, mas por que fariam isso? O Terraform fornece uma interface e um ecossistema consistentes para as equipes trabalharem. Chega de arquivos YAML frágeis com ferramentas personalizadas que você precisa manter internamente.
Se o caminho crítico do seu cliente exigir o uso de sua API, você precisará de um provedor Terraform. Os clientes não têm tempo para criar integrações personalizadas com sua plataforma. Se você deseja que seu produto seja adotado, você precisa atender seus clientes onde eles estão e, em muitos casos, trabalhando com o Terraform.
Na Kong, a infraestrutura de gateway de API que fornecemos aos nossos clientes está diretamente no caminho crítico de uso. Ser capaz de gerenciar sua configuração de forma declarativa é uma aposta importante para os clientes, e a ferramenta comum que sempre aparecia nas entrevistas com os clientes era o Terraform. Então, decidimos descobrir como construir um provedor.
Por que nem todo mundo tem um provedor Terraform?
Construir um provedor Terraform requer conhecimento profundo da linguagem de programação Go na qual os provedores são escritos e do próprio Terraform. Supondo que sua empresa tenha desenvolvedores Go, eles precisarão entender os princípios básicos do Terraform e seu plugin SDK, que envolve conhecimento detalhado de definição de esquema de recursos, configuração e gerenciamento de estado.
Mesmo para empresas como a Kong, versadas no uso do Go e do ecossistema Terraform, manter os provedores Terraform ainda é um desafio. Isso ocorre porque um provedor Terraform é tão útil quanto estiver atualizado e completo em termos de recursos. Manter esse padrão normalmente requer um compromisso nada trivial de longo prazo por parte da equipe de engenharia. Para empresas como a Kong, onde as ambições são grandes, há um custo de oportunidade a considerar sempre que decidimos construir e manter ferramentas.
Do Zero ao Terraform em 120 horas
Quando Kong começou a procurar construir um provedor Terraform para Konnect (nosso plano de controle hospedado, catálogo de serviços e portal de desenvolvedor), como parte de nossa determinação de ser uma empresa que prioriza API, tomamos uma decisão consciente de usar terceiros para geração. de gastar preciosos recursos de engenharia na codificação manual do provedor.
A organização investiu muito esforço para garantir que nossas especificações OpenAPI sejam bem mantidas. Esse investimento permitiu explorar a geração de um fornecedor a partir das nossas especificações. Se pudéssemos utilizar a geração, poderíamos fornecer um fornecedor sem qualquer impacto nos compromissos existentes.
Há uma variedade de ferramentas de código aberto e comercialmente disponíveis para gerar um provedor Terraform a partir de uma especificação OpenAPI. Depois de construir vários provedores de prova de conceito, Kong optou por usar o Speakeasy para gerar um provedor Terraform para Konnect. O fornecedor gerado atende a todos os requisitos de nossos clientes, e a equipe que constrói o gerador realmente entende o ecossistema Terraform. Adicionar as anotações necessárias para gerar o provedor Terraform levou cerca de 120 horas de trabalho ao longo de três meses. A maior parte desse tempo foi gasta corrigindo discrepâncias entre as especificações e o comportamento real (o design primeiro não é infalível), com um punhado de solicitações de recursos para a equipe do Speakeasy, que eles resolveram dentro de uma semana ou duas de cada vez.
Graças ao nosso provedor Terraform, nossos clientes agora podem criar um novo plano de controle isolado para a implantação do Kong Gateway com apenas algumas linhas de HCL:
Não temos apenas um provedor em funcionamento — nosso conjunto de testes para Terraform atua como um teste de integração para nossas APIs públicas e especificações OpenAPI. Se a especificação estiver incorreta, o provedor não funcionará. Inclinar-se para a geração em vez de escrever à mão um fornecedor provou não ser apenas responsável financeiramente – também fornece garantia de qualidade adicional para as especificações que compartilhamos com os clientes.
Qual é o próximo?
Nos próximos anos, espero que o uso do provedor Terraform cresça exponencialmente. A julgar pelo nível de uso da nuvem de outros provedores gerenciados pelo Terraform, não ficaria surpreso se, no futuro, a maioria das chamadas de API do Kong Konnect fluíssem através do provedor.
Assista a este vídeo para saber mais sobre como Kong desbloqueou o ecossistema Terraform.
A postagem De zero a um provedor Terraform para Kong em 120 horas apareceu pela primeira vez em The New Stack.