DevOps-mönsterDevOps pattern

Kod från en enda plats och distribuera till flera mål i utvecklings-, test-och produktions miljöer som kan finnas i ditt lokala data Center, privata moln eller i det offentliga molnet.Code from a single location and deploy to multiple targets in development, test, and production environments that may be in your local datacenter, private clouds, or the public cloud.

Kontext och problemContext and problem

Kontinuitet, säkerhet och tillförlitlighet för program distribution är avgörande för organisationer och viktiga för utvecklings team.Application deployment continuity, security, and reliability are essential to organizations and critical to development teams.

Appar kräver ofta omstrukturerad kod för att köras i varje mål miljö.Apps often require refactored code to run in each target environment. Det innebär att en app inte är helt portabel.This means that an app isn't completely portable. Det måste uppdateras, testas och verifieras när det flyttas genom varje miljö.It must be updated, tested, and validated as it moves through each environment. Till exempel måste kod som skrivits i en utvecklings miljö skrivas om för att fungera i en test miljö och skrivas om när den slutligen hamnar i en produktions miljö.For example, code written in a development environment must then be rewritten to work in a test environment and rewritten when it finally lands in a production environment. Dessutom är den här koden särskilt knuten till värden.Furthermore, this code is specifically tied to the host. Detta ökar kostnaden och komplexiteten med att underhålla din app.This increases the cost and complexity of maintaining your app. Varje version av appen är kopplad till varje miljö.Each version of the app is tied to each environment. Ökad komplexitet och duplicering ökar risken för säkerhet och kod kvalitet.The increased complexity and duplication increase the risk of security and code quality. Dessutom kan inte koden distribueras på ett enkelt sätt när du tar bort återställnings misslyckade värdar eller distribuerar ytterligare värdar för att hantera ökningar i efter frågan.In addition, the code can't be readily redeployed when you remove restore failed hosts or deploy additional hosts to handle increases in demand.

LösningSolution

Med DevOps-mönstret kan du bygga, testa och distribuera en app som körs på flera moln.The DevOps Pattern enables you to build, test, and deploy an app that runs on multiple clouds. Det här mönstret enhets praxis för kontinuerlig integrering och kontinuerlig leverans.This pattern unites the practice of continuous integration and continuous delivery. Med kontinuerlig integrering skapas och testas kod varje gång en grupp medlem genomför en ändring i versions kontrollen.With continuous integration, code is built and tested every time a team member commits a change to version control. Kontinuerlig leverans automatiserar varje steg från en version till en produktions miljö.Continuous delivery automates each step from a build to a production environment. Tillsammans skapar de här processerna en versions process som stöder distribution i olika miljöer.Together, these processes create a release process that supports deployment across diverse environments. Med det här mönstret kan du utkast till din kod och sedan distribuera samma kod till en lokal miljö, olika privata moln och offentliga moln.With this pattern, you can draft your code and then deploy the same code to a premise environment, different private clouds, and the public clouds. Skillnader i miljön kräver en ändring i en konfigurations fil i stället för ändringar i koden.Differences in environment require a change to a configuration file rather than changes to the code.

DevOps-mönster

Med en enhetlig uppsättning utvecklingsverktyg i lokala, privata moln och i offentliga moln miljöer kan du implementera en metod för kontinuerlig integrering och kontinuerlig leverans.With a consistent set of development tools across on-premises, private cloud, and public cloud environments, you can implement a practice of continuous integration and continuous delivery. Appar och tjänster som distribueras med DevOps-mönstret är utbytbara och kan köras på någon av dessa platser, vilket drar nytta av funktioner och funktioner i lokala och offentliga moln.Apps and services deployed using the DevOps Pattern are interchangeable and can run in any of these locations, taking advantage of on-premises and public cloud features and capabilities.

Genom att använda en DevOps release-pipeline kan du:Using a DevOps release pipeline helps you:

  • Starta en ny version baserat på kod skrivningar till en enda lagrings plats.Initiate a new build based on code commits to a single repository.
  • Distribuera automatiskt den nyskapade koden till det offentliga molnet för testning av användar godkännande.Automatically deploy your newly built code to the public cloud for user acceptance testing.
  • Distribuera automatiskt till ett privat moln när din kod har klarat testet.Automatically deploy to a private cloud once your code has passed testing.

Problem och övervägandenIssues and considerations

DevOps-mönstret är avsett att garantera konsekvens mellan distributioner oavsett mål miljö.The DevOps Pattern is intended to ensure consistency across deployments regardless of the target environment. Funktionerna varierar dock mellan moln miljöer och lokala miljöer.However, capabilities vary across cloud and on-premises environments. Tänk på följande:Consider the following points:

  • Finns det funktioner, slut punkter, tjänster och andra resurser i distributionen som är tillgängliga på mål distributions platserna?Are the functions, endpoints, services, and other resources in your deployment available in the target deployment locations?
  • Lagras konfigurations artefakter på platser som är tillgängliga i molnet?Are configuration artifacts stored in locations that are accessible across clouds?
  • Kommer distributions parametrar att fungera i alla mål miljöer?Will deployment parameters work in all the target environments?
  • Är resurs specifika egenskaper tillgängliga i alla mål moln?Are resource-specific properties available in all target clouds?

Mer information finns i utveckla Azure Resource Manager mallar för moln konsekvens.For more information, see Develop Azure Resource Manager templates for cloud consistency.

Tänk också på följande när du bestämmer hur du ska implementera det här mönstret:In addition, consider the following points when deciding how to implement this pattern:

SkalbarhetScalability

Distributions Automation system är nyckel kontroll punkten i DevOps-mönstren.Deployment automation systems are the key control point in the DevOps Patterns. Implementeringar kan variera.Implementations can vary. Valet av rätt server storlek beror på storleken på den förväntade arbets belastningen.The selection of the correct server size depends on the size of the expected workload. VM kostar mer att skala än behållare.VMs cost more to scale than containers. Men om du vill använda containrar för skalning måste byggprocessen köras med containrar.To use containers for scaling, however, your build process must run with containers.

TillgänglighetAvailability

Tillgängligheten i DevPattern innebär att kunna återställa all statusinformation som är kopplad till ditt arbets flöde, till exempel test resultat, kod beroenden eller andra artefakter.Availability in the context of the DevPattern means being able to recover any state information associated with your workflow, such as test results, code dependencies, or other artifacts. Överväg två vanliga mått vid utvärdering av tillgänglighetskraven:To assess your availability requirements, consider two common metrics:

  • Mål för återställnings tid (RTO) anger hur länge du kan gå utan system.Recovery Time Objective (RTO) specifies how long you can go without a system.

  • Återställnings punkt mål (återställnings punkt mål) anger hur mycket data du kan få att förlora om ett avbrott i tjänsten påverkar systemet.Recovery Point Objective (RPO) indicates how much data you can afford to lose if a disruption in service affects the system.

I praktiken, RTO och återställnings punkt innebär redundans och säkerhets kopiering.In practice, RTO, and RPO imply redundancy and backup. I det globala Azure-molnet är tillgängligheten inte en fråga om maskin varu återställning – det är en del av Azure, men du kan i stället se till att du behåller tillstånd för dina DevOps-system.On the global Azure cloud, availability isn't a question of hardware recovery—that's part of Azure—but rather ensuring you maintain the state of your DevOps systems. På Azure Stack hubb kan maskin varu återställning vara ett övervägande.On Azure Stack Hub, hardware recovery may be a consideration.

En annan viktig hänsyn när du utformar systemet som används för distributions automatisering är åtkomst kontroll och korrekt hantering av de rättigheter som krävs för att distribuera tjänster till moln miljöer.Another major consideration when designing the system used for deployment automation is access control and the proper management of the rights needed to deploy services to cloud environments. Vilka rättigheter behövs för att skapa, ta bort eller ändra distributioner?What rights are needed to create, delete, or modify deployments? Till exempel krävs det vanligt vis en uppsättning rättigheter för att skapa en resurs grupp i Azure och en annan för att distribuera tjänster i resurs gruppen.For example, one set of rights is typically required to create a resource group in Azure and another to deploy services in the resource group.

HanterbarhetManageability

Utformningen av alla system som baseras på DevOps-mönstret måste överväga automatisering, loggning och aviseringar för varje tjänst i portföljen.The design of any system based on the DevOps pattern must consider automation, logging, and alerting for each service across the portfolio. Använd delade tjänster, ett program team eller både och och spåra även säkerhets principer och styrning.Use shared services, an application team, or both, and track security policies and governance as well.

Distribuera produktions miljöer och utvecklings-och test miljöer i separata resurs grupper i Azure eller Azure Stack Hub.Deploy production environments and development/test environments in separate resource groups on Azure or Azure Stack Hub. Sedan kan du övervaka varje Miljös resurser och summera fakturerings kostnaderna per resurs grupp.Then you can monitor each environment's resources and roll up billing costs by resource group. Du kan också ta bort resurser som en uppsättning, vilket är användbart för test distributioner.You can also delete resources as a set, which is useful for test deployments.

När du ska använda det här mönstretWhen to use this pattern

Använd det här mönstret om:Use this pattern if:

  • Du kan utveckla kod i en miljö som uppfyller behoven hos dina utvecklare och distribuera till en miljö som är speciell för din lösning, där det kan vara svårt att utveckla ny kod.You can develop code in one environment that meets the needs of your developers, and deploy to an environment specific to your solution where it may be difficult to develop new code.
  • Du kan använda kod och verktyg som dina utvecklare vill, så länge de kan följa den kontinuerliga integreringen och den kontinuerliga leverans processen i DevOps-mönstret.You can use the code and tools your developers would like, as long as they're able to follow the continuous integration and continuous delivery process in the DevOps Pattern.

Det här mönstret rekommenderas inte:This pattern isn't recommended:

  • Om du inte kan automatisera infrastruktur, etablering av resurser, konfiguration, identitet och säkerhets uppgifter.If you can't automate infrastructure, provisioning resources, configuration, identity, and security tasks.
  • Om team inte har åtkomst till hybrid moln resurser för att implementera en metod för kontinuerlig integrering/kontinuerlig utveckling (CI/CD).If teams don't have access to hybrid cloud resources to implement a Continuous Integration/Continuous Development (CI/CD) approach.

Nästa stegNext steps

Mer information om ämnen som introduceras i den här artikeln:To learn more about topics introduced in this article:

När du är redo att testa lösnings exemplet fortsätter du med distributions guiden för DevOps hybrid CI/CD-lösning.When you're ready to test the solution example, continue with the DevOps hybrid CI/CD solution deployment guide. Distributions guiden innehåller steg-för-steg-instruktioner för att distribuera och testa dess komponenter.The deployment guide provides step-by-step instructions for deploying and testing its components. Du lär dig hur du distribuerar en app till Azure och Azure Stack hubb med en pipeline för Hybrid kontinuerlig integrering/kontinuerlig leverans (CI/CD).You learn how to deploy an app to Azure and Azure Stack Hub using a hybrid continuous integration/continuous delivery (CI/CD) pipeline.