This post was inspired by Anthony Bartolo’s post on Enabling BranchCache. This is a real world example of how BranchCache can be used to improve service levels while reducing network costs.
Canada is a big country. The federal government has offices in over 600 locations with immense geographic dispersion. While there is good connectivity between most major population centres, remote offices can be very isolated with satellite links as the only communications option.
We recently architected a System Center Configuration Manager solution for a federal government department that had to service over 600 locations with some serious network challenges.
Although it has traditionally been a best practice to use Distribution Points (DPs) at remote sites where client numbers warrant, many organizations are trying to minimize the amount of infrastructure they manage (think cloud) and it may not be feasible to add infrastructure to a small remote office that has no full-time IT staff. An alternative approach is available that leverages functionality available in Windows Server 2008 R2 and Windows 7 that is integrated into Configuration Manager Distribution Points.
Windows 7 SP1 Enterprise supports BranchCache distributed cache functionality with no additional software requirements on client workstations. BranchCache clients can act as peer distribution points for other BranchCache clients on the same subnet.
How it works:
- A BranchCache Content Server (BCS) breaks content into blocks with unique hashes for each block.
- A BranchCache client requests content from the BCS. The BCS responds with a list of blocks and hashes.
- The client queries local peers for any of the blocks.
- If the blocks are found on the local subnet, they are retrieved from peers.
- If the any block is not available from a peer, it is retrieved from the BCS. Once retrieved, it is made available to peers.
There is also an option to hosted cache some locations, however, this requires a Windows 2008R2 (or 2012) server. The additional advantages are:
- Increased content availability as the hosted cache server is expected to be online continuously
- Ability to service multiple subnets from a single cache.
Trading administrative overhead for improved performance
For large clients that want to use BranchCache and aggressively minimize network impacts, we recommend using distributed BranchCache with a two wave seeding process:
- Bridgehead – First machine in a site to receive content from BCS. Defined as a separate collection in Configuration Manager. Scheduled for 2 days before deadline.
- Beachhead – First group of machines in a site to receive content from Bridgehead. Defined as a separate collection in Configuration Manager. Scheduled for 1 day before deadline.