Encontre suas linhas de código mais caras com o Amazon CodeGuru

O Amazon CodeGuru é uma ferramenta de desenvolvedor que usa o poder do machine learning para ajudá-lo a melhorar o gerenciamento do código e encontrar as linhas de código mais caras. Ele executa revisões automatizadas de código e fornece recomendações para performance da aplicação.

Amazon CodeGuru Reviewer

O Amazon CodeGuru Reviewer encontra problemas no seu código Java e Python e recomenda como corrigi-los. Por exemplo, o CodeGuru Reviewer detecta desvios das melhores práticas para o uso de APIs e SDKs da AWS e também identifica problemas de simultaneidade, vazamentos de recursos, vulnerabilidades de segurança e validação incorreta de entrada. Para começar a revisar o código, você pode associar seus repositórios de código existentes no GitHub, GitHub Enterprise, Bitbucket ou AWS CodeCommit ao CodeGuru.

Recomendações automatizadas para solicitações pull

O CodeGuru Reviewer identifica problemas de gerenciamento de código e riscos de segurança (incluindo as dez principais categorias OWASP) analisando automaticamente as solicitações de pull de código-fonte para encontrar problemas críticos. Em seguida, ele fornece recomendações inteligentes para resolver defeitos de código diretamente na solicitação de pull. O CodeGuru Reviewer identifica problemas de gerenciamento de código em nove categorias amplas e capacita sua equipe de desenvolvimento para manter um alto padrão de codificação no processo de desenvolvimento de software:

• Melhores práticas da AWS: uso correto de APIs da AWS (exemplo: sondagem, paginação).
• Melhores práticas para Java e Python: uso correto de recursos populares de biblioteca e linguagem Java e Python.
• Simultaneidade: detecta ausência de sincronização, resultando em funcionalidade incorreta ou sincronização excessiva que leva a problemas de performance.
• Gerenciamento do código: identifica as complexidades do código ou qualquer característica no código-fonte que torna o código mais difícil de manter ao longo do tempo.
• Vazamento de recursos: manuseio correto de recursos (exemplo: liberação de conexões com o banco de dados).
• Vazamento de informações sigilosas: vazamento de informações de identificação pessoal (exemplo: detalhes de registro de cartão de crédito em log).
• Práticas recomendadas de codificação comuns: verifica os parâmetros e procura linhas de código que podem criar bugs (exemplo: esquecer de verificar se um objeto é nulo antes de defini-lo, reatribuir um objeto sincronizado ou esquecer de inicializar uma variável ao longo de um caminho de exceção).
• Clonagem de código: identifica o código duplicado que pode ser consolidado para proporcionar uma melhor manutenção do código.
• Validação de entrada: verifica dados defeituosos ou maliciosos de fontes não confiáveis

Recomendações automatizadas para solicitações pull
 Clique para aumentar

Detecção de segurança
O Codeguru Reviewer ajuda você a aprimorar a segurança do código e fornece recomendações de melhores práticas. Ele usa raciocínio automatizado para analisar o fluxo de dados da origem para o coletor e entre várias funções a fim de detectar vulnerabilidades de segurança difíceis de detectar. O Security Detector é compatível com Java, até o Java 11, e identifica várias categorias de problema, entre elas:

1. Melhores práticas de segurança de API da AWS: é possível verificar a segurança de API para AWS EC2 e KMS
2. Melhores práticas para bibliotecas de criptografia Java: é possível verificar se Javax.Crypto.Cipher foi inicializado e chamado corretamente
3. Aplicações Web seguras: é possível verificar problemas de segurança relacionados a aplicações Web, p. ex., injeções LDAP
4. Vazamento de informações sigilosas: é possível verificar se há algum vazamento de informações pessoais ou sigilosas
5. Melhores práticas de segurança da AWS (como recomendações de criptografia da AWS): é possível verificar se o seu código satisfaz as melhores práticas da AWS.

Você pode acessar o console do CodeGuru e acionar uma análise de segurança em todo seu repositório ou base de código fazendo upload dos seus artefatos de origem e compilação.

Recomendações

Você pode ver todas as revisões de código na página de console “Revisões de código” (seção Reviewer). Essa página lista todas as informações de revisão de código, como o status da revisão de código, o repositório, o número de recomendações e muito mais. Você pode clicar em uma revisão de código concluída com êxito para exibir detalhes de recomendações, procurar recomendações e ver o número de linhas analisadas. Também é possível fornecer comentários sobre as recomendações do CodeGuru, clicando no ícone de polegar para cima ou para baixo abaixo da recomendação.

PullRequest
 Clique para aumentar
Análise completa de repositório

Com o CodeGuru, você pode obter recomendações de revisão de código baseadas em ML para todas as linhas de código nos repositórios associados (não apenas mudanças incrementais por meio de solicitações pull), em uma ramificação de código especificada. Você pode executar varreduras de repositório completas para obter recomendações de revisão de código durante a migração de código, devida diligência de código e iniciativas de manutenção de código periódicas. No console do CodeGuru, você pode navegar até a guia "Repository Analysis" na página "Code Reviews" para acionar uma nova análise em um repositório completo. Duas verificações de repositório completas vêm incluídas com o novo modelo de preço baseado no tamanho do repositório. Para obter mais detalhes, acesse a página de definição de preço do CodeGuru. 

Análise completa de repositório
 Clique para aumentar

Com a disponibilidade da solicitação pull e da análise completa do repositório, a integração ao CodeGuru Reviewer pode ajudar você a 1) associar seu repositório; 2) iniciar uma análise completa do repositório; 3) analisar continuamente as solicitações pull com alterações incrementais de código; e 4) fazer uma nova varredura periódica do repositório completo para garantir o gerenciamento do código.

Detecção de segurança
 Clique para aumentar

Amazon CodeGuru Profiler

O Amazon CodeGuru Profiler está sempre buscando otimizações de desempenho de aplicativos, identificando suas linhas de código mais "caras" e recomendando maneiras de corrigi-las para reduzir a utilização de CPU, cortar custos de computação e melhorar o desempenho dos aplicativos. Por exemplo, o CodeGuru Profiler pode identificar quando sua aplicação está consumindo capacidade excessiva da CPU em uma rotina de registro em log ao invés de executar na lógica empresarial principal.

Criação permanente de perfil de aplicações em produção

O CodeGuru Profiler foi desenvolvido para ser executado continuamente em produção com o mínimo de sobrecarga da CPU, o que significa que você pode deixá-lo sempre ligado com impacto mínimo sobre a performance da aplicação. Ele permite que você crie um perfil e solucione problemas de sua aplicação usando padrões reais de tráfego de clientes e descubra facilmente problemas de performance. Com os dados do criador de perfil e recomendações baseadas em ML, você pode identificar e corrigir problemas de desempenho para suas aplicações em produção. O CodeGuru Profiler também fornece um resumo de heap, permitindo que você identifique quais objetos estão usando memória em qualquer ponto do tempo.

Compreenda o comportamento de tempo de execução de aplicações

O CodeGuru Profiler analisa constantemente as características de utilização de CPU, uso de heap e latência da aplicação para mostrar onde você gasta mais ciclos ou tempo em sua aplicação. Essa análise de CPU e latência é apresentada em um gráfico interativo de chama que ajuda você a entender facilmente quais caminhos de códigos consomem mais recursos, verificar se sua aplicação tem a performance esperada e descobrir áreas passíveis de otimização adicional.

Anomalia no processamento de imagem
 Clique para aumentar

Os gráficos de chama exibem a performance da sua aplicação ao agregar amostras de rastreamento de pilha durante um intervalo de tempo para produzir uma imagem precisa do comportamento da aplicação durante esse tempo. Você pode usar um gráfico de chama para entender quais caminhos consomem mais recursos, verificar se a aplicação apresenta a performance esperada e descobrir áreas passíveis de otimização adicional. Por exemplo, o método UploadGreyImage está gastando 134.868 USD por ano e está consumindo 10,22% do tempo do relógio de parede. Se você não esperava gastar tanto tempo assim, deveria investigar. 

Resumo de heap

A análise de uso de heap é apresentada em uma visualização de resumo de heap que mostra a você quais objetos estão alocados em seu heap, seja em classes do seu próprio domínio ou nas classes de bibliotecas ou do JDK.

Descubra anomalias e problemas comuns na performance da sua aplicação
 Clique para aumentar

O resumo de heap visualiza todos os objetos alocados no heap durante um intervalo de tempo especificado, juntamente com os respectivos tamanhos, quantidades e séries temporais. Por exemplo, no gráfico de série temporal você pode ver que às 16:20 há dois objetos que começam a crescer significativamente (java.util.LinkedHashMap$Entry e java.land.UUID), o que indica um possível vazamento de memória. Caso essa tendência crescente continue, ela pode resultar em uma situação de falta de memória se permanecer sem verificação.

Recomendações inteligentes

O CodeGuru Profiler identifica automaticamente os problemas de desempenho em seu aplicativo e fornece recomendações baseadas em ML sobre como corrigi-los. Essas recomendações ajudam a identificar e otimizar os métodos mais caros ou com uso mais intensivo de recursos em seu código, sem exigir que você seja um especialista em engenharia de desempenho. Essas otimizações ajudam você a reduzir o custo de sua infraestrutura, reduzir a latência e melhorar sua experiência geral do usuário final.

Recomendações inteligentes
 Clique para aumentar

Ao ver oportunidades de otimizar a performance da sua aplicação, o Amazon CodeGuru Profiler explica por que está recomendando uma alteração, qual é a causa do problema, como resolvê-lo e onde no código esse problema afeta sua aplicação. Essa recomendação mostra a você que essa linha dispendiosa de código custa 182.160 USD por ano e tem um impacto de 2,97% sobre sua utilização de CPU. Se você seguir as etapas de resolução sugeridas, poderá economizar até 182.160 USD.

Detecção de anomalias

O Amazon CodeGuru Profiler analisa constantemente seus perfis de aplicativo em tempo real e detecta anomalias no comportamento de seu aplicativo e de seus métodos. Cada anomalia é acompanhada no relatório de Recomendações do console do CodeGuru Profiler e você pode ver séries temporais de como a latência do método se comporta ao longo do tempo, com anomalias claramente destacadas. Se configurada, uma notificação do Amazon SNS também será enviada quando uma nova anomalia for detectada.

Detecção de anomalias
 Clique para aumentar
Standard Product Icons (Features) Squid Ink
Saiba mais sobre a definição de preço do Amazon CodeGuru

Acesse a página de definição de preço do Amazon CodeGuru.

Saiba mais 
Sign up for a free account
Cadastrar-se para ter uma conta gratuita

Obtenha acesso instantâneo ao nível gratuito da AWS. 

Cadastre-se 
Standard Product Icons (Start Building) Squid Ink
Comece a criar no console

Comece a criar com o Amazon CodeGuru no Console de Gerenciamento da AWS.

Fazer login