Do you have to know English to be a Programmer? (Scott Hanselman) - Interesting post... At the end, English may not be a blocker...but you need some base. Otherwise, how could you even read this post!
Writing tests in Postman (joyce) - With all the connected things and all the API in our system, this post shows a brilliant and simple way to test all those external calls.
How we set up daily Azure spending alerts and saved $10k (Mike Larah) - Cloudyn is definitely a must in many cases. I need to see how it manages CSP subscriptions and limited access for clients. This post also shared how to integrate it in Slack, pretty cool.
Azure Event Grid vs Azure IoT Hub: Which is better for IoT? (Chris Pietschmann) - This great post explains both services and then their differences. Both can do most of the time, but when it becomes serious, which one is the best for your scenario?
Azure Virtual Machines Anatomy (Vincent-Philippe Lauzon) - This post is an excellent biopsy of a virtual machine, it explains every part one by one.
User accounts made easy with Azure (Andrew B Hall) - Excellent post showings how easy it is to integrate user management in our app. I wish I had that when I started my last portal...
How to uninstall Scrum (Erwin Verweij) - When you will read that post (because you must read it... Seriously), you will smile, giggle and maybe even laugh.
Cloud
Azure Tips and Tricks Part 14 - Generate SSH public key to log into Linux VM with Cloud Shell (Azure Tips and Tricks Part 14 - Generate SSH public key to log into Linux VM with Cloud Shell was published on September 11, 2017.) - Doing a remote desktop on a Windows VM is trivial, but doing the same thing on a Linux machine required just a little more. After reading this post will be a walk in the park.
Why is Serverless Extensibility better than Webhooks? (Bobby Johnson) - A useful post that jumps right in the middle of the debate about the Webhook and serverless. Both are good but planning (as usual) is worth it.
Programming
API Versioning with Azure API Management (Darrel Miller) - Great post that helps to find the peace, or at least make your ideas, about what kind of rules, you should follow.
Microservices: The Good, the Bad and the Hype (Jennifer Riggins) - Nice post that explains some challenges when doing serversless. Because yes, it's a great architecture plan, but it's not magic.
Microsoft Azure Stack is ready to order now (Mike Neil) - It worth the time we wait, now hybrid solutions will be so much more simple to create. And I will definitely try that ASDK (dev version)
Nested Virtualization in Azure (Joy Fan) - A VM in a VM, it does sound like the movie Inception, but it's, in fact, very powerful.
Push your images to Azure CDN on publish with gulp (Shayne Boyer) - We all understand that CDN could seriously help our web application. Well, this post will show you that it could be really easy to implement and integrate to your CI/CD.
Migrating to Azure SQL Database (Gavin Payne) - Very interesting and complete post that regroups references and gives details about some of the alternatives when it's migration time.
Tips & Tricks: Cost savings using Logic Apps (Rene Brauwers) - Very interesting post where the author did the exercise of comparing different scenario's performances and prices.
Programming
What is Kubernetes? An Intro for Beginners (Paul Burt) - This post is the perfect starting point to know what is Kubernetes are and understands what it can do for you, without getting deep technical.
Planet scale aggregates with Azure DocumentDB (Aravind Ramachandran Program Manager) - Fantastic news that was requested a lot by all the users. Get all the details in this post about all these new capabilities.
Announcing the public preview of Azure Advisor (Shankar Sivadasan) - This is definitely the most asked question from clients: how can I optimize my solutions. I was very positively surprised by the quality and precision of the suggestions of the advisor service. It's a must.
Creating a New View Engine in ASP.NET Core (David Paquette) - Interesting post , where the Asp Monsters are sharing their experience building a view engine. Pretty cool.
Getting to Know Containers (Alexandre Brisebois) - This post answers questions like: why? How? and why now?
Azure Subscription Migration to CSP (Kirill Kotlyarenko) - Excellent post that explains the differences between the different types and how to migrate ... with a minimum of pain.
New lower Azure pricing (Takeshi Numoto) - Really good news more VMs types and lower prices.
Storing and using secrets in Azure (Bertrand Le Roy) - This p is great tutorial that explains all h steps to configure use the Azure Vault, when our secrets need more then sits in a config file.
Avoid ORDER BY in SQL Server views (Aaron Bertrand) - Sometimes we need workarounds to bend some services to our wishes, but we must keep in mind the real best practices.
Fixing Azure Portal Errors - Errors are inevitable, this post explains how to workaround most of them and when nothing works how let the support team knows.
Happiness is DevOps’ Cornerstone (Alexandre Brisebois) - Interesting post that asks a lot of questions... I would like to see some graph or pie chart about our answers.
5 Habits that Help Code Quality (View all posts by Erik Dietrich) - Yet another post about how to code better, but this one is refreshing. It explains why the opposite would be harmful and also give us a training plan for better chance of success.
What’s in your highlights folder? (Marc Gagne) - Because life is not only mistakes and bad luck.Here good tips to help you giving some sunshine into your life when needed.
Check out Azure Test Drives in preview (Bryon Surace) - If you wanna test an application on Azure without subscription or anything... Look at test drives.
You know that image where you see people pulling a cart with square wheels, a man on the side wants to show them a circle wheel but the group reply they are too busy to care... Well, that was me with Azure Resource Manager (ARM). I knew it was good, but it looks too complicated, so I was waiting. Last weekend, I decided it was enough I needed to learn it! Right after few minutes, you cannot imagine my disappointment! It's so simple, so powerful and also so fast. This post explains how to deploy an ARM template, and how it works.
5 easy steps to deploy our first ARM template
To get started the easiest way possible I decided to use Visual Studio. For this sample let's create simple Windows Virtual Machine (VM). Only five steps are required to do it:
Step #1 - Create an Azure Resource Project
From Visual Studio create a new project of type Azure Resource Group. Be sure to have already installed on your machine the latest version of Azure SDK and Visual Studio updates.
Step #2 - Select the Arm template
This is where we select what we want in our template. Many options are available in VisualStudio and a lot more can be found on Github at: Azure Arm Git Template. In our case, let's select the sample Windows Virtual Machine, and click the Ok button.
Step #3 - Deploy the new template
Visual Studio will now generate multiple files, we will come back to it later, right now we will only deploy our solution. Right-click on the project et select Deploy.
Step #4 - Configure the deployment
Our first deployment is mostly ready, we just need to specify few details like the subscription and the resource group. Once you click Deploy, one last thing will be asked: the adminPassword.
Step #5 (the easiest one) - Enjoy
Voila! After few minutes, the virtual machine will be created, and we should be able to connect remotely to it.
Let's explain the magic
When the project was created, three folders were populated: Script, Template, and Tools. The last one is a bit obvious, it contains AzCopy, a tool to copy files. If you don't know AzCopy, you can learn more in a post I wrote recently.
Open the Deploy-AzureResourceGroup.ps1 contained in the Scripts folder. It's this script that will do all the hard lifting to deploy our rescourceGroup. If we look a bit closer, you will notice some parameters are declared, at the beginning of the file. Two of then should catch our attention.
TemplateFile is the path of our template (the one we selected previously), and the second TemplateParametersFile will contained all the parameters values to fill the blank of our template. This will be especially useful to deploy the same template in a different environment. In fact, this is a really big advantage. You can deploy the exact same schema to your development and production environment just by having two parameters.json file.
Let's have a peek at the template, in this case WindowsVirtualMachine.json. It's a 'json' file, so it's human-friendly, but it can be a bit scary at first. In the image just below, I collapse the collections to be able to emphases the visibility of the three prime elements: parameters, variables, and resources.
We already know parameters, so let's jump the variables. This section contains a list of key pair value like: imagePublisher, vmSize, virtualNetworkName, diagnosticsStorageAccountName, etc. Those can be fixed value or dynamics by using other variables or parameters. Here some example:
Last section but not least: the resources. This is where everything is put together to build the solution you will deploy. The resources are defined by specifying their type, name, and properties. You can assign any value from a static string, parameter value or a variable value.
Now that we know it works, why should we use it
Explain all the advantages to use ARM template could be a post by itself, and go further of the scope of that post. However, here few reasons:
A template file is light and easy to keep in a repository.
It's very simple to have the exact same template deployed in multiple environments.
ARM templates are really fast to deploy.
Easy to edit/ customize/ expand.
Easy to delete.
In Video Please
If you prefer, I also have a video version of this post.
Getting to Know #Azure Mobile App - Nice tutorial that leverage the recently GA Azure Mobile App to build AskAlex: an universal application that looks promising...;)
Exception Handling with Logic Apps (Jeff Hollan) - Great tutorial that shows how to solve a extremely frequent problem... the exception handling.
Using Logic Apps Webhook Triggers (Jeff Hollan) - Fantastic tutorial that shows how to create an HTTP trigger in today's interface/ designer.