Tuesday, June 28, 2011

Microsoft’s SharePoint, Office 365 and ‘Cloud’ Terminology

With today’s launch of Office 365, I have cloud computing on the brain. It’s no exaggeration to say that “cloud” is the hottest buzz word in IT these days. According to IDC, the cloud market will hit $72.9 billion in 2015. However, there isn’t just one flavour of cloud. From cumulus to Office 365, clouds come in all sorts of varieties. So what does “cloud” actually mean? Here’s a run-down of the terminology currently being used by the SharePoint community and Microsoft in its SharePoint Online (SharePoint in the cloud) messaging.

logo-SharePoint-270_40[1]

SharePoint Online

The term “SharePoint Online” has been used to refer to any hosted versions of SharePoint—but the image above shows that Microsoft has really claimed the name. Office 365, BPOS and SharePoint hosted by a provider (e.g., Rackspace, SharePointHosting.com or Fpweb) all fall under the loose use of this term. I liked the general usage, but I guess I should stick with the fact that SharePoint Online is part of Office 365/BPOS and therefore refers to SharePoint hosted by Microsoft.

Office 365

Office 365 launched today! According to Microsoft, Office 365 is “where Office meets the cloud.” What that actually means is that it’s hosted versions of Exchange Server, SharePoint 2010 Server, and Lync Server. The previous version was called the Business Productivity Online Suite (BPOS). Users will have access to the web versions of Office products and some users will actually get a copy of Office Professional included.

Private Cloud

This is a mildly controversial term. According to Gartner, IT should be planning to move to private clouds. But if cloud computing is applications hosted online, then a private cloud is what exactly? According to a growing number of influences, a private cloud is not necessarily on the Internet at all—it’s any version of SharePoint that’s accessed over a network. A private cloud is usually SharePoint hosted in a private data center.

So what’s controversial about that? Well, cloud computing is meant to free organizations from the IT overhead of running their own systems. If a company is running SharePoint in a private data center then they’re not decreasing their overhead; they’re actually adding a complicated infrastructure.

Public Cloud

If the private cloud is a version of SharePoint that’s available to a restricted group and accessible over a private network, then a public cloud is a SharePoint system that’s accessible publicly across the Internet. Office 365 is an example of a public cloud since all you need is the right URL, username and password, and you’ll be able to access it from anywhere.

Hybrid Cloud

If you needed any proof that Microsoft is walking the walk when it comes to their “all in” cloud messaging. All you need to do is read the four-page Microsoft cloud ad in last month’s edition of Wired magazine. The main focus of that add is the hybrid cloud: part private cloud and part public cloud. Hybrid clouds are being promoted because they allow companies to get their feet wet in the cloud (pardon the mixed metaphor) without jumping all in.

I recently co-presented a SharePoint webinar with Bob Fahey, Senior Director at Avanade, on the subject of migrating to SharePoint online and hybrid clouds.

Business Productivity Online Suite (BPOS)

The Business Productivity Online Suite (BPOS) from Microsoft is a cloud computing subscription offering and the first version of what’s now called Office 365. BPOS includes hosted versions of LiveMeeting, Exchange, SharePoint (it was Microsoft Office SharePoint Server 2007 [MOSS]) and Office Communications Server. BPOS has two flavours: Standard (BPOS-S) and Dedicated (BPOS-D).

I’ve heard it through the grapevine that this was never meant to be a public name. It’s an awful acronym that has already been abandoned, so I wouldn’t be surprised if that little piece of gossip is true. Office 365 is a much better name.

BPOS-S

BPOS-S stands for “Business Productivity Online Suite – Standard Edition.” some people say “Shared Edition” but that’s incorrect.

From www.microsoft.com, “Microsoft Business Productivity Online Standard Suite is a set of messaging and collaboration tools, delivered as a subscription service, that gives your business rich capabilities without the need to deploy and maintain software and hardware on-premise. These online services are designed to help meet your needs for robust security, all-day every-day reliability, and user productivity.”

The difference between dedicated and standard editions is covered in the BPOS – What is it? blog post on TechNet. Basically, the standard edition is a multi-tenant environment with multiple customers sharing the same hardware and dedicated installs are reserved hardware for one account. In order to subscribe to the dedicated version, an organization needs to sign-up 5000 users.

BPOS-D

As mentioned above, the difference between dedicated and standard editions is covered in the BPOS – What is it? blog post on TechNet.

Shared Cloud

This is a general term for any multi-tenant cloud environment. As already mentioned, some people erroneously assumed that BPOS-S stood for BPOS “Shared” edition. BPOS and Office 365 both provide shared offerings. In fact, almost all BPOS and Office 365 customers use the shared cloud version of those offerings.

Standard Cloud

This refers to BPOS-S--Business Productivity Online Standard Suite--which is Microsoft’s shared cloud offering.

Microsoft Online Services

Microsoft Online Services (MOS) offers hosted applications such as Office 365. These services include Dynamics CRM Online, Windows Azure and SQL Azure.

 

Companies generally move to the cloud because they are looking to reduce overhead, so it can be all about saving money, but there are other reasons to move all or part of your applications to the cloud. Many BPOS customers moved to the cloud because they wanted to use Exchange Online. However, there will be plenty of cases where companies will move to Office 365 to use SharePoint online.

Furthermore, many companies will have a hybrid solution of SharePoint on-premises and SharePoint online. In closing, I’ll just mention that Metalogix Migration Manager for SharePoint is the only solution Microsoft has approved for migrating SharePoint content to Office 365 or BPOS dedicated.

Happy Birthday Office 365

Today, Microsoft is launching Office 365, which includes SharePoint 2010 online.

I wrote a SharePoint 2010 birthday post when SharePoint 2010 launched that included the image below of the Metalogix office cake.

Metalogix has announced Office 365 support in Migration Manager for SharePoint.

From the Metalogix website:

“Whether you are using SharePoint on-premises, or SharePoint online in the cloud, Migration Manager for SharePoint (formerly SharePoint Site Migration Manager) is the best-of-breed solution for your needs. You might be moving to Office 365, or upgrading from SharePoint 2003 or 2007 to SharePoint 2010, moving between SharePoint servers, managing a hybrid cloud environment, or re-organizing your SharePoint content--regardless of your use case, Migration Manager for SharePoint is an easy-to-use and convenient way of moving, synchronizing or managing your SharePoint data. With its familiar copy-and-paste-style user interface, you can quickly migrate and manage all SharePoint sites, libraries, lists, web parts and permissions between servers.”

Sunday, June 19, 2011

Azure Blob.FetchAttributes Throws “The specified blob does not exist.”

I was working on a Windows Azure application this weekend and I ran into a strange error. I was trying to access the metadata associated with blobs using (blob.FetchAttributes()) and received an error message. The problem was actually that the metadata wasn’t being associated properly with the blobs, so there was nothing to return. However, the error thrown was, “The specified blob does not exist.” Needless to say, I found this to be strange.

My solution was to check the metadata count before trying to fetch any metadata. This allowed my code to return blank results rather than throw a misleading error.

// Check for the case where attributes haven't been set
if (blob.Attributes.Metadata.Count > 0)
{
     blob.FetchAttributes();
}

Update: Upon further investigation, I found that this didn’t work even when the BLOB metadata was properly set. If you run into this, check that you’re blob container reference isn’t null.