Recently Microsoft announced they have 13 million daily users in Teams outpacing Slack. You can read about this announcement here: https://www.theverge.com/2019/7/11/20689143/microsoft-teams-active-daily-users-stats-slack-competition. There are many reasons Microsoft Teams has seen tremendous growth since its launch. I use Teams daily across all of my projects. In this post, I am going to write about one that has been exciting and useful for me. In this post, I am going to explore the integration with Microsoft Teams and Azure DevOps.
Are you working on Azure? If so, you are
probably working with ARM Templates for Infrastructure as Code (IaC). Azure
DevOps can help you centralize DevOps teams IaC ARM Templates. In addition, you
will want to use VS Code and Microsoft Teams. There are many extensions in VS
Code for ARM Templates. With Teams, you can integrate with Azure DevOps to
track commits, pull requests, and even 2-way integration with Kanban boards.
Within Microsoft Teams you can add what is called “Apps”. These Apps are how you extend Teams and or integrate with other systems. This is how you integrate with Azure DevOps. Before we dive into this there are two important prereqs to note.
#1 You can only
integrate a Teams channel with Azure DevOps when they both exist in the same
Azure Active Directory tenant organization.
#2 Your Teams needs to
be a part of an Office 365 account. The free version of Teams does have an
Azure Pipelines app but does not have the Azure DevOps app that gives you full
2-way integration. The Azure Pipelines app is for notifications while the Azure
DevOps app is for full collaboration.
Here are the high-level steps to integrate a
Teams channel with the Azure DevOps App.
In your Teams channel go to Manage Team and
then click on Apps.
Click on More Apps.
Search for Azure DevOps and click on it.
Input your Teams channel in the field next to
Add to a team and then click on Install. This will load the Azure DevOps app
into your teams’ channel. Note this needs to be done for each teams’ channel if
you want this integration across multiple channels.
Next click the Set up button next to the
feature you want to configure and use. The following screenshot shows the 3
Today I received the official email from Microsoft that I was awarded for the 8th year as a Microsoft MVP!
When I was first awarded into the MVP program back in 2012 it was an honor and a surprise to join the ranks with so many talented people from all over the world. I also had no idea I would have an 8 year run in the program.
Time has flown by and it has been a great adventure so far. Even in the 8th year of being awarded as a Microsoft MVP it never gets old. You never know until the day if you made it back in or not and the novelty of it never wears off.
Of course, what makes being an MVP special is the great friends I have made over the years withing in out of Microsoft. Something else different about this award is I am no longer a Cloud and Data Center Management MVP I am now an Azure MVP!
I am looking forward to the 2019-2020 MVP award year with some interesting things already in the works such as a book on Azure Kubernetes Service (AKS), speaking and several conferences and user groups on Azure, and community projects.
As always I am honored to remain a part of MVP ranks. I will continue to do all that I can in the Azure, Azure Stack, CloudOps/DevOps communities this year.
It has been a while since presenting on Azure Stack. On June 26th I will be presenting on “Azure Stack 101 in 45 minutes” at an Azure Virtual Day Camp for a D365 user group. Here is a link to the main site:
In July I will be co-presenting with Kyle Weeks at the Minnesota Azure User Group on Azure Management. The session is titled “Scale Matters: Policy + Azure Management Groups”. Come check out this session if you want to go through what Azure Management Groups are, how they scale to any complexity and the best part… how to do this with policy configurations + Azure blueprints + RBAC. Here is a link to register for the meeting:
I want to share here about Docker training I will be attending later this month June 24th/25th, 2019. It is a Docker JumpStart Virtual Workshop. I am excited about this training because it will be delivered by a fellow Microsoft MVP’s Dan Wahlin and Mike Pfeiffer. Also Dan Wahlin is a Docker Captain.
For those that don’t know a Docker Captain is like a Microsoft MVP but for Docker. There will even be some Kubernetes covered on day 2. This is shaping up to be some great training.
As of now there is still room in this class and its less than $300 USD! If you have wanted to get up to speed on Docker this is a good low cost way to do it. Here is a link to sign up: Docker JumpStart Workshop
Here is what will be covered across the 2 days (from the training website):
For anyone working with Azure sooner or later, you will end up authoring Azure Resource Manager (ARM) Templates. Working with ARM templates, in the beginning, can seem painful but once you get the hang of them it is a great way to build out and deploy your Azure as code. In this blog post, I am not going to go into detail on authoring ARM Templates. In this blog post, I am going to list out the extensions that I use in VS Code to enhance the ARM Template authoring experience. Recently whenever I am demoing or showing others my ARM Templates in VS Code they ask me how they can also make their VS Code look like mine when working with ARM Templates. I figured it makes sense to write up a blog about how I have my VS Code configured for ARM Templates.
If you are not using VS code, you should change that and start using it today! I use it pretty much for any scripting such as PowerShell, coding, any time I need a text editor and more. I even use it to work directly with Azure via cloud shell and to work with Docker containers and Kubernetes clusters. Here is a quick snapshot of what VS Code is for anyone not familiar with it. VS Code is an open source – code editor developed by Microsoft that is cross-platform able to run on Windows, Linux and macOS. At a high level here is what VS Code includes:
Has support for hundreds of languages.
Has Integrated Terminal.
Powerful developer tool with functionality, like IntelliSense code completion and debugging.
Includes syntax highlighting, bracket-matching, auto-indentation, box-selection, snippets, and more.
Integrates with build and scripting tools to perform common tasks making everyday workflows faster.
Has support for Git to work with source control systems such as Azure DevOps, Bitbucket and more.
Large Extension Marketplace of third-party extensions.
can see there is a ton of stuff you can do with VS Code. VS Code is a must have
for anyone doing CloudOps work with Azure and more. Now let’s look at the VS
Code extensions I use for ARM Templates. I am including the link for each
extension I will talk about. You can also simply load these right in VS Code.
The Azure Resource Manager Tools extension provides language support for ARM Templates and language expressions. It can be used to create and edit Azure Resource Manager templates. High-level features include:
ARM Template Outline.
Support for built-in ARM functions, Parameter references, Variable references, resourceGroup() properties, subscription() properties, and more.
Bracket matching, Errors/Warnings and more.
natively supports JSON. Azure Resource Manager Tools makes VS Code ARM Template
aware. One of the biggest benefits it gives me is the ARM Template Outline
making it much easier and faster to navigate the sections of an ARM Template.
Here is what it looks like.
Next up is two
extensions that both should be added. It is Material Theme and Material Theme
extension gives you some very cool themes and works in combination with the
Azure Resource Manager Tools extension to give you the new color coding of your
ARM Template code. The color coding highlights different parts of the ARM
Template code such as parameters, variables, functions and more making it much
easier to read through all of the code in ARM templates. Here is an example:
This extension adds
a nice set of icons to your VS code. This extends beyond just ARM Templates.
Again this makes it visually easier when navigating around VS code and ARM
Templates. I typically use a PowerShell deployment script to deploy ARM
Templates from VS Code into Azure. This icon them makes it easy to see ARM
Template files and PowerShell files.
Here is a what it
looks like without and with the Materials Icon Theme.
The final extension I want to cover is ARM Snippets. This extension was developed by Sam Cogan (@samcogan) a fellow Microsoft MVP. In addition to the aforementioned marketplace link for this extension, you can find Sam’s Github repo for it here https://github.com/sam-cogan/arm-snippets-vscode.
This extension adds
snippets to VS Code for creating Azure Resource Manager Templates. This is
helpful when you are working in VS Code and need to add something to your
template for example a parameter, resource etc. You simply type arm and a menu
appears with a list of the available snippets. For example if you want to add a
virtual machine you could type arm-vm and a list of Windows and Linux VM
resources snippets will appear. Click on the one you want and it will add the
code block for you. This makes authroing templates much-much faster. This is
shown in the following screenshot:
Skeleton ARM Template (Note: This will load a skeleton for a fresh new ARM Template.)
Windows and Linux Virtual Machines
Azure Web Apps
Virtual Networks, Subnets and NSG’s
Network Interfaces and IP’s
Note that the ARM Snippets extension is derived from the Cross Platform Tooling Samples. The Cross Platform Tooling Samples are a set of templates, snippets, and scripts for creating and deploying Azure Resource Management Templates in cross-platform environments. It sounds like this is updated more often and worth looking into loading. It does not have a friendly installer though like the ARM Snippets extension does though. Here is the link to the Cross Platform Tooling Samples Github repo: https://github.com/Azure/azure-xplat-arm-tooling
a screenshot of what your ARM Templates will look like after loading all of the
extensions mentioned in this blog post into your VS Code.
That wraps up this
blog post. I hope this is helpful to those out there working with ARM Templates
in VS Code. If you have any additional tips to share please add a comment.
I recently read a Career Advice for IT professionals in 2019 article and was reminded again by a friend and fellow MVP’s on his blog that “Change is always constant in IT.
Part of being an IT professional is keeping an eye on and ramping up on new technology. Change in IT is constant and it is critical to explore new technology so you can bring innovation to your organization and ensure you are ready if the business decides they want to use a specific technology to gain an edge in the market.
With all the excitement around Blockchain, I decided to spend time ramping up on Azure’s Blockchain technology specifically Azure Blockchain Workbench. Azure Blockchain Workbench is a way for developers and IT pros to get A blockchain network up and running quickly.
Once Azure Blockchain Workbench is up and running IT pros can administrator the network and developers can dive right into building blockchain apps. Most people that have heard of blockchain are familiar with cryptocurrency such as Bitcoin. Most people don’t know of or associate blockchain with smart contracts. Azure Blockchain Workbench powers smart contract technology. A smart contract is a self-executing contract between two or more parties involved in a transaction. Getting started with Blockchain can seem intimidating but with Azure Blockchain Workbench it is not hard to get started. I wrote a white paper that you can use to get started and takes you beyond cryptocurrency into the world of smart contracts using Azure Blockchain Workbench.
The white paper covers the following:
Explorers blockchain beyond cryptocurrency
Has an in-depth overview of Ethereum and smart contracts
Helps identify when and what to use blockchain for?
Almost every day when you go to a news website, a news program on the radio or news on the TV you can expect to hear some mention of Cryptocurrency and increasingly something about Blockchain.
Blockchain has a strong buzz and yet it is still misunderstood by many. It is an exciting time for technology and blockchain is one of the many reasons why. Blockchain is a public distributed digital ledger. Transactions between parties are processed in an efficient, verifiable and immutable way using cryptography. Transactions are tracked without a central entity such as a bank processing and keeping a record of the transactions. The ledger in a Blockchain is distributed across many nodes in the Blockchain network. Each time a transaction occurs the ledger is reconciled across all the nodes.
The Blockchain you typically
hear about is related to some cryptocurrency such as Bitcoin, Litecoin, or
Ripple. Blockchain goes way beyond this and is a technology that is being
widely explored in use by some enterprises. Here are some examples of
Blockchain in use within the enterprise. Microsoft’s Xbox uses Blockchain to
deliver royalty statements to game publishers, FedEx uses Blockchain for
storing shipping records, and 3M is using Blockchain for a new
label-as-a-service concept. The commonality those examples is that they are
using Blockchain smart contract technology.
A smart contract is a self-executing contract between two or more parties involved in a transaction. A smart contract holds each party in the transaction responsible without the need for a third-party authority. Smart contracts are essentially code running on top of a blockchain that are digitally facilitated, verified, and auto-enforced under the set of terms laid out within the contract.
Opposite of Blockchain used
for cryptocurrency Blockchain used for smart contracts enable more complex
scenarios beyond the exchange of digital currency. To illustrate an example of
a Blockchain smart contract think about being able to buy and sell cars without
a DMV processing the exchange of titles but instead the exchange of the title
being verified and transferred digitally.
In today’s fast-moving world
of technology, it is important to be able to take your solution from idea to
MVP aka 0 to 60 as fast as possible. That is the goal of the Azure Blockchain
Workbench (ABW). As shown in the following image with ABW you can literally go
from idea>consortium blockchain network>code/use pre-built blockchain
app>Blockchain app ready to use in a short amount of time.
When I first started
with Blockchain I was able to go from nothing to a fully functional Blockchain
app in a couple of hours using ABW. As seen in the previous image ABW is made
up of a combination of Azure services and capabilities. The main services
An App Service Plan with two web apps and two web APIs
An Application Insights instance
An Event Grid Topic
A couple of Key Vaults
A Service Bus Namespace
A SQL Server with a SQL Databases
A couple of Azure Storage accounts
Two Virtual Machine scale sets that consist of the ledger
nodes and workbench microservices
A couple of virtual Network
resource groups that contain Load Balancers, Network Security Groups, Public IP
Address, and Virtual Network, VNet peering, and Subnets
Other components leveraged by
ABW are Azure Active Directory for identity, Azure Monitor (optional), and log
analytics workspace for logging (deployed with Azure Monitor), a mobile app for
both iOS and Android along with a REST-based gateway service API to integrate
to blockchain apps. Workbench provides the infrastructure needed to build and
deploy blockchain applications so when you deploy ABW it includes everything
you need. As of now ABW only supports Ethereum as its target blockchain.
Microsoft has plans to add Hyperledger and Corda Blockchains in the future.
ABW is designed to make it
easy for developers to bring Blockchain to the enterprise. ABW is deployed in
the Azure Portal via a solution template. You can deploy Ethereum or attach to
an existing one. After the Blockchain Workbench is deployed developers have the
option to either create a Blockchain app or use one of the Applications
and Smart Contract Samples from a repository maintained by
These Blockchain apps consist of a configuration metadata and smart contract. The configuration metadata file is in JSON format and determines the multi-party workflow the smart contract is in a language named Solidity and determines the business logic of the Blockchain application itself. The configuration and smart contract together make up the Blockchain application user experience. The Applications and Smart Contract Samples can be used as is to take Blockchain for a test run or can be modified to fit an organization’s specific need. As an example, some of the information you can modify with the configuration is application name, display name, state, and application roles.
As you can see it is relatively easy to get a Blockchain application up and going. Another real benefit to running a Blockchain application on Azure is the integration points with many of the other services available on Azure. Here are a few examples. ABW writes a copy of the Blockchains on-chain data from the Blockchain distributed ledgers to an off-chain SQL database. Developers can connect to this database to work with the Blockchain data for any number of scenarios one of them could be reporting in Power BI. The Workbench has a REST API, Service Bus, IoT Hub, and Event Grid that could be used for integration with other technology such as IoT devices, other systems, and Azure Streaming Analytics to further expand the possibilities. With the Blockchain workbench developers also have access to one of Azures automation tools called Logic Apps opening the door to a world of further automation scenarios.
There is much more to the Azure Blockchain Workbench then can be covered in a single blog. The main point of this post is to show how a developer can go from 0 to 60 within a short amount of time with minimal effort to stand up the scaffolding needed to support a Blockchain app. For a deeper dive into the Azure Workbench it is recommended to download my Blockchain Beyond Cryptocurrency whitepaper once it is released. Thanks for reading. To get started with the Azure Blockchain Workbench visit this link: https://azure.microsoft.com/en-us/features/blockchain-workbench
CloudSkills.fm is a podcast by fellow Microsoft MVP Mike Pfeiffer and veteran in the tech space with 5 books under his belt and numerous courses on Pluralsight. The podcast can be found here: cloudskills.fm. Mike is an all around good guy and I was honored to be a featured guest on one of his podcast episodes. The podcast is weekly with technical tips and career advice for people working in the cloud computing industry. The podcast is geared for developers, IT pros, those making move into cloud.
On this episode Mike
and I talked about managing both the technical and non-technical aspects of
your career in the cloud computing industry. We also discuss DevOps stuff
around Docker, Azure Kubernetes Service, Terraform and cloud stuff around Azure
management including my 5 points to success with cloud. You can listen to the
I’m very excited
Opsgility recently published a new Azure course by me titled: “Deploy and
Configure Infrastructure”. This course is part of the AZ 300 certification
learning path for Microsoft Azure Architect Technologies. More about the AZ 300
certification can be found here: https://www.microsoft.com/en-us/learning/exam-az-300.aspx.
The course is over 4 hours of Azure content!
Description of the course:
In the course learn
how to analyze resource utilization and consumption, create and configure
storage accounts, create and configure a VM for Windows and Linux, create
connectivity between virtual networks, implement and manage virtual networking,
manage Azure Active Directory, and implement and manage hybrid identities.
This year’s summit
was one of the best MVP summits I have been to since being a Microsoft MVP! I
focused on Azure, Azure Stack, containers, and orchestration platforms. That’s
about all I can say about the summit. Everything else is NDA!
On top of all the
learning at the summit it was great connecting with other MVP’s and the
Microsoft teams. This I can share. Here are some highlights from the summit in
It was full of cool
stickers starting off with one for the 2019 MVP Summit.
Here are a some of
the core CDM MVPs in front of building 92 including Bob Cornelissen, John
Joyner, Janaka Rangama, Jakob Svendsen, Sam Erskine, Cameron Fuller, Robert
Hedblom, Dieter Wijckmans, and others.