Blue Monday: Diagnose A Sick App Service; ‘Easy Auth’ Gets Easier

Forgot to do a Blue Monday post last week, so this week’s post about Microsoft Azure updates of interest to developers — especially .NET developers — will be a fairly long one.

appLens helps diagnose App Service outages

“Why did that website go down?” being both the most common and most existential question the modern DevOps victim faces, anything that transforms the answer from Zen koan to factual response is welcome.

Enter appLens, which scours your App Service’s logs and analytics data to provide basic insights as to the lifecycle of your website: when it started, when it went down, when it stopped listening to requests, and the origins of why those events might have taken place (Bad deployment? DDoS / bum rush of visits? Service locked up?)

I am going to take this out for a test drive; although it is very rare for a Web App to go zombie on me, I’ve found, if it’s in the Standard tier and I’ve enabled Always On, which tends to be the case for most customer-facing Web Apps I have in play.

Azure Active Directory B2C and ‘Easy Auth’

One of my job duties is managing a customer portal, which requires federating a portal visitor’s identity with an external resource provider. Going forward, I’m going to need to federate identity with three or four independent systems; and this being 2016, I need not only allow people to sign in using their social media accounts, I need to provide easy means for the customer to leverage our services with their social media.

All of this is rather difficult, if not impossible, to achieve without a single, authoritative source of identity. But establishing proper federation against a single store can be really tricky. Witness how difficult it is to sign into MSDN if you have an organizational and personal account.

To that end, Azure has bridged the Azure App Service authentication process with Azure Active Directory Business To Consumer (B2C).

What this does, in a nutshell, is allow you to use OAuth / OpenID / your Web App’s authentication scheme, store that in Azure Active Directory, and thus have a single repository of identity, which you can now extend to other services.

According to Chris Gillum, a software engineer for Azure, this is all black-box stuff that requires little to no coding. This, of course, sets off alarm bells; if it’s anything like the Entity Framework-based black box for organization accounts found in a Visual Studio Web App project, it’s likely to be problematic in employment and difficult to unbox.

I plan to investigate more fully once this is generally available, and I’ll report back then.

Azure Search improvements

Azure Search, Microsoft’s cloud implementation of the Lucene search library, has added two new levels of service: Standard S3 and Standard S3 High Density. These new tiers double the storage size and number of documents that can be stored versus an S2 instance, and for the moment cost the same as an S2 instance.

While Azure Search Standard S3 and S3 High Density are in preview, Standard S2 and Basic tiers are now generally available.

Also, if you use PowerBI to analyze your Azure Search data, the dashboard has been updated.

Virtual Machines drop an F-bomb

There’s yet another new series of virtual machine service in Azure: The F series. Quoth Microsoft:

The F-Series virtual machines sport 2GB RAM and 16 GB of local solid state drive (SSD) per CPU core, and are optimized for compute intensive workloads.

Because Microsoft seems to be as fond of variations on a model as the average car manufacturer proves, there’s also an “FS” series of machine. They differ from F-series VMs in that they support permanent SSD data disks; in F-series machines, the OS drive is SSD, but any other drives you attach will not necessarily be SSD.

In preview, these cost the same as A-series VMs, but I wouldn’t count on that lasting for long. Get ’em while they’re hot, if you’re in a region that supports the F series.

Batch Services updates

Azure has made a number of improvements to managing Batch Services, a tool for spinning up a lot of virtual machines at once to handle a big compute job.

Since Batch Services are all about command and control — the ability to create many predefined VMs at once, all properly configured; feed them data they need to process; and to take them all down when you’re done — the numerous improvements Azure has made to interfacing with Batch Services all seem welcome, if not overdue.

Unannounced (unless you’ve poked around in the “classic” portal) is that soon, Batch Services will only be managed in the “new new” portal; management of Batch Services will be defunct in the near future.

Notification hubs: Batch your Direct Send messages

If you have a mobile or other application that requires messaging to specific clients in specific circumstances — say, all of a user’s friends, letting them know the user has posted a photo or the like — previously, in Notification Hubs, you had to send each of those “direct” messages individually.

Now Azure has Batch Direct Send, which will allow you to send all those direct messages in a single REST call.

HDInsight improvements

Two new developments for HDInsight, Azure’s packaging of Hadoop and other tools for big data analysis: Apache Spark, and a suite of tools for IntelliJ, are generally available.

I’m not in the data visualization business, but I do know enough to know that Hadoop without Spark is basically a hose without a nozzle. I’m also not a Java developer, but I know enough to know that a sizeable majority of big data consumers prefer to develop in Java, so an IntelliJ toolset is clearly needed.

Odds and ends

Featured photo by DarkoStojanovic via Pixabay, in the public domain.
Featured photo by DarkoStojanovic via Pixabay, in the public domain.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  • Check out the Commenting Guidelines before commenting, please!
  • Want to share code? Please put it into a GitHub Gist, CodePen or pastebin and link to that in your comment.
  • Just have a line or two of markup? Wrap them in an appropriate SyntaxHighlighter Evolved shortcode for your programming language, please!