Microsoft recently announced Azure Managed Service Identity (MSI) which in a nutshell, is a way to avoid storing credentials in code or in locations such as the web.config, the app service settings etc…thanks to an automatically provisoned Service Principal (bootstrap identity) that you can leverage using the App Service (or other components supporting MSI).
As Microsoft highlights in the above article, even Azure Key Vault didn’t really solve the problem of disclosing credentials since your code needed credentials to get access to the Vault. Therefore, any developer could have written a console app, connect & retrieve the actual secret values from the Vault.
Recently, I wrote a short blog post on how to provision Azure Active Directory (AAD) Apps in a highly controlled way, so I will not repeat all I said there, but it a nutshell, the idea is to make sure DevOps can automate the creation/update/deletion of AAD Apps entirely from VSTS while not being able to interact with non-DevOps apps.
Here is a step by step process on how to get there. Note that almost everything could be done from VSTS but, often, in organizations, the below tasks will involve different people & even different teams, hence the reason I decouple all the tasks. Continue reading
Besides promoting a new collaboration mindset between development & operations, DevOps’ primary goal is to use tooling in order to reach continuous development as well as continuous deployment. As it implies a cultural change, it often cristalizes tensions between the involved stakeholders but I’m not gonna debate about its current effectivness and reality within the enterprise, instead, I’m going to focus on automated deployments of Azure Active Directory Applications.
With the recent publishing on my 6th episode, I just closed the chapter on using NLP with Azure Cognitive Services. In this course, I explain little by little how to build a chatbot that deals with various tasks, each task being associated to one of the Cognitive Services.
As the NLP chapter is closing, here is a recap of what I covered so far:
Episode 1 In this episode, I will draw the AI landscape of the Microsoft ecosystem. I want you to be a little more familiar with fundamental topics such as Machine Learning, Deep Learning and Natural Language Processing which might sound a little bit confusing for many developers. Once the high-level concepts will be covered, I’ll make an introduction of the Azure Cognitive Services and I’ll try to quickly answer the “what’s in it for me” question out of real world examples mapped to the various services. If you’re a hardcore developer, you might be disappointed by this episode as I will not show code yet, but by the end of it, you should understand when to use what and how to manage customer expectations. For the “how to bits”, I invite you to join me at Episode 2. Continue reading
So far in this course, we saw the high level AI concepts and we build a chatbot bound to a LUIS app. We also saw how to take advantage of the Linguistic Analysis API to perform natural search queries against external data sources. In this episode, we will send documents to our chatbot that will automatically tag and route them into a document management system thanks to Text Analytics, Entity Linking & Language Understanding Intelligent Service.
In the 3 first episodes, we have been building a minimal chatbot and we created the LUIS app that fullfills the following purposes: the ability of handling casual chat with end users, the ability to respond to IT-related questions, the possibility for users to view and report incidents, to find documents and to find experts who can help them on specific matters. Now that you got familiar with intents, entities, active learning and LUIS’training, it is time to implement the actual actions.
In this episode, we see how to take advantage of QnA Maker to handle the casual chat and IT knowledge base functionalities our chatbot has to deal with. I will also highlight the strengths and current limitations of QnA Maker.
You can watch this episode and the others on Channel9