Category Archives: Azure

Related to Microsoft’s Windows Azure platform

Talk: Guest Lecture Harvard Cloud Computing Class

Last night I was pleased to speak at Zoran B. Djordjević‘s Cloud Computing class at Harvard Extension (my 4th year). After dazzling the class with my prowess at plugging in my laptop to the projector, we jumped into the public cloud, with lots of Azure specifics – and how designing applications for the public cloud is different than what they might be used to (whether Azure, Amazon, or Google) – along with really good questions and discussion…

If you are interested in such things, I’m on twitter (@codingoutloud), have been running the Boston Azure cloud user group for five years, and wrote a book on Cloud Architecture Patterns.

SLIDE DECK: 2014-11-14 – Microsoft Azure Cloud Platform Overview — Zoran Djordjevic-Harvard-CSCI E-90 — 14-Nov-2014 — Bill Wilder (blog.codingoutloud.com)

Talk: Pragmatic Azure at Boston Code Camp 21

Today I was delighted to speak at Boston Code Camp 21… Yes, that’s 21 code camps over the past 10+ years put on by the Boston dev community. There is a long list of volunteers , speakers, and sponsors.

My talk was: “Pragmatic Azure – What can the Azure Cloud do for me?” and the abstract is included below and the deck is here:

ABSTRACT

Pragmatic Azure – What can the Azure Cloud do for me?

Session Details – Boston Code Camp 21 – June 2014

Submitted by: Bill Wilder
Time: 10:20 AM – 11:30 AM, Saturday, June 21, 2014
Location: One Mem Drive, Commons (enter on 11)
Tags: Azure

A whirlwind introduction to the Microsoft Azure public cloud platform followed by a bunch of pragmatic ways to use it. From simple Web Sites to web-scale Cloud Services, from on-the-cheap dev-test environments to auto-scaling production services, Windows Azure covers the spectrum. What’s the story with designing for failure? What happens if I need to scale? How do I manage costs? These and more questions will be addressed.

Presented by Azure MVP Bill Wilder, it is based on real-world insights from an Azure-focused consultant who’s been working with the platform since the day it was announced in 2008. Some of the topics will be drawn from Bill’s Cloud Architecture Patterns book (O’Reilly Media, 2012).

Talk: Top Azure Features Every ASP.NET Developer Should Know About at Groupe Azure Montréal

Last week I was delighted to speak to the très agréable folks at the Groupe Azure Montréal.

My talk was: “Top Azure Features Every ASP.NET Developer Should Know About” and the abstract (in both French and English) is included below. Had a great time hanging out in advance of the event with both Alexandre Brisebois and Guy Barrette who were superb hosts and helped me and Maura get the most of our short trip to their fine city.

Here is a link to the slide deck (in PowerPoint): 2014-04-28 – April 28 – Groupe Azure Montréal – Top Azure Features Every ASP.NET Developer Should Know About.pptx

The sample code I spent the most time on can be found here: 

ABSTRACT

Lundi le 28 Avril 2014, nous sommes heureux d’accueillir Bill Wilder, auteur du livre « Cloud Architecture Patterns: Using Microsoft Azure », pour une présentation qui nous fera découvrir les meilleures facettes de la plateforme Microsoft Azure tout en mettent l’emphase sur le développement ASP.NET.

Bill adore partager et apprendre sur une multitude de sujets. Profitez-en pour lui poser vos questions à propos des patterns, des meilleur pratiques et des technologies qui en tour le cloud.

Inscrivez-vous sur notre page Meetup http://www.meetup.com/dotnetmontreal/events/135071842/

NOTE: Cette présentation sera en anglais

Sujet: Top Azure Features Every ASP.NET Developer Should Know About

Let’s face it: as technologists, “the cloud” is in the future for all of us, and resistance is futile. For many of us who predominantly develop on Microsoft technologies, adopting the Microsoft Azure cloud platform will be a natural progression.

How to get started? In this talk we will cover some easy ways to get started with the cloud, progressing from simple ideas to more ambitious ones as we go. Similar to how learning a new programming paradigm tends to stretch the mind (e.g., a C# developer learning functional programming with F#), you will also see that learning how to develop for the cloud will inform and shape how you go about developing day to day – even if not (yet) for the cloud.

Some of the topics we will cover (in varying depths) include devops, dev-test, non-.NET tool stacks, federated identity, semantic logging, and cloud-friendly architecture patterns – all while touching on a variety of Azure features and services on the way.

Conférencier: Bill Wilder, MVP Azure, Boston USA

Bill Wilder (Principal Cloud Architect for Development Partners Software Corporation) is a hands-on developer, architect, consultant, trainer, speaker, writer, and community leader focused on helping companies and individuals succeed with the cloud using the Microsoft Azure Platform. Bill began working with Microsoft Azure when it was unveiled at the Microsoft PDC in 2008 and subsequently founded Boston Azure, the first/oldest Microsoft Azure user group in the world in October 2009. Bill is recognized by Microsoft as a Microsoft Azure MVP and an Azure Insider, and is the author of the book Cloud Architecture Patterns, published by O’Reilly in September 2012. Bill can be found blogging at blog.codingoutloud.com and on Twitter at @codingoutloud. You can also check out the Boston Azure cloud user group at www.bostonazure.org and @bostonazure.

Microsoft Azure Data Center Regions in Mainland China now in Production (that makes 12!), #AzureMap updated

Coming one month after a pair of new data center regions went into production in Japan, another set of Windows Microsoft Azure data center regions have moved into production – in mainland China this time. There was a press release detailing how this is done in partnership with 21Vianet, “the largest carrier-neutral internet data center services provider in China” (source).

The addition of these two new data center regions – in Beijing and Shanghai areas – increases Microsoft’s footprint for Azure data center regions to 12 – joining these 10: Asia Pacific East, Asia Pacific Southeast, Japan East, Japan West, Europe North, Europe West, US West, US East, US South Central, US North Central.

There are also 3 more in the works – one in Brazil and a pair in Australia. In addition there is a pair of US Government-specific Fedramp data center regions.

Microsoft Azure is New Brand

This all comes on the heels of Microsoft recognizing its cloud brand is bigger than just “Windows” and rebranding from Windows Azure to Microsoft Azure. With Linux VMs available, tons of services available over APIs, SDKs for PHP, Python, Ruby, Java, .NET, Node.js, iOS, Android, Windows 8, and Windows Phone, the platform has taken on a decidedly cross-technology feel, with a focus on features rather than on Windows.

Azure Map Updated

For the Azure Map I am maintaining, I updated the JSON meta data in the Azure Map project to promote these two data center regions to “Production” then re-generated and re-posted the GeoJSON and TopoJSON maps. All data is in GitHub. For more info, see these two posts:

The full interactive single-page Azure Map is here: http://azuremap.blob.core.windows.net/apps/bingmap-geojson-display.html

Talk: Meet Windows Azure, Your Next Data Center

Today I spoke at VirtG Boston’s annual Deep Dive Day. The title of my talk, Meet Windows Azure, Your Next Data Center, is probably descriptive enough to get the gist of it.

My slide deck follows.

2014-03-12 – Meet Windows Azure, Your Next Data Center – VirtG Virtualization Deep Dive Day

Stupid Azure Trick #8 – Take control of Management Certificate names

Examine your Windows Azure MANAGEMENT CERTIFICATES in the Windows Azure Portal (under “SETTINGS” in the left nav, then “MANAGEMENT CERTIFICATES” in the top nav). These are the certificates that control which people or which machines can programmatically manipulate your Windows Azure resources through the Service Management API.

Every time you initiate a Publish Profile file download (whether through the portal, with PowerShell, or through the CLI), a new certificate is generated and added to your list of management certificates. You cannot control these names – they are generated.

Upon examination, you may find that some certificates – like #1 shown below – have generated names. And also look at the several certificates immediately below #1 – they have similar names – also generated. These are hard to distinguish from each other.

SNAGHTML2f43f75e

But this is okay some of the time – it is convenient to let tools create these certificates for you since it saves time. It may be perfectly adequate on low security accounts – perhaps a developer’s individual dev-test account from MSDN, or an account only used to give demos with. But for a team account running production, you probably don’t want it to have 17 untraceable, indistinguishable certificates hanging off it.

Now look at the names for #2 and 3 shown above. They are custom names.

Managing Your Management Certificates Starts with Meaningful Names

While we can debate whether the custom names shown above are truly meaningful (this is a demo account), you can probably appreciate that seeing a certificate name like “BUILD SERVER” or “Person/Machine” (e.g., “Maura/DRAGNIPUR”) or “Foobar Contractor Agency” might be more useful than “Azdem123EIEIO” to a human.

Controlling Certificate Names

The Windows Azure Management Portal has some heuristics for deciding what to display for a certificate’s name, but the first one it considers is the Common Name, and will display its value if present. So the short answer: take control of the Common Name.

Here we show creating a Service Management certificate manually in two steps – first the PEM (for use locally) and second deriving a CER (for uploading to the portal).

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem -subj "/CN=This Name Shows in the Portal"
openssl x509 -inform pem -in mycert.pem -outform der -out mycert.cer

Note the use of -subj "/CN=This Name Shows in the Portal" when generating a PEM in the first command. The specified text will appear as the description for this certificate within the Windows Azure Portal. OpenSSL is available on Linux and Mac systems by default. For Windows, you can install it directly, or – if you happen to use GitHub for Windows – it gets installed along with it.

For a pure Windows solution, use makecert to create a Management Certificate for Windows Azure.

Considerations

Once you assume responsibility for naming your own certificates, you are simultaneously also taking on generating them, deploying the certificates containing the private keys to the machines from which your Windows Azure resources will be managed using the Service Management API, and uploading the CER public keys to the portal. To make some parts of this easier – especially if you are distributing to a team – consider building your own publish settings file. Also, realize the same certificate can be used by more than one client, and the can also be applied to more than one subscription on Windows Azure; its a many-to-many relationship that’s allowed.

Resources

Create and Upload a Management Certificate for Windows Azure

X.509 Certificates

Build your own Publish Settings File

[This is part of a series of posts on #StupidAzureTricks, explained here.]

Stupid Azure Trick #4 – C#, Node.js, and Python side-by-side – Three Simple Command Line Tools to Copy Files up to Windows Azure Blob Storage

Windows Azure has a cloud file storage service known as Blob Storage.

[Note: Windows Azure Storage is broader than just Blob Storage, but in this post I will ignore its sister services Table Storage (a NoSQL key/value store) and Queues (a reliable queuing service).]

Before we get into the tricks, it is useful to know a bit about Blog Storage.

The code below is very simple – it uploads a couple of files to Blob Storage. The files being uploaded are JSON, so it includes proper setting of the HTTP content-type and sets up caching. Then it lists a directory of the files up in that particular Blob Storage container (where a container is like a folder or subdirectory in a regular file system).

The code listed below will work nicely on a Windows Azure Dev-Test VM, or on your own desktop. Of course you need a Windows Azure Storage Account first, and the storage credentials. (New to Azure? Click here to access a free trial.) But once you do, the coding is straight-forward.

  • For C#: create a Windows Console application and add the NuGet packaged named “Windows Azure Storage”
  • For Node.js: run “npm install azure” (or “npm install azure – –global”)
  • For Python: run “pip install azure” to get the SDK
  • We don’t cover it here, but you could also use PowerShell or the CLI or the REST API directly.

Note: these are command line tools, so there isn’t a web project with config values for the storage keys. So in lieu of that I used a text file on the file system. Storage credentials should be stored safely, regardless of which computer they are used on, so beware my demonstration only using public data so my storage credentials in this case may not be as damaging, if lost, as some others.

Here’s the code. Enjoy!

Useful Links

Python

http://research.microsoft.com/en-us/projects/azure/an-intro-to-using-python-with-windows-azure.pdf

http://research.microsoft.com/en-us/projects/azure/windows-azure-for-linux-and-mac-users.pdf

http://www.windowsazure.com/en-us/develop/python/

SDK Source for Python: https://github.com/WindowsAzure/azure-sdk-for-python

Node.js

http://www.windowsazure.com/en-us/develop/nodejs/

SDK Source for Node.js: https://github.com/WindowsAzure/azure-sdk-for-node

http://www.windowsazure.com/en-us/documentation/articles/storage-nodejs-how-to-use-blob-storage/

C#/.NET

http://www.windowsazure.com/en-us/develop/net/

Storage SDK Source for .NET: https://github.com/WindowsAzure/azure-storage-net

Storage Client Library 3: http://msdn.microsoft.com/en-us/library/dn495001%28v=azure.10%29.aspx

[This is part of a series of posts on #StupidAzureTricks, explained here.]