Geral

P: O que é o Amazon CodeGuru?

O Amazon CodeGuru é uma ferramenta de desenvolvedor que fornece recomendações inteligentes para melhorar a qualidade do seu código e identificar as linhas de código mais caras de uma aplicação.

P: O que posso fazer com o Amazon CodeGuru?

O Amazon CodeGuru tem dois componentes: Amazon CodeGuru Reviewer e Amazon CodeGuru Profiler. O Amazon CodeGuru Reviewer usa a tecnologia de machine learning e raciocínio automatizado para identificar problemas críticos e bugs difíceis de encontrar durante o desenvolvimento de aplicações para melhorar a qualidade do código. O Amazon CodeGuru Profiler otimiza o desempenho de aplicações em execução na produção e identifica as linhas de código mais caras, reduzindo significativamente os custos operacionais.

P: Como posso começar a usar o Amazon CodeGuru?

O Amazon CodeGuru já está disponível. Você pode começar agora mesmo no console do Amazon CodeGuru.

Para começar a usar o Amazon CodeGuru Reviewer, faça login no console do Amazon CodeGuru Reviewer. Nele, é possível associar um repositório de códigos existente no GitHub, GitHub Enterprise, Bitbucket ou AWS CodeCommit. Após uma configuração única, o Amazon CodeGuru Reviewer começa a analisar o código e a fornecer recomendações de aprimoramento de código diretamente na solicitação pull ou no repositório de códigos.

Você também pode começar a determinar os perfis de suas aplicações em poucos minutos. Para começar a usar o Amazon CodeGuru Profiler, efetue login no console do Amazon CodeGuru Profiler, onde você pode configurar um grupo de criação de perfil para seu aplicativo. Inicie seu aplicativo com o agente de criação de perfil na linha de comandos ou siga as etapas para usar um dos métodos personalizados descritos. Você pode permitir que o Amazon CodeGuru Profiler seja executado continuamente, para detectar de forma proativa os problemas de desempenho em seus aplicativos ativos.

P: Em quais regiões da AWS o Amazon CodeGuru está disponível?

Para ver uma lista das regiões da AWS com suporte, visite a tabela de regiões da AWS para toda a infraestrutura global da AWS. Para obter mais informações, consulte Regiões e Endpoints na Referência geral da AWS.

Amazon CodeGuru Reviewer

P: O que é o Amazon CodeGuru Reviewer?

O Amazon CodeGuru Reviewer é um serviço automatizado de revisão de código que identifica defeitos críticos e desvios das práticas recomendadas de codificação para código Java e Python. Ele verifica as linhas de código em uma solicitação pull e fornece recomendações inteligentes com base nos padrões aprendidos com base nos principais projetos de código aberto, bem como na base de código da Amazon. O Amazon CodeGuru Reviewer se integra perfeitamente aos fluxos de trabalho de revisão de código existentes em sistemas de controle de origem amplamente utilizados, incluindo GitHub, GitHub Enterprise, Bitbucket e AWS CodeCommit, além de fornecer recomendações práticas para melhorar a qualidade do código.

P: Quais são as linguagens de programação e os repositórios de código-fonte compatíveis?

Atualmente, o Amazon CodeGuru Reviewer oferece suporte ao código Java e Python armazenado nos repositórios GitHub, GitHub Enterprise, Bitbucket e AWS CodeCommit.

P: Quais tipos de problemas são detectados pelo Amazon CodeGuru Reviewer?

O Amazon CodeGuru Reviewer verifica se há problemas de concorrência, possíveis condições de corrida, entradas não higienizadas ou maliciosas, manuseio inadequado de dados sigilosos (p. ex., credenciais), vazamentos de recursos e também detecta condições de corrida e impasses no código concorrente. Ele também sugere as melhores práticas da AWS, Java e Python e detecta código clonado que pode ser consolidado para melhor manutenção do código.

P: Como começo a usar o Amazon CodeGuru Reviewer?

Acesse o console do Amazon CodeGuru para integrar as recomendações do Amazon CodeGuru Reviewer diretamente em solicitações pull de código. Para começar, acesse o console do CodeGuru e siga as etapas para associar seus repositório do AWS CodeCommit, do GitHub, do GitHub Enterprise e do BitBucket para começar a receber as recomendações do Amazon CodeGuru Reviewer. Uma vez ativado, o Amazon CodeGuru Reviewer fornecerá automaticamente recomendações inteligentes como comentários sobre suas solicitações pull geradas para os repositórios conectados.

P: O Amazon CodeGuru Reviewer acessa meu código?

O Amazon CodeGuru Reviewer precisa de acesso somente leitura ao seu código com o objetivo de gerar recomendações. A sua confiança, a privacidade e a segurança do seu conteúdo são nossa maior prioridade e implementamos controles apropriados, incluindo criptografia em trânsito, para impedir o acesso não autorizado ou a divulgação de seu conteúdo e garantir que o nosso uso cumpra seja compatível com os compromissos que assumimos com você. Para obter mais informações, consulte as Perguntas frequentes sobre privacidade de dados.

P: O Amazon CodeGuru Reviewer mantém uma cópia do meu código?

Não, o Amazon CodeGuru Reviewer não armazena seu código-fonte.

P: Como o Amazon CodeGuru Reviewer é treinado para fornecer recomendações inteligentes?

O Amazon CodeGuru Reviewer é treinado usando mineração de regras e modelos de machine learning supervisionados que usam uma combinação de regressão logística e redes neurais.

Por exemplo, durante o treinamento para desviar-se das práticas recomendadas da AWS, o Amazon CodeGuru Reviewer explora as bases de código da Amazon usando técnicas de pesquisa e modelos sensíveis à localidade para solicitações pull que incluem chamadas da API da AWS. Ele analisa as alterações de código destinadas a melhorar a qualidade do código e faz referência cruzada delas com os dados da documentação. O resultado é a criação de um novo conjunto de regras que o Reviewer indica a você como práticas recomendadas ao revisar seu código.

Durante o treinamento para vazamentos de recursos e dados confidenciais, ele faz uma análise completa do código para todos os caminhos de código que usam o recurso ou dados sigilosos, cria um conjunto de recursos que os representa e os utiliza como entradas para modelos de regressão logística e redes neurais convolucionais (CNNs).

Quanto a inconsistências de código, os modelos são treinados durante a revisão de código completa ou incremental. Depois que um cliente aciona uma revisão, esses modelos utilizam uma série de técnicas de mineração de dados e machine learning para desenvolver o conjunto de dados, destacar o motivo dos padrões de código e fazer recomendações personalizadas para o código do cliente.

Para modelos baseados em regras e em machine learning, o Amazon CodeGuru Reviewer usa o feedback que você fornece como rótulos e melhora iterativamente a qualidade dos detectores de código.

P: Como as ferramentas de análise de código em código aberto são integradas ao CodeGuru Reviewer?

O Amazon CodeGuru Reviewer incorpora regras de três fontes: (1) regras do CodeGuru Reviewer são integradas ao serviço e desenvolvidas para usar machine learning e raciocínio automatizado para analisar código para qualidade de código e problemas de segurança, (2) uma versão gerenciada do Bandit, uma ferramenta de análise de código em código aberto desenvolvida para encontrar problemas de segurança em código Python, é integrada ao CodeGuru Reviewer e (3) uma versão gerenciada do Infer, uma ferramenta de análise de código em código aberto desenvolvida para encontrar simultaneidade e outros problemas em código Java, também é integrada ao CodeGuru Reviewer. O CodeGuru Reviewer analise seu código usando regras de todas as fontes (conforme aplicável à linguagem de programação) e tem um preço simples que inclui todas as análises executadas.

Amazon CodeGuru Reviewer Security Detector

P: Quais são as linguagens de programação compatíveis com o Amazon CodeGuru Reviewer Security Detector?

O Amazon CodeGuru Reviewer Security Detector é compatível com o Java 8 até o Java 11 e com o Python 3 e posterior. 

P: Por que devo usar o Amazon CodeGuru Reviewer Security Detector?

Usar o CodeGuru Reviewer Security Detector é como ter um especialista em segurança de sobreaviso 24 horas por dias para revisar seu código. Ele ajuda a identificar melhores práticas de segurança antes da implantação.

P: Como o Amazon CodeGuru Reviewer Security Detector funciona?

O CodeGuru Reviewer Security Detector analisa estatisticamente o código a ser compilado usando um gráfico de fluxo de controle que representa todas as possíveis maneiras de execução do código. Em seguida, ele detecta como os dados fluem no gráfico de fluxo de controle para descobrir possíveis problemas que envolvam sequências de operações que possam abranger sua aplicação, envolvendo vários métodos e classes. Por exemplo, o detector de segurança determina se Javax.Crypto.KeyGenerator ou o crypto.secrets no Python - ambos geradores simétricos de chave secreta - foi inicializado antes do uso, mesmo que a inicialização e o uso ocorram em métodos diferentes.

P: Quais tipos de problemas são detectados pelo Amazon CodeGuru Reviewer Security Detector?

O CodeGuru Reviewer pode ajudar você com quatro categorias de problemas de segurança de código: (1) as práticas recomendadas de segurança de API da AWS ajudam você a seguir as práticas recomendadas de segurança ao usar APIs de vários produtos da AWS, como o AWS EC2 e o KMS (2) as práticas recomendadas para biblioteca de criptografia Java e Python ajudam você a verificar bibliotecas comuns de criptografia Java, como Javax.Crypto.Cipher e o módulo de criptografia ou de hashing de terceiro integrado (por exemplo, cryptography) no Python, para garantir que sejam inicializados e chamados corretamente (3) o Secure Web Applications ajuda você a verificar problemas de segurança relacionados a aplicações Web, como execução de scripts entre sites, injeção de LDAP e injeção de travessia de caminho (4) as práticas recomendadas de segurança da AWS levam a experiência em segurança interna, como recomendações do AWS Crypto, para os seus casos de uso.

P: O Amazon CodeGuru Reviewer Security Detector analisa todo o código em meu repositório?

Sim, o CodeGuru Reviewer Security Detector analisa artefatos de compilação e todo o código-fonte Java em um repositório para fornecer recomendações de segurança.

Integrações Amazon CodeGuru Reviewer CI/CD

P: Com quais provedores CI/CD o CodeGuru é compatível?

O CodeGuru funciona com a integração GitHub Actions para CI/CD.

P: Como integrar o CodeGuru no meu pipeline CI/CD vai ajudar a melhorar meu código?

Ao integrar o CodeGuru Reviewer no seu pipeline CI/CD, você pode automatizar o processo de revisão de código facilmente tanto para a qualidade do código quanto para recomendações de segurança. Ele pode ser configurado para ser executado em solicitações pull/merge, push ou execuções programadas do seu pipeline. A integração garante que você nunca perca uma recomendação e que esteja monitorando continuamente a qualidade do seu código e vulnerabilidades de segurança em potencial.

P: Como configurar a integração CI/CD com o GitHub?

Você pode visualizar a ação CodeGuru Reviewer GitHub no Marketplace GitHub clicando aqui. Siga as instruções na página do marketplace para integrar seu CodeGuru ao seu fluxo de trabalho GitHub CI. Acesse nossa documentação para obter detalhes adicionais.

Amazon CodeGuru Profiler

P: O que é o Amazon CodeGuru Profiler?

O Amazon CodeGuru Profiler ajuda os desenvolvedores e operadores de TI a entender facilmente o comportamento do tempo de execução de suas aplicações, melhorar a performance e reduzir os custos de infraestrutura. O Amazon CodeGuru Profiler analisa o perfil de tempo de execução da aplicação e fornece recomendações e visualizações inteligentes que orientam os desenvolvedores sobre como aprimorar a performance das partes mais relevantes do código.

P: O que é um grupo de criação de perfil?

Um grupo de criação de perfil é um agrupamento lógico criado por você, que representa o limite de um aplicativo. Por exemplo, em uma arquitetura de microsserviços, um grupo de criação de perfil agregaria os perfis dos microsserviços que você designou a ele e produziria um perfil para todos eles.

P: Já tenho registro extensivo integrado ao meu código. Ainda preciso criar um perfil?

O registro do tempo de execução em log funciona para um conjunto limitado de cenários porque o registro em log é capaz de monitorar apenas a latência (não a utilização da CPU), além de ter implementação demorada porque os desenvolvedores precisam registrar em log todas as funções em uma aplicação (sem afetar a performance da aplicação), deixando os desenvolvedores sem as ferramentas necessárias para monitorar e solucionar problemas de aplicações em produção. É nesse momento que a criação de perfil atua: o Amazon CodeGuru Profiler foi projetado para coletar dados sobre tudo o que aconteceu no comportamento da aplicação, independentemente dos cenários. O CodeGuru Profiler usa uma base de conhecimento de ineficiências de performance comumente encontradas para descobrir automaticamente padrões de código em sua aplicação ativa que afetam o desempenho. Os desenvolvedores podem seguir as recomendações fornecidas para corrigir os problemas.

P: Qual a diferença entre o Amazon CodeGuru Profiler e os APMs e criadores de perfil autônomos tradicionais?

Application Performance Monitors (APM – Monitor de performance de aplicação) tradicionais fornecem dados úteis sobre monitoramento, rastreamento e performance de aplicações. O Amazon CodeGuru Profiler complementa essas capacidades de APM ao fornecer visualizações dos dados de tempo de execução da aplicação, bem como recomendações práticas para os problemas de performance descobertos. Ele também usa machine learning para detectar e alertar sobre anomalias no perfil da aplicação, indicando as linhas anômalas de código. O Amazon CodeGuru Profiler permite que você visualize facilmente as partes do código que apresentam a maior oportunidade de otimização da performance, juntamente com as possíveis economias, e receba orientações sobre como resolvê-las sem a necessidade de ter um profundo conhecimento em engenharia de performance. O Amazon CodeGuru Profiler cria perfis em instâncias do EC2, contêineres e plataformas de computação sem servidor, inclusive o AWS Lambda, bem como em modelos on-premise. Além disso, alguns criadores de perfil autônomos são projetados para execução apenas em ambientes de teste, enquanto o Amazon CodeGuru Profiler foi projetado para funcionar continuamente em produção, sob cargas de tráfego de produção e sem impacto sobre a aplicação. Assim, ele ajuda a solucionar problemas operacionais na produção, inclusive durante a execução em hosts bare metal.

P: Para quais tipos de aplicativos posso criar perfis?

O Amazon CodeGuru Profiler trabalha com aplicações hospedadas no Amazon EC2, aplicações conteinerizadas executadas no Amazon ECS e no Amazon EKS, e aplicações sem servidor executadas no AWS Fargate e no AWS Lambda. Além disso, você pode executar o Amazon CodeGuru Profiler on-premise.

P: Como o CodeGuru Profiler afeta a performance de aplicações hospedadas no AWS Lambda?

O agente do Amazon CodeGuru Profiler usa os recursos (CPU, memória) alocados para as funções do AWS Lambda. Ele é ajustado para ter um impacto mínimo no desempenho do aplicativo enquanto é executado como um encadeamento em processo. Se seu aplicativo consumir a maioria dos recursos na função AWS Lambda, avalie o aumento dos recursos para permitir que o agente funcione corretamente.

P: Quais são as linguagens de programação compatíveis?

No momento, o Amazon CodeGuru Profiler é compatível com Java, Python (na visualização) e linguagens JVM, como Scala e Kotlin.

P: Como o Amazon CodeGuru Profiler funciona?

O Amazon CodeGuru Profiler consiste em três partes: um agente, o serviço de criação de perfil e recomendações inteligentes. O agente é iniciado com sua aplicação na linha de comando e é executado como um thread no processo como parte da sua aplicação. Ele obtém os dados de cada uma de suas instâncias de serviço que estão executando o agente e os envia a cada 5 minutos para o serviço de criação de perfil, que os agrega. Em seguida, o Amazon CodeGuru Profiler publica os dados do perfil em gráficos interativos de chama que permitem visualizar a performance da sua aplicação. O Amazon CodeGuru Profiler também verifica continuamente os dados dos perfis criados e os compara em relação às melhores práticas de engenharia de desempenho e da Amazon, além de alertar você proativamente com recomendações inteligentes ao descobrir problemas de performance. Ele também usa machine learning para analisar continuamente os dados do tempo de execução da aplicação e emite um alerta quando detecta anomalias no perfil da aplicação, indicando as linhas de código anômalas.

Q: Quais os recursos incluídos no perfil criado pelo Amazon CodeGuru Profiler e quais são as linguagens compatíveis?

O CodeGuru cria o perfil de CPU (tempo de CPU ativa e tempo total) e memória (resumo de heap) para Java e outras linguagens JVM, e tempo de CPU (tempo total) para aplicações em Python.

Q: É possível obter informações de CPU e memória da mesma aplicação?

Sim, após habilitar a criação de perfil de memória e começar o processo de criação de perfil, o CodeGuru Profiler coletará informações de CPU e memória para sua aplicação. Você só precisa de um grupo de criação de perfil para obter dados de CPU e memória para uma determinada aplicação.

Q: Quais são as informações de perfil de memória fornecidas pelo Amazon CodeGuru Profiler?

O CodeGuru Profiler oferece informações de resumo de heap. O resumo de heap oferece uma visualização consolidada da utilização de memória por tipo de objeto (por ex., String, int, char[]) e tipos personalizados, durante um período específico (normalmente 5 minutos). O CodeGuru rastreia os tamanhos totais de objetos e suas respectivas quantidades. Essas métricas são apresentadas em um gráfico de linha do tempo, permitindo detectar facilmente tendências e picos de utilização de memória por tipo de objeto.

Q: O que posso fazer com as informações de resumo de heap?

O resumo de heap é útil em dois cenários. Em primeiro lugar, é possível perceber possíveis vazamentos de memória. Uma curva de utilização de memória em crescimento constante para um ou mais tipos de objeto pode indicar um vazamento, que possivelmente resultará em erros de memória insuficiente e panes de aplicação. O segundo cenário é quando você deseja otimizar a área de memória ocupada por sua aplicação. Nesse caso, o detalhamento da utilização de memória por tipo de objeto ajudará você a saber onde se concentrar. Por exemplo, ao saber que uma quantidade inesperadamente alta de memória está associada a um tipo específico de objeto, é possível concentrar suas iniciativas de análise e otimização nas partes de sua aplicação responsáveis por alocar e apontar objetos do respectivo tipo.

Standard Product Icons (Features) Squid Ink
Saiba mais sobre nossos clientes

Acesse a página de clientes do Amazon CodeGuru.

Saiba mais 
Sign up for a free account
Cadastre-se para obter uma conta gratuita

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

Cadastrar-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