Encontre suas linhas de código mais caras e melhore a qualidade do código
O Amazon CodeGuru é uma ferramenta de desenvolvedor com tecnologia de machine learning que fornece recomendações inteligentes para melhorar a qualidade do código e identificar as linhas de códigos mais caras de um aplicativo. Integre o Amazon CodeGuru ao seu fluxo de trabalho de desenvolvimento de software existente, onde você experimentará análises de código integradas para detectar e otimizar as linhas de código caras para reduzir custos.
O Amazon CodeGuru Profiler ajuda os desenvolvedores a encontrar as linhas de código mais caras de um aplicativo, além de visualizações e recomendações específicas sobre como melhorar o código para economizar dinheiro. Saiba mais »
O Amazon CodeGuru Reviewer usa a tecnologia de machine learning para identificar problemas críticos e erros difíceis de encontrar durante o desenvolvimento de aplicativos para melhorar a qualidade do código. Saiba mais »
Benefícios
Descubra onde seu aplicativo está gastando seu dinheiro
Quanto mais eficiente o código e o aplicativo, menos onerosa é a execução. Os desenvolvedores podem usar o Amazon CodeGuru Profiler para encontrar possíveis economias para qualquer aplicativo em execução na produção. O Amazon CodeGuru Profiler fornece visualizações e recomendações sobre como corrigir problemas de desempenho e o custo estimado da execução de código ineficiente, ajudando os desenvolvedores a priorizar a correção. Otimize o desempenho de qualquer aplicativo em execução no AWS Lambda, no Amazon EC2, no Amazon ECS, no AWS Fargate ou no AWS Elastic Beanstalk e no local. Para EC2, Containers e aplicativos no local, conecte o agente de criação de perfil à sua JVM e, para o Lambda Instantiate, conecte o agente dentro do seu código Lambda com uma alteração de uma linha.
Encontre problemas de código caros antes que eles atinjam a produção
Treinado ao decorrer de décadas de conhecimento e experiência, o Amazon CodeGuru Reviewer usa a tecnologia de machine learning, práticas recomendadas e lições aprendidas em milhões de análises de código e milhares de aplicativos em projetos de código-aberto e internamente na Amazon.com. Para análises de código, os desenvolvedores informam seu código no GitHub, no GitHub Enterprise, no Bitbucket Cloud e no AWS CodeCommit e adicionam o Amazon CodeGuru Reviewer como um dos revisores de código, sem outras alterações no processo normal de desenvolvimento. O Amazon CodeGuru Reviewer analisa as bases de código existentes no repositório, identifica erros difíceis de encontrar e problemas críticos com alta precisão, fornece sugestões inteligentes sobre como corrigi-los e cria uma linha de base para sucessivas análises de código.
Descubra sua linha de código mais cara hoje
O Amazon CodeGuru Profiler detecta automaticamente anomalias no desempenho de métodos críticos na pilha de aplicativos que começam a consumir mais CPU ou mostram maior latência. Dentro de 10 minutos, ele notifica o desenvolvedor designado sobre a anomalia. Essa detecção e notificação antecipadas evita a escalada do problema na produção e dá ao desenvolvedor tempo suficiente para corrigi-lo, antes que ele afete a disponibilidade de seu serviço e a experiência de seus clientes.
O Amazon CodeGuru Reviewer detecta o desvio das práticas recomendadas para uso de APIs e SDKs da AWS, sinalizando problemas comuns que podem levar a problemas de produção, como detecção de paginação ausente ou manipulação de erros com operações em lote. Ele detecta problemas de simultaneidade, como violações de atomicidade e o uso de classes que não são seguras para as linhas, difíceis de encontrar, mesmo para programadores experientes. Ele também detecta quando os recursos são fechados incorretamente, criando exaustão e interrupção de recursos. Por fim, ainda identifica a falta de validação de entrada, onde entradas não autorizadas podem levar a problemas como ataques de injeção ou negação de serviço.
Histórias de sucesso de clientes
“Quando detectamos anomalias na produção, conseguimos reduzir o tempo de investigação de dias para horas ou até para minutos, graças ao recurso de criação de perfil contínuo do AWS CodeGuru. Nossos desenvolvedores agora concentram mais sua energia no fornecimento de recursos diferenciados e menos tempo na investigação de problemas em nosso ambiente de produção.”
Zak Islam, chefe de engenharia, equipes de tecnologia, Atlassian
Saiba como a Atlassian define o perfil dos serviços em produção com o CodeGuru Profiler »
“Parte do desenvolvimento de aplicativos é a criação de sistemas de alto desempenho, bem como o feedback e a melhoria contínua dos sistemas existentes. Isso começa com uma base arquitetural sólida, mas geralmente termina nos detalhes do código do aplicativo. Quando nossa equipe da EagleDream está pesquisando esses detalhes, há uma variedade de ferramentas à nossa disposição, e o uso de análises estáticas e dinâmicas é útil. Descobrimos que a análise de tempo de execução oferecida pelo Amazon CodeGuru Profiler é uma das mais simples e rápidas de executar e gera insights sobre o código do aplicativo que são fáceis de corrigir. Usando essa ferramenta, conseguimos aprimorar rapidamente partes de um aplicativo que representam gargalos que, de outra forma, seriam difíceis de detectar, e depois desenvolvemos mudanças que podem ser implementadas e testadas com um ciclo de feedback muito rápido. Isso nos permite entregar e melhorar continuamente nossas próprias cargas de trabalho e de nossos clientes, tornando-os mais eficientes e economizando custos ao mesmo tempo."
Dustin Potter, diretor arquiteto de soluções em nuvem, EagleDream
Leia como a EagleDream otimiza seus aplicativos com o CodeGuru Profiler »
“Na DevFactory, gerenciamos mais de 600 milhões de linhas de código em mais de cem produtos de software corporativo. Um componente-chave do nosso futuro roteiro é transformar todos os nossos produtos em produtos nativos da nuvem que aproveitam a incrível variedade de serviços gerenciados disponíveis na AWS. A reconstrução de arquiteturas no local com modelos antigos e a transformação para a nuvem traz um conjunto de desafios de engenharia que variam de acompanhar todos os serviços mais recentes até o ajuste à mudança de paradigma associada a essas arquiteturas. O Amazon CodeGuru é uma ferramenta incrivelmente valiosa que ajuda a otimizar o desempenho de nossos produtos, assegurando que estejamos aproveitando esses serviços com todas as práticas recomendadas. Sem ferramentas como o Amazon CodeGuru Reviewer, não poderíamos reescrever produtos inteiros como o FogBugz para ser nativo da nuvem AWS. Agora, estamos usando o Amazon CodeGuru Profiler para otimizar vários produtos, incluindo a plataforma 'No Ops' baseada em contêineres da EngineYard e também a próxima geração da plataforma de colaboração Jive."
Rahul Subramaniam, CEO, DevFactory
Aprenda como a DevFactory cria melhores aplicativos com o CodeGuru »
Chris Butterfield, engenheiro de desenvolvimento de software que trabalha em um serviço de agendamento para vendedores na Amazon.in:
“Depois de executar o Amazon CodeGuru Profiler e ver as suas recomendações, percebi que precisávamos atualizar o nosso serviço para corrigir um bug relacionado ao bloqueio da CPU. A correção recomendada funcionou perfeitamente e removeu o aviso de contenção de encadeamento que estava usando 55,97% do tempo da CPU. Depois da correção, concluí o teste de carga e descobri que agora um único host pode servir 700 TPS, o que representa cerca de 7,5x mais tráfego do que um único host poderia suportar anteriormente. Conseguimos reduzir o número de instâncias em cerca de 75% depois do teste de carga, apesar de ainda lidarmos com o mesmo tráfego."
Rajesh Konatham, engenheiro sênior de desenvolvimento de software que trabalha no serviço de gerenciamento de catálogos da Amazon.com:
“Havíamos acabado de desativar algumas configurações relacionadas ao software para melhorar o tempo de inicialização do servidor e reduzir a aglomeração de perfil. Usamos o Amazon CodeGuru Profiler para entender o impacto dessa alteração e percebemos que nosso sistema de fluxo de trabalho estava clonando documentos toda vez que executava ramificações, mesmo quando não era necessário. Por causa disso, gastávamos 15% dos valores de clonagem da capacidade da CPU desnecessariamente. Depois de seguir a recomendação do Amazon CodeGuru Profiler para remover esses valores clonados, vimos enormes reduções na utilização da CPU: uma redução de 40% na frota síncrona e 67% na frota assíncrona. Muito mais do que a redução de 15% na utilização da CPU que esperávamos! A redução adicional ocorreu devido à atividade reduzida de coleta de lixo, pois os clones não estavam mais ocupando memória heap.”
Neeraj Kumar, engenheiro sênior de desenvolvimento de software que trabalha na Amazon CloudWatch:
“Executamos o Amazon CodeGuru Profiler e descobrimos que a maior parte da capacidade de nossa CPU estava sendo usada para assinar a solicitação do Amazon S3 usando o SHA-2. Estávamos usando a implementação fornecida pelo JDK para o SHA-2, mas o Amazon CodeGuru Profiler recomendou o uso do Amazon Corretto Crypto Provider. Seguimos a recomendação, o que nos permitiu implementar alguns desses algoritmos de criptografia mais rapidamente. O Corretto Crypto Provider corresponde ao comportamento do JDK, portanto, a integração foi simples. Após a implantação, observamos uma redução de aproximadamente 30% da CPU em várias regiões da AWS."
Mike Thompson, engenheiro sênior de desenvolvimento de software que trabalha nas ferramentas do AWS Builder:
“O Amazon CodeGuru Reviewer nos permitiu pegar uma condição corrida a longo prazo escondida em um trecho crítico de código. Um analista humano não teria encontrado, pois estava fora das áreas do código que eu havia mudado. O Amazon CodeGuru Reviewer forneceu contexto suficiente sobre o bug, uma explicação clara sobre por que estava ruim e um exemplo de como corrigi-lo. Fazer a alteração necessária foi muito fácil e levou apenas alguns minutos. Foi ótimo ter algo para melhorar nossa qualidade de código sem exigir configuração ou incomodar.”
Danish Bashar, um engenheiro de desenvolvimento de software que trabalha no AWS DynamoDB:
"Eu estava baixando um arquivo do Amazon S3 e não sabia que era um fluxo que criava um vazamento de recursos. O teste de unidade não teria detectado esse problema porque funcionava direito. Como eu não havia escrito explicitamente o tipo de objeto, não o notei e tenho certeza de que qualquer pessoa que analisasse o meu código também não teria notado. O Amazon CodeGuru Reviewer levou alguns minutos para analisar a semântica do código e detectou o vazamento de recursos relativamente rápido. O Amazon CodeGuru Reviewer recomendou o uso de uma tentativa com recursos para fechar o recurso e eu a implementei imediatamente. +1.”
Geetika Vasudeo, um engenheiro de desenvolvimento de software que trabalha no AWS DynamoDB:
"Estávamos usando uma tabela do Amazon DynamoDB de uma maneira que normalmente não usamos e percebemos isso durante a analise de código. O Amazon CodeGuru Reviewer identificou que a operação estava retornando resultados paginados em vez de todos os resultados. Estávamos fazendo verificações e apenas buscando resultados na primeira página, o que não era um problema na hora, mas como a tabela cresceu com o tempo, acabamos vendo apenas a primeira página e perdendo o restante dos resultados. Se não tivesse sido tratado corretamente, isso poderia ter se tornado um erro grave no nosso código. Ótima detecção e ótima recomendação.”
O Amazon CodeGuru Reviewer oferece suporte a:
- Linguagem compatível com o Reviewer: Java
- Repositórios: GitHub, GitHub Enterprise, Bitbucket Cloud e AWS CodeCommit
- Recomendações
O Amazon CodeGuru Profiler oferece suporte a:
- Java e outras linguagens JVM
- Amazon EC2, Amazon ECS, Amazon EKS, AWS Fargate, AWS Beanstalk
- Detecção de anomalias
- AWS Lambda
- No local
- Gráficos de chama
- Recomendações
Obtenha acesso instantâneo ao nível gratuito da AWS.
Comece a criar com o Amazon CodeGuru no Console de Gerenciamento da AWS.