Follow Us

Introducing Azure DevOps Project

In today’s world, organizations need to innovate and get to market faster. This requires learning latest technologies, using them in your product and deploying at a faster pace.

Adopting Azure is one such scenario. Existing on-premise apps are getting migrated to Azure and new applications are getting developed to take advantage of Azure services. But there are multiple challenges that can slow down the learning and implementation. For example, which Azure Resource to use, how to create and configure it, how to deploy an app to the newly created resource. The deployment steps themselves differ based on the choice of Azure resource and the framework used for developing your application. Similarly, for getting your application in the hands of customers faster you need a DevOps pipeline and a setup to monitor the app.

We are happy to announce the public preview of Azure DevOps Project. Azure DevOps Project helps you launch an app on an Azure App Service of your choice in a few quick steps and set you up with everything you need for developing, deploying, and monitoring your app. Creating a DevOps Project provisions Azure resources and comes with a Git code repository, Application Insights integration and a continuous delivery pipeline setup to deploy to Azure. The DevOps Project dashboard lets you monitor code commits, builds and, deployments, from a single view in the Azure portal.

Key benefits of a DevOps Project:

Get up and running with a new app and a full DevOps pipeline in just a few minutes

Support for a wide range of popular frameworks such as.NET, Java, PHP, Node, and Python

Walkthrough
When setting up a new DevOps project, you are first presented with an option to either choose from a set of sample apps developed by using .NET, Node.js, PHP, Python, Java or bring your own code.

You can choose a sample application in the framework of your choice. For example, you can choose either a simple Node.js application or an app developed in Express.js which is a popular web framework for Node.js.

The next step is about selecting the Azure service to which you want to deploy the application. At the moment, we support Web App (both Windows and Linux) and Web App for Containers. We are continuously adding support for more Azure services and app frameworks and soon you can expect to see support for Virtual Machines and Container Service.

Once you have selected the Azure Service it is time for the last step where all a user needs to enter is the Azure DevOps Project name. All other fields are auto-filled with the right default values. If needed, you can change the defaults for both VSTS as well as Azure. For example, you can choose to use an existing VSTS account or create a new VSTS account in a region of your choice. Similarly, you can change Azure settings like subscription, pricing plan, Web App name, the location of Web App etc.

Validations are done to make sure right values are entered and failures at a later point are avoided.

Behind the scene
By completing a few quick steps, now you have a DevOps Project which includes:

Git repository with application code. You can start building your application right away by cloning the application code locally and using an IDE of your choice

The necessary Azure resources. For example

An Azure DevOps Project

Web App for Containers or Web App on Windows

Application Insights

Azure Container Registry

Automated CI/CD pipeline

Application deployments will be done through continuous integration/continuous deployment (CI/CD) capabilities of Visual Studio Team Services.

With an auto-generated and fully integrated CI/CD pipeline, your apps are updated each time your source code changes.

The right CI definition to build an application written in the framework of your choice. For example, an Express.js application which runs tests, updates npm packages and publishes the artifact.

CD definition which deploys to Azure service you selected.

Complete end to end traceability from code change to deployment. For example, if a bug is fixed you can track what code change fixed the bug and when that code change got deployed to production.

Application Insights integration for monitoring your application to:

Help you diagnose issues and

Understand how application is getting used by your end customers

After the setup is complete you can navigate to the DevOps Project Dashboard by using the Azure portal notification.

From the DevOps Project dashboard, you can monitor your CI/CD pipeline, Application Insights data and navigate to the relevant Azure or VSTS resource.

Grow-up scenarios
With the creation of Azure DevOps project now you have a VSTS Project with a fully automated Continuous Delivery pipeline as well as all the required Azure resources. You can now use this VSTS account to:

Customize your build and release pipeline – ex. add a test environment to your pipeline to validate before going to production

Grow up with database deployment support

Use pull requests to manage your code-flow & keep your quality high

Track your projects backlog and issues right along with your application

The Azure DevOps Project aims to significantly lower the learning curve and make it easy to create an Azure resource with a working app deployed by using a DevOps pipeline, all in just a few minutes. In the next blog post in the Azure DevOps Project series, we will talk about the Bring your own Code feature.

@Lexi: this new “tool” is actually just an aggregation of different tools. This tool integrates VSTS (with GIT, Build and Release), Azure Ressources for Applications (e.g. Web Apps) and Application Insights for logging.

The question being why would someone not use the existing VSTS pipeline? What are the clear advantages and use cases to do it via Azure DevOps project?
Also, do you have any plan to “import” an existing project from VSTS which uses TFVC?

And also, how would you “tag” the Azure resources using ADP? View this – I deploy my Azure resources for multiple projects via PowerShell and tag them for project cost identification at the same time. How does it play out here? I dont see any field or APIs to use it via PowerShell for example? So does it mean that I cannot use Azure Powershell or any sort of script to do this?

@Carry this is valuable feedback. Right now there is no option present in the API or UX. If it is ok with you, I will like to connect and understand your scenario better. Do you also use tags to organize Azure Resources in different environments liked Dev/Test/Prod?

ok guys, let me just double check: this feature does not support service fabric for now, right?
The broad question: since many projects have quite unique/custom deployment scripts, will DevOps project support such scenarios in future?