Proud to say that I now have the following exams passed: –
- Azure solutions Architect Expert
- Azure Devops Engineer Expert
- Azure Developer Associate
The following is a list of the best practices I have found in 18 months of learning and using Azure (not including the community blogs of course), I know best practice isn’t a great term but here are the links anyway, enjoy!
p.s. I’ll keep updating this so check back in a month or 2 🙂
If there is one thing I am good at, its finding the right resources to learn something, I have a knack of finding the right content and locating the right people to ask for help or to learn from.
Ok so people seem interested in how I went about it so let’s get to that now, here is how I tackled my Azure learning, hopefully you can get some solid advice from this post for you, no matter if your a dev, SQL dba, infrastructure type person, most of this post is valid.
I cut down the amount of tv I watched, just stopped it altogether, I’ve barely watched a thing this past year on Netflix.
If I want to learn Azure it required being laser focused and dedicated to the subject. I would say on average I was spending 10+ hours a week at night after work just studying and using the tools within Azure, now this isn’t possible for everyone so maybe I can list some of the best resources I found and my tips for learning Azure, lets come back to that later on.
So what was the motivation for doing this amount of learning and almost giving up watching tv – mad right?, I know your thinking that.
I want to learn, and the more I learn the more I want to feed the habit of learning.
How I got started
I start by first of all taking my time, I didn’t dive right in, I looked around, read some blog posts, but always ended up back at the docs.microsoft.com – which by the way is awesome.
I check out the beginner courses on Pluralsight, searched for Azure and off I went – the more I read the more I thought this is very cool stuff, I just got immersed into it and my learning became quite addictive, its when you first deploy something to Azure your like wow that was super easy, what can I do next, and so I just kept at it.
After a month, maybe two I decided to think I may as well check out the certifications, if I’m learning Azure I may as well see what’s involved in the certifications, so I checked out the Azure certifications, looked for advice on where to get started and it was looking like one of the exams was easier of the 3 available, so I got reading.
After some time I took a practice test and got 12% I think maybe slightly higher, I had very little idea what the questions were talking about, I still hadn’t even heard of some of the content in the questions – that drove me to keep going and learn even more rather than getting despondent, I did the Pluralsight IQ test thing they do and it was slowly going up over time – any progress is good progress right? – I mean I’m learning, I’m investing in myself and what harm can that ever do?
At this point I have the following badges.
Twitter is without doubt my favourite place to learn believe it or not, I follow all the MVP’s I come across, I follow as many people I can who tweet about Azure, the Azure team members at Microsoft, anyone who mentions Azure I check out their tweets and if there’s learning potential I follow them – I highly recommend doing this if your serious about learning Azure, and if your serious about learning anything technical locate the people you need to be following, engage with them ask questions etc and learn.
I have made some great friends on twitter special mention to Julie Lerman @julielerman ,Richard Hooper @Pixel_Robots, Sam Smith @samsmithnz , Aaron Ralls @cajunAA ,Thomas Thornton @tamstar1234– the people I chat to the most on twitter.
From twitter alone I have been asked to write two books and do training for a cloud training company, was invited to meet Scott Guthrie @scottgu and way more
The reason I started blogging was to write down things I came across that I would forget, blogging meant I could come back to it later and find the answers, now I’ve moved on to help other people with what I have learned and share the knowledge, it also ensures I have read into the subject enough so that I at least know what I am talking about.
If you aren’t a blogger then you should look into getting started, it’s very easy to do and can open up new opportunities for you gong forward.
I took part in the C# blog Advent Calendar end of last year which was fun to do.
Tips for Learning Azure
I will list my tips I would suggest for learning azure the way I did below: –
Helping with the Glasgow Azure User Group, running the Azure Global Bootcamp in Glasgow was great fun.
I add the hashtag #azurefamily to my posts, like a calling card for help, we chip in and help other people who have questions they need help with when it comes to Azure.
I also reached out to several of the Microsoft Azure folks asking questions, looking for advice etc, the responses have always been very helpful.
Setting goals I think is an important step, I wrote one goal up above my pc monitors which I haven’t achieved and its there to remind me to stay focused on that very goal.
My goals for 2019 I keep to myself, got 2 left to achieve.
I wanted to thank a few people who have helped me with Azure over the past 18 months, its been challenging but very rewarding. It’s not possible to list them all but the one thing I always do is thank the person who has helped me, its nice to be nice and the best part in all of this has been able to help other people just starting out their journey to learn some Azure.
Special mention to the following for their amazing learning resources:-
Here’s to an exciting time ahead with an Azure filled rest of 2019.
p.s. Ping me on twitter If I can help you on your journey, I love to be able to help people and more than happy to help.
A colleague at work found some amazing resources for Azure exams, I thought it best to share the resources, hope you find them as useful as I have for the exams, please share the link, the courses are all free from EDX. Even if they become invalid the learning content here is fantastic!
MS-100: Microsoft 365 Identity and Services
MS-101: Microsoft 365 Mobility and Security
AZ-100: Microsoft Azure Infrastructure and Deployment
AZ-101: Microsoft Azure Integration and Security
AZ-200: Microsoft Azure Developer Core Solutions
AZ-201: Microsoft Azure Developer Advanced Solutions
AZ-300: Microsoft Azure Architect Technologies
AZ-301: Microsoft Azure Architect Design
AZ-401: Microsoft Azure DevOps Solutions (this is the AZ-400 exam content)
AZ-900: Microsoft Azure Fundamentals
MS-900 Microsoft 365 Fundamentals
Bonus section includes links to the above and more: – https://partner.microsoft.com/en-US/training/assets#/?type=Exam
All the exam learning paths can be found here: –
Please leave feedback questions etc in the comments section below.
A customer at work has several Azure Virtual Machines and they wanted to have them stopped between the hours of say 10pm until 6am, nothing too difficult there. I setup an Azure Automation account with a Start/Stop VM Solution, long story short it doesn’t really work, like at all, its messy etc, it’s just a mess.
Note – the solution presented below means zero resource provisioning!
I decided to look at a different way of doing it and asked around and a colleague Nathanat work suggested Azure Functions and also mentioned he had been looking at the Azure CLI of late.
The below is the solution that he came up with, I like this and decided to go ahead and pinch his idea, don’t worry he works in my team and I will give credit where credit is very much due 🙂 – now before I go any further, yes I could use PowerShell, Azure Functions, etc. etc. but I like this implementation mainly because I learned a couple of new things, and if I’m learning then all good.
He wrote 2 bash scripts which invoke the Azure CLI, you pass in the name of the Resource Group(s) and it’ll loops through and starts / stops all the VM’s in your Resource Group(s).
Start VM Bash Script:-
Stop VM Bash Script:-
Start VM Yaml Build Script: –
Stop VM Yaml Build Script: –
Then to ensure the bash scripts run every day you set the schedule for the build and your good to go, like so:-
Feedback welcome, I like this idea for the following reasons: –
Please also follow Nathan on twitter.
Saturday April 27th was the date for the Global Azure Bootcamp, I was organising the Glasgow edition, in conjunction with the Glasgow Azure user Group, we had a great turn out with a lot of swag and one lucky
Each talk details can be found here:-
Duncan Jones – Globally distributed computing for pennies
Duncan (@merion) is a developer in the Financial Services industry based in Dublin, with an interest in DDD and CQRS/ES – he has developed a DSL plug in for creating event sourcing systems in Visual Studio and is the organiser of the Dublin Software Craftsmanship meetup.
Code for the “Hitchhiker systems” talk: Code
Angel M Rayo – Azure DevOps from rookie to DevStar
MCT since 2005, MCSE Cloud, ITIL Expert and more than 10500 hours of training experience in several companies and events like MCT Global Summit, SQL Saturday, SharePoint Day, i.e. @oyara
SlideShare: Azure DevOps from rookie to devstar
Craig Nicol – CosmosDB in the real world
Link to Slides: CosmosDB in the real world
Ivan Culjak – Building mostly Serverless distributed cloud systems step by step
Ivan is a .NET freelance developer in love with Azure, Xamarin, and the idea of automating whatever. When hes not developing something new, hes salvaging something inherited, consulting with enthusiasm, and testing and breaking new technologies in a quest for something useful. @CuljakIvan
Colin Chaplin – Office365 Migrations in the tens of thousands
Colin is a freelance IT consultant with over 20 years experience in end user computing, especially Exchange, Office365 and Windows 10. He has spoke at Microsoft TechReady and written for the Microsoft Technet UK blog and Practical365.com @ColinChaplin
Henry Bean – Logging, instrumentation, dashboards, alerts and all that – for developers.
Henry Been is an independent architect and developer from The Netherlands. He enjoys working with software development teams to create and deliver great software. His interests include the Azure cloud, Agile, DevOps, software architecture and the design and implementation of testable and maintainable software. @henry_been
This is a recording of the same talk Henry gave to us:
YouTube Video: Logging, Instrumentation, Dashboards, Alerts by Henry Been
GitHub repo: Code
I may be a little bias but I thought the event was awesome, helped by having outstanding speakers who made it a great event, hope to organise it for you all again next year!
Leave your feedback below if you attended.
Today I wanted to see if it was possible to create a variable in Azure Devops, change the value within a Task and then use the updated value in a step further down the list of Tasks.
Turns out its pretty easy (when you get the syntax correct)
So I created a variable in Azure Devops called Version like so and set its value to 1.0
And then I want to make sure I can read this from a standard PowerShell Task in a step within my Build like so :-
Which when built showed me the value as I’d expect of 1.0
And then I want to set the variable to a new value (which could be from anything or anywhere to be honest) using the syntax
And then finally read out the current value by using $(Version)
Which shows the Version parameter has been updated to 1.2.3 as we would want.
Hope this helps someone at some point 🙂
Its always a good idea on your project to keep your project documentation up to date, I personally like to make use of the Wiki inside Azure Devops, we use Azure Devops almost exclusively at work now.
On the wiki we have a page which documents the Azure Builds and Release pipelines, so that people can get an idea of what the individual builds are for and explain the steps within the Release pipelines, for the most part this is really straightforward, but for new people joining the team it just makes life easier to have this kind of thing written down and explained.
On that note I wanted to show you how to add the status badges for each build to your Wiki, it took me a wee while to find this so I thought I’d blog it because I’ll forget and so other people can see how to do it.
An example of the kind of thing I am talking about is below: –
So how do you find the Markdown for the badges so that you can add this to your wiki or elsewhere?
If you browse to your build(s) for your projects, click on the 3 ellipses on the right hand side, next to the Edit and Queue buttons and then choose Status Badge
Then you need to select the text next to Markdown, and then just paste this into your wiki page.
Hopefully someone finds this useful, bye for now.
In this blog post I want to talk to you about release gates within Azure Devops, release gates can be useful if you want to add in some further pipeline checks to stop the release going ahead.
Nothing better than an example so here is how to set up gated releases using Azure Devops.
This example shows how you can add in a release gate so that the release wont go ahead and deploy if say there are still open bug tasks within the Azure Board for the current sprint.
Once you have a release, first, click on the lightning bolt on the stage as seen below, and then enable the Gates are on the right hand side.
One this had been selected choose Add and then select Query Work Items, for this I have created a Shared Query where I created a shared query to show me if there are any bugs which are sitting as Approved (which I’m using as open but not started as yet), I don’t want the release to go ahead if there are any bugs in the Approved status.
Note:- In order to create a new query within Azure Devops on the left hand side select Boards, queries and then select new query.
An example query would look something like the following
Fill out the screen below like below and I set the upper threshold to 0.
To recap, I want my release to fail the gate so that the release wont go ahead because I have open bugs within my Azure Board for this particular project.
There are a number of different types of release gates you can use and here is a screen shot of the ones available to use at this time.
I hope you find this useful, if you have any questions please leave feedback.
On March 12th 2019, Mike Pfeiffer invited me to appear on his excellent podcast which is called CloudSkills.fm
CloudSkills.fm is a weekly podcast with technical tips and career advice for people working in the cloud computing industry
Mike Pfeiffer is a Pluralsight author, consultant, advisor, author, and mentor for people ramping up on cloud-based technologies and it was a privilege to have him invite me onto his show and chat about Azure Certifications and also Azure Devops. If you haven’t checked out his podcast as yet, then please do @ cloudskills.fm
In my episode we talk about how I studied for the Azure exams, what content and methods of studying I use and we also talk about how I make use of Azure Devops with my companies customers, where we use it to deploy web apps and infrastructure as code.
I have also been working on moving customer’s data from on premises to Azure using Azure Sql, Azure Data Factory and also using Analysis services with Power BI reporting capabilities, more on that coming soon on my blog. For this project we are building everything from the ground up using Arm templates, deploying the entire resource group to Azure and populating the Azure Data Factory with pipelines all using Azure Devops.
Before I blog about that, lets talk more about my podcast appearance. It’s always a pleasure to be able to talk on podcasts about what I get up to and I like to share what I have been doing with Azure on my blog here. Mike is a very knowledgeable guy and like myself is insanely busy working on multiple things whilst trying to learn and keep up to date, he also has a weekly mailing where he mentions the interesting things he comes across week to week.
I’ll keep this post short and move onto blogging about the Data side of things I’ve been involved in, but if your thinking of doing some Azure exams and wont to know where to get started then have a listen to the episode and give me feedback on it.
Enjoy listening if you take the time to tune in.