Info+News+Tech

Como uma ampla generalização, a comunidade JavaScript é a menos sensível à conteinerização como primeiro princípio. A comunidade está muito distante das discussões sobre tempos de execução, ingresso, rede e orquestração de contêineres – principalmente porque temas como renderização do lado do servidor, cache de código e melhorias de desempenho são mais relevantes e relacionáveis ​​a eles.

Além disso, ferramentas como Netlify e Vercel forneceram uma experiência de desenvolvedor moderna que torna as implantações fáceis. A simples conveniência que essas ferramentas de implantação fornecem fez com que o ecossistema desejasse o mesmo tipo de experiência para todas as infraestruturas.

Fazer com que os desenvolvedores de JavaScript, como uma comunidade, falem sobre contêineres e Kubernetes como um tópico principal é um desafio. A facilidade de uso que eles obtêm de outras ferramentas, mais a complexidade das implantações baseadas em Kubernetes, torna muito mais difícil fazer com que a comunidade JS trabalhe com uma infraestrutura de nuvem moderna. Isso leva a uma lacuna cada vez maior dentro da comunidade entre o desenvolvimento e a implantação.

Portanto, ficamos com as seguintes questões – qual é o melhor caminho para a comunidade JavaScript adotar métodos modernos de implementação de aplicativos? Qual é um meio de implantar aplicativos JavaScript no Kubernetes, sem o atrito?

Acontece que a comunidade nativa da nuvem tem algumas respostas. O projeto cf-for-k8s do Cloud Foundry , junto com uma implementação Cloud Native Buildpacks chamada Paketo Buildpacks , pode fornecer um caminho para que os desenvolvedores de aplicativos JavaScript implantem convenientemente no Kubernetes. Ambos são de código aberto e pertencem à Cloud Foundry Foundation.

Usando a interface cf push testada pelo tempo, os desenvolvedores de JavaScript não precisam fazer uma escolha entre implementar convenientemente e implementar em uma infraestrutura moderna.

A experiência do desenvolvedor Cloud Foundry concentra-se na simplificação de implantações não apenas para JavaScript, mas também para todas as outras linguagens. Os contêineres são construídos a partir da fonte por estágios internos no processo de implantação, graças aos Buildpacks que detectam a linguagem, dependências de tempo de execução e estruturas necessárias para cada linguagem e, em seguida, os fornece durante o processo de construção. Especificamente para JavaScript, um conjunto de Buildpacks é usado para cobrir a base, iniciar e instalar peças para aplicativos baseados em Node e Yarn.

Em última análise, o que isso permite?

Essa abordagem fornece soluções para muitos problemas que surgem devido a fluxos de trabalho de contêinerização no ecossistema JavaScript. Vamos examinar algumas das limitações e problemas comuns e ver como o Cloud Foundry fornece uma solução para eles.

Vamos começar com um problema fundamental – escrever um Dockerfile.

Para criar um contêiner para um aplicativo escrito em Node.JS, precisamos de um Dockerfile . Isso especificará os comandos necessários para baixar dependências, instalar o aplicativo e, finalmente, iniciá-lo.

Dockerfiles são uma combinação de scripts de shell e algum contexto para executá-los. Eles representam carga cognitiva adicional para um engenheiro de JavaScript e podem ser difíceis de escrever e manter à medida que os aplicativos aumentam.

Em seguida, os métodos de implantação convenientes prometidos pelas páginas Netlify, Vercel, Cloudflare etc. são limitados a sites estáticos e não a aplicativos completos. Os desenvolvedores que desejam implantar aplicativos full stack são forçados a procurar outro lugar. Eles precisam escrever Dockerfiles por padrão ou usar plataformas como Heroku, que são mais adequadas às suas necessidades.

O que nos leva ao próximo problema – controle sobre a infraestrutura . Netlify e Heroku, que são populares entre os desenvolvedores de JavaScript, não expõem a infraestrutura em que são executados.

Os desenvolvedores não têm nenhum controle sobre a natureza da computação que, em última instância, potencializará sua experiência. Não há opções para acomodar arquiteturas de nuvem múltipla ou híbrida.

Além de tudo isso, há uma longa cauda de melhores práticas de operações de plataforma que não podem ser implementadas com aplicativos JavaScript. A lista inclui (mas não está limitada a) compilações de vários estágios, proxies HTTP, desempenho de instalação npm, verificações de integridade, varredura CVE, registro de contêiner, teste durante compilações de imagem e configurações docker-compose de microsserviço.

Como exemplo, vamos dar uma olhada em como o Cloud Foundry resolve esses problemas.

Em primeiro lugar, o uso do Paketo (ou qualquer outro Buildpacks) elimina a necessidade de escrever Dockerfiles. Conseqüentemente, o ônus de mantê-los também é eliminado. O Cloud Foundry pode implantar aplicativos de página única, aplicativos complexos ou terminais de API sem interface e os constrói de maneira uniforme. Com o projeto cf-for-k8s , os desenvolvedores podem implantar em um cluster Kubernetes de sua escolha, que está sendo executado em qualquer infraestrutura.

Além disso, os operadores de plataforma podem usar os Buildpacks para aplicar as melhores práticas durante o tempo de construção, em vez de empurrar isso como outra tarefa para os desenvolvedores se preocuparem.

Aqui está um link para um tutorial que explica como implantar um aplicativo Node.JS de pilha completa no Kubernetes usando a experiência de desenvolvedor do Cloud Foundry . (Em vez disso , assista a um vídeo , se você for do tipo que prefere aprender visualmente).

Aqui estão alguns dos destaques do processo de instalação:

O comando usado para implantar o aplicativo é

A fase de análise dentro do processo cf push identificou a necessidade dos seguintes Buildpacks

Os Buildpacks selecionaram o processo de construção do NPM e concluíram a instalação do aplicativo em poucos segundos.

Finalmente, a compilação é concluída e os contêineres são armazenados em cache como camadas dentro de um registro de contêiner. Essas camadas podem ser endereçadas e atualizadas individualmente, permitindo que os operadores reconstruam a imagem final em vez de reconstruir imagens inteiras durante as atualizações.

Depois que a compilação for concluída e os contêineres terem sido armazenados em cache, o aplicativo será iniciado automaticamente e um link exclusivo (rota) será gerado para você ver o aplicativo ativo.

Se você tiver dúvidas ao começar a usar cf-for-k8s ou Cloud Foundry em geral, vá para a comunidade Cloud Foundry em slack.cloudfoundry.org. Você descobrirá que a comunidade terá o maior prazer em recebê-lo e ajudá-lo. Além disso, para obter mais informações sobre a Cloud Foundry Foundation e o que ela faz, visite cloudfoundry.org .

Deixe um comentário

Info.CEVIU