Back home

As plataformas de tempo de execução começam a competir pela entrada na cadeia de ferramentas full stack

Depois que a construção, o teste, a visualização e a implantação forem incluídos na mesma cadeia de execução, o fluxo de trabalho padrão determinará a propriedade da plataforma antes do preço da hospedagem.

Assim que um projeto começa a abordar SSR, tarefas em segundo plano, armazenamento de objetos e implantação de visualização ao mesmo tempo, a ferramenta de construção logo revelará seus limites originais. vite dev é responsável por executar a página, retornar o gerenciamento da estrutura de teste, implantar a CLI para ficar online e adicionar uma camada de cola à camada de adaptação de tempo de execução. No início, esse conjunto de coisas era tolerável, mas depois que o projeto separou a depuração local e o tempo de execução de produção, os problemas começaram a surgir: ele poderia ser executado localmente, mas a visualização falhou; quando a versão do adaptador foi atualizada, as ligações de fila e armazenamento não eram mais compatíveis; os comandos ainda eram os mesmos e eu já sabia que cada camada poderia ter problemas de forma independente.

A mudança mais óbvia na cadeia de ferramentas nos últimos dois anos é que a plataforma não está mais satisfeita com a “última etapa da implantação”. Eles começaram a avançar, trazendo desenvolvimento local, simulação de tempo de execução, feedback de teste e comandos de lançamento no mesmo link. Com a recente fusão da VoidZero com a Cloudflare, o que realmente vale a pena assistir não é a notícia da aquisição em si, mas um sinal mais claro: as plataformas de tempo de execução estão começando a competir diretamente pela entrada na cadeia de ferramentas full-stack.

Depois que a ferramenta de construção atinge o tempo de execução, o limite da plataforma avança

No sentido tradicional, as responsabilidades de uma ferramenta de construção são muito claras: ler o código-fonte, gerar o pacote e entregá-lo ao sistema subsequente para processamento. Esta divisão do trabalho já não é suficiente. Contanto que o aplicativo tenha roteamento do lado do servidor, bancos de dados, filas, armazenamento de objetos e funções de borda, a conclusão da construção não significa a conclusão da entrega. Ainda há uma seção inteira de semântica de tempo de execução para alinhar.

O lugar mais fácil para esse tipo de projeto travar não é se o empacotador é rápido o suficiente, mas se o que está sendo executado localmente desta vez é o mesmo tempo de execução configurado online. Enquanto a resposta for não, o ciclo de desenvolvimento ficará cada vez mais pesado. Para preencher essa lacuna, a plataforma certamente encontrará uma maneira de colocar o servidor de desenvolvimento em seu próprio tempo de execução e fazer “escrever código localmente” e “executá-lo on-line” no mesmo modelo.

Portanto, as mudanças que vemos agora não são mais apenas que a plataforma fornece um adaptador para uma determinada estrutura, mas, por sua vez, a própria CLI da plataforma, os plug-ins de tempo de execução e o ambiente local são transformados proativamente em um formato de cadeia de ferramentas com o qual os desenvolvedores já estão familiarizados. Desta forma, a entrada muda. A plataforma não espera mais o aparecimento da etapa deploy. Já entrou no mercado a partir de dev, build, test e até mesmo o formato de prompt de erro.

O agente ampliou todos os pequenos atritos na cadeia de ferramentas que poderiam ser tolerados.

Quando esta questão é colocada na fase de desenvolvimento puramente manual, o ritmo não é tão urgente. As pessoas lembrarão quais comandos precisam ser executados mais de uma vez, quais erros são apenas problemas ambientais e quais adaptadores ocasionalmente entram em convulsão. Depois que o Agente chega, essas ambigüidades basicamente se tornam custos.

O agente acessará repetidamente o servidor de desenvolvimento, executará novamente o teste, lerá os erros, alterará o código e verificará novamente. Comandos inconsistentes, logs irregulares e comportamento de tempo de execução inconsistente. Essas pequenas falhas que foram resolvidas anteriormente pela experiência se tornarão diretamente um loop infinito no loop de execução. É claro que a velocidade de construção, a velocidade de teste e a velocidade de lint também são importantes, mas o que é mais valioso é se todo o link tem restrições unificadas: o mesmo conjunto de CLI, o mesmo conjunto de modelos de configuração, o mesmo tipo de saída de erro e o mesmo relacionamento de mapeamento local e de produção.

É por isso que o status de ferramentas como o Vite está mudando. Eles eram originalmente apenas o equipamento mais útil na camada de construção frontal, mas agora gradualmente se tornaram a base padrão para o Agente que é mais fácil de dirigir de forma estável. Rápido, simples e amplamente compatível. Essas vantagens costumavam servir principalmente à experiência de desenvolvimento, mas agora servem diretamente à confiabilidade de execução. Contanto que a plataforma anexe seus recursos de tempo de execução a esse loop padrão, ela não apenas ganhará um alvo de implantação, mas também todo um conjunto de hábitos de geração e verificação de aplicativos.

O que é realmente valioso não é o alinhamento do framework, mas quem elimina o fluxo de trabalho padrão.

Só de olhar para as manchetes das notícias, é fácil interpretar tais ações como um investimento ecológico ou como uma plataforma que pretende desviar o tráfego para os seus próprios serviços de alojamento. As mudanças mais sensíveis na engenharia estão, na verdade, em outro nível: uma vez que o andaime padrão do projeto, o tempo de execução local padrão, o loop de teste padrão e os comandos de liberação padrão recaem todos na mesma cadeia de ferramentas, a unidade de competição de plataforma mudará de “cuja máquina é mais barata” para “quem primeiro define como a aplicação é feita”.

Essa diferença não é pequena. Os preços podem ser comparados horizontalmente. Depois que o fluxo de trabalho é gravado no warehouse, nos scripts, no CI e nos hábitos da equipe, raramente é fácil alterá-lo. Se a plataforma só puder assumir a última etapa da implantação, o limite de migração não será alto; se a plataforma tiver percorrido todo o caminho de dev a deploy, a migração afetará o ambiente local, hábitos de comando, links de visualização, métodos de depuração e scripts de execução do agente. Muitas vezes é esta camada que realmente forma a viscosidade.

Essa recente onda de movimentos também traz à tona outra coisa: a cadeia de ferramentas full-stack está redefinindo o “neutro”. No passado, a neutralidade significava mais que era independente da estrutura e funcionava em diferentes bundlers. Hoje em dia, os requisitos de neutralidade são mais rigorosos. Os recursos da plataforma devem ser conectados, mas a cadeia de ferramentas em si não pode ser transformada em um protocolo privado de plataforma. Quem conseguir manter a camada de abstração independente do provedor enquanto faz sua própria implementação na experiência padrão terá maior probabilidade de obter a próxima rodada de bônus de entrada.

Este caminho é adequado apenas para equipes que foram prejudicadas pela complexidade da entrega

Nem todos os projetos precisam se preocupar com esse tipo de contenção de entrada. Para sites estáticos, back-ends pequenos ou serviços com um único formulário de implantação, pode ser útil continuar separando construção, teste e implantação. Quando a escala do projeto é grande, estes tipos de problemas surgirão rapidamente:

  • As diferenças entre o desenvolvimento local e o tempo de execução online começaram a consumir repetidamente o tempo de solução de problemas
  • SSR, fila de tarefas, armazenamento de objetos e vinculação de banco de dados aparecem no mesmo warehouse
  • As equipes já contam com ambientes de visualização, comandos de scaffolding e modelos de CI para entrega colaborativa
  • Os agentes participam da codificação, correção de bugs e testes, e a estabilidade da cadeia de ferramentas começa a afetar diretamente a produção.

Neste estágio, é um pouco tarde para tratar a ferramenta de construção como um puro componente da camada front-end. Ele já está se tornando parte do ponto de entrada do aplicativo, conectado ao tempo de execução, ao lado da implantação e ao lado da execução. A fusão da VoidZero e da Cloudflare apenas torna esta questão mais clara: a próxima rodada de competição de plataformas se tornará cada vez mais parecida com a competição pelo fluxo de trabalho padrão. Quem fechar essa cadeia da maneira mais tranquila terá mais chances de decidir em que base a aplicação crescerá primeiro.

FAQ

What to read next

Related

Continue reading