![Como começar com o modelo de linguagem grande Gemini do Google](https://optimuscloud.com.br/wp-content/uploads/2024/02/1709213116_Como-comecar-com-o-modelo-de-linguagem-grande-Gemini-do-150x150.jpg)
Como começar com o modelo de linguagem grande Gemini do Google
29 de fevereiro de 2024![Por que grandes modelos de linguagem não substituirão codificadores humanos](https://optimuscloud.com.br/wp-content/uploads/2024/02/1709223715_Por-que-grandes-modelos-de-linguagem-nao-substituirao-codificadores-humanos-150x150.jpg)
Por que grandes modelos de linguagem não substituirão codificadores humanos
29 de fevereiro de 2024Os copilotos de IA estão fazendo avanços significativos no cenário da codificação, fornecendo assistência em tempo real, automatizando tarefas rotineiras e oferecendo sugestões criteriosas de vastos repositórios de código. Esses copilotos oferecem mais do que aconselhamento genérico; eles fornecem sugestões contextualmente relevantes e geram trechos de código conforme você digita, o que é semelhante a ter um desenvolvedor experiente orientando você.
No entanto, ainda estamos evoluindo no domínio da geração de código. Embora os copilotos de IA possam sugerir, os desenvolvedores precisam orientar essas sugestões para alinhá-las com a intenção de seu aplicativo. Essa interação garante que a assistência da IA complemente a experiência de domínio do desenvolvedor, crucial tanto nos domínios de negócios quanto de software/arquitetura.
Essa colaboração se torna particularmente desafiadora quando o conhecimento do domínio é complexo ou carece de padronização do setor, como na geração de infraestrutura como código (IaC) para ambientes de tempo de execução de aplicativos. Depois de muitas experiências com a geração de IaC, fica bastante claro que uma quantidade significativa de contribuição humana e experiência é necessária para produzir código utilizável, independentemente de estarmos tentando gerar código Terraform, AWS Cloud Development Kit (CDK) ou Pulumi. .
Surge o desafio: como podemos introduzir padronização e melhores práticas para obter mais automação em nossos pipelines de implantação de infraestrutura?
As estruturas de automação poderiam ser a chave?
As estruturas modernas de aplicativos em nuvem fornecem um conjunto de construções de alto nível que simplificam significativamente a automação da infraestrutura. Construtos são componentes ou elementos fundamentais usados para montar estruturas ou sistemas mais complexos. Eles fornecem funcionalidades, padrões ou modelos predefinidos, que podem ser usados para construir, gerenciar e dimensionar aplicativos com mais eficiência.
Aqui estão alguns exemplos de construções comuns usadas para construir aplicativos modernos em nuvem:
Tipo de construção | Descrição |
APIs | Essencial para integração e comunicação entre serviços em nuvem por meio de gerenciamento e criação simplificados. |
Mensagens | Permite o tratamento eficiente de enfileiramento de mensagens assíncronas e publicação e assinatura de eventos. |
Armazenamento de objetos | Facilita fácil interação e gerenciamento com serviços de armazenamento em nuvem. |
Funções | Simplifica o desenvolvimento com construções para implantar funções que manipulam rotas de API, tarefas agendadas e eventos acionados. |
Agendador | Automatiza e gerencia o tempo e a execução de tarefas e fluxos de trabalho |
WebSockets | Fornece um canal para comunicação bidirecional em tempo real entre clientes e servidores, essencial para aplicações interativas. |
O GitHub Copilot, embora não esteja totalmente equipado para gerenciar todo o escopo da infraestrutura, parece ter um bom desempenho no aumento do desenvolvimento da lógica do aplicativo. Usando essas construções de alto nível, os copilotos de IA podem contribuir de forma mais eficaz para automatizar e otimizar o desenvolvimento de aplicativos e tarefas operacionais em ambientes de nuvem.
A incorporação de melhores práticas de segurança e requisitos de conformidade nessas estruturas, juntamente com os recursos analíticos dos copilotos de IA, também poderia melhorar a segurança geral do aplicativo. Por exemplo, a estrutura pode garantir que todos os recursos sejam provisionados com o mínimo de privilégios; os prompts usados para construir o código do aplicativo também podem ser direcionados à criação de uma área de segurança de tamanho apropriado — basicamente sem recursos desnecessários.
Vendo isso na prática
Digamos que estamos construindo um back-end básico para um aplicativo de mensagens com as seguintes construções:
- WebSockets
- Agendador
- Funções sem servidor
O snippet abaixo é uma lógica de aplicativo gerada automaticamente com GitHub Copilot, usando algumas solicitações com comentários como “Agende uma tarefa que seja executada a cada 2 horas”. Queremos avisar a todos que estão conectados para avisar sobre um evento importante que ocorre dentro do cronograma.
Nota: Foi necessário algum ajuste fino — a primeira versão do código usava um for
loop em vez de um on
evento.
Usando as construções de alto nível, não há mais necessidade de gerar diretamente o IaC necessário para provisionar o tempo de execução necessário para este aplicativo. Como resultado, contamos com a estrutura para trazer o conhecimento do domínio sobre o que deve ser configurado e provisionado.
Observação: sob a cobertura da maioria das estruturas modernas está o IaC no qual implementamos nossas melhores práticas. Isso é fundamental, porque ainda podemos usar todas as excelentes ferramentas que realizam análises estáticas durante a experimentação com as fases iniciais da IA generativa.
Neste exemplo, permitimos que a IA nos ajudasse a gerar lógica de negócios para as necessidades de nossos aplicativos com construções de alto nível, como agendas, coleções, serviços e gateways de API, para que possamos efetivamente pular a geração de tarefas altamente personalizadas e difíceis. para- manter o código de infraestrutura.
Mais um passo em frente para IaC
Continuamos ampliando os limites do IaC e do IfC (Infraestrutura do Código). Como temos uma especificação subjacente dos nossos requisitos de infraestrutura a partir do código do aplicativo gerado pela IA, podemos dar um passo adiante.
Abaixo está uma imagem em tempo real da infraestrutura de um aplicativo que se atualiza quando um desenvolvedor adiciona ou remove recursos.
Abraçando o futuro do desenvolvimento de software
Um desafio futuro significativo é a integração da infraestrutura gerada por IA com sistemas legados, um tópico que estamos explorando na Nitric. À medida que os copilotos e estruturas de IA evoluem, prometem um caminho mais simplificado e eficiente para o provisionamento de infraestruturas, equilibrando a inovação com as realidades dos sistemas existentes.
Para mim, está claro que os copilotos de IA que utilizam estruturas como a Nitric não são apenas ferramentas de conveniência, mas são fundamentais para a evolução da nossa indústria. Envolver-se com essas ferramentas em evolução não significa apenas permanecer relevante, mas moldar o futuro do próprio desenvolvimento de software.
Eu encorajo você a dar o salto. Comece um projeto com Nitric. Integre um copiloto de IA ao seu fluxo de trabalho. Explore as possibilidades que essas ferramentas abrem. Mais importante ainda, compartilhe sua jornada com a comunidade. Nosso feedback, experimentos e contribuições para esta tecnologia ajudarão a orientar seu curso.
A postagem Os copilotos estão prontos para provisionar sua infraestrutura? apareceu primeiro em The New Stack.