O Pulumi Crosswalk, foi lançado em 11 de junho de 2019, como uma biblioteca open source de componentes para suporte à infraestrutura como código da AWS. O Crosswalk visa melhorar a experiência do desenvolvedor ao criar aplicativos na AWS, permitindo que os desenvolvedores declarem recursos da AWS com linguagens de programação comuns, como o JavaScript. O SaaS da Pulumi trabalha com SDKs de linguagens específicas para permitir um fluxo de trabalho consistente para o provisionamento de recursos da AWS, como containers, funções serverless e outras infraestruturas de nuvem.
O Pulumi fornece uma plataforma de desenvolvimento nativa na nuvem para criar, implantar e gerenciar a infraestrutura. Ao contrário de ferramentas como CloudFormation ou Terraform, que dependem de arquivos de configuração baseados em YAML, o Pulumi permite que os desenvolvedores usem linguagens de programação existentes para criar e interagir com a infraestrutura da aplicação. Atualmente, o Pulumi oferece suporte a SDKs para JavaScript, Python, TypeScript e Go, além de funcionar em várias aplicações na nuvem, como o Amazon AWS, o Google GCP e o Microsoft Azure.
O Crosswalk oferece uma abordagem completa para a construção na plataforma da AWS com os SDKs do Pulumi e abstrações reutilizáveis. Especificamente para a AWS, o Crosswalk foi projetado para tornar práticas recomendadas acessíveis, como trabalhar com VPCs e facilitar o uso de aplicativos da AWS, além de fornecer uma interface alinhada para interação entre recursos da AWS, os componentes centrais são serverless baseados em containers e com entrega contínua. O Crosswalk é construído sobre as primitivas da AWS, para que os usuários possam implementar qualquer um dos serviços oferecidos pela empresa.
Pulumi Crosswalk para AWS, retirado do blog Pulumi
O design e os benefícios potenciais do Crosswalk podem ser destacados com um exemplo de aplicação serverless que usa o API Gateway para acesso e o Lambda para execução. O exemplo de código a seguir é baseado em um exemplo de Slackbot do repositório de projetos Pulumi.
import * as awsx from "@pulumi/awsx";
// Create an API endpoint that slack will use to push events to us with.
const endpoint = new awsx.apigateway.API("mentionbot", {
routes: [{
path: "/events",
method: "POST",
eventHandler: async (event) => {
// process the different types of messages.
return { statusCode: 200, body: "" };
},
}],
});
A aplicação configura um nó de endpoint criando uma nova rota do Gateway de API para a qual o Slack enviará uma mensagem, que aciona uma função do Lambda para processar a mensagem. A biblioteca "awsx" do Crosswalk é usada para definir uma rota de gateway de API e um Lambda é criado com a função JavaScript de manipulador de eventos na qual foi fornecida. Essa função pode acessar os outros recursos criados na aplicação, como a rota do Gateway de API, que elimina a necessidade de passar ARNs ou IDs de recurso ao Lambda.
A aplicação completa do Slackbot é abordada no blog do Pulumi e inclui exemplos para a configuração de recursos adicionais da AWS, como o DynamoDB e o SNS. O exemplo também ilustra como quando os recursos mudam, como por exemplo, alternando do DynamoDB para o RDS. O Pulumi garantirá que os recursos existentes, como a função Lambda, sejam atualizados com o acesso apropriado. Além disso, o Slackbot inclui como monitorar recursos com o CloudWatch e cria painéis para observabilidade.
O Pulumi planeja estender a abordagem Crosswalk para outros provedores de nuvem. O Pulumi Crosswalk para AWS é atualmente suportado em JavaScript e TypeScript além de suporte para outras linguagens, como o Python, estão no roadmap. O Crosswalk é open source e livre para usar, junto com o Community Edition of Pulumi. As ofertas comerciais do Pulumi incluem suporte ao Pulumi Crosswalk para a AWS.