Generali

D: Cos'è Amazon CodeGuru?

CodeGuru contiene due componenti: Sicurezza di Amazon CodeGuru e il profilatore Amazon CodeGuru. Sicurezza di CodeGuru è uno strumento di scansione del codice basato sul machine learning e sull'analisi dei programmi che rileva le vulnerabilità di sicurezza nel codice. Sicurezza di CodeGuru analizza anche le credenziali codificate. Il profilatore CodeGuru ottimizza le prestazioni delle applicazioni eseguite in produzione e identifica le righe di codice più costose, riducendo significativamente i costi operativi.

D: Come inizio a utilizzare CodeGuru?

CodeGuru è ora disponibile al pubblico. Puoi iniziare a utilizzarlo subito nella console di Amazon CodeGuru.

D: In quali Regioni AWS è disponibile CodeGuru?

Per le regioni supportate, consulta la tabella delle Regioni AWS per l'infrastruttura globale AWS. Per ulteriori informazioni, consulta la pagina Regions and Endpoints nel documento AWS General Reference.

Amazon CodeGuru Security

D: Cos'è Sicurezza di Amazon CodeGuru?

Sicurezza di CodeGuru è uno strumento di scansione del codice basato sul machine learning e sull'analisi dei programmi che rileva le vulnerabilità di sicurezza nel codice.

D: Quali linguaggi di programmazione sono supportati?

Sicurezza di CodeGuru attualmente supporta la scansione di Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go e Ruby.

D: Che tipo di problemi vengono rilevati da Sicurezza di CodeGuru?

CodeGuru Security rileva i dieci problemi principali di OWASP (Open Worldwide Application Security Project), i 25 problemi principali CWE (Common Weakness Enumeration), l'iniezione di log, i segreti e l'uso sicuro delle API e degli SDK AWS. Consulta Amazon CodeGuru Detector Library per maggiori dettagli sulle vulnerabilità rilevate da CodeGuru Security.

D: Come inizio a utilizzare CodeGuru Security?

Visita la console di CodeGuru per integrare CodeGuru Security nel tuo ciclo di vita da sviluppatore. Puoi integrarlo in strumenti di integrazione e distribuzione continua (CI/CD), nella scansione dei repository e negli ambienti di sviluppo integrati (IDE).

D: CodeGuru Security accede al mio codice?

CodeGuru Security richiede l'accesso in sola lettura al tuo codice allo scopo di generare i suggerimenti. La tua fiducia, la tua privacy e la sicurezza dei tuoi contenuti rappresentano la nostra massima priorità. Implementiamo controlli adeguati, tra cui la crittografia durante i trasferimenti, per impedire l'accesso o la divulgazione non autorizzati dei tuoi contenuti e per garantire che l'utilizzo da parte nostra sia conforme ai nostri impegni nei tuoi confronti. Supportiamo anche le chiavi KMS del gestore clienti (CMCMK) per la crittografia. Per ulteriori informazioni, consulta le Domande frequenti sulla privacy dei dati.

D: CodeGuru Security conserva una copia del mio codice?

No, CodeGuru Security non archivia il tuo codice sorgente.

D: In che modo CodeGuru Security viene addestrato per fornire suggerimenti intelligenti?

CodeGuru Security viene addestrato utilizzando rule mining e modelli di machine learning supervisionati che utilizzano una combinazione di regressione logistica e reti neurali. Ad esempio, durante la fase di addestramento per la perdita di dati sensibili, il servizio esegue un'analisi completa del codice in cerca dei percorsi che utilizzano la risorsa o i dati sensibili, crea funzioni che li rappresentano e le utilizza come input per i modelli di regressione logistica e per le reti neurali convoluzionali.

D: Quali integrazioni supporta CodeGuru Security?

CodeGuru Security è integrato con la scansione del codice Amazon Inspector per Lambda. Presto saranno disponibili ulteriori integrazioni con repository e strumenti CI/CD.

Amazon CodeGuru Profiler

D: Cos'è il profilatore Amazon CodeGuru?

Il profilatore CodeGuru aiuta gli sviluppatori e gli operatori IT a comprendere in modo semplice il comportamento in runtime delle proprie applicazioni, a migliorare le prestazioni e a diminuire i costi di elaborazione. Il profilatore Amazon CodeGuru analizza il profilo di runtime dell'applicazione e fornisce suggerimenti intelligenti e visualizzazioni che guidano gli sviluppatori al miglioramento delle prestazioni delle parti più pertinenti del codice.

D: Cos'è un gruppo di profiling?

Un gruppo di profiling è un raggruppamento logico creato da te. Rappresenta i limiti di un'applicazione. Ad esempio, in un'architettura di microservizi, un gruppo di profiling aggrega i profili dei microservizi assegnati e ne produce un profilo unico.

D: Il codice comprende già un servizio completo di registrazione. Occorre comunque effettuare la profilatura?

Registrare il tempo di esecuzione funziona solo in un numero limitato di casi perché la registrazione è solo in grado di monitorare la latenza (non l'utilizzo della CPU) e implementarlo richiede molto tempo perché gli sviluppatori devono registrare ogni funzione in un'applicazione (senza alcun impatto sulle prestazioni dell'applicazione), rimanendo senza gli strumenti necessari per monitorare ed eseguire efficacemente la risoluzione dei problemi di applicazioni in produzione. Ecco dove entra in gioco il profiling: il profilatore CodeGuru è stato progettato per raccogliere i dati su qualsiasi evento che si verifica nel comportamento dell'applicazione, indipendentemente dalla situazione. Il profilatore CodeGuru utilizza una knowledge base di inefficienze di prestazione riscontrate più di frequente al fine di rilevare automaticamente le sequenze di codice nell'applicazione attiva che compromettono le prestazioni. Dunque, gli sviluppatori possono seguire i suggerimenti forniti per risolvere i problemi riscontrati.

D: In che modo CodeGuru Profiler differisce dalle APM tradizionali e dai sistemi di profiling standalone?

Le APM tradizionali forniscono dati utili sul monitoraggio, sul tracciamento e sulle prestazioni delle applicazioni. Il profilatore CodeGuru integra queste funzionalità APM offrendo visualizzazioni dei dati di runtime dell'applicazione e suggerimenti eseguibili per i problemi di prestazione riscontrati. Utilizza inoltre il machine learning per rilevare e avvisare riguardo ad anomalie nel profilo dell'applicazione, indicando le righe di codice anomale. Il profilatore CodeGuru consente di individuare facilmente le parti di codice che offrono le migliori opportunità di ottimizzazione delle prestazioni, nonché potenziali risparmi e consente di ricevere indicazioni su come procedere senza dover contare su competenze specializzate in ambito tecnico. Il profilatore Amazon CodeGuru esegue il profiling delle istanze EC2, dei container e delle piattaforme di calcolo serverless inclusa AWS Lambda anche on-premise. Inoltre, alcuni sistemi di profiling standalone sono progettati per essere eseguiti solo in ambienti di test, mentre il profilatore CodeGuru è un servizio progettato per l'esecuzione continua in produzione, con i relativi carichi di traffico e senza interferire con l'applicazione. Si tratta di un aspetto utile durante la fase di risoluzione dei problemi operativi in produzione, anche in caso di esecuzione su host bare metal.

D: Quali tipi di applicazione posso profilare?

Il profilatore CodeGuru funziona con le applicazioni ospitate da Amazon EC2, le applicazioni in container eseguite su Amazon ECS e Amazon EKS, nonché le applicazioni serverless in esecuzione su AWS Fargate e AWS Lambda. Inoltre, puoi eseguire il profilatore CodeGuru on-premise.

D: In che modo il profilatore CodeGuru influisce sulle prestazioni delle applicazioni ospitate da AWS Lambda?

L'agente del profilatore CodeGuru utilizza le risorse (CPU, memoria) allocate alle funzioni di AWS Lambda. È stato messo a punto per avere un impatto minimo sulle prestazioni dell'applicazione mentre viene eseguito in quanto thread in elaborazione. Se l'applicazione consuma la maggior parte delle risorse nella funzione AWS Lambda, considera l'aumento delle risorse per abilitare il funzionamento adeguato dell'agente.

D: Quali linguaggi di programmazione sono supportati?

Il profilatore CodeGuru attualmente supporta i linguaggi Java, Python (in anteprima) e JVM come Scala e Kotlin.

D: Come funziona il profilatore CodeGuru?

Il profilatore CodeGuru è composto da tre parti: un agente, il servizio di profiling e i suggerimenti intelligenti. L'agente si avvia con l'applicazione sulla riga di comando e si esegue in forma di thread in elaborazione come parte dell'applicazione. Raccoglie dati da ognuna delle istanze del servizio in cui l'agente è in esecuzione e li invia ogni cinque minuti al servizio di profiling, dove vengono aggregati. A questo punto, il profilatore CodeGuru pubblica i dati sul profilo in grafici a fiamma interattivi che ti consentono di visualizzare le prestazioni della tua applicazione. Inoltre, il profilatore CodeGuru analizza costantemente i dati soggetti a profiling e li confronta rispetto alle best practice di Amazon e di performance engineering. Inoltre, il servizio invia suggerimenti intelligenti se vengono rilevati problemi relativi alle prestazioni. Inoltre, utilizza il machine learning per analizzare continuamente i dati del runtime dell'applicazione e segnala quando rileva anomalie nel profilo dell'applicazione e indica le righe di codice anomale.

D: Quali sono le risorse profilate dal profilatore CodeGuru e quali sono i linguaggi supportati?  

Il profilatore CodeGuru profila CPU (CPU attiva e tempo reale) e memoria (riepilogo dell'heap) per Java e altri linguaggi JVM e CPU (tempo reale) per le applicazioni Python.

D: Posso ottenere informazioni su CPU e memoria dalla stessa applicazione?

Sì, una volta abilitata la profilazione della memoria e la avvii, CodeGuru Profiler raccoglierà le informazioni sia sulla memoria sia sulla CPU per l'applicazione. È necessario solo un gruppo di profiling per ottenere dati della CPU e della memoria di un'applicazione specifica.

D: Quali informazioni sulla profilazione della memoria fornisce il profilatore CodeGuru?

Il profilatore CodeGuru offre informazioni sul riepilogo dell'heap. Il riepilogo dell'heap fornisce una vista consolidata dell'utilizzo della memoria per tipo di oggetto (ad esempio, String, int, char[]) e tipi personalizzati, in un determinato arco di tempo (in genere 5 minuti). Il profilatore CodeGuru tiene traccia sia delle dimensioni totali degli oggetti che del loro numero. Questi parametri vengono presentati in un grafico cronologico, in modo da poter individuare facilmente tendenze e picchi dell'utilizzo della memoria per tipo di oggetto.

D: Come posso utilizzare le informazioni sul riepilogo dell'heap?

Il riepilogo dell'heap è utile in due scenari. Nel primo, puoi individuare potenziali perdite di memoria. Una curva di utilizzo della memoria in costante crescita per uno o più tipi di oggetti può indicare una perdita, con possibili conseguenti errori di memoria e arresti dell'applicazione. Nel secondo scenario è necessario ottimizzare la capacità della memoria dell'applicazione. In questo caso la suddivisione dell'utilizzo della memoria per tipo di oggetto ti aiuterà a sapere dove focalizzare l'attenzione. Ad esempio, sapendo che un'elevata quantità di memoria imprevista è stata associata a un tipo di oggetto specifico, puoi focalizzare l'analisi e le attività di ottimizzazione sulle parti dell'applicazione responsabili dell'allocazione degli oggetti di quel tipo e cui fanno riferimento.

Scopri di più sui nostri clienti

Visita la pagina dei clienti di Amazon CodeGuru.

Ulteriori informazioni 
Registrati per creare un account gratuito

Ottieni l'accesso immediato al piano gratuito di AWS. 

Registrati 
Inizia a creare nella console

Inizia subito a utilizzare Amazon CodeGuru nella console di gestione AWS.

Accedi