Geral

P: O que é o Amazon CodeGuru?

O CodeGuru tem dois componentes: o Amazon CodeGuru Security e o Amazon CodeGuru Profiler. O CodeGuru Security é uma ferramenta baseada em machine learning (ML) e análise de programa que encontra vulnerabilidades de segurança no código da sua aplicação. O CodeGuru Security também verifica as credenciais codificadas. O CodeGuru Profiler otimiza a performance 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 faço para começar a usar o CodeGuru?

O CodeGuru já está disponível para o público geral. Você pode começar agora mesmo no console do Amazon CodeGuru.

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

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

Amazon CodeGuru Security

P: O que é o Amazon CodeGuru Security?

O CodeGuru Security é uma ferramenta de verificação de código baseada em análise de programas e ML que encontra vulnerabilidades de segurança no código da aplicação.

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

Atualmente, o CodeGuru Security oferece suporte à digitalização de Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go e Ruby.

P: Que tipos de problemas são detectados pelo CodeGuru Security?

O CodeGuru Security detecta os dez principais problemas Open Worldwide Application Security Project (OWASP), os 25 principais problemas Common Weakness Enumeration (CWE), a injeção de log, os segredos e o uso seguro de APIs e SDKs da AWS. Consulte a Amazon CodeGuru Detector Library para obter mais detalhes sobre as vulnerabilidades encontradas pelo CodeGuru Security.

P: Como faço para começar a usar o CodeGuru Security?

Visite o console do CodeGuru para integrar o CodeGuru Security em seu ciclo de vida de desenvolvedor. Você pode se integrar a ferramentas de integração e entrega contínuas (CI/CD), verificação de repositórios e ambientes de desenvolvimento integrados (IDEs).

P: O CodeGuru Security acessa meu código?

O CodeGuru Security precisa de acesso somente leitura ao seu código com o objetivo de gerar recomendações. A confiança, a privacidade e a segurança do seu conteúdo são nossa maior prioridade. 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 uso esteja em conformidade com nossos compromissos com você. Também oferecemos suporte às chaves do KMS do gerenciador de clientes (CMCMK) para criptografia. Para obter mais informações, consulte as Perguntas frequentes sobre privacidade de dados.

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

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

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

O CodeGuru Security é treinado usando mineração de regras e modelos supervisionados de ML que usam uma combinação de regressão logística e redes neurais. Por exemplo, durante o treinamento de vazamentos de dados sigilosos, 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).

P: Quais integrações são compatíveis com o CodeGuru Security?

O CodeGuru Security está integrado à verificação de código do Amazon Inspector para Lambda. Integrações adicionais a repositórios e ferramentas de CI/CD estarão disponíveis em breve.

Amazon CodeGuru Profiler

P: O que é o Amazon CodeGuru Profiler?

O CodeGuru Profiler ajuda os desenvolvedores e operadores de TI a entender facilmente o comportamento do runtime de suas aplicações, a melhorar a performance e a reduzir os custos de infraestrutura. O Amazon CodeGuru Profiler analisa o perfil de runtime 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 runtime em log funciona apenas 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 com eficiência os problemas de aplicações em produção. É nesse momento que a criação de perfil atua: o 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 a performance. Os desenvolvedores podem seguir as recomendações fornecidas para corrigir os problemas.

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

Os APMs tradicionais fornecem dados úteis sobre monitoramento, rastreamento e performance de aplicações. O CodeGuru Profiler complementa essas capacidades de APM ao fornecer visualizações dos dados de runtime 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 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 com tecnologia sem servidor, inclusive o AWS Lambda, bem como em modelos on-premises. Além disso, alguns criadores de perfil autônomos são projetados para serem executados apenas em ambientes de teste, enquanto o CodeGuru Profiler foi projetado para ser executado continuamente em produção, sob cargas de tráfego de produção e sem impacto na aplicação. Eles são úteis para solucionar problemas operacionais na produção, inclusive durante a execução em hosts bare metal.

P: Para quais tipos de aplicações posso criar perfis?

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

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

O atendente do CodeGuru Profiler usa os recursos (CPU, memória) alocados para as funções do AWS Lambda. Ele é ajustado para ter um impacto mínimo na performance da aplicação 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 CodeGuru Profiler é compatível com Java, Python (na visualização) e linguagens JVM, como Scala e Kotlin.

P: Como o CodeGuru Profiler funciona?

O CodeGuru Profiler consiste em três partes: um atendente, o serviço de criação de perfil e as recomendações inteligentes. O agente é iniciado com a aplicação na linha de comandos e é executado como um encadeamento em processo como parte da 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 cinco minutos para o serviço de criação de perfil, que os agrega. O CodeGuru Profiler, em seguida, publica os dados do perfil em gráficos de chama interativos que permitem visualizar a performance da aplicação. O CodeGuru Profiler também verifica continuamente os dados dos perfis e os compara com as práticas recomendadas da Amazon e da engenharia de performance, além de alertar proativamente com recomendações inteligentes quando descobre problemas de performance. Ele também usa ML para analisar continuamente os dados do runtime 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 são os recursos incluídos no perfil criado pelo CodeGuru Profiler e quais são as linguagens compatíveis?

O CodeGuru Profiler 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 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 criação de perfil de memória fornecidas pelo 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 cinco minutos). O CodeGuru Profiler 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.

Saiba mais sobre nossos clientes

Acesse a página de clientes do Amazon CodeGuru.

Saiba mais 
Cadastre-se para obter uma conta gratuita

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

Cadastrar-se 
Comece a criar no console

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

Fazer login