Azure Management Studio Tip–Colored Coded BLOB containers

When working with BLOB storage within Azure Management Studio (AMS) you might want to know which containers are private and which are public.  The good news is that we can color code the icons for you:

image

Red = a Private container.  Only someone with storage credentials or a valid shared access signature can get at the data in that container.

Yellow = A Public container, but only people who know a specific BLOB by name can retrieve it. 

Green = A Public container, but is open so that anyone can see the list of BLOBs within the container as well.

 

One thing you may notice if you open up AMS is that your containers look more like this in the treeview:

image

This is because by default AMS does not fetch the security settings (Access Control Lists, or ACLS) for the containers.  The ACL information for a container is obtained by making a call to the BLOB service for a given container.  When we want to see the color coding in the treeview we actually have to make a separate call for each container to find out the value (at least at time of this blog post).  In order to cut down on the number of transactions and calls AMS doesn’t make these calls for you by default. 

If you want to turn this on you can do so in the options for AMS.  Under the Tools menu select Options.  Then select the Blob tab and check the Fetch Blob Container ACL when listing Blob Containers option.

image

When you turn this on you may slow down the population of the treeview if you have a lot of containers in your storage accounts.

Don’t forget that Cerebrata has a FREE BLOB explorer tool: Azure Explorer

Tagged with: ,

Installing Azure Explorer or Azure Management Studio on a Windows Azure VM

If you attempt to install either Azure Explorer or Azure Management Studio on a Virtual Machine running on Windows Azure you may run into a error when it attempts to install.  The simple error message mentioned may say, “Application cannot be started.  Contact the application vendor.”  Clicking on the details you could see a message that includes the text, “Deployment and application do not have matching security zones”.

By default the Windows Server images have Enhanced Security Configuration for IE turned on.  This is why you see the “Internet Explorer Enhanced Security Configuration is enabled” when you start up IE.  With this setting turned on most sites will prompt you a lot for permission to display content from each domain it gets information from.  One page might prompt you several times, for the site itself, Google analytics, CDN content, etc.

The issue here is that the Application URL and the Deployment URL for the tools are different and are under two different security zones as the details of the error suggests.  Most desktop users may not run into this as the desktops are not typically as locked down as a server.  However, if a desktop user has a security policy that limits what URLs they can visit they can use the URLs listed below to work with their IT department to get them white listed.

You have two options:

1. Add both of our URLs to your trusted sites.  Details are below for how to do this if you aren’t familiar with it.

2. Turn off the enhanced security, which will put IE more into a mode like a desktop has.  This is obviously the less secure option, but it is an option.  Details are below for how to do this if you aren’t familiar with it.

We suggest the first option as it leaves the enhanced security turned on.

Add to the Trusted Sites:

1. Open IE on the machine.

2. Open the internet options (press the Alt button and select Internet Options from the Tools menu)

3. Select the Security Tab on the dialog and click on Trusted Sites.

clip_image002

4. Click on the Sites button.

clip_image004

5. Add the following two sites:

https://cerebratainstallers.blob.core.windows.net

http://installers.cerebrata.com

6. Close the Trusted sites dialog and click OK to close the Internet Options dialog.

7. Browse to installer directly at http://installers.cerebrata.com/files/Azure%20Explorer/production/1/Azure%20Explorer.application for Azure Explorer or http://installers.cerebrata.com/files/Azure%20Management%20Studio/production/1/Azure%20Management%20Studio.application for Azure Management Studio.  Note you can go to the URL via the Cerebrata website but you’ll be prompted quite a few times just to bring up the site.  This link will take you directly to the application file.

8. The app should install as expected.

Turn off enhanced security for IE

1. Open the server manager.

2. Select “Local Server” from the list on the left.

3. Click on the “on” you see next to IE Enhanced Security Configuration.

clip_image005

4. On the popup window you can elect to turn this off for Administrator or all users.  The server manager will say On if it is enabled for either group.

5. Turn off for administrators and click OK.

clip_image007

6. Open IE.

7. Browse to the Cerebrata web site and install as you would from your desktop.

8. App Should install as expected.

Tagged with: ,

How to Snapshot and Restore Virtual Machines Running on Windows Azure

A couple of AMC users have recently asked us how to take snapshots of VMs in Azure and restore them. One of our colleagues dived in to this problem and figured out the details, so we thought we’d share what he learned.

Problem

You have a VM in Windows Azure and you want to take a snapshot of it, so you can revert back to it at a later date. Unfortunately, Azure doesn’t currently support this, although it does support snapshots of a blob, which gives us a possible option.

Solution

Following on from work here which uses our cmdlets, I’ve updated the steps to work with Azure now (April 2013). It seems that Microsoft changed something in Azure that means the method presented in that link no longer works (more on that in a minute) and probably means that my method will cease to work at some point in the future too.

There are two main sections to this process:

  1. Taking the Snapshot of your VM
  2. Restoring the Snapshot

Prerequisites

In order to follow through the rest of this post, you’ll need a few things:

  • The official Windows Azure Powershell cmdlets
  • Your Azure account information, as noted in the Azure cmdlets getting started guide here
  • Our Azure Management cmdlets
  • The name of your VM ($vmname)
  • The service name that your VM belongs to ($servicename)
  • The storage account name ($storageaccountname)
  • The storage account access key ($storageaccesskey)
  • The storage container name where the VHD resides ($containerName)
  • The Azure location of your VM ($location)
  • The URL of the blob representing the VD ($bloburl)

Snapshotting the VM

This is a relatively straightforward affair, but it would be a good idea to shut the VM down first. Remember, that the snapshot operation is performed on the blob storage object, so you’ll take a snapshot of whatever is persisted to disk. If you take the snapshot while the VM is running you won’t get the running state, so when you restore and start your VM it’ll come up in a crash-consistent state.

1
STOP-AZUREVM -SERVICENAME $SERVICENAME -NAME $VMNAME

Once the VM has stopped, you can use the Cerebrata cmdlet to take the snapshot.

1
$SNAPSHOTURL = CHECKPOINT-BLOB -BLOBURL $BLOBURL -ACCOUNTNAME $STORAGEACCOUNTNAME -ACCOUNTKEY $STORAGEACCESSKEY

Note that the Checkpoint-blob cmdlet returns the URL of the newly taken snapshot. You should keep this because we’ll need it later. I’ve stored it in a variable, $snapshoturl.

With all that done, you can start the VM again.

1
START-AZUREVM -SERVICENAME $SERVICENAME -NAME $VMNAME

Restoring the VM

The process of restoring the snapshot is somewhat more involved than actually taking the snapshot.

When a disk is attached to a VM, a lease is created which prevents access to that blob by everything else. This is also where my steps differ from the ones here. In order to perform the restore you must remove the entire VM and, as I’ve discovered, you also need to remove the disk (which is a separate entity to the blob) before you can perform the restore.

To start with, you’ll want to stop the VM

1
STOP-AZUREVM -SERVICENAME $SERVICENAME -NAME $VMNAME

Then, export the VM config somewhere safe

1
EXPORT-AZUREVM -SERVICENAME $SERVICENAME -NAME $VMNAME -PATH $CONFIGPATH

Where $configpath is some file path local to the machine where the script is running (e.g c:\temp\myvmconfig.xml).

Next, get and store the name of the disk that is attached to the VM (this assumes only one disk, so you may need to modify this if your VM has more than one).

1
$DISKNAME = GET-AZUREDISK | WHERE {$_.ATTACHEDTO.ROLENAME -EQ $VMNAME} | SELECT DISKNAME

Then you can remove the VM. If you remove the VM first, you’ll then have difficulty getting the name of the disk.

1
REMOVE-AZUREVM -SERVICENAME $SERVICENAME -NAME $VMNAME

Next, we need to wait for Azure to stop associating the disk with the VM. I’ve written a simple loop that does the waiting, you might want to tweak it to suit your needs, but this works well enough for me

1
2
3
4
5
6
7
$ATTACHED = GET-AZUREDISK | WHERE {$_.DISKNAME -EQ $DISKNAME.DISKNAME} | SELECT ATTACHEDTO

WHILE($ATTACHED.ATTACHEDTO -NE $NULL)
{
    START-SLEEP -S 20
    $ATTACHED = GET-AZUREDISK | WHERE {$_.DISKNAME -EQ $DISKNAME.DISKNAME} | SELECT ATTACHEDTO
}

It takes a while for the association to go away (in my experience), hence the 20 second sleep between checks.

Once this completes, you can remove the disk

1
REMOVE-AZUREDISK -DISKNAME $DISKNAME.DISKNAME

Then, you need to remove the service which releases the service name and then allows you to deploy the VM again.

1
REMOVE-AZURESERVICE -SERVICENAME $SERVICENAME -FORCE

Finally, we can perform the restore of the snapshot

1
$NEWBLOB = COPY-BLOB -BLOBURL $SNAPSHOTURL -TARGETBLOBCONTAINERNAME $CONTAINERNAME -ACCOUNTNAME $STORAGEACCOUNTNAME -ACCOUNTKEY $STORAGEACCESSKEY

Again, this cmdlet returns the URL to the ‘new’ blob. Keep this, we’ll need it in a second when we add a new disk

1
ADD-AZUREDISK -DISKNAME $DISKNAME.DISKNAME -MEDIALOCATION $NEWBLOB.BLOBURL -OS 'WINDOWS'

This creates a new disk in Azure which references the newly restored vhd. Change the OS to whatever OS you have, but make sure it’s an Azure recognised OS.

Finally, import the VM config we exported earlier and create a new VM

1
IMPORT-AZUREVM -PATH $CONFIGPATH | NEW-AZUREVM -SERVICENAME $SERVICENAME -LOCATION $LOCATION

And that’s it. You’ll need to wait a while for the VM to boot, and if you put all this together in a script, then the whole process can take quite some time (10 – 15minutes in my experience!).

Tagged with:

Introducing Azure Management Studio and Azure Explorer

As most of you know, Red Gate acquired Cerebrata – arguably the leading developer of tools for Windows Azure developers – in September 2011. This made sense to us for a few reasons: firstly, we’ve been using Windows Azure internally for a number of projects, and we have experienced how great it is; moreover, we were having increasing numbers of conversations with developers and IT pros from around the world that were using Windows Azure and wanted better tooling. To be honest, the acquisition felt like a no-brainer.

It’s now been 18 months since the acquisition and we thought it was time we shared what we’ve been working on and our plans for the future. It’s a pretty exciting period for us, as we have two new tools to announce. The first is our new flagship product, Azure Management Studio, a pro tool for people who are serious about Windows Azure – it’s also a free upgrade to all existing users of both Cloud Storage Studio and Azure Diagnostics Manager. And secondly, we are very pleased to introduce our first free Windows Azure tool, Azure Explorer, a Windows Azure storage tool for people who are just getting started with Windows Azure and want the best Blob management tool available.

ams Azure Management Studio
ae Azure Explorer

 

The team moves fast. Very fast!

We got lucky with Cerebrata, not only in that the founder, Gaurav Mantri, wanted to be involved throughout the handover process, but also because the team was keen to work with us. It was immediately obvious why they had been so successful. They knew Windows Azure inside and out – so well that it became a bit of a running joke. Whenever we Googled a Windows Azure problem or question, more often than not, we’d stumble on an MSDN or Stackoverflow answer by Gaurav. The next lesson from the team to take on board was just how quickly they blasted out new functionality. Microsoft would introduce something to their Windows Azure APIs, and within days, the Cerebrata team would have it in their tools. A week or two later they’d have feedback from the community and plans on how to take the new feature forward. Their pace is one of the things we admired most about their team, and we’re dedicated to maintaining that speed as we move forward.

Great functionality. Not so great usability.

The Cerebrata tools are feature-rich, which was one key differentiator that made them so appealing to us. There are free tools which cover some Windows Azure functionality, but as soon as you have applications in production, you typically require more functionality and better performance. We saw that in Cerebrata’s tools and believe it to be a major reason their tools are used by thousands of developers around the world.

Wely Lau wrote a great article comparing the different Windows Azure storage tools, and whilst he acknowledged Cloud Storage Studio as the pro-choice for developers who were serious about Windows Azure, he wasn’t particularly positive about the interface and usability. That really resonated with us and was something we were keen to fix.

To better understand the problem, and to understand why people use our tools, we spent two months usability testing the Cerebrata tools. We’ve shared some of these problems below to give you an idea of how the products are evolving.

Far too many tabs

Our tool uses a tabbed pane interface, much like Visual Studio. However, in Cloud Storage Studio, we soon realized it was far too easy to open too many tabs (bit like SSMS, at least if you use it like me!). Most serious Windows Azure applications make use of Blobs, Tables, and Queues, and consequently you end up with twenty open tabs in no time. This problem was exacerbated by the fact that to begin with, you have a tab for viewing blobs, a tab for uploading blobs, and a tab for downloading blobs. Same goes for Tables and Queues. It was a nightmare, and meant your tasks and transfers, some of which were long running, would be split among an unmanageable number of tabs.

far-too-many-tabs

Too many tabs in Cloud Storage Studio

We decided to remove as many tabs as possible and group related and connected functionality into a sensible set of tabs. We also overhauled the interface encircling transfers and tasks, allowing users to better do things like observe activity, pause transfers, and reorganize transfers – basically all the things you’d expect to see in a modern file transfer tool.

file-transfer

New task panel in Azure Management Studio

We also wanted to make it really easy to support those tasks that are difficult to perform in the Windows Azure Management Portal; for example, set the metadata on a thousand blobs or quickly drag and drop files between your local machine and your many blob containers. These things are all now intuitively simple to do in Azure Management Studio and Azure Explorer.

It was confusing in places

After watching dozens of people struggle to navigate our menus and fail to discover useful functionality, we decided to overhaul all the menus and toolbars in our application. As simple as it sounds, it makes a big difference to the tool. I remember demoing one of our tools soon after the acquisition and struggling to find a bit of functionality that I knew we supported—pretty embarrassing!

old-blob-container-menu new-blob-container-menu
Terrible menu Better menu

We also noticed that a lot the dialogs were inconsistent and not very intuitive. For example, you could easily delete all your Blob Containers without much warning: not good when you’re working with valuable data! To this end, we reviewed all the key strings and dialogs, as well as the application options – our tool supports permissions, block size settings, all sorts of things that were being overlooked as they were difficult to interpret.

settings-menu

Configuration settings dialog in Cloud Storage Studio

options-menu

Redesigned options in Azure Management Studio

It didn’t quite behave like you would expect

Some functionality behaved exactly as expected, following best practices and established norms, but a lot of functionality went off-piste. For example, most users expected the file manipulation aspect of our tool to behave exactly like Windows Explorer, so we spent some time standardizing functionality. Another example was that you could easily export your Windows Azure connection settings, but it wasn’t clear how to import them—so we added Import Connection Settings to the File Menu. These are trivial changes in and of themselves, but as a whole they make the tool much easier to use.

We also added some new functionality

In addition to improving the usability, we couldn’t resist adding some new functionality. Luckily, we have an amazing bunch of users who regularly send us detailed feedback, which made prioritizing some changes easy.

Blob search and bookmarks

Eli wanted to be able to search across his blob storage and bookmark common locations – doubly valuable when you have thousands of blob containers. You can now easily search across your blobs (and with Regular Expressions) and you can also bookmark common locations, allowing you to go straight to your frequently accessed locations.

azure-explorer-search

Blob search in Azure Explorer

Table data filtering

Mike was fed up downloading table data and filtering it with other tools. He suggested we add fast-find type functionality on returned table entities, making it easy to search across table data. We stuck with what most common browsers do, adding fast find to CTRL-F.

Table data filtering

Table data filtering in Azure Management Studio

Project and user profiles

We also completely reworked the Admin and Client modes of our application. Most people don’t know this, but in Cloud Storage Studio—and now in Azure Management Studio—you can do things like restrict permissions to your Windows Azure assets, control access to blobs, and allow only certain users to update tables. This is useful in teams, or for consultants or contractors, who want to give restricted access to certain people or simply want to prevent accidental deletes. However, it was quite difficult to use and a large number of people found themselves stuck in Client Mode, with limited access to their own Windows Azure accounts. We now have Profiles, which allow you to quickly create project- or user-specific views into your Windows Azure applications; for example, you can now group all Production-related items into a single Profile.

profile-menu

Profile menu in Azure Management Studio

We’ve added a bunch of other stuff, too, which we’ve been working on via our private and public beta programs. For that, we’d like to thank the hundreds of users who tried Azure Management Studio whilst it was in private beta, taking the time to share their feedback. We’ve been blown away!

Plans for the future

We’re still working with the Cerebrata engineering team and have been prototyping some new functionality for our first few point releases. Firstly, we’ll be adding support for Virtual machines in Azure Management Studio 1.1, letting you control and manage your IaaS images, disks and endpoints without visiting the Portal. Next we’ll be adding rich support for the Service Bus, letting developers monitor and debug the Service Bus Queues. We’re aiming to ship a new release each month, and would encourage all of our existing users to upgrade to Azure Management Studio today.

And after that? Our goal is to continue evolving as close to the pace of the original Cerebrata team as we can manage. And as always, we’ll be listening to our users, via community events, usability testing, and direct communications—and speaking of which, if you’re interested in learning more about Azure, I’d recommend signing up for Microsoft’s global Windows Azure event, which is taking place later this month. We’ll be sponsoring it and providing free licenses for AMS. If you have any thoughts, just drop me an email (ljefferson@cerebrata.com). We’re very excited about what’s in the pipeline, and we’re looking forward to sharing it with you in future blog posts.

 

bootcamp

Tagged with:

Cerebrata Is Now Part of Red Gate Software

When I founded Cerebrata in 2008, I had a vision of producing developer tools that would continually break new ground, backed by a company that really cares about the needs of its users.

I think we’ve come a long way in meeting that vision and today I’m pleased to announce another big step in our journey: The acquisition of Cerebrata by Red Gate Software.

Red Gate is known for its ingeniously simple tools used by more than 500,000 Microsoft technology professionals worldwide. We used Red Gate’s .NET tools internally to build our Cerebrata products, so I can vouch personally for their quality.

Here are a few of the major benefits the Red Gate/Cerebrata partnership delivers to our current and future users:

  • Greater development and user-experience resources, which will help enable the timely release of tools that exceed expectations and are a delight to use.
  • Shared experience and technical knowledge. Red Gate has a strong line of .NET products, a successful product in SQL Azure Backup, and a commitment to simple tools that make developers’ lives easier.  This is an ideal merger of technical acumen and market approach.
  • A customer-first philosophy. One of Red Gate’s hallmarks is its exceptional attention to user experience and support.  Like Cerebrata, Red Gate puts the user’s interests before all else.

Unlike some acquisitions, this is a true partnership between Cerebrata and Red Gate. I and the rest of the Cerebrata team will be working together with Red Gate for the foreseeable future, and I will be visiting Red Gate’s offices monthly to ensure the acquisition process goes as smoothly as possible.

Thanks for your ongoing support and encouragement. I look forward to announcing some exciting new developments in the weeks and months ahead, including new versions of Cloud Storage Studio and Azure Diagnostics Manager in January 2012 and an all-in-one tool called Azure Management Studio shortly after.

Gaurav

Subscribe

Archives