Otimize para a sustentabilidade com Amazon CodeWhisperer | Amazon Web Services

Otimize para a sustentabilidade com Amazon CodeWhisperer | Amazon Web Services

Esta postagem explora como Sussurrador de Código da Amazon pode ajudar na otimização do código para a sustentabilidade por meio do aumento da eficiência dos recursos. A codificação computacionalmente eficiente em termos de recursos é uma técnica que visa reduzir a quantidade de energia necessária para processar uma linha de código e, como resultado, ajudar as empresas a consumir menos energia em geral. Nesta era da computação em nuvem, os desenvolvedores estão agora aproveitando bibliotecas de código aberto e o poder de processamento avançado disponível para criar microsserviços em grande escala que precisam ser operacionalmente eficientes, de alto desempenho e resilientes. No entanto, as aplicações modernas muitas vezes consistem em código extenso, exigindo recursos computacionais significativos. Embora o impacto ambiental direto possa não ser óbvio, o código subotimizado amplifica a pegada de carbono das aplicações modernas através de fatores como aumento do consumo de energia, uso prolongado de hardware e algoritmos desatualizados. Nesta postagem, descobrimos como o Amazon CodeWhisperer ajuda a resolver essas preocupações e a reduzir a pegada ambiental do seu código.

O Amazon CodeWhisperer é um companheiro de codificação de IA generativo que acelera o desenvolvimento de software fazendo sugestões com base no código existente e em comentários em linguagem natural, reduzindo o esforço geral de desenvolvimento e liberando tempo para brainstorming, solução de problemas complexos e criação de código diferenciado. O Amazon CodeWhisperer pode ajudar os desenvolvedores a simplificar seus fluxos de trabalho, melhorar a qualidade do código, criar posturas de segurança mais fortes, gerar conjuntos de testes robustos e escrever código computacionalmente amigável aos recursos, o que pode ajudá-lo a otimizar para a sustentabilidade ambiental. Está disponível como parte do Kit de ferramentas para código do Visual Studio, Nuvem AWS9, JupyterLab, Estúdio Amazon SageMaker, AWS Lambda, Cola AWSe JetBrains IntelliJ IDEA. Atualmente, o Amazon CodeWhisperer oferece suporte a Python, Java, JavaScript, TypeScript, C#, Go, Rust, PHP, Ruby, Kotlin, C, C++, scripts de shell, SQL e Scala.

Impacto do código não otimizado na computação em nuvem e na pegada de carbono dos aplicativos

A infraestrutura da AWS é 3.6 vezes mais eficiente em termos energéticos do que a média dos data centers empresariais dos EUA pesquisados ​​e até 5 vezes mais eficiente em termos energéticos do que a média dos data centers empresariais europeus. Portanto, a AWS pode ajudar a reduzir a pegada de carbono da carga de trabalho em até 96%. Agora você pode usar o Amazon CodeWhisperer para escrever código de qualidade com uso reduzido de recursos e consumo de energia e atender aos objetivos de escalabilidade enquanto se beneficia da infraestrutura de eficiência energética da AWS.

Maior uso de recursos

Código não otimizado pode resultar no uso ineficaz de recursos de computação em nuvem. Como resultado, podem ser necessárias mais máquinas virtuais (VMs) ou contentores, aumentando a alocação de recursos, a utilização de energia e a pegada de carbono relacionada da carga de trabalho. Você pode encontrar aumentos no seguinte:

  • Utilização da CPU – O código não otimizado geralmente contém algoritmos ou práticas de codificação ineficientes que exigem ciclos excessivos de CPU para serem executados.
  • Consumo de memória – O gerenciamento ineficiente de memória em código não otimizado pode resultar em alocação, desalocação ou duplicação de dados desnecessária.
  • Operações de E/S de disco – Código ineficiente pode executar operações excessivas de entrada/saída (E/S). Por exemplo, se os dados forem lidos ou gravados no disco com mais frequência do que o necessário, isso poderá aumentar a utilização e a latência de E/S do disco.
  • Uso de rede – Devido a técnicas de transmissão de dados ineficazes ou comunicação duplicada, um código mal otimizado pode causar uma quantidade excessiva de tráfego de rede. Isso pode levar a maior latência e maior utilização da largura de banda da rede. O aumento da utilização da rede pode resultar em maiores despesas e necessidades de recursos em situações em que os recursos da rede são tributados com base no uso, como na computação em nuvem.

Maior consumo de energia

Aplicativos de suporte à infraestrutura com código ineficiente utilizam mais poder de processamento. O uso excessivo de recursos de computação devido a código ineficiente e inchado pode resultar em maior consumo de energia e produção de calor, o que subsequentemente necessita de mais energia para resfriamento. Junto com os servidores, os sistemas de refrigeração, a infraestrutura de distribuição de energia e outros elementos auxiliares também consomem energia.

Desafios de escalabilidade

No desenvolvimento de aplicações, problemas de escalabilidade podem ser causados ​​por código não otimizado. Esse código pode não ser dimensionado de forma eficaz à medida que a tarefa cresce, necessitando de mais recursos e consumindo mais energia. Isso aumenta a energia consumida por esses fragmentos de código. Conforme mencionado anteriormente, códigos ineficientes ou desnecessários têm um efeito agravante em grande escala.

A economia de energia resultante da otimização do código que os clientes executam em determinados data centers é ainda maior quando levamos em consideração que provedores de nuvem como a AWS possuem dezenas de data centers em todo o mundo.

O Amazon CodeWhisperer usa machine learning (ML) e grandes modelos de linguagem para fornecer recomendações de código em tempo real com base no código original e em comentários de linguagem natural, além de fornecer recomendações de código que podem ser mais eficientes. A eficiência do uso da infraestrutura do programa pode ser aumentada otimizando o código usando estratégias que incluem avanços algorítmicos, gerenciamento eficaz de memória e uma redução em operações de E/S inúteis.

Geração, conclusão e sugestões de código

Vamos examinar diversas situações em que o Amazon CodeWhisperer pode ser útil.

Ao automatizar o desenvolvimento de código repetitivo ou complexo, as ferramentas de geração de código minimizam a possibilidade de erro humano enquanto se concentram em otimizações específicas da plataforma. Ao utilizar padrões ou modelos estabelecidos, estes programas podem produzir códigos que aderem de forma mais consistente às melhores práticas de sustentabilidade. Os desenvolvedores podem produzir código que esteja em conformidade com padrões de codificação específicos, ajudando a fornecer um código mais consistente e confiável durante todo o projeto. O código resultante pode ser mais eficiente porque remove variações de codificação humana e pode ser mais legível, melhorando a velocidade de desenvolvimento. Ele pode implementar automaticamente maneiras de reduzir o tamanho e a duração do programa aplicativo, como excluir código supérfluo, melhorar o armazenamento de variáveis ​​ou usar métodos de compactação. Essas otimizações podem ajudar na otimização do consumo de memória e aumentar a eficiência geral do sistema, reduzindo o tamanho do pacote.

IA generativa tem potencial para tornar a programação mais sustentável, otimizando a alocação de recursos. É importante observar holisticamente a pegada de carbono de um aplicativo. Ferramentas como Criador de perfil Amazon CodeGuru pode coletar dados de desempenho para otimizar a latência entre componentes. O serviço de criação de perfil examina execuções de código e identifica possíveis melhorias. Os desenvolvedores podem então refinar manualmente o código gerado automaticamente com base nessas descobertas para melhorar ainda mais a eficiência energética. A combinação de IA generativa, criação de perfil e supervisão humana cria um ciclo de feedback que pode melhorar continuamente a eficiência do código e reduzir o impacto ambiental.

A captura de tela a seguir mostra os resultados gerados pelo CodeGuru Profiler no modo de latência, que inclui E/S de rede e disco. Neste caso, o aplicativo ainda passa a maior parte do tempo em ImageProcessor.extractTasks (segunda linha inferior), e quase todo o tempo dentro dele é executável, o que significa que não estava esperando por nada. Você pode visualizar esses estados de thread mudando para o modo de latência no modo CPU. Isso pode ajudá-lo a ter uma boa ideia do que está afetando o horário do relógio de parede do aplicativo. Para obter mais informações, consulte Reduzindo a pegada de carbono da sua organização com o Amazon CodeGuru Profiler.

imagem

Gerando casos de teste

Sussurrador de Código da Amazon pode ajudar a sugerir casos de teste e verificar a funcionalidade do código considerando valores limite, casos extremos e outros problemas potenciais que podem precisar ser testados. Além disso, o Amazon CodeWhisperer pode simplificar a criação de código repetitivo para testes unitários. Por exemplo, se você precisar criar dados de amostra usando instruções INSERT, o Amazon CodeWhisperer poderá gerar as inserções necessárias com base em um padrão. Os requisitos gerais de recursos para testes de software também podem ser reduzidos identificando e otimizando casos de teste que consomem muitos recursos ou removendo casos redundantes. Conjuntos de testes aprimorados têm o potencial de tornar o aplicativo mais ecologicamente correto, aumentando a eficiência energética, diminuindo o consumo de recursos, minimizando o desperdício e reduzindo a pegada de carbono da carga de trabalho.

Para uma experiência mais prática com o Amazon CodeWhisperer, consulte Otimize o desenvolvimento de software com Amazon CodeWhisperer. A postagem mostra as recomendações de código do Amazon CodeWhisperer em Estúdio Amazon SageMaker. Também demonstra o código sugerido com base em comentários para carregar e analisar um conjunto de dados.

Conclusão

Nesta postagem, aprendemos como o Amazon CodeWhisperer pode ajudar os desenvolvedores a escrever códigos otimizados e mais sustentáveis. Usando modelos avançados de ML, o Amazon CodeWhisperer analisa seu código e fornece recomendações personalizadas para melhorar a eficiência, o que pode reduzir custos e ajudar a diminuir a pegada de carbono.

Ao sugerir pequenos ajustes e abordagens alternativas, o Amazon CodeWhisperer permite que os desenvolvedores reduzam significativamente o uso de recursos e as emissões sem sacrificar a funcionalidade. Esteja você procurando otimizar uma base de código existente ou garantir que novos projetos sejam eficientes em termos de recursos, o Amazon CodeWhisperer pode ser uma ajuda inestimável. Para saber mais sobre os recursos do Amazon CodeWhisperer e do AWS Sustainability para otimização de código, considere as próximas etapas a seguir:


Sobre os autores

Otimize para a sustentabilidade com Amazon CodeWhisperer | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Isha Dua é Arquiteto de Soluções Sênior baseado na área da Baía de São Francisco. Ela ajuda os clientes corporativos da AWS a crescer ao entender seus objetivos e desafios e os orienta sobre como eles podem arquitetar seus aplicativos de maneira nativa da nuvem, garantindo resiliência e escalabilidade. Ela é apaixonada por tecnologias de aprendizado de máquina e sustentabilidade ambiental.

Otimize para a sustentabilidade com Amazon CodeWhisperer | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Ajjay Govindaram é Arquiteto de Soluções Sênior na AWS. Ele trabalha com clientes estratégicos que usam AI/ML para resolver problemas complexos de negócios. Sua experiência está em fornecer orientação técnica e assistência de design para implantações de aplicativos de IA/ML de modesta a grande escala. Seu conhecimento varia de arquitetura de aplicativos a big data, análise e aprendizado de máquina. Ele gosta de ouvir música enquanto descansa, experimenta o ar livre e passa tempo com seus entes queridos.

Otimize para a sustentabilidade com Amazon CodeWhisperer | Inteligência de dados PlatoBlockchain da Amazon Web Services. Pesquisa vertical. Ai.Erick Irigoyen é arquiteto de soluções na Amazon Web Services com foco em clientes da indústria de semicondutores e eletrônicos. Ele trabalha em estreita colaboração com os clientes para compreender seus desafios de negócios e identificar como a AWS pode ser aproveitada para atingir seus objetivos estratégicos. Seu trabalho tem se concentrado principalmente em projetos relacionados à Inteligência Artificial e Aprendizado de Máquina (AI/ML). Antes de ingressar na AWS, ele foi consultor sênior na prática de análise avançada da Deloitte, onde liderou fluxos de trabalho em vários projetos nos Estados Unidos com foco em análise e IA/ML. Erick é bacharel em Administração pela Universidade de São Francisco e mestre em Análise pela Universidade Estadual da Carolina do Norte.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS