Sviluppo e distribuzione di applicazioni
Esaminare i modelli e le procedure per lo sviluppo di applicazioni, configurare Azure Pipelines e implementare le procedure consigliate per l'approccio Site Reliability Engineering (SRE). SRE è un approccio di progettazione software allo sviluppo e alla distribuzione delle applicazioni, alla gestione delle modifiche, al monitoraggio e alla risposta di emergenza.
Pianificazione, training e prova
Usare l'elenco di controllo e le risorse di sviluppo di applicazioni seguenti per pianificare lo sviluppo e la distribuzione delle applicazioni. Dovrebbe essere possibile rispondere a queste domande:
- L'ambiente di sviluppo dell'applicazione è stato preparato e il flusso di lavoro è stato configurato?
- Come verrà strutturata la cartella del progetto per supportare lo sviluppo di applicazioni Kubernetes?
- Sono stati identificati i requisiti di stato, configurazione e archiviazione dell'applicazione?
Elenco di controllo SRE
Preparare l'ambiente di sviluppo. Configurare l'ambiente con gli strumenti per creare contenitori e configurare il flusso di lavoro di sviluppo.
Per altre informazioni, vedere:
Distribuire l'applicazione in un contenitore. Acquisire familiarità con l'esperienza di sviluppo kubernetes end-to-end, tra cui lo scaffolding delle applicazioni, i flussi di lavoro del ciclo interno, i framework di gestione delle applicazioni, le pipeline CI/CD, l'aggregazione dei log, il monitoraggio e le metriche delle applicazioni.
Per altre informazioni, vedere:
Esaminare gli scenari comuni di Kubernetes. Kubernetes viene spesso considerato come una piattaforma per la distribuzione di microservizi, ma sta diventando una piattaforma più ampia. Per altre informazioni sugli scenari Kubernetes comuni, ad esempio l'analisi batch e il flusso di lavoro, vedere Panoramica degli scenari Kubernetes comuni (video).
Preparare l'applicazione per Kubernetes. Preparare il layout del file system dell'applicazione per Kubernetes e organizzare rilasci settimanali o giornalieri. Informazioni su come il processo di distribuzione di Kubernetes consente aggiornamenti affidabili e senza tempi di inattività.
Per altre informazioni, vedere:
- How Kubernetes deployments work (video) (Funzionamento delle distribuzioni Kubernetes (video))
- Sviluppare e distribuire applicazioni in Kubernetes
Gestire le risorse di archiviazione dell'applicazione. Comprendere le esigenze a livello di prestazioni e i metodi di accesso per i pod per adottare le opzioni di archiviazione appropriate. Pianificare i modi per eseguire il backup e testare il processo di ripristino per l'archiviazione collegata.
Per altre informazioni, vedere:
- Basics of stateful applications in Kubernetes (video) (Nozioni di base sulle applicazioni con stato in Kubernetes (video))
- Stato e dati nelle applicazioni di Docker
- Opzioni di archiviazione nel servizio Azure Kubernetes
Gestire i segreti dell'applicazione. Usare un insieme di credenziali delle chiavi per archiviare e recuperare chiavi e credenziali. Non archiviare le credenziali nel codice dell'applicazione.
Per altre informazioni, vedere:
- Funzionamento di Kubernetes e gestione della configurazione (video)
- Understand secrets management in Kubernetes (video) (Informazioni sulla gestione dei segreti in Kubernetes (video))
- Usare Azure Key Vault con Kubernetes
- Usare ID dei carichi di lavoro di Microsoft Entra per autenticare e accedere alle risorse di Azure
Eseguire la distribuzione nell'ambiente di produzione e applicare le procedure consigliate
Quando si prepara l'applicazione per la produzione, usare l'elenco di controllo seguente. Dovrebbe essere possibile rispondere a queste domande:
- È possibile monitorare tutti gli aspetti dell'applicazione?
- Sono stati definiti i requisiti delle risorse per l'applicazione? Quali sono i requisiti di scalabilità?
- È possibile distribuire nuove versioni dell'applicazione senza influire sui sistemi di produzione?
Elenco di controllo delle procedure consigliate per SRE
Configurare i controlli di integrità per l'idoneità e l'attività. Kubernetes usa controlli di idoneità e attività per sapere quando l'applicazione è pronta per ricevere traffico e quando deve essere riavviata. Quando non si definiscono controlli, Kubernetes non è in grado di determinare se l'applicazione è in esecuzione. Per altre informazioni, vedere Controlli di idoneità e attività.
Configurare la registrazione, il monitoraggio delle applicazioni e gli avvisi. Il monitoraggio dei contenitori è fondamentale, soprattutto quando si esegue un cluster di produzione, su larga scala, con più applicazioni. Il metodo di registrazione consigliato per le applicazioni in contenitori è scrivere nei flussi di output standard (
stdout
) e di errore standard (stderr
).Per altre informazioni, vedere:
- Registrazione in Kubernetes
- Get started with monitoring and alerting for Kubernetes (video) (Introduzione al monitoraggio e agli avvisi per Kubernetes (video))
- Monitoraggio di Azure per contenitori
- Abilitare e controllare i log del piano di controllo di Kubernetes nel servizio Azure Kubernetes
- Visualizzare log, eventi e metriche dei pod di Kubernetes in tempo reale
Definire i requisiti di risorse per l'applicazione. Uno dei modi principali per gestire le risorse di calcolo all'interno di un cluster Kubernetes consiste nell'usare le richieste e i limiti dei pod. Queste richieste e limiti indicano all'utilità di pianificazione kubernetes quali risorse di calcolo assegnare a un pod. Per altre informazioni, vedere Definire le richieste e i limiti delle risorse pod.
Configurare i requisiti di scalabilità dell'applicazione. Kubernetes supporta la scalabilità automatica orizzontale dei pod per modificare il numero dei pod in una distribuzione a seconda dell'utilizzo della CPU o delle altre metriche selezionate. Per usare la scalabilità automatica, tutti i contenitori all'interno dei pod devono avere richieste e limiti di CPU definiti. Per altre informazioni, vedere Configurare la scalabilità automatica orizzontale dei pod.
Distribuire applicazioni usando una pipeline automatizzata e DevOps. L'automazione completa di tutti i passaggi tra il commit del codice e la distribuzione in produzione consente ai team di concentrarsi sulla compilazione del codice e di rimuovere le attività e i potenziali errori umani nei passaggi manuali. La distribuzione di nuovo codice è più rapida e meno rischiosa, che consente ai team di diventare più agili, più produttivi e più sicuri del codice in esecuzione.
Per altre informazioni, vedere:
- Sviluppare le procedure DevOps
- Setting up a Kubernetes build pipeline (video) (Configurazione di una pipeline di compilazione Kubernetes (video))
- Centro distribuzione per il servizio Azure Kubernetes
- GitHub Actions per la distribuzione nel servizio Azure Kubernetes
- Esercitazione: Eseguire la distribuzione da GitHub a servizio Azure Kubernetes usando Jenkins
Ottimizzare e dimensionare
Ora che l'applicazione è in produzione, usare l'elenco di controllo per la distribuzione delle applicazioni per ottimizzare il flusso di lavoro e preparare l'applicazione e il team per la scalabilità. Dovrebbe essere possibile rispondere a queste domande:
- I problemi delle applicazioni trasversali sono astratti dall'applicazione?
- È possibile mantenere l'affidabilità del sistema e delle applicazioni, pur continuando a eseguire l'iterazione su nuove funzionalità e versioni?
Elenco di controllo per la distribuzione delle applicazioni
Distribuire un gateway API. Un gateway API funge da punto di ingresso ai microservizi, disaccoppia i client dai microservizi, aggiunge un altro livello di sicurezza e riduce la complessità dei microservizi eliminando il carico di lavoro di gestione delle problematiche trasversali. Per altre informazioni, vedere Usare Gestione API di Azure con i microservizi distribuiti nel servizio Azure Kubernetes.
Distribuire una mesh di servizi. Una mesh di servizi offre funzionalità per i carichi di lavoro, ad esempio la gestione del traffico, la resilienza, i criteri, la sicurezza, l'identità avanzata e l'osservabilità. L'applicazione viene disaccoppiata da queste funzionalità operative e la mesh del servizio le sposta dal livello dell'applicazione e dal livello dell'infrastruttura.
Per altre informazioni, vedere:
- How service meshes work in Kubernetes (video) (Funzionamento delle mesh di servizi in Kubernetes (video))
- Informazioni sulle mesh di servizi
- Usare Open Service Mesh con il servizio Azure Kubernetes
- Usare Istio con il servizio Azure Kubernetes
- Usare Linkerd con il servizio Azure Kubernetes
- Usare Consul con il servizio Azure Kubernetes
- How service meshes work in Kubernetes (video) (Funzionamento delle mesh di servizi in Kubernetes (video))
Implementare le procedure SRE. SRE è un approccio collaudato che gestisce l'affidabilità cruciale del sistema e dell'applicazione e esegue l'iterazione alla velocità richiesta dal marketplace.
Per altre informazioni, vedere: