Passed AZ-900

I’m happy to say that I’ve passed AZ-900 as part of my employer’s initiative to have everyone go through the Azure Fundamentals exam. This is a recognition that cloud is a core part of their business.

My thoughts? I perhaps underestimated the exam and although I passed well I didn’t ace it. I’ve scored more in other “harder” exams so I’d recommend what I try to tell myself – look through the actual product being tested (Azure Portal Features) and if you want to score more you’ll have to remember some of the detail of features and charging structures. I think the classic learning tips of What? How? When? for each exam objective will serve you well.

I’m beginning to realise that all of the exams are treated seriously and a pass (even for fundamentals) actually means something. Respect to my non technical colleagues and a little nudge to myself to treat things seriously!

Year 1 with my R1250 GS Adventure

With overnight temperatures dropping in Scotland and salt being laid to mitigate icing, my motorbike is now tucked up for the winter and I’ve had a little time to reflect on the few months I’ve had of ownership.

With the finance concluding on my R1200GS Adventure earlier in the year I did the deal and went for the subdued choice of the Exclusive in Kalamata Olive. The Rallye was a little too bright for me and in the absence of a triple black was my natural choice.

In summary the styling has really come on with the latest generation of the adventure and the tank and bars are more integrated with the visual centre of mass having shifted down and forward to make the bike look smaller.

The engine and suspension are simply amazing – I didn’t have the adaptive suspension on my 1200 so it is impressive, the engine is better again (and I didn’t really explore the best of the 1200) and the various gadgets are a bit of fun.

My only criticism is the same as ever – the ergonomics are more mainstream meaning I miss the colossal seat to peg height of the older adventure, and I still miss the funny indicators of the old bmws.

A brilliant machine and I’m really looking forward to getting back out on it.

I passed Microsoft Exam 70-339 Managing Microsoft SharePoint Server 2016

I’m really happy to say that I (finally) passed 70-339 Managing Microsoft SharePoint Server 2016 on Friday after a couple of failed attempts. This was my 32nd exam pass and my first time pass percentage is quite high, mainly as I tend to be very careful about booking exams when I think I am well and ready for an exam. So what was different this time ?

1. I didn’t respect the exam

I think a run of first time passes on exams made me a little complacent and I relied too much on the good results I got with the official practice exam. I should have remembered how hard I found the breadth of the previous generation of SharePoint exams and though about the implications of a single exam for the whole product (there used to be two administrative exams for each version of SharePoint). I probably came short and should have thought harder about the implications of elements in the exam outline.

Having the product in front of you to try things out is also a proper lesson well remembered.

2. Study and exams don’t exist in a bubble

When I failed first time I took the standard approach and booked for a couple of weeks after, on the basis that my fail mark was just short of the required pass mark. Then some family stuff came up which meant that I didn’t get a lot of sleep the night before the exam and had a lot on my mind. This happens and there isn’t a lot that can be done; life is unpredictable and it’s important to work to live rather than get things the wrong way around. Reflecting on this made me think about my attitude during preparation and what techniques and methods might help with all of the aspects of my life.

3. Sit exams when you know stuff

This inelegant heading refers to my experience that sitting exams on subjects that directly relate to your day job is so much easier than others. I’ve not been working daily with SharePoint 2016 since my last job and I think that even that was focused on a narrow band of deployment. Both this exam and 70-532 Azure development were tough and that was because I didn’t have the day to day depth in a subject area like I have with Azure Architecture and Administration. Stretch targets are good but they need the work.

4. Sit exams when they are current

What I mean by this is that there is a natural curve to an exam lifetime. Some Microsoft exam areas are particularly current like the Azure Administration and Architecture exams and apart from tweaks to the platform will be active and up to date. I think the perfect set of circumstances is a year or so after an exam goes live in a technology that is in wide use. Contrast this to 70-339 which has been available since mid 2016 and relates to a product which has undergone a fundamental change in delivery – most users of SharePoint will now use the online product.

The other thing (excuse) is that the online documentation has shifted to the next iteration of the product and a whole bunch of historical items have got harder to find. To be blunt with myself I think this highlights that you need to have hands-on access to the product for proper study and in not doing this I set myself up (see point 1). That said, the exam outline still has the objective “configure connections to Access Control Service” which at the time of writing has been retired for almost a year!

5. Back off and regroup

Like my car driving test (I love driving!) sometimes I have to work hard to achieve something and sticking at it is a test of personality. Unfortunately due to what must be a bit of a personality defect it can take a couple of fails for me to realise that I have to buckle down and examine my strategy. In the case of 70-339 I waited a month or two after my second fail to have a think, see how things were going and take a bit more time out. In something I think is like a classic retry pattern I introduced a delay. Of course in development the delay would be a bit more regular in nature but hopefully you get my point.

In summary

I’m now going to pick off the two Microsoft cloud fundamentals exams for a bit of light relief and in support of my employer’s plan to have everyone in the company certified in AZ-900 and I’m also planning to do the next generation of the expert certification in Microsoft 365.

As it was the SharePoint pass gave me the 2019 badge for my MCSE in Cloud Productivity – perhaps this was my last 70-XXX exam!

MoPOP Museum of Pop Culture Seattle

I changed jobs just over a year ago and an awesome part of my new Employer’s approach to staff development is that they send members of the team to conferences and training.

I had the privilege of attending a boot camp for cloud architects in Bellevue, run by Microsoft for their Partners and also had a day in between travelling from Scotland to Seattle to have a look at the city with my colleagues.

We basically got lost after visiting Pike Place Market, we thought we were heading towards lake Union but hadn’t read the map quite correctly. So we looked around and spotted the Space Needle fairly nearby (it’s a bit of a spottable land mark) and headed towards that.

The majority view was that we didn’t want to spend the money on going up the Space Needle so we went next door in to MoPOP Museum of Pop Culture. As I discovered this has a fairly significant connection to Microsoft as I saw one exhibit after another from the Paul G. Allen collection and it slowly dawned that a founder of the museum was also co-founder of Microsoft.

This place is amazing; it starts with the swoopy architecture which has a monorail bursting through it. Then the inside is all modern clean lines with doors and stairs leading to themed exhibits.

There are closed off exhibitions behind doors that cover elements like films or people or open areas that open out to the full height of the museum.

Well worth a visit.

50055: This exam is not currently offered. Please select another exam.

I failed a Microsoft Exam last Friday – yes it’s true, on occasion I fail an exam. One (amongst the many) fantastic attitude at my current employer is that a Microsoft exam fail is part of the journey of discovery. A couple of my new colleagues also remark that any significant score over the “pass” mark is a waste of study time and I can kind of see where that comes from.

The error message above was displayed by the web page when I attempted to book a resit of 70-339 Managing Microsoft SharePoint Server 2016 and let to discovery of an interesting quirk of the system and what retake policy means in practice.

If you’ve booked exams for the last few years you will have been informed of the latest on retake policy which has been tweaked and firmed up to an extent to give candidates a proper chance between resits and not to try to brute force the attempts. At the time of writing the Exam retake policy states:

  1. If a candidate does not achieve a passing score on an exam the first time, the candidate must wait at least 24 hours before retaking the exam.

This time I was particularly keen to book my resit as soon as possible, the practicalities of availability in Edinburgh means that I was expecting to have to wait a couple of weeks at least for availability so I didn’t expect the 24 hours to be a problem. I went through the exam details page, clicked “Schedule Exam”, confirmed my details and the link accounts page and got redirected back to the same page with a light yellow banner “50055: This exam is not currently offered. Please select another exam.”

Exam Booking – 50055: This exam is not currently offered. Please select another exam.

So I tried a few different ways without success; inprivate, different devices and all gave the same error. I tried telephoning to be told that I would have to wait 24 hours to book. So I waited 24 hours after the end of my exam and still couldn’t book.

I was finally able to rebook through the Pearson Vue site at 18:30 on the Monday after my exam on the Friday; the exam was scheduled to end at 12:30 (My times are BST). The half hour seems more than coincidental and the take away is that the systems will prevent the booking taking place until at least a number of hours have passed on business days.

I don’t fail exams often and I certainly don’t plan to, and hopefully you don’t either. So when the unthinkable happens don’t panic and take time to regroup and make plans. And wait a day and a bit before you try to rebook!

Cosmos DB Failed to read item

Interesting one today – standing up a Cosmos DB to record the output of a CycleCloud job run which happened to be written in C++ and started getting “Failed to read item”. Data Explorer stopped showing the results from the item when browsing.

Issue was that our new id had been delimited with slashes and Cosmos DB didn’t like it. If you get “Failed to read item” when clicking through then you might have a character in your document Id that Cosmos doesn’t like.


Azure, REST and some great community

There are some awesome folks out there who share their hard efforts so the rest of us can have an easier job. A few of these that have been really useful sit around work against the REST APIs of key Azure services.

My days of day in day out development are over so I find a lot of my automation “glue” mashing up deployments relies on PowerShell with the odd bit of CLI. Most is a little bit of scaffolding to deploy ARM templates but occasionally a requirement to work with the data plane of a resource appears and I have to resort to manual config.

ARM Template support for configuring resources is always improving but due to timing this isn’t always possible. Sometimes it is really helpful to understand what is going on, and sometimes the only option is REST.

For the latter I thoroughly recommend POSTMAN if you need to interact, though Azure is also improving native API exploring support. I discovered POSTMAN through an azure Friday video with Steven Lindsay who has some really really useful modules on GitHub. This is really helpful for CosmosDB (Documentdb as it was) and really helped me debug some Gremlin issues.

Next is the PowerShell module for CosmosDB which sits over REST and as well as being an awesome example of the kind is also a really helpful module for checking interactions with CosmosDB.

And finally an excellent post by Michał Pawlikowski on connecting to Azure Data Lake Storage with REST API with PowerShell, showing awesome detective work and publishing a bunch of really useful cmdlets.



Note to Self; Hyperfish and Kubernetes

Kubernetes and AKS in particular is becoming more and more important to us at work. In our experimental facility we have to stand up varying compute platforms; my main project is examining a specific workload on HPC and part of it needs Kubernetes to support some supporting work.

Then I stumbled across a blog by Chris Johnson . I’ve met Chris (officially a “good guy”) exactly twice in Person; once in 2010 in Berlin at an Ignite Session (when Ignite was a smaller scale effort) for SharePoint 2010 where he presented a session on Microsoft Certified Master, and secondly at Ignite in Orlando last year when I made a point of catching him before he presented a session of the Microsoft Cloud Show with Andrew Connell (also officially a “good guy”) and Julia White (yes, that Julia White).

Anyway, this is one of those posts which is as much for my benefit as yours!

Azure DevOps Rebranding and Git

Working in the Microsoft cloud ecosystem (ok, Azure) and working for a Microsoft Partner steers me heavily towards the tools that the vendor provides. This works on a number of levels; mainly around depth of knowledge and personally this means getting ready for the next exam.

For code and script storage this means Azure DevOps and GitHub, the choice has got harder lately due to the tweak to the “free” tier on GitHub and private repos but we all love Azure DevOps because of pipelines and all the other stuff, even though my primary day to day use is as a Git Repo.

Of course I’ve been using Visual Studio for years and the online version for as long as it exists. The rebrand to Azure DevOps also brought a new url option going from <org> to<org> and the latter has created some new joy. I really recommend Multi-Factor authentication and love using the latest and greatest tech from Microsoft including their security features as it’s about the only way to keep up with the threats we face out there on the internet.

Of course it comes back to bite you from time to time and this morning has been a classic case. The current Git for Windows Release is 2.21.0 but a key component for me as a multi-factor protected user of Azure AD and Azure DevOps is the Git Credential Manager for Windows and there are a bunch of fixes relating to the new url in version 1.19. Git for Windows 2.21.0 unfortunately includes Git Credential Manager for Windows so you’ll need to install in strict order to get this the correct way round.

My symptoms included the following:

  • No prompt for credentials when cloning my repo, just a couple of http errors then a prompt for a password.
  • No prompt for credentials even though I had removed the pat tokens and emptied Windows Credential Manager.
  • Errors thrown at the Git level (I tend to live in VS Code or Visual Studio).

Musings on Azure CycleCloud

One of the (many) great aspects of my current role working in the Innovations area of a UK Bank is a relentless introduction to new features in Microsoft Azure. At my stage with Azure in practice and exams it is usually a new feature or behaviour that has dropped as part of a generation 2 (E.g. Storage vs Data Lake) or evolution of features or more subtly a change to the defaults of a combination (e.g. Automation and Desired State Configuration Extension). Then there are the “never heard of it” moments when a term gets mentioned and I rattle straight to a search engine.

One of these a few months back was Azure Cyclecloud, one of our projects involved input from Microsoft and their HPC specialist proposed it as a key component of the platform being evaluated. In our case it is acting as an orchestrator / scheduler and keeping tabs on a handful of low priority virtual machine scale sets.

I’ve not had any direct exposure to HPC beyond awareness due to Microsoft architectural exams I’ve done in the past for on-premises Windows, and latterly Azure cloud. The good news is within parameters that the news is good and Azure CycleCloud appears straightforward and being predominantly IaaS based is fairly easy to secure within our patterns. My thoughts so far are:

  • The web admin interface is fairly sensitive to environment – I’ve lost about a day to Internet Explorer (doesn’t work) and the reverse proxy on our firewall appliances mangling page scripts.
  • The manual install is straightforward and reliable in my limited experience – we have a vnet model that it sits in quite nicely and the documentation is good on required ports and cluster communications.
  • Azure Cyclecloud being HPC and batch etc comes from open source land, so lots of command line and Linux – quite ironic that my career includes so many loops (my first job at an accountants in the 1980s included being the guy who wrote sql reports using vi on a unix practice management system).
  • Following on from the previous point, Azure Cyclecloud integrates with Active Directory and therefore has it’s own RBAC model – very important to understand if you are trying to secure it.
  • I have a few concerns about the quickstart deploy, mainly due to the public ip address bound to a server but that probably reflects our use cases and my background. (Googling “cyclecloud initial setup” reinforces this concern as a number of servers in initial setup pop up).
  • The cloud account relies on a fairly big service principal so it’s important to keep on top of that bearing in mind the last two points.
  • About 50% of the time I get the name wrong and call it Azure CloudCycle. This hit rate is slowly improving.