SharePoint hybrid eBook series

Earlier this year, Microsoft Press published two eBooks as part of a series of SharePoint hybrid eBooks.

I authored the first book – ‘Planning and Preparing for SharePoint Hybrid’ (ISBN 9781509302420) which introduces Microsoft’s cloud services – Office 365 and Azure along with the benefits and scenarios of SharePoint hybrid that help business transform their environments to innovate and harness the power of the cloud. Bill Baer, senior product manager (SharePoint), Microsoft wrote the foreword for this book. Neil Hodgkinson did a fantastic job in standing as the technical reviewer for this eBook.

Planning and Preparing for Microsoft SharePoint Hybrid

Planning and Preparing for Microsoft SharePoint Hybrid

https://blogs.msdn.microsoft.com/microsoft_press/2016/04/26/free-ebook-planning-and-preparing-for-microsoft-sharepoint-hybrid/

The first two chapters sets the stage for the eBook series. It introduces the reader to the core cloud services and gets you all familiar with the terms and technology behind SharePoint hybrid.

The third chapter “Architecture, authentication, and authorization”, lays the foundation for Identity Management in SharePoint hybrid. It also aids Architects, IT Professionals and Developers to plan out their SharePoint hybrid infrastructure.

Chapter four is for IT Professionals to get down and dirty into checking and cleaning up their environment to be cloud-compatible and free from error.

Chapter five is about configuring synchronized user identities with password hash. Users will be able to experience a same sign-on (same password as their on-premises) but will have to type in their credentials to access cloud services.

The last chapter, gives you configuration guidance on Active Directory Federation Services (AD FS) for a single sign-on experience for your users. In this instance, users, from within the organization, will have a seamless experience accessing SharePoint online and on-premises resources.

I recommend that you download and read this free eBook. It provides the necessary ingredients for a SharePoint hybrid environment.

 

The second eBook – ‘Configuring Microsoft SharePoint Hybrid Capabilities’ (ISBN 9781509302437) was a team effort between Neil Hodgkinson, Manas Biswas, and myself. It was great to work with them on this eBook.
Forewords by By Jeff Teper, corporate vice president, Microsoft OneDrive and SharePoint and the second foreword by Seshadri Mani, principal program manager, Office 365 SharePoint, Microsoft Corporation.

Configuring Microsoft SharePoint Hybrid Capabilities

Configuring Microsoft SharePoint Hybrid Capabilities

 

https://blogs.msdn.microsoft.com/microsoft_press/2016/07/06/free-ebook-configuring-microsoft-sharepoint-hybrid-capabilities/

This nine chapter eBook walks you through configuring the common SharePoint hybrid scenarios.
Chapter one starts off with an overview of the SharePoint hybrid capabilities and the Azure S2S trust configuration.

Chapter two is about configuring hybrid search. Neil and Manas are gurus in SharePoint search and hybrid search!

Chapter three, “Business Connectivity Services hybrid”, provides you with step by step instructions to configure what is currently the most complex scenario in SharePoint hybrid. To my knowledge, this was the first end-to-end BCS hybrid guide that has clear steps with figures to help you along the way.

Chapter four, “Additional hybrid solutions”, covers the configuration of additional hybrid solutions bundle that comprises of Hybrid OneDrive for Business and Hybrid Sites Features which includes the following: Site following , Hybrid profiles , and the Extensible hybrid app launcher.

Chapter five, “Microsoft Office 365 hybrid extranet and advanced sharing”, discusses and helps you plan for extranet sharing and taking your collaboration beyond your organizations borders.

Chapters six, seven and eight are great resources for IT Pros to learn whats involved in the on-going maintenance, best practices and management of a SharePoint hybrid environment.

Lastly, chapter nine is on Microsoft SharePoint hybrid and cybersecurity. My personal favourite where we covered SharePoint hybrid and cybersecurity concerns. This chapter is aimed at IT Security folk and IT Pros to consider the planning around risk management and threat management in a hybrid context. It is a great resource to discuss with your upper management and manage the risk profile in adopting SharePoint hybrid.


A big thank you to Rosemary Caperton (Microsoft), and Microsoft LeX for your support. Thanks to Dianne Russell and Bob Russell – awesome editors who kept the momentum going and worked around our schedules.

Thanks to Kim Spilker from Microsoft Press for publishing these books on the MS Press Blog.


SharePoint 2016 RTM – the gold master is here

The gold master of SharePoint 2016 is here! The most stable, high performing and superior SharePoint version known so far…. SharePoint 2016 is now in release to manufacturing (RTM).

 

I am keen to hear about the future of SharePoint in the ‘future of SharePoint event’. Learn more in the SharePoint Server 2016 reviewer’s guide or download a trial of the RTM version. SharePoint Server 2016 will be generally available in the Microsoft Volume Licensing Service Center in early May.

Read more here:

SharePoint 2016 RTM and the Future of SharePoint event

 

 

Microsoft listens and responds to suggestions to improve SharePoint at https://sharepoint.uservoice.com

Don’t forget to view and vote on my requests here: https://sharepoint.uservoice.com/users/68116428-jeremy-taylor


Cumulative Update 7 for AppFabric 1.1 KB3092423 – CU7

Microsoft has released Cumulative Update (CU) 7 for App Fabric 1.1 – KB3092423. The fine SharePoint folk out there know App Fabric as the SharePoint Distributed Cache. It is an important prerequisite that SharePoint 2013 & SharePoint 2016 require prior to installation. In fact, SharePoint security, performance and some social features heavily rely on the Distributed Cache working properly.

Cumulative Update 7 for App Fabric 1.1 has a fix for intermittent crashes and unexpected behaviour when managing the service.

Microsoft has reported the following three issues have been fixed with this Cumulative Update 7.

CU 7 is a requirement for SharePoint 2016. This is what I got when I tried to install SharePoint 2016:2015-11-25_18-55-08

App Fabric Cumulative Update 7 fixes the following issues:

Issue 1

The AppFabric Caching service crashes intermittently with the following exception:

{System.Runtime.CallbackException: Async Callback threw an exception. —> System.NullReferenceException: Object reference not set to an instance of an object.
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.CommunicationObject.EndOpen(IAsyncResult result)
at Microsoft.ApplicationServer.Caching.WcfServerChannel.OnOpen(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
— End of inner exception stack trace —
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
Issue 2

Note – May not apply in SharePoint as we use Stop-SPDistributedCacheServiceInstance –Graceful to gracefully stop a cache host.

When you run the Stop-CacheHost AppFabric PowerShell command together with the -Graceful switch (in SharePoint, we use), you can’t stop the cache host, and you receive the following error message:

Exception type: System.Collections.Generic.KeyNotFoundException
Message: The given key was not present in the dictionary.
InnerException: <none>
StackTrace (generated):
SP IP Function
000000001F28DAA0 000007FEF611C96F mscorlib_ni!System.Collections.Generic.Dictionary`2[[System.__Canon, mscorlib],[System.Boolean, mscorlib]].get_Item(System.__Canon)+0x4098ff

000000001F28DAD0 000007FF007A860B Microsoft_ApplicationServer_Caching_Management!Microsoft.ApplicationServer.Caching.AdminApi.CacheAdmin.GetNoOfNodesInServiceState(System.Collections.Generic.List`1<Microsoft.ApplicationServer.Caching.IHostConfiguration> ByRef, Microsoft.ApplicationServer.Caching.AdminApi.ProgressDelegate, Microsoft.ApplicationServer.Caching.AdminApi.ServiceStatus)+0xfb 000000001F28DBD0 000007FF007A83F1 Microsoft_ApplicationServer_Caching_Management!
Issue 3
Note – May not apply to how we work in SharePoint as we use Add-SPDistributedCacheServiceInstance to register a Cache host.

When you run the Register-CacheHost AppFabric PowerShell command, the command fails, and you receive the following error message:

Register-CacheHost : ErrorCode<PortAlreadyInUseError>:SubStatus<ES0001>:TCP port 22234 is already in use.
Note This failure generally occurs if the cache ports are bound to any IP address.

Source: https://support.microsoft.com/en-us/kb/3092423#/en-us/kb/3092423

 

To check AppFabric version on your server, run this in PowerShell:

(Get-ItemProperty "C:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules\DistributedCacheConfiguration\Microsoft.ApplicationServer.Caching.Configuration.dll" -Name VersionInfo).VersionInfo.ProductVersion


So how do you go about applying Cumulative Updates to the SharePoint Distributed Cache (App Fabric 1.1)?

I have documented the manual steps here as there are many misleading blog posts out there. Feel free to copy this article and use this in your organisations Standard Operating Procedure (SOP) documents: http://www.jeremytaylor.net/2015/09/17/how-to-patch-sharepoint-distributed-cache-the-proper-way/

 

AppFabric 1.1 CU versions index:

RTM: 1.0.4632 (29-Nov-2011)

CU1: 1.0.4639 (20-Feb-2012) – KB2671763

CU2: 1.0.4644 (29-May-12) – KB2716015

CU3: 1.0.4652.2 (27-Nov-2012) – KB2787717

CU4: 1.0.4653.2 (28-Mar-2013) – KB2800726

CU5: 1.0.4655.2 (03-Mar-2014) – KB2932678

CU6: 1.0.4656.2 (27-Feb-2015) – KB3042099

CU7: 1.0.4657.2 (01- Sept-2015) – KB3092423

 


How to patch SharePoint Distributed Cache the proper way

SharePoint 2013 runs a service called the SharePoint Distributed Cache. The underlying application is Microsoft App Fabric. You may be running an old version of App Fabric and it needs your attention now!

An unpatched Distributed Cache may be the cause of a lot of your SharePoint farms performance issues.

The problem: A lot of blogs have misleading and wrong information on how to properly patch the SharePoint Distributed Cache. Following them will only cause you more issues down the track. Out of frustration, I have documented the steps on how to patch the SharePoint Distributed Cache the proper “manual” way with manual checks. If you follow these steps, you will have zero down time and hopefully a better performing SharePoint 2013 farm if you were on a very early App Fabric CU.

Which AppFabric / Distributed Cache CU do I install?
My advice is to generally update AppFabric with the latest providing it fixes issues that you are currently facing. Also, ensure that there are no obvious regressions with it by doing some research on the Internet. To determine the latest App Fabric Cumulative Update, http://www.jeremytaylor.net/tag/cumulative-updates+appfabric

 

Here are the steps on how to patch the SharePoint Distributed Cache:

1. Take stock of your Distributed Cache servers

Get-SPServiceInstance | ? {($_.service.tostring()) -eq "SPDistributedCacheService Name=AppFabricCachingService"} | select Server, Status

 

2. Ensure that Microsoft .NET Framework 4.5 is installed

Regedit: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

Ensure the version contains “4.5.xxx”. E.g. 4.5.51209

 

3. Remove server from the load balancer if applicable.

4. Shutdown the service instance on one machine

Add-pssnapin Microsoft.SharePoint.PowerShell
Stop-SPDistributedCacheServiceInstance –Graceful
Remove-SPDistributedCacheServiceInstance

(wait for a few minutes after running this cmd)

5. Run this to check what SharePoint thinks the list of Distributed Cache servers are:

Get-SPServiceInstance | ? {($_.service.tostring()) -eq "SPDistributedCacheService Name=AppFabricCachingService"} | select Server, Status

Reference: http://blogs.msdn.com/b/sambetts/archive/2014/03/19/sharepoint-2013-distributed-cache-appfabric-troubleshooting.aspx

 

6. Patch AppFabric 1.1

Manually run the Cumulative update file. E.g. AppFabric-KB3042099-x64-ENU.exe

It should generate a log file here for troubleshooting purposes if required:

C:\ProgramData\Microsoft\E-Business Servers Updates\Updates\Uninstall<number>\Setup.log

 

7. Check version number

Running the below command should display the desired version level.

(Get-ItemProperty “C:\Program Files\AppFabric 1.1 for Windows Server\PowershellModules\DistributedCacheConfiguration\Microsoft.ApplicationServer.Caching.Configuration.dll” -Name VersionInfo).VersionInfo.ProductVersion

 

8. Apply the Background Garbage collection fix

Skip this step only if the Background Garbage collection fix has been already configured on all SharePoint Distributed cache servers.

To enable the fix, go to the following folder:

%ProgramFiles%\AppFabric 1.1 for Windows Server\

Open notepad and edit DistributedCacheService.exe.config

Paste in the following between the  </configSections> and    <dataCacheConfig> settings in the file:

<appSettings>
<add key=”backgroundGC” value=”true”/>
</appSettings>

Example:

</configSections>

<appSettings>

<add key=”backgroundGC” value=”true”/>

</appSettings>

<dataCacheConfig>

DistributedCacheServiceGarbageCollection

Don’t try it any other way as you will have issues starting the Distributed Cache service.

 

9. Post-patch operations

1. Some additional checks:

  • The Distributed Cache service was stopped earlier

No need to restart AppFabric Caching Service in Windows Services as it should be in the disabled state – since we removed this CacheHost from the Cache Cluster.

 

2. Reset IIS by running: iisreset /noforce

3. Start the service instance

Run:

Add-pssnapin Microsoft.SharePoint.PowerShell
Add-SPDistributedCacheServiceInstance
  1. Verify if the SharePoint Distributed Cache Service has been started on the server:
Get-SPServiceInstance | ? {($_.service.tostring()) -eq "SPDistributedCacheService Name=AppFabricCachingService"} | select Server, Status
  1. Ensure that the Cache host is up and running:
Use-CacheCluster
Get-CacheHost

AppFabricServiceStatus

10. Add back the server in the load balancer

11. Restart from 1 on the next machine

12. Don’t forget the rest of your SharePoint farm has AppFabric installed by default (even though not running). AppFabric on those servers need to be updated too without stopping or starting any services.
For this, run steps 6, 7 & 8 above.

 


SharePoint Server 2016 preview download

SharePoint Server 2016 Beta 2 (2nd Preview)

Download SharePoint Server 2016 Beta 2 here: https://www.microsoft.com/en-us/download/details.aspx?id=49961

Product key for SharePoint Server 2016 1st preview: NQGJR-63HC8-XCRQH-MYVCH-3J3QR
This gives you a 180 day trial.

Review SharePoint Server 2013 (also applies to SharePoint 2016)  system requirements

 

SharePoint Server 2016 Beta 1 (1st Preview)

Download the SharePoint Server 2016 Preview here: http://www.microsoft.com/en-us/download/details.aspx?id=48712

Not that you would want to spend time on an older preview but its there for reference purposes.

Product key for SharePoint Server 2016 1st preview: NQTMW-K63MQ-39G6H-B2CH9-FRDWJ
This gives you a 180 day trial.


SharePoint Server 2016 promises

Here are the new SharePoint Server 2016 features that were discussed at Microsoft Ignite Conference, Chicago in May 2015. Since SharePoint 2016 is almost a year away and its still in early development stages, the features and specifics here might change.

 

I’d like to highlight the major points based on what Bill Baer (Microsoft) presented at Microsoft Ignite 2015.

  • SharePoint 2013 is the genesis block for all future versions of SharePoint. SharePoint 2013 is the kernel of all future SharePoint versions.
  • SharePoint 2013 is the stepping stone for SharePoint 2016. If you are on SharePoint 2010, there is no way you can skip a version and upgrade directly to SharePoint 2016. Microsoft has built SharePoint 2016 on SharePoint 2013, so the Site Collection upgrade sequence is to upgrade SharePoint 2010 databases (E.g. database attach) to SharePoint 2013 first, then upgrade (E.g. same database attach) to SharePoint 2016. n-2 is not possible because Microsoft felt that was the best way for upgrade due to substantial changes between the architecture of SharePoint 2010 and SharePoint 2016. Note – Site Collections must be in SharePoint 2013 (v 15) mode not SharePoint 2010 (v 14).
  • Content can be migrated but possible with 3rd party tools.
  • Same SharePoint Service Application architecture will remain.
  • SAML claims Authentication is the default and first class citizen. Business Intelligence
  • Older authentication models such as Windows claims Authentication will be still supported. Moving towards Oauth / OpenID
  • Messaging security – SMTP connection will be encrypted.  E.g. STARTTLS. Can run on non-default ports
  • SharePoint Distributed (AppFabric) Cache will be present. AppFabric will be continued to be supported for Microsoft products that use AppFabric as well as for non-Microsoft developed products till April 2017 (Mainstream support) and April 2022 (Extended support)
  • Minrole –  SharePoint logic consolidated into one single machine reducing the number of discrete roles.
  • User role – user initiated services, Robot services role – non user initiated like timer jobs, Caching services role – the distributed cache.
  • SharePoint roles:
    • Special Load role – Custom service applications, services and components that are outside of MinRole topology can be placed on these servers. Agnostic role reserved for services that needed to be isolated from other services such as 3rd party solutions. Any other SharePoint service can be started on these servers like how it was in previous versions of SharePoint (2013, 2010)..
    • Web Front End  – Service applications, services and components that serve user requests are placed on front end servers. These servers are optimized for fast performance.
    • Search – Service applications, services and components that are required for search are placed on these servers such as search index and crawling.
    • Application – Service applications, services and components that serve backend requests (E.g. search crawl requests) are placed on application roles. These servers are optimized for high throughput. This is also referred to as the ‘Robot Services role’
    • Distributed Cache – Serves distributed cache for the farm.  Servers assigned to this role can load balance end user requests among the web front ends. These servers are part of the SharePoint Distributed cache cluster.
  • Role enforcement job runs every day and it ensures the server is “In Compliance” to the Role selected except for the Special Load role. Each role runs its own set of defined services (except for Special Load role where you can do your own thing). SharePoint Administrators can ‘fix’ a server and bring it back to a compliant state.
  • Single Server farm installation does not include SQL Server express anymore. In earlier versions, SQL Express was included.
  • Zero downtime patching (build to build) in SharePoint 2016! As the updates will have a small amount of MSI and MSP files, Microsoft has worked hard on ensuring zero downtime with transparent online installers! Updates are smaller and execute faster. Microsoft promises that you can “install your patches now in the middle of the day, completely transparent to your users because all of our upgraders run online”. In the past all the upgraders ran offline which required constant starting and stopping of services, resulting in down time in a SharePoint farm.
  • NTLM authentication issues with Distributed Cache have been resolved with SharePoint 2016. New transport layer fix in Distributed Cache. Under high load, the Distributed Cache cluster would suffer performance issues due to authentication overload. Each time a user made a request, authentication would take place against Active Directory in order to facilitate that request. Also more connections supported. More scalable and more reliable Distributed Cache.
  • Possible to offer 99.9% or 99.99% SLA due to SharePoint 2016 improvements in Distributed Cache and Minrole
  • Content Databases to potentially scale into the TB’s.
  • 100,000 site collections per Content Database (5 times the amount in SharePoint 2013)
  • List View Threshold to increase well beyond 5000!
  • Maximum file size will increase to 10GB from 2GB in SharePoint 2013 and removed character restrictions
  • Search scale increased to 500 million items
  • BITS protocol will be used for file upload and download – minimises the chatter between SharePoint clients, web servers and database servers.
  • Fast Site creation – ability to provision sites rapidly. Copy SP site method at the database level from SP Site ‘templates’ or ‘Master copies’ in the Content Database already pre-created and ready to go. Basically copying rows from A to B to create a new site so it’s a very rapid process now.
  • Traffic Management – possible to allow 99.99% availability. It’s a new endpoint that runs on the web front ends and establishes affinity between the load balancer (E.g. F5 Big IP) and that web server. It can isolate requests and provides intelligent routing based on variables (health, servicing etc). It’s like a new intelligent transport layer that can drive user the user request through the topology. It will have the ability to send the user request to servers that are capable of responding to that user request. This feature may or may not be developed in the on-premises SharePoint 2016 product.
  • The User Profile Service sync tool (ForeFront Identity Manager) will no longer be bundled into the SharePoint 2016 product. Only Active Directory import (uni-directional) synchronisation will be possible out of the box. If you want to write back to Active Directory, you will have to use an external Identity Management System such as external FIM (or the new Microsoft Identity Management).
  • Project Server 2016 databases will be consolidated into the SharePoint content database. Project Server 2016 will continue to be licensed separately – not included in the SharePoint license.
  • Durable links – resource ID based urls. A new Redirect Manager will provide the right way to get to a file even if its moved. Urls will remain intact with rename and move. It will work between Site Collections as well.
  • Real time telemetry – advanced data analytics and reporting. Real time user monitoring. E.g. how often do users get a 404 error message. Some examples of the advanced insights are how fast and which sites have a greater latency than other sites.
  • New enhanced usage database. New SharePoint logging API (SLAPI) – used to figure how users are using SharePoint for to better understand how users interact with SharePoint. Reports would provide for growth trends and forecasting, usage by SharePoint site template etc.
  • New hybrid approaches to leverage services in Office 365 through a subscription model where new cloud features will be available to On-Premises SharePoint farms with the content remaining on-premises.
  • New Classification ID – complex query based on complex predicate – more complex and secure discovery
  • Document finger printing – Item level encryption through hybrid connectivity.
  • Ediscovery will work across on-premises and the cloud
  • New cloud search service application – will ship with SharePoint Server 2016 to leverage the power of the Office Graph. This is coming to SharePoint Server 2013 later this year (2015). This will unify the search index and it will be located in Office 365. Delve itself will not be brought into on-premises.
  • New extranet scenario – site publishing. Ability to publish internal sites to internet. Easily share sites with external parties without the need of them having complex infrastructure like ADFS.
  • No more complex PowerShell scripts and us having to refer to 15 different TechNet articles to set up SharePoint hybrid. A new hybrid deployment automation wizard is in the pipeline. The new wizard will be provided to look at the prerequisites for a hybrid scenario and help configure them.

 

 

 

Slides