DevTest e DevOps per soluzioni IaaS

Azure Active Directory
Boards
Azure DevOps
DevTest Labs
Key Vault
Monitoraggio
Pipelines
Criteri

L'infrastruttura distribuita come servizio (IaaS) è un tipo di cloud computing che fornisce risorse di elaborazione virtualizzate.Infrastructure as a service (IaaS) is a form of cloud computing that provides virtualized computing resources. Il test di sviluppo (DevTest) è un approccio di sviluppo software che integra i test nelle fasi iniziali della fase di sviluppo.Development testing (DevTest) is a software development approach that integrates testing early in the development phase. In questa soluzione, la configurazione delle operazioni di DevTest per un'applicazione IaaS riduce i costi e gli overhead degli ambienti di sviluppo e test, semplificando allo stesso tempo lo sviluppo tramite macchine virtuali automatizzate e l'integrazione e la distribuzione di immagini di VM.In this solution, configuring DevTest operations for an IaaS application reduces the cost and overhead of development and test environments, while facilitating faster development through automated virtual machine (VM) and VM image integration and deployment.

DevOps è un set di procedure che combinano lo sviluppo software e le operazioni IT per abbreviare il ciclo di sviluppo e fornire distribuzioni continue di alta qualità (CD).DevOps is a set of practices that combine software development and IT operations to shorten the development cycle and provide high-quality continuous deployments (CD). L'uso di Azure DevOps con gli ambienti DevTest mette in riscontro la potenza e l'attenzione al processo di sviluppo di IaaS.Using Azure DevOps with DevTest environments lends power and focus to the IaaS development process.

ArchitectureArchitecture

Diagramma che mostra la configurazione di DevTest e DevOps per un'applicazione IaaS.

  1. Anziché configurare manualmente gli ambienti di sviluppo, gli sviluppatori possono utilizzare immagini di desktop virtuali di Windows , preconfigurate con le librerie, gli strumenti e i runtime necessari per i propri progetti.Instead of manually configuring development environments, developers can use Windows Virtual Desktop images, pre-configured with the libraries, tools, and runtimes they need for their projects. L'aggiunta di uno sviluppatore a una sottoscrizione di Azure DevTest rende disponibile l'immagine del desktop virtuale Windows appropriata dall'ambiente DevTest.Adding a developer to an Azure DevTest Subscription makes the appropriate Windows Virtual Desktop image available to them from the DevTest environment.

  2. Il codice sorgente è disponibile nei repository GitHub , che si integrano facilmente con Azure DevOps.Source code is available in GitHub repos, which integrate seamlessly with Azure DevOps. L'ambiente di sviluppo di Visual Studio combina la modifica del codice sorgente di GitHub con funzionalità quali il rilevamento di elementi di lavoro e richieste pull.The Visual Studio development environment combines GitHub source code editing with features like work item and pull request tracking.

  3. Azure Pipelines attiva le compilazioni di integrazione continua (ci) automatizzate dai repository GitHub e le distribuisce automaticamente negli ambienti DevTest, raggiungendo rapidamente i test di controllo qualità (QA) con un sovraccarico minimo per gli sviluppatori.Azure Pipelines triggers automated continuous integration (CI) builds from GitHub repos and automatically delivers them to the DevTest environments, reaching quality assurance (QA) testing quickly with low developer overhead. Azure Pipelines utilizza Azure Key Vault per utilizzare in modo sicuro i segreti, ad esempio le credenziali e le stringhe di connessione necessarie per le configurazioni di distribuzione e di rilascio.Azure Pipelines uses Azure Key Vault to securely consume secrets like credentials and connection strings required for release and deployment configurations.

  4. Azure Boards si connette nuovamente ai repository GitHub, consentendo agli sviluppatori di tenere traccia del codice e delle attività in un'unica posizione.Azure Boards connects back to the GitHub repos, letting developers track both code and tasks in one location. Il test automatizzato genera anche bug per eventuali errori di compilazione o rilascio, inserendo i risultati nel ciclo di sviluppo.Automated testing also generates bugs for any build or release failures, feeding the results back into the development cycle.

  5. Azure Boards gli elementi di lavoro provengono da test automatizzati, test di controllo di qualità manuale e funzionalità aggiunte.Azure Boards work items come from automated testing, manual QA testing, and added features. Gli sviluppatori creano rami di funzionalità e li associano agli elementi di lavoro per tenere traccia dello sviluppo, creando più iterazioni del ciclo di sviluppo.Developers create feature branches and associate them with work items to track development, creating more iterations of the development loop.

  6. Azure Pipelines distribuisce le build negli ambienti a basso costo Azure DevTest Labs sottoscrizione, in cui gli sviluppatori e i tester possono effettuare rapidamente il provisioning delle macchine virtuali.Azure Pipelines deploys builds to the low-cost Azure DevTest Labs subscription environments, where developers and testers can rapidly provision VMs. Criteri di Azure regola e limita i numeri e i costi delle macchine virtuali DevTest e controlla l'utilizzo delle VM per fornire informazioni e rilevamento.Azure Policy regulates and limits DevTest VM numbers and costs, and audits VM usage to provide insight and tracking.

    Gli sviluppatori possono distribuire le macchine virtuali nel modo più rapido necessario all'interno del Lab, pur rimanendo nei parametri di risorse e costi impostati da Manager e amministratori.Developers can deploy VMs as quickly as needed within the lab, while staying within resource and cost parameters set by managers and administrators. La flessibilità dei laboratori a basso costo offre agli sviluppatori tutti gli ambienti necessari per un rapido avanzamento iterativo.The flexibility of low-cost labs provides developers with all the environments they need for rapid iterative progress.

    I tester possono operare all'interno del proprio ambiente DevTest Labs, estraendo le immagini pronte per il test nei Lab del team di test separatamente dal team di sviluppo.Testers can operate within their own DevTest Labs environment, pulling ready-for-test images into the test team's labs separately from the development team. La capacità di sviluppatori e tester di lavorare in parallelo DevTest Labs contribuisce a una rapida iterazione di versioni di immagini pronte per la versione.The ability of developers and testers to work in parallel DevTest Labs contributes to rapid iteration of ready-to-release image versions.

  7. Man mano che le immagini di macchina virtuale sviluppate raggiungono uno stato di rilascio, Azure Pipelines attiva le versioni, che generalizzano le immagini di destinazione per destinazioni come i set di scalabilità di macchine virtualie le promuove da DevTest e in un ambiente di produzione.As the developed VM images reach a release state, Azure Pipelines triggers releases, which generalize the targeted images for destinations like virtual machine scale sets, and promotes them out of DevTest and into a Production environment.

    Test di accettazione utente (UAT) convalida una macchina virtuale di gestione temporanea o un set di scalabilità di macchine virtuali prima della distribuzione nell'ambiente di produzione.User Acceptance Testing (UAT) validates a staged VM or virtual machine scale set before deployment to Production.

    Le approvazioni sono in genere necessarie per le versioni a destinazioni di produzione per il client con costi più elevati.Approvals are usually required for releases to higher-cost, client-facing Production destinations. La produzione rimane isolata e protetta da distribuzioni accidentali o non approvate.Production remains isolated and protected from inadvertent or unapproved deployments.

Questo scenario usa una DevTest e un Azure Active Directory di produzione distinti (Azure ad) per ogni sottoscrizione per creare una separazione distinta delle problematiche.This scenario uses a separate DevTest and Production Azure Active Directory (Azure AD) per subscription to create a distinct separation of concerns. Per soddisfare i requisiti di conformità, è possibile che la Azure AD della sottoscrizione di produzione includa una sezione incrociata più piccola degli utenti rispetto al Azure AD DevTest.To meet compliance requirements, the Production subscription's Azure AD might need to include a smaller cross section of users than the DevTest Azure AD.

Monitoraggio di Azure funziona tra le sottoscrizioni per monitorare le macchine virtuali negli ambienti di produzione e di DevTest.Azure Monitor works across subscriptions to monitor VMs in both the Production and DevTest environments.

ComponentiComponents

  • Azure DevTest Labs fornisce laboratori con tutti gli strumenti e il software necessari per la creazione di ambienti.Azure DevTest Labs provides labs that have all the necessary tools and software to create environments. Gli sviluppatori possono gestire in modo efficiente le risorse senza attendere le approvazioni.Developers can efficiently self-manage resources without waiting for approvals. Con DevTest Labs, i team possono controllare i costi e regolare le risorse per ogni Lab, concedendo agli sviluppatori l'autorizzazione e la flessibilità necessaria per il funzionamento dei propri sandbox entro i vincoli di costo.With DevTest Labs, teams can control costs and regulate resources per lab, granting developers permission and flexibility to operate their sandboxes within cost constraints.

  • Il servizio Generatore di immagini di macchine virtuali di Azure offre immagini di VM di base che gli sviluppatori possono personalizzare.Azure VM Image Builder service provides baseline VM images that developers can customize. Il servizio semplifica la creazione e l'applicazione di patch alle immagini e può essere chiamato come attività Azure Pipelines.The service facilitates the creation and patching of images and can be called as an Azure Pipelines task.

  • La raccolta di immagini condivise funge da repository di immagini di macchina virtuale per le soluzioni IaaS.Shared Image Gallery acts as a VM image repository for IaaS solutions. Il generatore di immagini di VM può essere compilato direttamente in una raccolta di immagini condivise, semplificando una Azure Pipelines processo di integrazione continua/recapito continuo per il controllo delle versioni dell'applicazione basata su VM.VM Image Builder can build directly into a Shared Image Gallery, facilitating an Azure Pipelines CI/CD process of versioning the VM-based application.

  • GitHub è una piattaforma di hosting del codice per il controllo della versione e la collaborazione.GitHub is a code hosting platform for version control and collaboration. Un repository GitHub contiene tutti i file di progetto e la cronologia delle revisioni.A GitHub repository contains all project files and their revision history. Gli sviluppatori possono collaborare per contribuire, discutere e gestire il codice nel repository.Developers can work together to contribute, discuss, and manage code in the repository.

  • Azure Pipelines distribuisce le immagini dell'applicazione VM.Azure Pipelines deploys the VM application images. Le pipeline possono anche distribuire le risorse della macchina virtuale, tramite i modelli di Azure Resource Manager (ARM).Pipelines can also deploy the VM resources themselves, through Azure Resource Manager (ARM) templates. Questa infrastruttura come codice può essere controllata dal codice sorgente e configurata per ci/CD, assicurando che l'infrastruttura rimanga aggiornata.This infrastructure-as-code can be source controlled and configured for CI/CD, ensuring that the infrastructure remains up to date.

  • Azure Key Vault archivia in modo sicuro e controlla rigorosamente l'accesso a segreti quali chiavi API, password e certificati.Azure Key Vault securely stores and tightly controls access to secrets like API keys, passwords, and certificates. Per altre informazioni sulle Key Vault negli scenari DevOps, vedere DevSecOps in Azure.For more information about Key Vault in DevOps scenarios, see DevSecOps in Azure.

  • Azure Boards è un servizio per la gestione del lavoro per i progetti software.Azure Boards is a service for managing work for software projects. Azure Boards offre un set completo di funzionalità, incluso il supporto nativo per le metodologie Scrum e Kanban, i dashboard personalizzabili e la creazione di report integrati.Azure Boards brings a rich set of capabilities, including native support for Scrum and Kanban methodologies, customizable dashboards, and integrated reporting.

  • Azure Active Directory (Azure ad) Enterprise Identity platform fornisce Single Sign-on e l'autenticazione a più fattori per gestire l'accesso degli utenti alle risorse.Azure Active Directory (Azure AD) enterprise identity platform provides single sign-on and multifactor authentication to govern user access to resources. In questo scenario, un Azure AD separato per ogni sottoscrizione crea una separazione distinta delle problematiche tra gli utenti di Azure.In this scenario, a separate Azure AD per subscription creates a distinct separation of concerns between Azure users.

  • Criteri di Azure gestisce le risorse per soddisfare gli standard e la conformità dell'organizzazione.Azure Policy governs resources to meet organizational standards and compliance. In un ruolo DevTest, i criteri di Azure possono regolare e limitare il numero e i costi delle macchine virtuali nella sottoscrizione.In a DevTest role, Azure Policy can regulate and limit the number and costs of VMs in the subscription. Il controllo può fornire informazioni dettagliate e tenere traccia dell'utilizzo delle macchine virtuali DevTest.Auditing can provide insights and track the usage of the DevTest VMs.

  • Monitoraggio di Azure può funzionare tra le sottoscrizioni per monitorare le VM negli ambienti di produzione e di DevTest.Azure Monitor can work across subscriptions to monitor VMs in both Production and DevTest environments. Monitoraggio di Azure può raccogliere i dati di log dai sistemi operativi della macchina virtuale e i file di dump di arresto anomalo del sistema e aggregarli per la visualizzazione nel Centro sicurezza di Azure.Azure Monitor can collect log data from VM operating systems as well as crash dump files, and aggregate them for viewing in Azure Security Center.

AlternativiAlternatives

Nelle situazioni in cui il generatore di immagini di VM e una raccolta di immagini condivise non funzionano, è possibile configurare una Factory di immagini per creare immagini di VM dalla pipeline di integrazione continua/recapito continuo e distribuirle automaticamente in qualsiasi Azure DevTest Labs registrata per tali immagini.In situations where VM Image Builder and a Shared Image Gallery don't work, you can set up an image factory to build VM images from the CI/CD pipeline and distribute them automatically to any Azure DevTest Labs registered to those images. Per altre informazioni, vedere eseguire una factory di immagini da Azure DevOps.For more information, see Run an image factory from Azure DevOps.

Passaggi successiviNext steps