Cloud technology and Azure Stack can help to adopt of practices that enable DevOps. Like, self-service in a cloud allows for quick deployment of application(Software package) utilizing what is known as Infrastructure as Code (IaC). By using Azure Resource Manager (ARM) templates in #AzureStack, we can define reusable deployment configurations that we can use to quickly deploy application infrastructure with a predictable method that works every time. This is known as idempotent. The integration between ARM Templates and Desired State Configuration (DSC) enables you to also ensure the application is configured correctly when it is being deployed.
To further understand how Azure Stack enables DevOps, review the following common DevOps workflows that take place with the development of on-premises applications:
- Developers write the application and share their infrastructure requirements to the operations team.
- The developers currently use their staging environment to develop the application further.
- This leads to infrastructure requirement changes.
- The application is deployed to the staging environment successfully.
- When the application is deployed to the preproduction environment, it fails because the infrastructure has not been updated to meet the new requirements.
The issues noted in the preceding scenario can also be duplicated when we move the application from the preproduction environment to production. These issues fall into three main areas:
- The infrastructure required for the application is defined separately from the application.
- There are several hand-offs between development and operations.
- The definitions for deployment are platform-specific.
This can also mean that the deployment of the application to the cloud will also be problematic due to the infrastructure requirements. With Azure Stack and Azure, the workflow of the development process changes as shown in the following process:
- The application and infrastructure code are developed at the same time and stored in the same repository.
- The application is configured to run in the staging, preproduction, and production environments regardless of whether that is on-premises (Azure Stack) or in the public cloud (Azure).
This workflow has the following benefits:
- The infrastructure required for the application is defined as a code (IaC), which implies fewer errors.
- Deployment times are faster providing end users with more value from their applications.
- Requirements can be defined for on-premises, off-premises, or both.