Sitecore Azure DevOps: Everything You Need to Know
Sitecore is a powerful digital experience platform that enables businesses to create and deliver engaging content to customers across any channel. For DevOps teams responsible for delivering applications quickly and error-free, implementing your Sitecore solution on Microsoft Azure can provide incredible performance, security, cost, and control benefits.
In this article, we’ll explain everything you need to know about Azure DevOps, how Sitecore works with Azure, and the benefits of using the two together.
What Is Azure DevOps?
Azure DevOps is a developer service that enables teams to plan, collaborate, build and deploy software applications. With several features that can be accessed in the cloud via a web browser or IDE client, Azure DevOps processes help enterprises improve release velocity and cut down on costs while increasing scalability and availability.
Azure DevOps comprises five key services: Azure Boards, Azure Repo, Azure Pipelines, Azure Artifacts, and Azure TestPlans.
Azure Boards: A suite of agile tools that support planning and tracking work, defects and code issues using Kanban and Scrum.
Azure Repos: Git repositories or Team Foundation Version Control (TFVC) for source control.
Azure Pipelines: Build and release services that support CI/CD.
Azure Artifacts: Teams can share packages, including Maven, npm, NuGet, and others, from private and public sources and integrate them into pipelines.
Azure Test Plans: Tools for manual or exploratory testing and continuous testing of applications.
Azure DevOps is a team task management (e.g., Jira), Git Repository (e.g., GitHub or GitLab), CI/CD Pipeline system (e.g., Jenkins or TeamCity) and artifact repository (e.g., Artifactory) all rolled into one hosted SaaS tool. It is essentially a companion to Azure Portal (separate but access managed via the same Azure Active Directory).
Since originating as part of the Microsoft Team Foundation Server (hosted by Microsoft), it has evolved into a competent, pleasant-to-use integrated system that is free of bugs. Notably, Azure DevOps doesn’t contain features that cover all the functions required by a typical Enterprise DevOps team. While enterprise DevOps includes maintaining and operating production environments, Azure DevOps doesn’t offer this capability.
Understanding Sitecore Azure DevOps
Sitecore is a digital experience platform that supports modern website development with the latest tools. Organizations are given everything they need to create content for any channel using headless functionality. Meanwhile, developers can choose any framework or technology that suits their needs. This provides businesses the freedom and flexibility to succeed in today’s fast-paced and content-driven environment.
DevOps plays a crucial role in the continuous delivery of experiences today. IT teams are able to collaborate effectively, identify potentially system-crippling errors, respond to team requests and ensure that system performance remains intact.
Developers need a system that enables them to manage code and manage code releases in Sitecore. Numerous tools support these functions, both paid and open source. However, using Azure DevOps is the simplest to get started if you are hosting your site in Azure.
Why Use AzureDevOps
Organizations should use Azure DevOps for Sitecore if they host their Sitecore website in Azure. The reason is that the incremental cost is low, no software setup is required, and you can provision access from Azure Active Directory.
There is no need to use Azure DevOps for CI/CD pipelines or as an artifact repository unless your website leverages Azure resources. Sitecore is a 1system with many different components. However, the component that contains the specifics of your website is contained in a .NET Framework application that requires it to be hosted in Internet Information Services (IIS) on Windows.
How to Use Azure DevOps With Sitecore
In order to understand how you will use Azure DevOps, you need to determine what your deployed environments will be. There are a few options:
Windows Virtual Machines: With IIS running on them
Azure App Service: Hosted IIS website running without you managing the underlying OS or servers
Kubernetes: For containerized application production environment
Windows Virtual Machines (VMs)
Your AzureDevOps would run pipelines to compile, run unit tests, run code scans, and publish artifacts to the Azure DevOps artifact repository. Then push artifacts to the VMs, recycle app pools, run item serialization syncing process using Unicorn or Sitecore CLI, and trigger cache clearing.
Azure App Services
Azure DevOps runs pipelines to compile, run unit tests, run code scans, and publish artifacts to the Azure DevOps artifact repository. Then push artifacts to the App Service slots, run item serialization syncing process using Unicorn or Sitecore CLI, then swap slots and trigger cache clearing.
Azure DevOps runs pipelines to compile, run unit tests, run code scans, build images, and push images to ACR (Azure Container Registry). Then manage Azure Key Vault to Kubernetes secrets, and apply YMLs to Kubernetes to force Kubernetes to create new pods based on the new images.
Benefits of Using Sitecore with Azure DevOps
Azure DevOps has become a first-class citizen in the DevOps realm and is a no-brainer for managing solutions based on the Azure cloud. Some of the benefits of using Sitecore in conjunction with Azure DevOps include:
Reliability: Azure DevOps provides global availability, scalability, and reliability. This reduces the number of outages that can affect your Sitecore platform, as well as the likelihood of human error negatively impacting the software development lifecycle.
Access to the Latest Features: Azure DevOps users get access to new features every 3 weeks. Microsoft is a transparent organization and has published the product roadmap plus committed to rapidly iterating on the feature-set.
End of the Upgrade Cycle: Upgrades are a regular headache for organizations using on-premises CI/CD tools. However, Azure DevOps helps with automated upgrades removing the constant cycle that teams often find themselves locked into.
Gated Promotions: Approval is required by specific individuals to push anything to a higher environment.
Built-in to Azure Portal: Provision access using the credentials you already give access to for Azure Portal. You can also easily access your Azure Portal resources (VMs, VNets, and databases)
Bundled Services: Services such as Code Repository, Pipelines, Artifact Repository/Nuget Feed, and Task Management / Sprint Planning are built into Azure DevOps and available for use whenever you need them.
Cost-Effective: The cost of Azure DevOps is relatively low compared to other alternatives to use with an Azure Portal deployment.
Source Control: The advent of YML for Pipelines makes it easy to source control your Pipeline process. The old-style pipelines in Azure DevOps required a GUI to build and could not be source controlled or shared.
Git Storage: The advent of Kubernetes allows all your Infrastructure to be described as YML and stored in a Git repo.
How Northwest Natural Enhanced the Employee Experience
Northwest Natural (NWN) needed more stability for their existing Sitecore implementation of Sitecore as they were beginning to see problems that impacted performance. Oshyn recommended upgrading their Sitecore instance, removing unnecessary code, and implementing architecture and platform-related updates in this situation.
NWN was successfully upgraded to Sitecore 10.2, including upgrades to code, jobs, scripts, and security patches within the platform. New environments were also built using Kubernetes/ARM Templates and CI/CD implementation in Azure DevOps. Now NWN has a fantastic web application, and their platform runs more efficiently and reliably.
Read more in the NWN case study here.