Last week, AnchorLoop had the pleasure of attending Microsoft Tech Summit, including Scott Guthrie’s Red Shirt Dev Tour in Birmingham, UK. This was a free, two day event covering the latest in Azure and Office 365 at the NEC Arena.
This is my honest review of the event, the keynotes and the breakout sessions I attended. I have no affiliation with anybody involved in the event, so it will be completely impartial. I won’t gloss over the things that I thought didn’t work, because no conference goes perfectly without the hitch and there’s no point in pretending otherwise.
Location and venue
I thought Birmingham and the NEC were good choices for holding a conference. Birmingham is the major city in a region of England called the West Midlands which, predictably, mean it located in the middle of the England on the west side. This makes the event geographically accessible for many that might be interested in attending. With our base being in Cambridge in the east of England, our travel time to Birmingham was around three hours, which is fine.
The NEC (National Exhibition Centre) is a large venue right next to Birmingham International airport, meaning there is plenty of transport infrastructure around to serve it. We stayed over near the main train station in the city, Birmingham New Street, which ran trains to Birmingham International every fifteen minutes or so. Transit time was also about ten minutes. This was great because we had access to all the shops and restaurants in the city center in the evenings.
Registration and refreshments
I arrived at the conference at the opening time on the first day, 8:00am. Being one of the first to arrive, my registration went quite quickly. I was wandering around the exhibits before the coffee/breakfast stands were ready to go. Whilst my experience was quite smooth, I later discovered that many who had arrived later were stuck in a queue for quite a long time as the conference WiFi went down and the registration system had a dependency on this. The first keynote was delayed twenty minutes because many attendees were still working through registration because of this.
Breakfast was the first real negative. It was described as a continental breakfast on the schedule, but it was actually just some small pastries and fruit – a snack really. I hadn’t eaten any breakfast at my hotel due to the advertising on the schedule and I was going through the morning keynotes hungry as a result. On the second day, I had something more substantial at my hotel and skipped the conference breakfast entirely. I don’t have a big problem with the food itself, it’s just that the advertising of it as a continental breakfast made it sound more substantial than it actually was.
The lunches were more in line with expectations, a choice of sandwiches, pasta salads, crisps (chips), biscuits (cookies) and drinks. As were the nibbles at closing time on the first day, which I would say were better than I expected.
9:30 – 10:30: Office 365 Keynote (Stella Chernyak)
This actually ran from 9:50 to 10:50 due to the registration issues caused by the internet outage mentioned above. They demoed some interesting new features in Office 365, like the Focused Inbox in Outlook that uses AI to present you with the subset of your inbox that it thinks you would be most interested in.
I think this was the presentation that I was least mentally engaged in, mainly because I’m only interested in Office 365 in so far as I can automate it – as an aside, check out Automating Office 365 with Microsoft Graph API if you haven’t already. Attendees that were more on the IT side than the development side probably got more out of this than I did. That’s not Microsoft’s fault, I was just more psyched up for the Azure keynote.
11:00 – 12:00: Azure Keynote (Nicole Herskowitz)
Due to the late start of the previous keynote we only had an eight minute gap before the Azure keynote started, I just stayed in my seat. Microsoft’s messaging for Azure was around four key facets: the productive cloud, the intelligent cloud, the hybrid cloud and the trusted cloud. Since I managed to reel that off with no notes or prompting, I think their messaging succeeded!
The first interesting observation for me was how prominently Kubernetes featured in the introductory slides. Kubernetes is open source but is mostly associated with Google in a corporate sense, but Microsoft have very clearly made it one of their key platform offerings. While not directly comparable in a technical sense, I heard mention of Service Fabric only once over the two days whereas Kubernetes was mentioned half a dozen times, which I thought was telling. The Microsoft of old would possibly not have gone all-in on the community platform, and been the worse off for it.
One point that came over very clearly was how superior Azure’s hybrid cloud story was with Azure Stack compared to AWS. I’m glad they went for this, because Microsoft have a firm foothold in the traditional datacenter whereas Amazon have no presence at all. It’s rare to have such an advantage over your biggest competitor and they need to use it. I’m of the opinion that hybrid cloud is going to be the standard mode of operation for most of the untapped market so I’m completely convinced Azure Stack will be a success.
One of the live demos didn’t work at all due to another WiFi outage during the keynote. The same issue that delayed registration, I think, but shorter this time.
13:00 – 14:00: Confusion
I assembled my schedule two weeks before the event and navigated my way around the venue with the Tech Summit app. On the day, I actually had two breakout sessions scheduled for 13:00, I think because the session I originally booked for 16:45 had been moved to 13:00 and clashed with my original choice. Anyway, not realizing this at the time, I ended up in the queue for the session that was not my original choice. By the time I noticed what had happened the session I was originally aiming for was full, as was the second choice when I returned to that.
It seems if you didn’t get to one of these sessions early you weren’t getting in. Lesson learned.
14:15 – 15:15: Introduction to serverless computing with Azure (Christos Matskas)
When I built my schedule a couple of weeks before, I made a decision not to go and see any sessions where I already had direct experience of the source material. I wanted the conference to be mostly about my blindspots. That ruled out most of the IaaS and a good number of the PaaS sessions for me. On the serverless front I was familiar with Azure Functions but didn’t really know the low-down on Logic Apps or Event Grid – so I chose to attend the serverless-focused session to brush up.
I liked Christos as a presenter, he was likeable and communicated the potential of event-driven architectures well. I particularly liked his focus on the use cases of serverless rather than exploring it for its own sake. It was clear to see where these new approaches could make developing certain types of application easier and less expensive to develop. If I could have one nit-pick it’s that he kept referring to serverless as being “no code”, which isn’t really true. A more accurate way of describing it would be, “low code”, “no boilerplate code” or “only the business logic”. But I don’t want to be too critical because I did enjoy the session. A tug-of-war app demo did fail, but I don’t know whether that was a preparation oversight or the flaky conference WiFi striking again.
15:30 – 16:30: DevOps best practices for Azure and VSTS (Christos Matskas)
This session was presented by Christos again. I chose this mainly for the VSTS coverage, which is third place on my most-used CICD systems behind Jenkins and TeamCity, but this presentation didn’t really focus on VSTS much at all. In hindsight, I’m kind of pleased Christos focused more on the best practices as a lot of what was covered transcends the choice of tool. It kept the content applicable to the widest number of people and avoided turning the session into a product selling pitch.
Interesting tips were the use of ARM templates, infrastructure as code, keeping secrets out of that code with Azure Key Vault, etc. Christos was brave, and completely correct, in saying that RBAC should be used such that developers cannot directly deploy to or affect production systems in any way. I’m sure there were a few in the room that like having God-like powers over production systems and might think that an extreme measure, but I like the telling of hard truths. Overall I would say Christos’ sessions were the highlight of my day.
16:45 – 17:45: Low code app creation using PowerApps (Saurabh Pant)
As mentioned earlier, my original choice of 16:45 session had been moved to 13:00, so I needed to choose a replacement. I overheard a conversation at lunch where somebody described PowerApps as being awesome and I had actually never heard of them before. Having enjoyed some exposure to Logic Apps earlier in the day and with PowerApps sounding along the same lines, I thought this session would be worth my time attending.
It absolutely was worth my time. PowerApps are positioned as a way of developing mobile applications for somebody without traditional development skills, a lot of the business logic is defined with Excel-like syntax. The user with those sorts of skills is their target market. It was actually kind of shocking how much you can achieve with PowerApps with only a small amount of effort. Saurabh live coded a mobile app that authenticated a user with Azure AD, then presented a news feed to the user from data stored in SharePoint and also integrated some calendar bits from Exchange, etc. All well within an hour.
I’ve done a couple of blog posts that demonstrate how to do a similar thing with ASP.NET, see: Authenticating with Azure AD and OpenID Connect and Automating Office 365 with Microsoft Graph API – it would probably take a competent developer more than an hour to work through just one of those posts, never mind an internal social network app like Saurabh put together within the hour.
PowerApps aren’t a technology I can see myself spending too much time with personally, because I’m not the target audience, but I do have several friends who are not coders that I think would achieve a lot with PowerApps. One of these friends is a doctor who has been tempted to learn to develop Android apps in the past to build something for his hospital that would make his life easier. He would probably solve his problem using PowerApps quite quickly and enjoy doing it.
9:30 – 15:00 – Red Shirt Dev Tour (Scott Guthrie)
The main event and ultimately the reason I came to Tech Summit in the first place. The Red Shirt Dev Tour is a five hour, demo heavy keynote from Microsoft EVP Scott Guthrie, taking a high level tour over many of the services available in Azure.
The five hours are split into three parts. Broadly, we covered:
Development basics with the Azure App Service
The first demo was a tour around the basic capabilities of the Azure App Service. Scott built a basic NodeJS app on a Mac and deployed it to Azure using a local Git repository on the App Service endpoint. The process was simply to add a new remote repository and push to it. He also demoed using WebDeploy to distribute an ASP.NET app using the full .NET framework on Windows.
Throughout the whole day Scott spent about half his demo time on a PC and half on a Mac. I liked this because it reinforced the cross-platform focus of the new Microsoft, it was more than just lip service to non-Windows platforms.
DevOps with VSTS
We had a high-level overview of DevOps principles and VSTS. I don’t actually remember too much of this section, maybe because I don’t remember hearing anything that I didn’t already know. I’m aware this is a big focus for many teams at the moment though, so it was good that it got some coverage.
Azure SQL Database
The first demo with a bit of wow-factor was a walkthrough of Azure’s SQL injection attack detection capabilities. Azure is capable of detecting these types of attacks, stopping them and reporting instances of the attack to you – which is really cool.
Xamarin / Mobile Development
The first non-Scott demo was delivered by Laurent Bugnion, who showed us how to hook up a real iPhone to Visual Studio and debug Xamarin apps. Something that I think you need a Mac to do under normal circumstances (I’m not sure, not being a mobile developer and all). The integration with Visual Studio was quite nice, he set breakpoints, step-through debugged the app and pretty much everything else you might want to do.
Scott demoed the development of Azure Functions in the Portal and also locally using Visual Studio. Including breakpoint debugging in Visual Studio. The local development is made possible by the fact that you can install the same Azure Functions runtime on your development machine that would be executing it in the cloud – very cool.
Docker and Kubernetes
We were shown how easy it is to containerize something from Visual Studio. It was little more than right-clicking the project and adding Docker support, which generated a Dockerfile for the project. Scott then deployed a couple of containers to a managed Kubernetes cluster (Azure Container Service) and demonstrated how to scale the number of replicas up and down.
I’ve seen and done all that before (bar the Visual Studio part, I’ve always built Dockerfiles by hand), but it was good to see Kubernetes get significant coverage.
Azure Cognitive Services and Machine Learning
The second demo with a good helping of wow-factor was a computer vision app that used various APIs from Azure Cognitive Services to classify the identity, age and sentiment of any person that appears on camera. The APIs managed approximate age and sentiment fine without any training. Scott then trained the APIs to recognize him specifically by feeding them a few images of himself from several years ago. From that point on the demo app would display his name when he appeared on camera, as it could recognize him.
The purpose of these APIs is to help developers without a data science background add AI capabilities to their applications, without having to understand the mathematics behind them. That’s not to say that Azure didn’t have anything to offer real data scientists. The next demo was delivered by Paige Bailey and was a guided walkthrough of data cleaning and classification in Azure Notebooks, a service which hosts Jupyter Notebooks in Azure. One of my lasting memories of the day was Paige asking the room how many were Python developers and only about six hands going up (disclaimer: I was in the fourth row, so wasn’t in the best position to count). I was kind of surprised by the low count and she joked disappointment, but you can tell that she loves Python and machine learning and seeing genuine passion from somebody about what they do is always nice to see.
General tips and tricks
There was more in this section than we had time remaining to cover, so this mainly focused on Azure’s cost management tools and Azure Security Center. Azure Cost Management uses Azure’s telemetry of your resources to suggest ways that you could save money on your Azure spend. For example, you might be able to scale down VM sizes based on your actual usage.
Azure Security Center highlights potential holes in your infrastructure security and also informs you of any malicious activities it has detected based on the Azure telemetry. For example, repeated failed RDP login attempts from the public internet.
I really enjoyed every part of the Red Shirt Dev Tour content, all the hot topics were covered in just the right depth for this kind of high-level overview. If you ever get a chance to attend one, I highly recommend it. At the blistering pace that the cloud moves, I can see myself doing one every couple of years just to maintain an awareness of developments that I have not been directly exposed to in my normal working life.
If I was on a restricted budget and could only attend one day of the conference (i.e. do a day trip rather than stay over), I think the second day would be the one I would go for – just for the sheer coverage of topics packed into 5 hours. It’s a shorter day than the first as well, so makes a day trip at least possible.
As it happened, I enjoyed both days. I may not have enjoyed the first day so much had I not deliberately pursued sessions where I had less prior exposure. The sessions I did attend were more 101-style than deep dives. So if you work with a particular service regularly I would not expect to learn a lot from a session on that service. I think this is the way it needs to be though, there is so much in Azure that no single person has used it all. If the purpose of this conference is to get new users excited and drive usage, then the level of the talks is just about right.