Skip to content

Category: Cloud Computing

You Can’t Disable Office 365 Groups

Note – Since originally publishing this post, I have been made aware of some new management tools that will allow the ability to disable group creation by default. As opposed to modifying this post, which contains other observations, I have published a new one dealing with these new tools here.

As I’ve discussed before, Office 365 Groups are a very important feature in Office 365, and one that all organizations using Office 365 should fully understand as soon as possible. Groups are either required or they provide important capabilities for every product in the Office 365 stack. However, every organization has a different tolerance for change, and some have no tolerance for it at all. In addition, there are many aspects of Groups that are still a work in progress (navigation for example). A frequently asked question is “how do we turn off Groups?”. There’s nothing in the Office 365 Administration interface in either the Groups, or the Services & Add-ins sections.

Groups Administration

Groups section in Services & Add-ins

I’m far from the first person to hear this question, and a quick Internet search will turn up many articles that walk through the process of “how to disable Groups creation”. There is an article on Technet that walks through the process, and Wictor Wilén has another that is quite straightforward (not to mention insightful). Finally, Albert-Jan Schot walks through the process of doing this for specific users or groups of users in the tenant.

What these approaches do is to adjust the Outlook Web Access policy that controls the creation of Office 365 Groups. At its core, an Office 365 Groups is just a type of Azure Active Directory Group, one with multiple services attached to it. When Groups were first introduced, the only way of creating them was through the Azure Active Directory interface, PowerShell and through Outlook Web Access (OWA). The first two methods require an administrative level of access, so enabling and disabling this feature in OWA effectively disabled it for end users. An end user can still see the Group creation controls, but any attempt to create a new group is met with a dialog informing them that this feature is disabled.

Since Groups were first introduced, there have been several significant changes as more Office 365 services embraced the Groups structure, and others have been introduced that rely on it.

When the “new” Power BI was introduced in mid 2015, its Sharing story relied heavily on Office 365 Groups. Each Group receives a Power BI workspace, and conversely each new Power BI workspace is a Group. Given that end users can create and to some extent manage the workspace directly in the Power BI user interface, it represents an alternate Groups management tool focused on the end user.

Creating a new Group in Power BI

Microsoft Planner, launched in mid-2016 is another product that relies on the availability of Groups. For the most part Planner stands on its own, with minimal ties to the rest of the Office 365 stack. Each Plan contains multiple tasks, but under the covers, each Plan is backed by an Office 365 Group, with all the rest of the available services. Creating a new plan in Planner creates a new Group, and everything that goes with it, even though the interface doesn’t make it very clear. You’re getting far more than just a plan.

Creating an Office 365 Groups (aka Plan) in Planner

With the release of Modern Team Sites in SharePoint, SharePoint is also very tightly bound to Office 365 Groups. Before this release, creating a new team site through the SharePoint interface or through the SharePoint administration interface created a classic SharePoint site collection. Doing so now also creates a group to go along with it (again, with everything that goes along with that) and all the access to the new Team Site (a site collection) is controlled through membership to that Group. The SharePoint interface for this makes it very clear as to what is happening – “Lets create a new team site and group”.

Creating an Office 365 Group from SharePoint

It is still possible to create a SharePoint site collection that is not bound to a group through the SharePoint administration interface. Modern team sites (the site collections created through the SharePoint user interface) don’t appear in the SharePoint administration interface at all.

The Outlook 2016 rich client also has a comprehensive set of group management features. A group can be created by right clicking on the “Groups” node in the Outlook mailbox, and once created can be fully managed by the “Home” tab in the ribbon.

Creating a new group in Outlook 2016

Managing a group in Outlook 2016

There are now 5 different way for end users to create and in some cases, manage their Office 365 groups. The original Outlook Web Access interface, and now Outlook 2016, Planner, SharePoint and Power BI. The processes outlined above for disabling group creation prevent group creation from Outlook Web Access, but what effect do they have on these new interfaces? The answer is, no effect whatsoever. Whether the “GroupCreationEnabled” OWA policy has been set to false or not, these other interfaces will still be able to create and work with Office 365 Groups. This may not be surprising as Power BI, Planner, and now even features of SharePoint are dependent on the Groups infrastructure.

I have not called out Microsoft Teams above. It is true that Teams is also dependent on the Groups infrastructure, and that creating a new team will create a new group. Where Teams differs from the other dependent services is that the creation of a new Group in one of the other interfaces does not automatically create a new Team. In addition, Teams itself must be enabled by an administrator, meaning that for this additional service, Groups creation can be controlled centrally.

In the very near future, Yammer will also become Groups dependent. Creation of a new group in Yammer will spin up a corresponding Office 365 group, which will be used to store the files and notes available in Yammer. These groups will be flagged as “Yammer managed” meaning that they will not appear in the Outlook interfaces, but they will be available to all the other services that utilize groups.

The bottom line of all this is that even if you use Office 365, and you think that you have disabled Groups in your tenant, the chances are that you could be in for a surprise. If any of these dependent services are in use, the chances are that you already have several created.

Groups are the bedrock of all new features in Office 365 moving forward – it is therefore a good idea that your organization understand them as soon as possible. Their inevitability is also another strong argument for paying close attention to them. If you are currently discussing whether or not they should be used, I would strongly encourage you to shifting that discussion to how they should best be used.

6 Comments

Understanding Office 365 Groups

When Microsoft Teams was announced at the beginning of November 2016, I posted an article that attempted to explain the different social networking products available from Microsoft and the advantages/disadvantages of each. Since then, it has become apparent to me that there continues to be a lack of understanding about what Groups are, what they bring to the table, and where they fall short. This post is an attempt to help clear up some of that confusion.

To begin with, Groups isn’t a product in an of itself, it’s an infrastructure. Specifically, an Office 365 Group is a specific type of group in Azure Active directory. That’s it. They have a few properties, and they contain members, but outside of Office 365 administration or Azure Active Directory admin, there’s really nothing to look at. What is unique about them is that the Office 365 services are becoming increasingly tied to them, and creating one of these groups will provision multiple artifacts in multiple Office 365 services.

The value of Groups is really in the workloads and services that they tie together. This is where it starts to get a bit confusing. The way that I see it, there are currently 9 workloads (team sites, file storage, group inbox, enterprise social, group chat, notebook, plans, calendar, and report workspace) offered by 6 different services (SharePoint, Outlook, Yammer, Microsoft Teams, Planner, and Power BI). Arguably, Group inbox, enterprise social and group chat could all be considered conversation spaces, but my earlier article makes the case for considering them separately. Also, Skype for Business is notable by its absence, but I consider Teams to be the logical successor to Skype for Business.

A summary of the different workloads, and the services that offer them can be seen below.

This is a description of the various workloads offered by the component services, and it’s relatively straightforward. The only overlaps (if my earlier assertions about the different types of social are accepted) are group inbox services being offered by both Outlook and Yammer. Since Groups created and managed by Yammer will be kept distinct from other groups, this shouldn’t be the source of too much confusion.

The picture gets a little murkier however when we talk about the way that users will interact with groups, which is through a client application of one form or another. All the constituent services have at least one client application that interacts with Groups, and several of these overlaps significantly. A full understanding of Groups includes an understanding of all the available clients.

SharePoint

When an Office 365 Group is created, a Modern SharePoint Team site, which is a SharePoint site collection gets created along with it. This site collection is home not only to the Group’s team site, but to its OneDrive file storage, and to its Notebook (via OneNote). The SharePoint home page is focused on site collections, with Group site collections being called out specifically. From here one can search for Groups, pin favourite Groups, access recently used Groups, and access Groups deemed important by the tenant administrators.

SharePoint has two different clients that touch Groups – the standard web interface and SharePoint mobile. As noted above, SharePoint supplies 3 of the core Group workloads so the SharePoint interface is inherently well integrated. In addition to the native interface, the SharePoint web part framework lends itself to further integration, and indeed there are already two Modern web parts that have emerged that tough other Group workloads. The Yammer web part, which is available today in first release brings enterprise social into the SharePoint interface, and the upcoming Power BI allows the embedding of reports into SharePoint pages.

Groups can be created and managed directly in the SharePoint interface, and group conversations are accessed though a Group conversations link. Now, this launches the Outlook Web App to access the inbox, but when Yammer Group integration is rolled out, it will launch into Yammer for Yammer managed Groups.

The SharePoint mobile application is full fidelity, and modern web parts work with it. Thus, the SharePoint mobile app has all the same touchpoints that the browser interface does with one exception. It is currently not possible to add or manage Groups in the SharePoint mobile app.

There is currently no integration of Group chat (Teams), Plans, or the group calendar in either the browser or the SharePoint mobile client.


SharePoint UI integration with Groups

Outlook

The Outlook web application was originally the only place to go to create Office 365 Groups. Management of Groups is therefore its strong suit and is provided natively. The Group inbox and the Group calendar are also both provided by Outlook (Exchange) and the web client reflects that. The Outlook clients are currently the only tools that allow these two workloads to be accessed natively. In addition to these native workload, the browser client provides contextual like to open the Group Team site, OneNote, OneDrive, and the Group Planner. There is currently no integration between the Outlook browser client and enterprise social (Yammer), Group chat (Teams) or Power BI workspace.

The rich Outlook client included in Office 2016 has almost full feature parity with the browser client. The only difference is that is does not currently provide links for opening the Group Team site, or Planner.

The Outlook mobile app, available on iOS, Android and Windows Mobile is a bit of an anomaly. This client does not integrate at all with Groups. Instead, the Outlook team has published an app on these platforms called “Outlook Groups”. Given that they are known as Office 365 Groups, this name can be a bit confusing. The Outlook Groups app provides native access for the Group inbox, Calendar, and OneDrive files. It will launch the mobile OneNote app for access to Group notes, and it even allows for Group management. It is the only mobile app that allows for Groups management.

Outlook UI integration with Groups

Yammer

Yammer has historically been a completely separate application, and its user interface reflects that. To date, there is no integration with Groups, but this work has been done, and it will be available shortly. An early build of the Groups integrated Yammer interface was recently demonstrated at the Microsoft Ignite conference in Atlanta.

Groups integrated Yammer client

The integration points can be seen in the right column of the UI. Initially, Yammer will integrate OneNote and OneDrive for notes and file storage respectively, and accessing the links will open the respective web applications. The “classic” Yammer files and notes will be maintained for a period and can be accessed at the top of the UI. In addition to files and notes, both Planner and the SharePoint Team site will be available directly from the Yammer interface. There is not integration at all with the Group Inbox, Group chat, Calendar or the Power BI workspace.

IT will be possible to create manage Groups and add/remove members directly from the Yammer interface. Creation of a Yammer group will spawn an Office 365 group, and while all operations will be performed in Yammer, they will be kept in synvc with the Office 365 Group. It should be noted that Groups that are created in the manner will be flagged as “Yammer managed” as opposed to “Outlook managed” and will be invisible to the Outlook clients. All the other clients will be able to see them however.

The Groups integrated mobile client has not been shown publicly yet, so we can only speculate on what it may contain. I suspect it will mirror the browser client, but for now, the only thing that is certain is that it will support enterprise social.

Yammer UI integration with Groups

Microsoft Teams

Teams is the new kid on the block. It is currently available in preview form, so this analysis may be incomplete. Microsoft Teams was built by the Skype product team, and given its ability to do 1:1 conversations, as well as textual, audio and video conversations, it should logically be seen as the successor to Skype for Business. What it brings to the table for Groups is a persistent semi-threaded chat interface. Although it only provides one of the workloads to Groups, it’s UI encompasses most of them.

The Teams client is quite rich, and it provides “sub-team” management. Every team gets at least one channel (General) and additional channels can be added at will. These channels are the containers for the semi-threaded discussions, and each channel also gets its own folder in the Groups OneDrive, as well as a section in the groups OneNote. Creating a channel provisions these artifacts automatically. Any one of these channels can be extended through tabs. Tabs are a way of including content that may be relevant to the channel, and that content can be dynamic. For example, a Power BI report can be added to a new tab and it will always be up to date, or through a third party, a Yammer Group conversation can be embedded as well. Finally, connectors can be employed to automatically add relevant content to a channel’s conversation interface as it occurs – a Twitter feed is a good example of this.

Teams channel showing the associated artifacts in OneDrive and OneNote

The fact that there is already a third-party tool for embedding Yammer conversations speaks to the extensibility of the Teams client as well. Extensibility options are available for tabs and connectors.

The integration of Teams with Planner is notable as well. As I previously wrote about here, the Teams client allows for multiple planner plans to be created within not only a single Group, but a single channel. These plans are NOT available through the Planner client UI, although the resulting tasks are. I would look for this to change in the near future, but that’s the way it works today.

The Teams client (both browser and desktop – they are virtually indistinguishable) has access to the widest set of Group workloads of any client currently. This is partly due to the fact that it is brand new, and as such, is the only client that has access to the Group chats. It has native access to Group management, file storage, group chat, notebook, plans and Power BI reports. It has links to the Group’s Team site, and through third party integration, it can embed enterprise social content. The only workloads that it does not currently integrate with are the Group inbox, and the Group calendar.

The mobile client is unfortunately vastly different. The only workloads that the mobile client works with today are Group chat (as expected) and Group files (from OneDrive. Given the importance of mobile to the modern team story, I would expect this to change. However, if the SharePoint mobile client had access to the Group chat, it could provide a viable alternative.

Microsoft Teams UI integration with Groups

Planner

There is very little integration between Planner and Groups. The Planner UI obviously offers native access to Group plans, but as mentioned in the Teams section, not all the plans – only the one associated twith the root Group itself. Each Plan also offers a link to access all of the files stored in the Group’s OneDrive, and that’s where the integration ends. There is no integration with the rest of the Group workspace. The Palnner browser client is also the only client available. Inexplicably, there is no mobile client for Planner.

Planner UI Integration with Groups

Power BI

Power BI makes very good use of Groups – Groups provides the optimal sharing option for Power BI. Each Group is provided its own Power BI workspace, which is a container for data sources, reports, and dashboards. All members of the group get access to all the assets contained within.

The Power BI browser client is aimed primarily at the use of the Power BI service, but does provide some integration with the other Group workloads. Groups can be created and members added from the Power BI UI (although they are referred to as Group Workspaces). Native access is obviously provided to all the Power BI assets contained within, and links are also provided to the Outlook browser client for access to the Group inbox and the Group calendar. Finally, Group OneDrive files are natively available for the storage of data sources. There is no integration with the rest of the workloads currently.

The Power BI mobile client is all about Power BI – it doesn’t integrate with any of the other workloads, aside from being able to use the Group workspaces themselves.

Summary

To summarize, the modern Office 365 Group provides the membership and access services to 10 separate workloads which are provided across six different products/services. This “Group workspace” is accessed through any of 14 different clients that provide varying levels of access to the different workloads/and services. The choice of client will depend heavily on requirements and will likely lead to a combination of clients based on capability and preference. At the moment, the most integrated browser client is provided by Microsoft Teams, and the most integrated mobile client is SharePoint mobile. A final summary is below.

9 Comments

With Microsoft Teams, Office 365 Groups Can Now Have Multiple Planner Plans

Microsoft Planner went into general availability in June of 2016. It allows basic project and task management for organizational teams. Like most products in the Office 365 suite, Planner makes extensive use of Office 365 Groups, which provides membership services through Azure Active Directory, and Storage through SharePoint. Creating a new Plan in Planner is one of the ways to create and Office 365 Group – each plan gets a Group. Conversely, each Group gets a Plan.

Adding Members to a Plan – Adding to the Office 365 Group

One of the more requested features on the Planner User Voice site is to break this 1:1 relationship so that a Group could contain multiple Plans. It’s currently marked as “Thinking About It” in user voice, but it appears that far more work has gone into it than that.

Microsoft Teams was released into preview earlier this month, and included in Teams is very tight integration with Planner. Teams is also tightly coupled with Groups (each Team gets Group), and adding the Group’s Plan to the interface is relatively straightforward. Simply click on the “add tab” icon, and choose Planner.

And then give the plan a name and save it.

However, there’s more to it than that. From the Teams interface, it’s possible to create additional Plans. To do so, simple add another tab and repeat the process.

How is this possible? If there is a 1:1 correspondence between Groups and Teams, and a 1:1 correspondence between Groups and Plans, then there must also be the same correspondence between Plans and Teams. As it turns out, that the relationship between Groups and Plans is no longer limited to 1:1. The plans created in Teams are not (or do not appear to be) a part of the group. This can be seen if you open Planner on its own, and these plans will not appear in the “All plans” list, because this is just a list of Groups. The Group itself has a Plan associated with it, but it’s not any of the plans that are created in Teams. However, if you have tasks from these Plans assigned to you, they will appear in the My tasks list.

Conversely, in the Teams interface, I cannot find a way to have this default plan appear in the Teams interface. This is something that could be very confusing for any users that use bot the Planner ands the Teams interfaces. Given that Teams is only in preview now, I can only assume that these user interface inconsistencies will be remedied.

The bottom line to all of this is that it appears that the bulk of the work has been done to allow multiple plans in a single Office 365 Group. You simply need to use Microsoft Teams in order to access them.

2 Comments

Microsoft Teams and the New Microsoft Social Landscape

Today, Microsoft debuted Microsoft Teams. Microsoft Teams allows teams of people to quickly get together to collaborate in real time. If you’re keeping count, this represents Microsoft third tool in the Social Computing space.

Why would Microsoft want to introduce yet another social computing tool? They already have Yammer, Skype (for business and personal), and Outlook Group conversations. What would be the reasoning for this new product? At one level, Microsoft Teams is aimed at the same group of users that find value in Slack, which is a social tool that has grown in popularity recently and is particularly popular with developers.

I was first exposed to Slack a little over a year ago. I had heard about it, and the buzz around it was that it was the “next big thing”, so my expectations were high. When I did first use it, my thoughts were, “That’s it? That’s all there is to it?”. Functionally, Slack doesn’t really bring anything to the table that we didn’t have 30 years ago with IRC chat. Now, given the demographic that Slack is popular with, they are likely not old enough to remember IRC. Of course, none of this really matters, what matters is that Slack fills a need for immediate, almost synchronous communication with very little structure. Slack doesn’t even support threaded discussions. However, it’s simplicity is its strength and its value proposition, and Microsoft hasn’t had anything in the market quite like it. Until now.

So how does this product compare with its existing Social tools, Yammer and Outlook Groups? When would you use one vs the other?

Microsoft bought Yammer in 2012 and quickly championed it as the cornerstone of its social computing strategy moving forward, replacing the social features of SharePoint Online, and making them optional in SharePoint on-premises. However, at Ignite 2015, Microsoft introduced Groups for Office 365, which included a conversation platform based on Exchange (Outlook conversations). This was essentially a group inbox with a number of social features added such as likes, etc. It was pretty clear that Groups were going to be the underpinning of the next generation of features in Office 365, and this led to quite a bit of uncertainty about Microsoft’s social strategy. The recent Ignite 2016 made it pretty clear that Microsoft is doubling down on Yammer as its social strategy, but that does little to clear up the confusion. What happens now with Outlook conversations? Microsoft Teams would seem to only make it worse.

The reality, in my opinion, is that these tools are not exclusive. Although there are some areas of overlap, I see them at complementary, with each serving a niche depending on requirements, or at the same time. The problem is that they tend to be positioned as competitors. In my opinion, we have an “or” vs an “exclusive or” situation.

I have used Yammer, Outlook Groups and Slack (used here for comparison purposes) of these platforms fairly heavily in the past year. At UnlimitedViz, we have moved most of our collaboration and document management away from Team sites and into Groups. On a side note, we’re very happy to see Team sites now following us over. Yammer is the platform that we primarily used for our threaded discussions. Slack is used by the MVP community for quick and easy chats. I like all three and dislike all three for different reasons.

Once we moved most of our customer focused content into Groups, the value of having an inbox for each group became readily apparent. When going through email, I could simply forward important ones to the group, where it would be retained, and accessible to other members of that group. I could now delete customer email with impunity. From a feature standpoint, this is gold. We also decided to run one of our more significant projects using Outlook conversations alone, and that aspect wound up being a very poor experience. The email infrastructure simply wasn’t built for threaded conversations.

Yammer can infuriate me from time to time, particularly with its unread mark handling (which has admittedly gotten better) and its poor to non-existent search capabilities. Content stored in Yammer is effectively gone as far as I’m concerned, which makes it particularly difficult to have conversations around context. Keeping the content in Office 365 Groups requires a lot of URL copying and pasting if you want to socialize or discuss it in Yammer. A “group” in Yammer is not the same thing as a Group in Office 365. With all of that said, Yammer delivers a superior threaded discussion experience. Its similarity to Facebook makes adoption relatively easy, and its threading keeps relevant content at the top.

Slack is the simplest of the bunch, which makes it the easiest to get up and running. It is almost totally unstructured, meaning that while anything goes, it’s not too long before it disappears. Messages are kept, but I grow weary of scrolling back through the pile of previous messages to find something that I think that I saw. Slack lives in the “now”, and the more current the content is, the more appropriate Slack is. However, it doesn’t take long for a Slack channel to become noisy, with several conversations going on at the same time. It’s like having ADD while being at a noisy cocktail party.

None of these tools on their own deliver everything necessary for a complete social experience, although they are suitable on their own for their own niche. I think that my biggest pet peeve about using these different tools is that I need to jump from interface to interface to complete the experience. This, I believe is where Groups comes in.

Office 365 Groups is (I so badly want to use “are” here… but Groups is the name) designed to be an integrating construct. Groups really has no interface of its own, but when it was originally released, it backed the interfaces of Outlook, OneDrive, and OneNote. Outlook Groups is the Exchange based conversation interface. Shortly afterward, Office 365 Groups became an integral part of Power BI and Planner as well. Integration of Modern SharePoint Team Sites with Office 365 Groups provides a logical entry point for the Group, as SharePoint can integrate disparate UI elements. At Ignite 2016, both Yammer and Power BI content was shown in pages in a Modern Team Site through web parts. It’s not hard to see how these things can coexist in the same container.

Yammer embedded in a Modern Team Site

Power BI embedded in a Modern Team Site

The introduction of Microsoft Teams would seem to muddy the water a little. The important thing is to understand which tool to use under which circumstance. This is a much-discussed topic, and there are hours of presentation material available that discuss it. The decision is a combination of personal preference and applicability to the task at hand, but far too often it becomes a matter of familiarity. When you have a hammer, everything looks like a nail. I wince every time that I’m asked to build click throughs into an SSRS report, or to design a Power BI report to optimize printing – these are two different tools that are good at doing different things. Often, if it can be done with the tool that you know, often time we don’t look elsewhere, even when that other tool is better at that task. Further to this, the “difference” can often be a matter of perception, and in the case of an online service like Office 365, of branding.

These components can be used within team sites as appropriate wherever suitable. With the team site providing the “glue”, it will be possible to surface content from any or all of these tools as appropriate. All the products already require, or use an Office 365 license already, so that is not a consideration. The question is where would you use one versus the other?

As mentioned above, Outlook Groups makes for an excellent Group inbox, but is not great as a conversation platform. This Group inbox also provides the destination for content brought in from Office 365 Connectors. It’s a logical and effective landing spot for content that is sent to the group. If the group needs an inbox, this is it – straightforward. Less straightforward is the difference between Microsoft Teams and Yammer.

I’ve been using Slack thus far as an example of group chat simply because it’s what I have experience with. Microsoft Teams is new, and while it compares favourably with Slack, it also includes threaded discussions. Threaded discussions are something that Slack does not have, but Yammer does, and this makes the decision between the two a little less clear than between Yammer and Slack. IN fact, looking at the UI, it’s a little difficult to spot the difference.

Microsoft Teams threaded conversation interface

Even with threaded discussions, Microsoft Teams has more in common with Slack than it does with Yammer. Microsoft Teams is highly appropriate for small groups that get created, have a relatively short or defined life, and are then retired. Yammer groups are more structural – they are typically managed by someone to help foster participation. Microsoft Teams follow a bottom up approach, where Yammer is more top down. Small groups will participate in a single Team, but too many users will likely make it too noisy to be useful. Conversely Yammer groups can reach the entire enterprise, and like most networks, their value increases with the number of nodes. Microsoft Teams are focused of chat, and Yammer is focused on conversations. If you need to get a quick group of collaborators together around a specific goal, Microsoft Teams is likely the right tool, but if you’re trying to build a community, Yammer is likely a better choice. There are of course other technical factors that may dictate one versus the other, but these factors are subject to change.

This leads me to my suggestion. We can see that the technology is emerging that will allow us to work with these tools simultaneously, as appropriate. Office 365 Groups along with Modern SharePoint Team Sites will become the containers for this convergence. However, if these products maintain their own identity, there will continue to be confusion around which one Microsoft is “betting on” or which one is “the best”. I believe that a rebranding exercise is in order.

  • Outlook Conversations becomes Group Inbox
  • Yammer becomes Group Conversations
  • Microsoft Teams becomes Group Chat

While this branding may not become a reality, I think that it’s helpful to think of the 3 tools in this manner.

7 Comments

How to Migrate a WordPress site to Azure Using In-App MySQL

Did this site load a little faster than it normally does? You may not have a basis of comparison, but I have noticed that pages load between 2x and 5x faster since I moved the site to Azure hosted WordPress using an In-App MySQL database. Previously I was running it on Azure as well, but it was using the 3rd party ClearDB database server. The performance increase is therefore entirely due to the difference in the database engines.

I have been running this blog as a web app on Azure for the last couple of years, ever since it became available. In fact, I wrote about how to enable hosting for multiple users on the same database when I first set it up. At the time, setting up a WordPress web app involved also provisioning a MySQL database through a third-party hosting provider, Clear DB. The initial offering was free, but as I quickly found out, the initial offering also doesn’t provide much, and I needed to upgrade it through the third party. This arrangement was fraught with difficulty. Aside from the unwelcome additional costs, managing the billing cycle was difficult. In addition, all my WordPress sites were a little to a lot sluggish, and increasing Azure resources didn’t seem to help much.

Over time, I learned that I wasn’t the only one, and the performance problems seemed to be with latency between Azure and the third-party provider. However, I didn’t want to start messing around with standing up my own, and it was usable if a tad expensive. However, a month or so ago I was listening to my friends Andrew Connell and Chris Johnson on the Microsoft Cloud Show, and they mentioned that Azure had put out a preview of a native MySQL implementation. This was of course music to my ears, so I tried it out, and it appears to work quite well.

I have since moved all our WordPress properties over to this new architecture, and documented the procedure. The approach that I tool should work for any WordPress site, whether it is hosted on Azure or not, but the examples I use will of course be going from Azure to Azure. I essentially create a new WordPress site, migrate the site assets to it, configure the new site to match the old one, then point the address to the new web app. There are quite likely third party add-ons that facilitate this process, but this process is manual. I am in no way saying that this approach is a best practice, only that it worked for me. Finally, as noted above, the In-App MySQL is in Preview, not production, so if your WordPress site is critical, it would likely be a good idea to hang on for a bit. I however like to live dangerously, and if my blog goes offline for a few hours, it’s not the end of the world.

Here are the steps required to accomplish this.

1. Upgrade the existing site

The new site that will be created will use the latest version of WordPress, and any plugins that get installed will also be the most recent. To avoid any version mismatches, it’s a good idea to make sure that your WordPress version, and all your plugins are up to date.

2. Retrieve the WordPress Assets from the existing Site

You can use the built-in export feature in WordPress to retrieve all the database assets. Open the tools section, select “Export”, and choose “All Content”.

The types of content will vary depending on your WordPress installation, plugins, etc., but make sure that you select all of them. When ready, select “Download Export File”. You’ll get prompted to download an XML file – put it somewhere safe – you’ll need it later.

Next up, you’ll want to retrieve your file system based assets. These will be all your uploaded files, unless you currently use and externally hosted provider, your WordPress themes, and your plugins. Strictly speaking, this step isn’t necessary. You should be able to re-download your themes and plugins, but I have found that they aren’t always available, and that this process is faster. However, if you don’t have access to the file system of the existing site, you may not be able to do this. The upload files can be gathered through the import process later as well, but this approach provides an added level of safety.

For Azure, you’ll use FTP to connect to the file system and copy the files locally. For Azure hosted sites, you can set the FTP credentials by logging into the “new” Azure portal, selecting the web app for your site, then navigating to “Deployment Credentials”. You then enter a user name and a password, and save them.

Next, scroll down to “Properties” for the web app, and take note of the “FTP Host Name” and the “FTP/Deployment user”. You will use these values to connect to the file system.

Now open Explorer on a Windows PC, right click in the “This PC” node, and select “Add a network location”.

Follow the prompts entering the FTP host and the user name when prompted. Do not attempt to log in anonymously. Also, take note – the user name has the form web app name\username. When the node opens, enter the password, and you should see 4 folders. Open “site”, then “wwwroot”, and finally “wp-content”. The folders that you need are here.

Specifically, you are looking for the plugins, themes and uploads folders. Copy these folders locally and keep them handy.

3. Create the new WordPress Site

From the Azure admin portal, select “Create New”, and search for “WordPress”. There are several WordPress options to choose from, but the one we’re pursuing is published by WordPress.

Once selected, you will be prompted to fill out the details. Give the new app a name, select the Resource Group, and most importantly, the Database Provider. ClearDB is the one that we are moving away from, so “MySQL In App” is the one that we want to select.

Once you click OK, the App will be created, and WordPress will be deployed to it. The App creation happens almost immediately, but it takes a few minutes for WordPress to be fully deployed. Don’t be alarmed if there’s nothing there for a little while.

Once deployment is complete, you can simply click on the URL of the app in the “Overview” section. The URL will take the form of http://webappname.azurewebsites.net.

A browser will open and you will be prompted to complete the initial WordPress installation. One that complete, you will be able to login to the WordPress administration portal.

4. Upload the Older Assets to the new WordPress Site

The next thing that we want to do is to upload the assets that we downloaded in step #2 to the new site. To do this, simply connect to the new file system via FTP by following the same steps that were used to connect to the old site in step #2. Once connected, upload the 3 folders to the wp-content folder of the new site. If there are folders that already exist, or that you don’t want to use in the new site, simply omit them from the upload. Once uploaded, we can activate the features.

5. Activate Assets in the New Site

It is important to activate and configure the plugins before the content from the existing site is imported. This is because some plugins extend the schema of the WordPress database, and any content that depends on those schema extensions will fail to import if they are not present.

Login to the administrative portal in the new site, and activate all the required plugins. If you don’t know which plugins should be activate, simply login to the administrative portal of the old site for reference. It’s a good idea to have these portals open side by side as you complete the next few actions. Once the plugins are active, go to the appearance section, and select the same theme as the original. Once the theme is selected, it needs to be configured. Walk through all the configuration options for your theme matching with the original site. Any options that depends on content will need to be set after the content is imported. Once the theme is configured, the plugins should all be configured. This is a very manual process of going through all the configuration screens and comparing the settings to those of the existing site.

Finally, recreate all necessary users from the old system. You will need to match blog posts with authors during the import step. The import step will offer another opportunity to add new users, but it’s a good idea to do this prior so that complete information is added for each user.

6. Imports Content from the Existing System

From the administration portal of the new WordPress site, navigate to the Tools section, and select import. A number of options will be presented, the option that you’re interested in is “WordPress”. If you don’t already have the WordPress Import Plugin, you’ll need to select “Install Now” and allow the plugin to install and activate. Once activated, select “Run Importer”, and the Import dialog will appear. Select the export file that was downloaded in Step #2 above, and then click the “Upload file and import” button to see the Import WordPress dialog.

WordPress Import is author aware, and will automatically assign posts to users that exist in the new environment based on who they were in the old, you simply need to map them at this point. If you forgot to add a user in Step #5, you can do so here as well. Once authorship is assigned, the only other decision is whether to select the “Download and import file attachments”. Strictly speaking, if all assets were brought across in step #2, this shouldn’t be necessary. What this option does is to download all referenced assets from the existing blog during the import process. This doesn’t always work, particularly on larger blogs, which is why step #2 is so important.

In addition, if the content of the site results in a particularly large export file (as was the case with this one), you’ll need to increase the upload limit for your WordPress site. This can be done by creating a “.user.ini” file in the root of your WordPress installation as described here. Additionally, you may also need to increase some of the application timeout values.

7. Test

Test the new site to ensure that it works. This cannot be stressed enough. Open all the sections to ensure that everything looks right. Ideally, use browser windows open side by side with the new and the existing sites

8. Make URL Changes to the Existing WordPress Site

It is important to follow these steps to avoid being locked out of the existing site. There are ways to correct it if it happens, but the situation is beast avoided.

Open the administration portal of the existing site, and navigate to “Settings”, General. If the WordPress Address (URL) and the “Site Address (URL)” values do not match the default URL for the Azure Web App, they will need to be changed to that value here.

The address will take the form http://azurewebappname.azurewebsites.net. It’s also a good idea to navigate to that URL to ensure that it works before saving.

8. Make URL Changes to Azure

If your existing site isn’t running on the default Azure address, you’ll need to repoint it to the new site. This will cause your site to be unavailable for a few moments. To begin, you need to remove your custom domain from the existing (now “old”) site. Navigate to the Web App for the old site in the Azure portal, and select “Custom domains”. Your custom domain should appear there along with the default address (that was used in step 8).

Click on the ellipsis beside the domain, and select “Unassign”. This will remove the custom address from the old site, freeing it up to be used by the new site.

At this point, you will need to make changes to your domain with your domain registrar. You will need to change any references (A records and/or CNAME records) that you currently have for your custom address to point to the new Azure Web App. Details for those settings can be found under “Custom domains” for your new Azure Web App. Once complete, navigate to “Custom domains” in the new Web App and click on the “+” button beside “Add hostname”. Enter your custom address and the click the “Validate” button. The custom address will be tested, and if there are any issues with it, remediation steps will be provided. The Azure portal is quite good at helping to manage this step.

Once the new URL has been registered, it should be tested to ensure that it is accessible from the outside environment. Prior to testing, the old site should be stopped (but not deleted!) to ensure that it is not responding to any requests.

If SSL was used on the old site, at this point they should be brought in to the new Web App and bound to the site.

9. Make URL Changes to the New WordPress Site

If the custom domain is working, follow the steps in step 7, but on the new WordPress site, and use the custom address for the URL values. Save, and login again.

10. Final Testing

At this point the site is live, but it is worthwhile to do another round of testing with the old Web App in a stopped state. This will identify any URLs hardcoded with the old Web App default URL, and missing assets, etc.

At this point, the new WordPress site is set up and working with the In-App MySQL database. I would recommend waiting a week or so before going back and deleting the old site and its assets, just in case.

8 Comments