This is the second part in a series demonstrating how to setup continuous deployment of an Azure Functions App using Azure DevOps build and release pipelines.
In the previous instalment we got an overview of Azure DevOps and of the app we’ll be building/deploying.
Demo app source code is available on GitHub.
Creating Azure Function Apps
There will be two Function Apps created in Azure. One will be a self-contained test environment (with separate Azure Storage account) and to keep things simple they both belong to the same resource group. The other Function App will be the production version. For simplicity we won’t be using slots, proxies, etc.
The two Function Apps are:
- InvestFunctionAppDemo (production)
- InvestFunctionAppDemoTest (test)
The test environment will be used to check the deployment artifacts and as a target to execute functional end-to-end tests against.
Once these two Function Aps have been created in the Portal, all of the deployments will happen automatically from the release pipeline, including setting test/production specific Function App settings.
If you don’t have an Azure account you can currently sign up for free.
Signing Up or Azure DevOps
Now that there are some Function Apps created in Azure to deploy to, you can deploy to them from an Azure release pipelines. To do this you’ll need to sign up to Azure DevOps.
Azure DevOps contains a number of services, in this series we’ll be using the Azure Pipeline service.
An Overview of Azure Pipelines
Azure DevOps is currently free for open source projects and small teams with some limitations on things such as parallel job execution all the way up to 1,000 users for $7,833.26 USD/month. You can find the latest pricing information as part of the product information and compare features of different plans.
You can just use Azure Pipelines on their own, you don’t have to use all of the DevOps services (Boards, etc.).
Some of the features of Azure Pipelines include:
- Build, test, and deploy for multiple languages including .NET. Python, Java, iOS, etc.
- Container build and publish support
- Deploy to clouds including Azure, AWS, and Google Cloud Platform
- 10 free parallel jobs and unlimited build minutes for all open source projects
- Advanced workflow features, testing, reporting, gates, etc.
Azure DevOps Organizations and Projects
Once you’ve signed up for Azure DevOps you’ll need an organization and a project.
“..an organization is a mechanism for organizing and connecting groups of related projects. Examples are business divisions, regional divisions, or other organizational structure. You can choose one organization for your entire company, or separate organizations for specific business units, or an organization just for you.” [Microsoft]
“Each organization contains one or more projects. Each project contains a set of features: boards and backlogs for agile planning, pipelines for continuous integration and deployment, repos for version control and management of source code and artifacts, and continuous test integration throughout the life cycle.” [Microsoft]
Once the project is created, you can navigate to Pipelines section to create and manage build and release pipelines.
In the next part of this series we’ll create an initial build pipeline and get an introduction to defining source-controlled build definitions using YAML.