Microsoft Connect(); 2017 online event is nearly over, and so far we’ve heard lots of exciting news from Microsoft about Azure and changes to improve their support for DevOps. In fact, DevOps has been a big part of the theme this year.
So let’s recap some of the announcements that have been made…
Azure DevOps Projects
If you’re new to Azure and VSTS, it can be difficult to know how to begin building a DevOps pipeline thatand configuring everything to deploy to Azure. Microsoft is introducing the Azure DevOps Project public preview to try to solve that. If you open https://portal.azure.com/#create/Microsoft.AzureProject, you will be presented with a Wizard that will walk you through the process of creating a code repository and CI/CD pipeline for a new application. You can choose from a set of sample applications in .NET, Node.js, PHP, Python, Java, or pure HTML … or bring your own code. The wizard will create a Git Repository with the code and a CI/CD pipeline in VSTS. It will also create all of necessary the Azure resources, including Application Insights monitoring. This promises to make it easier for everyone to get started.
Azure Functions in Visual Studio
Although it’s only available as part of the Visual Studio 2017 15.5 Preview, Microsoft has made huge improvements in the development experience for Azure functions. One of the most anticipated changes is the ability to create .NET Core based Azure functions which take advantage of the performance improvements in the new platform. Another incredibly helpful feature is mismatched-runtime detection. Visual Studio can now detect that your project is using an older version of the runtime and prompt you to update your project to match the Azure environment. Microsoft has published a blog post which covers this in more detail, so be sure to read it!
VSTS Symbol Server
If you are migrating to VSTS from TFS, one feature that has been noticeably absent is the support for a Symbol Server. If you’re not familiar with it, a Symbol Server is a critical part of your debugging toolset. It tracks the build-time symbols (PDB’s) which map the binaries your building back to the source code. Without it, you are often forced to distribute the PDB’s with your application to properly debug issues.
With a symbol server, it’s possible to automatically download the symbols for code while it is being debugged. You can then easily step through the source code to find the root of a problem. Microsoft announced that VSTS Symbol Server is now available in public preview. The Index Sources and Publish Symbols task now includes a Publish symbols option which enables this support from within VSTS.
To support this change, Visual Studio 2017 Update 5 now includes support for consuming symbols directly from VSTS with a New VSTS Symbol Server Location icon. The steps for connecting are described on MSDN.
The new Symbol Server Preview is part of the Package Management extension for VSTS.
Kubernetes in VSTS?
If you follow Blaize Stewart’s blogs, then you’ve already learned a lot about the power of managing your containers with Kubernetes. Microsoft announced support for a new, integrated experience inside of Visual Studio called Visual Studio Connected Environment. This new feature makes it easier to connect to a Kubernetes cluster and debug your code from your local environment. The more interesting news is that this functionality is also supported from VS Code. This feature is currently in preview. You can apply to join the preview and learn about this new feature in detail from the here. Be sure to check out Scott Hanselman’s demo.
Pipeline as Code
A frequently asked question during any VSTS demo is whether or not we can still store the build definitions in source control. Although we don’t miss having to edit the builds as a Windows Workflow XAML file, we often find ourselves missing the ability to check in the definition of the build and release pipeline. One of the other announcements at Connect(); was support for storing a YAML file called .vsts-ci.yml in your repository which will be converted into a build definition in your repository, configured for continuous integration. The feature is definitely a preview, but it’s great to see the team working to make it possible to store the build and release definitions inside your code repository. You can learn more about this feature here.
VSTS has also been recently updated with a YAML template for creating a new Build definition. This template allows you to define the build template from a YAML file stored anywhere in the repository (instead of manually adding tasks).
Building a release pipeline, sometimes you want to have automatically applied criteria which determine if a release is a high enough quality to allow it to continue deploying. The new Release Gate support makes this possible. Gates can be defined as pre-deployment or post-deployment conditions in your environment. Once enabled, the gate will use an external service to automatically determine whether the release meets the requirements necessary for deployment.
Welcome macOS and iOS!
The Xamarin tools have made it easier than ever to create applications that target all platforms, including Android and iOS. Unfortunately, if you wanted to setup a CI/CD pipeline to build the applications you either needed to rent a Mac from a cloud service provider or install a private agent on macOs. If you’ve been playing with VSTS build definitions in the last 48 hours, you may have noticed a new hosted agent has appeared — the Hosted macOS Preview. This preview makes it easier than ever to build your code for iOS and macOS from within VSTS. These agents are currently stored in third-party data centers in the US. After each build, the macOS VM is re-imaged to ensure that your data does not remain on the agent. This is especially important if you use VSTS from outside the United States, since it results in your data briefly being copied into a US data center. This will change in the future.
New Build templates have also been added, so it’s very easy to get started.
Updated Guidance (Free eBooks)
Microsoft has two free eBooks providing architecture guidance for developers. These eBooks cover topics that will be interesting to anyone doing modern cloud development work:
- .NET Microservices: Architecture for Containerized .NET Applications, covering microservices and Docker container based applications.
- Architecting Modern Web Applications with ASP.NET Core and Microsoft Azure, providing guidance on using ASP.NET Core 2.0, EF Core 2.0, and Microsoft Azure to build modern web applications.