Monitoraggio per DevOpsMonitoring for DevOps

Ciò che non è possibile vedere non è possibile misurare.What you cannot see, you cannot measure. Ciò che non è possibile misurare, non è possibile migliorare.What you cannot measure, you cannot improve. Questo assioma di gestione classico è vero anche nel cloud.This classic management axiom is true in the cloud as well. Il monitoraggio tradizionale dell'infrastruttura e dell'applicazione si basa sul fatto che l'applicazione sia in esecuzione o meno o sul tempo di risposta che fornisce.Traditional application and infrastructure monitoring is based on whether the application is running or not, or what response time it is giving. Tuttavia, il monitoraggio basato sul cloud offre molte più opportunità da sfruttare per offrire agli utenti la migliore esperienza.However, cloud-based monitoring offer many more opportunities that you should be leveraging in order to give your users the best experience.

Monitoraggio dell'applicazioneApplication Monitoring

Application Insights è il servizio di Azure che consente non solo di verificare che l'applicazione venga eseguita correttamente, ma rende più semplice la risoluzione dei problemi dell'applicazione e può essere usata per la telemetria aziendale personalizzata che indica se l'applicazione viene usata come previsto.Application Insights is the Azure Service that allows not only to verify that your application is running correctly, but it makes application troubleshooting easier, and can be used for custom business telemetry that will tell you whether your application is being used as intended.

Assicurarsi di sfruttare tutte le informazioni dettagliate che Application Insights possibile fornire sull'applicazione.Make sure you leverage all the rich information that Application Insights can provide about your application. Questo elenco non è esaustivo, ma qui è possibile trovare parte della visibilità che Application Insights può offrire:This list is not exhaustive, but here you can find some of the visibility that Application Insights can give you:

  • Application Insights offre un dashboard predefinito con una supposizione plausibile delle metriche più importanti a cui si è interessati.Application Insights offers you a default dashboard with an educated guess of the most important metrics you will be interested in. È quindi possibile modificarla e personalizzarla in base alle proprie esigenze.You can then modify it and customize it to your own needs.
  • Grazie alla strumentazione corretta dell'applicazione, Application Insights consentirà di ottenere statistiche sulle prestazioni da un client e da una prospettiva serverBy instrumenting your application correctly, Application Insights will give you performance statistics both from a client and a server perspective
  • La mappa delle applicazioni mostrerà le dipendenze dell'applicazione in altri servizi, ad esempio le API o i database back-end, consentendo di determinare visivamente dove si verificano i problemiThe Application Map will show you application dependencies in other services such as backend APIs or databases, allowing to determine visually where performance problems lie
  • Il rilevamento intelligente avvisa l'utente quando si verificano anomalie nei modelli di prestazioni o di utilizzoSmart Detection will warn you when anomalies in performance or utilization patterns happen
  • L'analisi dell'utilizzo può fornire dati di telemetria su quali funzionalità dell'applicazione vengono usate più di frequente o se è in uso tutte le funzionalità dell'applicazione.Usage Analysis can give you telemetry on which features of your application are most frequently used, or whether all your application functionality is being used. Questa funzionalità è particolarmente utile dopo le modifiche apportate alle funzionalità dell'applicazione, per verificare se le modifiche sono state completateThis feature is especially useful after changes to the application functionality, to verify whether those changes were successful
  • Le annotazioni sulla versione sono indicatori visivi nei grafici Application Insights di nuove compilazioni e altri eventi, in modo che sia possibile correlare visivamente le modifiche alle prestazioni delle applicazioni alle versioni del codice, in modo da individuare rapidamente i problemi di prestazioni.Release annotations are visual indicators in your Application Insights charts of new builds and other events, so that you can visually correlate changes in application performance to code releases, being able to quickly pinpoint performance problems.
  • La diagnostica delle transazioni tra componenti consente di seguire le transazioni non riuscite per individuare il punto nell'architettura in cui è stato originato l'errore.Cross-component transaction diagnostics allow you to follow failed transactions to find the point in the architecture where the fault was originated.
  • Snapshot Debugger, per raccogliere automaticamente uno snapshot di un'applicazione in tempo reale in caso di eccezione, per analizzarlo in una fase successiva.Snapshot Debugger, to automatically collect a snapshot of a live application in case of an exception, to analyze it at a later stage.

Per usare Application Insights sono disponibili due opzioni: è possibile usare il monitoraggio senza codice, in cui il caricamento dell'app in Application Insights non richiede alcuna modifica del codice o il monitoraggio basato sul codice, in cui il codice viene instrumentato per inviare dati di telemetria ai Application Insights usando il Software Development Kit per il linguaggio di programmazione preferito.To use Application Insights you have two options: you can use codeless monitoring, where onboarding your app to Application Insights does not require any code change, or code-based monitoring, where you instrument your code to send telemetry to Application Insights using the Software Development Kit for your programming language of choice.

È certamente possibile usare altri strumenti di gestione delle prestazioni delle applicazioni per monitorare l'applicazione in Azure, ad esempio NewRelic o AppDynamics, ma Application Insights offrirà l'esperienza più semplice e integrata.You can certainly use other Application Performance Management tools to monitor your application on Azure, such as NewRelic or AppDynamics, but Application Insights will give you the most seamless and integrated experience.

Monitoraggio della piattaformaPlatform Monitoring

Application Insights è in realtà uno dei componenti di monitoraggio di Azure, che offre metriche e log avanzati per verificare lo stato del panorama completo di Azure.Application Insights is actually one of the components of Azure Monitor, which gives you rich metrics and logs to verify the state of your complete Azure landscape. Indipendentemente dal fatto che l'applicazione sia in esecuzione in macchine virtuali, servizi app o Kubernetes, monitoraggio di Azure ti aiuterà a seguire lo stato dell'infrastruttura e a rispondere tempestivamente in caso di problemi.No matter whether your application is running on Virtual Machines, App Services, or Kubernetes, Azure Monitor will help you to follow the state of your infrastructure, and to react promptly if there are any issues.

Assicurarsi di non solo monitorare gli elementi di calcolo che supportano il codice dell'applicazione, ma anche la piattaforma dati: i database, gli account di archiviazione o i data Lake devono essere monitorati attentamente, perché una riduzione delle prestazioni del livello dati di un'applicazione potrebbe avere conseguenze gravi.Make sure not only to monitor your compute elements supporting your application code, but your data platform as well: databases, storage accounts, or data lakes should be closely monitored, since a low performance of the data tier of an application could have serious consequences.

Informazioni dettagliate sul contenitoreContainer Insights

Se l'applicazione è in esecuzione in Azure Kubernetes Service, monitoraggio di Azure consente di monitorare facilmente lo stato del cluster, dei nodi e dei pod.Should your application run on Azure Kubernetes Service, Azure Monitor allows you to easily monitor the state of your cluster, nodes, and pods. Facile da configurare per i cluster AKS, il contenitore Insights offre informazioni rapide, visive e fruibili: dalla pressione della CPU e della memoria dei nodi ai log dei singoli Pod Kubernetes.Easy to configure for AKS clusters, Container Insights delivers quick, visual, and actionable information: from the CPU and memory pressure of your nodes to the logs of individual Kubernetes pods.

Inoltre, per gli operatori che preferiscono usare lo strumento di monitoraggio Kubernetes Open Source Prometheus, ma ancora come la facilità di utilizzo di Azure monitor container Insights, entrambe le soluzioni possono integrarsi tra loro.Additionally, for operators that prefer using the open-source Kubernetes monitoring tool Prometheus but still like the ease of use of Azure Monitor Container Insights, both solutions can integrate with each other.

GitHub il modello sidecar aggiunge un contenitore separato con le responsabilità richieste dal contenitore principale.GitHub The Sidecar Pattern adds a separate container with responsibilities that are required by the main container. Un caso d'uso comune è l'esecuzione delle utilità di registrazione e degli agenti di monitoraggio.A common use case is for running logging utilities and monitoring agents.

Monitoraggio della reteNetwork monitoring

Indipendentemente dal fattore di forma o dal linguaggio di programmazione su cui si basa l'applicazione, la rete che connette il codice agli utenti può creare o interrompere l'esperienza fornita dall'applicazione.Regardless the form factor or programming language your application is based on, the network connecting your code to your users can make or break the experience that your application provides. Di conseguenza, il monitoraggio e la risoluzione dei problemi della rete possono essere decisivi per un team operativo.As a consequence monitoring and troubleshooting the network can be decisive for an operations team. Il componente di monitoraggio di Azure che gestisce i componenti di rete è denominato Network Watcher, una raccolta di strumenti di monitoraggio e risoluzione dei problemi di rete.The component of Azure Monitor that manages the network components is called Network Watcher, a collection of network monitoring and troubleshooting tools. Alcuni di questi strumenti sono:Some of these tools are:

  • Analisi del traffico fornirà una panoramica del traffico nelle reti virtuali, nonché la percentuale proveniente da indirizzi IP dannosi, sfruttando i database di intelligence per le minacce di Microsoft.Traffic Analytics will give you an overview of the traffic in your Virtual Networks, as well as the percentage coming from malicious IP addresses, leveraging Microsoft Threat Intelligence databases. Questo strumento Mostra anche i sistemi nelle reti virtuali che generano la maggior parte del traffico, in modo che sia possibile identificare visivamente i colli di bottiglia prima che degenerino i problemi.This tool will show you as well the systems in your virtual networks that generate most traffic, so that you can visually identify bottlenecks before they degenerate into problems.
  • Gestione prestazioni rete può generare traffico sintetico per misurare le prestazioni delle connessioni di rete su più collegamenti, offrendo una prospettiva sull'evoluzione delle connessioni WAN e Internet nel tempo, oltre a offrire importanti informazioni di monitoraggio sui circuiti Microsoft ExpressRoute.Network Performance Manager can generate synthetic traffic to measure the performance of network connections over multiple links, giving you a perspective on the evolution of WAN and Internet connections over time, as well as offering valuable monitoring information about Microsoft ExpressRoute circuits.
  • La diagnostica VPN può aiutare a risolvere i problemi relativi alle connessioni VPN da sito a sito che connettono le applicazioni agli utenti locali.VPN diagnostics can help troubleshooting site-to-site VPN connections connecting your applications to users on-premises.
  • Il monitoraggio della connessione consente di misurare la disponibilità di rete tra set di endpoint.Connection Monitor allows you to measure the network availability between sets of endpoints.

Altre origini informazioniOther information sources

Non solo i componenti dell'applicazione producono dati, ma ci sono molti altri segnali che è necessario tenere traccia per operare in modo efficace in un ambiente cloud:Not only your application components are producing data, but there are many other signals that you need to track to effectively operate a cloud environment:

  • Log attività: si tratta di un controllo Trail che consente di visualizzare tutte le modifiche apportate tramite le API di Azure.Activity Log: this is a trail audit that lets you see every change that has gone through Azure APIs. Può essere fondamentale comprendere modifiche improvvise delle prestazioni o problemi, che potrebbero essere dovuti a una configurazione errata della piattaforma Azure.It can be critical to understand sudden performance changes or problems, that might have been due to a misconfiguration of the Azure platform.
  • Integrità dei servizi di Azure: a volte le interruzioni sono provocate da modifiche di configurazione, ma da problemi nella piattaforma Azure.Azure Service Health: sometimes outages are provoked not by configuration changes, but by glitches in the Azure platform itself. È possibile trovare informazioni su eventuali problemi correlati ad Azure che influiscano sull'applicazione nei log di integrità dei servizi di Azure.You can find information about any Azure-related problem impacting your application in the Azure Service Health logs.
  • Azure Advisor: sono disponibili indicazioni su come ottimizzare la piattaforma Azure per ridurre i costi, migliorare il comportamento di sicurezza o aumentare la disponibilità dell'ambiente.Azure Advisor: find here recommendations about how to optimize your Azure platform to reduce costs, improve your security posture, or increase the availability of your environment.
  • Centro sicurezza di Azure: non è l'obiettivo di questo pilastro, ma è necessario includerlo per completezza: il Centro sicurezza di Azure può aiutare a comprendere se le risorse di Azure sono configurate in base alle procedure consigliate per la sicurezzaAzure Security Center: not a focus of this pillar, but to be included for completeness: Azure Security Center can help you to understand whether your Azure resources are configured according to security best practices

Procedure consigliate per il monitoraggioMonitoring best practices

Correlazione degli eventiEvent correlation

Un vantaggio fondamentale di monitoraggio di Azure è che si tratta dello strumento di monitoraggio per l'intera piattaforma Azure.One critical advantage of Azure Monitor is that it is the monitoring tool for the whole Azure platform. Come illustrato nelle sezioni precedenti, monitoraggio di Azure contiene le metriche e i log rilevanti per il codice dell'applicazione, la piattaforma in cui è in esecuzione, i componenti dei dati, nonché la rete che connette l'applicazione agli utenti.As the previous sections have shown, Azure Monitor holds metrics and logs relevant to your application code, the platform where it is running, the data components, as well as the network connecting the application to its users. In questo modo gli operatori possono confrontare le metriche dei diversi componenti dell'applicazione e individuare le dipendenze che potrebbero essere state nascoste.This enables operators to compare metrics of different application components to each other, and find out dependencies that might have been hidden otherwise.

I dashboard in Azure offrono un ottimo modo per esporre le informazioni dettagliate contenute in monitoraggio di Azure ad altri utenti.Dashboards in Azure offer a great way of exposing the rich information contained in Azure Monitor to other users. Assicurarsi di creare dashboard condivisi per esporre le informazioni rilevanti ai diversi gruppi interessati dal funzionamento dell'applicazione, inclusi gli sviluppatori e gli operatori.Make sure to create shared dashboards in order to expose relevant information to the different groups involved in operating your application, including Developers and Operators. Se sono necessarie visualizzazioni più complesse, i dati di monitoraggio di Azure possono essere esportati Power BI per l'analisi avanzata dei dati.If more complex visualizations are required, Azure Monitor data can be exported to Power BI for advanced data analysis.

NotificheNotifications

Indipendentemente dal fatto che sia per il monitoraggio di applicazioni, reti o piattaforme, gli operatori non dovrebbero esaminare costantemente i dashboard.Whether it is for application, network or platform monitoring, you should not expect operators to constantly look at dashboards. Al contrario, gli avvisi devono essere usati per inviare notifiche proattive agli utenti rilevanti che reagiranno su di essi.Instead, alerts should be used to send proactive notifications to the relevant individuals that will react on them. I gruppi di azioni in monitoraggio di Azure possono essere usati per inviare notifiche a più destinatari, attivare azioni automatizzate o persino per aprire automaticamente i ticket negli strumenti di gestione dei servizi IT, ad esempio ServiceNow.Action groups in Azure Monitor can be used to notify multiple recipients, to trigger automated actions, or even to automatically open tickets in IT Service Management Tools such as ServiceNow.

L'automazione intorno agli avvisi è fondamentale a causa della natura altamente collaborativa di DevOps e della velocità intrinseca necessaria per la gestione efficace degli eventi imprevisti.Automation around alerts is critical due to the highly collaborative nature of DevOps and the inherent speed needed for effective incident management. All'inizio di quest'anno, è stato segnalato un report da DevOps.com che indica che il 80% dei team IT è stato avvisato per gli eventi imprevisti critici tramite posta elettronica.Earlier this year, a report from DevOps.com came out stating that 80% of IT teams are alerted to critical incidents via email. La posta elettronica è un tipo di comunicazione efficace, ma non deve essere il metodo di notifica più comune per un problema critico.Email is an effective form of communication, but it shouldn’t be the most common notification method for a critical issue. Al contrario, se è possibile definire le azioni da eseguire quando si ricevono determinati avvisi (ad esempio la scalabilità verticale o verticale), il sistema sarà in grado di eseguire la riparazione automatica.Instead, if you can define actions to be executed upon receiving certain alerts (such as scaling up or down) your system will be self-healing.

Altre attività di monitoraggioOther monitoring tasks

Oltre a monitoraggio di Azure, è opportuno tenere d'occhio alcuni eventi per assicurarsi che l'applicazione sia in esecuzione senza problemi:Beyond Azure Monitor, you will want to keep an eye on certain events to make sure that your application is running smoothly:

  • Esaminare i limiti della sottoscrizione di Azure per le risorse e assicurarsi che non si stiano avvicinando.Review Azure subscription limits for your resources, and make sure you are not coming too close.
  • Informazioni sui piani di supporto di Azure.Understand Azure support plans. Vedere Domande frequenti sul supporto di Azure.Refer to Azure support FAQs. Familiarizzare con il team con il supporto di Azure.Familiarize your team with Azure support.
  • Assicurarsi di monitorare le date di scadenza dei certificati digitali o ancora meglio, configurare il rinnovo automatico del certificato digitale con Azure Key Vault.Make sure that you monitor expiration dates of digital certificates, or even better, configure automatic digital certificate renewal with Azure Key Vault.

RiepilogoSummary

È possibile usare qualsiasi piattaforma di monitoraggio per gestire le risorse di Azure.You can use any monitoring platform to manage your Azure resources. L'offerta di Microsoft per la prima parte è monitoraggio di Azure, una soluzione completa per le metriche e i log dell'infrastruttura per il codice dell'applicazione, tra cui la possibilità di attivare avvisi e azioni automatizzate, nonché la visualizzazione dei dati.Microsoft's first party offering is Azure Monitor, a comprehensive solution for metrics and logs from the infrastructure to the application code, including the ability to trigger alerts and automated actions as well as data visualization.