Microsoft Latest Cloud Announcements TechEd Europe 2014 Presentation

I want to share with you my new presentation Microsoft Latest Cloud Announcements TechEd Europe 2014

Posted in Azure, Office 365 | Tagged , | Leave a comment

SharePoint farm on Azure IaaS with the new regional network, affinity group and latency

In the past when we were deploying SharePoint farm on Azure Iaas we used to create an affinity group firstly then we were attaching any new created resources for our farm to the same affinity group (Storage account – Virtual Network – etc… ) and by that affinity group will let Window Azure know you wish to keep these resources located together within the same Azure regional datacenter and this off course will minimize the latency for your SharePoint farm.
But now with the introduction to the new regional network concept in Azure you can’t do that through the Azure portal UI.

What is Regional Virtual Networks

Here is its description in MS words:
”VNets were bound to a scale unit, more precisely an Affinity group. An Affinity group is a grouping concept that references to a section of the datacenter or in other words certain number of servers. Since a VNet was bound to an affinity group it was indirectly bound to a set of servers, and hence was not able to place deployments in servers outside of this scale unit. But with Regional Virtual Networks, these restrictions are removed, since the scope of the Virtual Network is the entire region and not just an Affinity group.
Following are the key scenarios enabled by Regional Virtual Networks:

  • New VM Sizes like A8 and A9 can be deployed into a virtual network which can also contain other sizes.
  • New features like Reserved IPs, Internal load balancing, Instance level Public IPs
  • The Virtual Network can scale seamlessly to use the capacity in the entire region, but we still restrict to maximum of 2048 virtual machines in a VNet.
  • You are not required to create an affinity group before creating a virtual network.
  • Deployments going into a VNet does not have to be in the same affinity group.”

This is great but now you can’t enforce that all your VMs go close in the same datacenter as today if you added your VM to an affinity group when you created it you can’t attach it to VNet. so what is the solution ?!

PowerShell is the solution

So to fix this problem we need to create all the farm VMs using PowerShell as this is the only option today to attached a VM to an affinity group and a VNet.
Please note that The affinity group and the regional virtual network must be on the same region.
PowerShell Ex.:
New-AzureVM –ServiceName ‘ServiceName’ -AffinityGroup ‘AffinityGroupName’ -VNetName ‘VNETName’


Posted in Azure Infrastructure Services | Tagged | Leave a comment

SharePoint 2013 Apps, Load Testing and Resources throttling

If you are building a SharePoint 2013 Apps you will need at some point in your development lifecycle to do load testing for your app to see how it will behave under big user load especially if you are building LOB application that you expect to have a big load.

This is great but the problem with that is you may receive the below error at your testing tool at high user load:
HTTP/1.1 429 Too Many Requests
You may say okay it’s the http throttling then you go to the central administration site close it and retest then you get the same error again.

But if you dig more in the uls you will find the below error:
ResourceBudgetExceeded, sending throttled status code. Exception=Microsoft.SharePoint.SPResourceBudgetExceededException: ResourceBudgetExceeded at Microsoft.SharePoint.SPResourceTally.Check(Int32 value) at Microsoft.SharePoint.SPAggregateResourceTally.Check(SPResourceKind kind, Int32 value) at Microsoft.SharePoint.Client.SPClientServiceHost.OnBeginRequest()

Okay what is this?! this is another validation and throttling the SharePoint team added specially to the SP APPs and in the current situation it checks the time for the request that the app makes to the client.svc service (CSOM Calls) and if its bigger than 150,000 Milliseconds your app CSOM request will be blocked and throttled.

So what can you do now?!:
1- You can review your app code and try to optimize it to bypass this throttling.

2- You can say okay I know that my performance lab has small resources and at production I will be in a good servers which will work faster and I just need to increase this 150 MS limit, okay no problem just use the below PowerShell:
$webapp = Get-SPWebApplication -Identity http://<URL of your on-premises farm>
[Microsoft.SharePoint.SPResourceKind]::ClientServiceRequestDuration, 300000, 300000)

3- What if you need to just disable it? this is also very easy:
$webapp = Get-SPWebApplication -Identity http://<URL of your on-premises farm>
$rule = $webapp.AppResourceTrackingSettings.Rules.Get(

Finally, I hope that this post save you some time while you are doing your load testing for the SP2013 APPs

Posted in SharePoint 2013 | Tagged , , | 1 Comment

Using the Azure instance behind your Office 365 tenant Workaround

lately CHRIS O’BRIEN write a great blog post about how to use your Azure Active Directory instance behind your office 365 tenant and he mentioned that the only work around is to subscribe and from his blog:

Using the Azure instance behind your Office 365 tenant
“Sign up for Windows Azure”
Yes, it’s counter-intuitive. As I mentioned earlier, the Azure instance already exists so why do we need to “sign-up”? Well, you just do – for now at least. I did hear a Microsoft speaker at SPC mention this experience as a side-note, and that they will probably improve things soon. The main thing to understand is that you have to supply payment details before this Azure instance can be accessed – because then it becomes a true pay-as-you-go instance.

but I discovered a workaround for this and its very easy.

1- Go to any of your Azure subscription and choose the directory tab then choose create yes create

2- Then here is the workaround now you need to choose use existing account


3- you will logout then log in with your Office 365 account then your AD will be added to be managed by this Azure instance

I hope that will save you the time you will need to sign up for Azure just to manage your Office 365 AD

Posted in Office 365 | Tagged , | Leave a comment

SharePoint and .NET Advanced Troubleshooting and Debugging Presentation

I want to share with you my new presentation SharePoint and .NET Advanced Troubleshooting and Debugging if you are a SharePoint Admin or developer you will find the tools in the presentation very handy

Posted in SharePoint | Tagged | 1 Comment

How to make SharePoint 2013 Distributed Cache service Semi High Available


The Distributed Cache service provides caching features in SharePoint Server 2013. The Distributed Cache service is built on Windows Server AppFabric, which implements the AppFabric Caching service. Windows Server AppFabric installs with the prerequisites for SharePoint Server 2013. This is how Microsoft defined the Distributed Cache service but what is depend on the Distributed Cache service ?

Table: Different caches that depend on the Distributed Cache service

Name Cache name Description

Login Token Cache


This cache stores the security token issued by a Secure Token Service for use by any web server in the server farm. Any web server that receives a request for resources can access the security token from the cache, authenticate the user, and provide access to the resources requested.

Feed Cache


This cache stores activities and conversations for use by the feeds on a user’s My Site.

Last Modified Time Cache


This cache stores time stamp information for all Feed Cache entities

OneNote Throttling


Access Cache


Search Query Web Part


Security Trimming Cache


App Token Cache


View State Cache


as you can see the Distributed Cache service is very important to your SP2013 farm and without it SP will not functional will.

Dedicated or Collocated Mode

The Distributed Cache service can run in dedicated or collocated mode. When running in dedicated mode, the Distributed Cache service is started and all other services are stopped on the server. In collocated mode, the Distributed Cache service is running along with other services on the server. lately Steve Peschka write a great blog post about that you need to run yours Distributed Cache service on the dedicated mode and informed us that this is a best practice Dedicating Servers to Distributed Cache in SharePoint 2013

Appfabric Cache is High Available but Distributed Cache service is not

Even if the Distributed Cache service is built upon the Appfabric Cache but its not high available which mean that if your server host DCS goes down all your cache will go. This is why you need to run
Stop-SPDistributedCacheServiceInstance –Graceful
with the –Graceful parameter if you want to stop the service in one of the its servers so the cache can be copied to other server hosting the DCS in your farm

Capacity planning for the Distributed Cache service

The following table lists different memory and architecture recommendations for the Distributed Cache service, depending on the total number of users.

Deployment size Small farm Medium farm Large farm

Total number of users

< 10,000

< 100,000

< 500,000

Recommended cache size for the Distributed Cache service

1 GB

2.5 GB

12 GB

Total memory allocation for the Distributed Cache service (double the recommended cache size above)

2 GB

5 GB

24 GB

Recommended architectural configuration

Dedicated server or co-located on a front-end server

Dedicated server

Dedicated server

Minimum cache hosts per farm




So How to make it Semi High Available

even if the above table mentioned that the minimum cache hosts per farm is 1 server my recommendation is that you need at least 2 servers runs only the DCS ( in Dedicated Mode) so if one if it goes down your farm can still be working with the other server.

finally the below diagram show how the office division implement their SP2013 farm


as you can see they use 2 servers with 14 GB RAM each.

Posted in SharePoint 2013 | Tagged , | 7 Comments

SharePoint 2010 with Service Pack 2 ISO and Server 2012 Support

SharePoint 2010 with Service Pack 2 ISO now available on MSND


And now you can run the installer over Windows Server 2012


Posted in SharePoint 2010 | Tagged , | 1 Comment