Welcome to 2015… And I’ll start by clearing out the cupboard, as this post is made up from a few things that have been kicking around in my drafts folder for a while, I never managed to find a theme, or topic to join them all together, then I thought “let the diagrams speak for themselves”.
It’s better late than never, as this post started originally to ‘celebrate’ Microsoft releasing a whole raft of new Visio Stencils for On-Premise and Online products including Lync 2013, Exchange 2013, SharePoint 2013, Office 365, and a nice assortment of user, devices, security, and concept stencils too.
As soon as I got close to posting this, Microsoft go and make the announcement “Introducing Skype for Business”, so you can probably expect an even newer bunch of stencils at some point next year to reflect the new “Skype for Business Server” branding.
Let’s begin with ‘Old Faithful’
Hands up if you recognise this diagram…
I’ve spent some Visio-time recently on some reference diagrams, some more high-level than others, but each one intended to convey a purpose. So I thought I’d share a few of them with you.
These diagrams were created for illustrative purposes only and are generic. This is not going to turn into a complete collection either, so… well… you get the idea. I’m sorry, but you’ll have to do some work yourself.
Standard Edition, Paired Pools, Single Site
Let’s start with my version of the above well-known diagram…
Download Visio Document – Lync 2013 – Standard Edition, Paired Pools, Single Site
I think this shows the network layout and location of the server roles more clearly, and also includes an SBC (Always use a Session Border Controller for Enterprise Voice… always… you have been warned).
Not a lot else to say about this one, it’s your bread and butter deployment, but you can easily extend it to add more servers, and pools if you need to.
Multiple Site Connectivity
This one is so high level, all the servers looks like ants. It shows the Lync Central Sites and corresponding Physical Sites, and how they might be connected. Where you see ‘Home Worker’ at the top left, you could also add external users such as federated partners, anonymous meeting participants, and Skype contacts.
Download Visio Document – Lync 2013 – Multiple Site Connectivity
DNS Load Balancing
Let’s quickly move onto some more interesting diagrams, this one illustrates the difference in traffic flow between DNS Load Balancing and Hardware Load Balancing.
Download Visio Document – Lync 2013 – DNSLB vs HLB
The main point here is that a Hardware Load Balancer is actually required in both examples. As HTTP doesn’t provide any protocol level resiliency between hosts like Lync does. This is one of those things that gets overlooked if you’re not familiar with Lync, you might see it as a choice to have a hardware load balancer or not, for your Enterprise Edition deployment… that’s not the case.
What the diagram doesn’t cover is load balancing of other roles such as the Edge role (where both internal and external interfaces need to use the same Load Balancing Technology).
Lync VDI Plugin Traffic Flow
This diagrams shows the offloading of audio/video traffic processing and rendering from the VDI to the thin-terminal when using the Lync 2013 VDI Plugin.
Download Visio Document – Lync 2013 – VDI Plugin Traffic Flow
The point of this diagram is to show that peer-to-peer calls stay peer-to-peer between the user’s devices where the audio/video is captured and rendered, and not between the sessions running on the VDI hosts. And that conferencing media is between the Lync Servers and the ‘thin’ device, and does not pass through the Virtual Desktop machine. This increases performance by reducing the processing and transcoding done by the devices and servers to and from Lync audio/video and the VDI’s protocols such as ICA, RDS, or PCoIP for example.
Citrix have their “HDX RealTime Optimisation Pack for Lync“, but it comes with some pretty serious limitations when I last looked into it (see ‘Limitations’ heading and ‘System Requirements’ sections from that link). Another interesting option which caught my eye recently is the ‘Local App Access’ feature which lets you seamlessly run a local application and it looks like it’s running inside the virtual desktop, but that also has it’s limitations.
So to sum up with a very valuable lesson, just because Citrix supports Lync, doesn’t mean that Lync supports Citrix (and that applies to any vendor or solution). Whichever VDI approach you take, in my opinion, should always favour the performance of the product not the underlying platform. What good is a fantastic VDI experience if Lync audio/video is limited or degraded compared to the more traditional ‘thick-pc’ approach.
SQL Database Mirroring
Quite a few people have wondered why Lync 2013 opted for database Mirroring, when it’s already been deprecated in SQL Server 2014 and is going to be removed completely from the next version. I’m keeping an eye out to see if the new Skype For Business Server will support AlwaysOn Availability Groups, nothing conclusive at this time. Anyway, Mirroring is still the preferred method for Lync 2013; some plus points include…
- Mirroring doesn’t have a requirement for shared storage
- Mirroring claims failover times often quicker than Clustering
- Mirroring is much easier to setup and configure compared to Clustering, especially with the Wizard in Topology Builder taking care of it all for you.
WARNING: Just be careful which account you’re using when you setup mirroring using the Install Database Wizard of the Topology Builder, as it actually ties the account to the mirror configuration on the SQL Server as the owner of the endpoints, and that could break things if that account is disabled or deleted. Changing ownership of the Endpoints is quite well documented, use your favourite search engine to find out how.
Download Visio Document – Lync 2013 – SQL Database Mirror
As you can see the diagrams shows what happens when the principal fails, quite simple at this level… But it’s not really that simple… Lots of diagrams (just like above) show that the ‘server’ is mirrored, in fact, the mirroring is performed at the database level. So you could have one database mirrored from left to right, and the other from right to left, just as a way to distribute the load of the two databases between the two servers (Remember that you MUST allocate sufficient resources to handle the combined load, so that in a failure situation you don’t have performance issues, nothing worse than flooding the help-desk with ‘everything is slow’ while IT is busy looking at the failure, suddenly productivity drops and the water coolers get busy).
Database mirroring is not like any other clustering or high availability technology that relies on a Virtual IP, or Load Balancer etc. This technology needs the support of the application (i.e. Lync Server). Applications needs to be aware that the database is configured as a mirror, and know how to connect accordingly. For example the SQL Connection String for ADO.net using SQL Native Client would need to contain the FQDN of both SQL Servers, like this.
Provider=SQLNCLI11; Data Source=SQL01.domain.local; Failover Partner=SQL02.domain.local; Initial Catalog=databasename;
Even though you’re specifying both server names, the failover it not automatic, as the Mirror server will not take over unless invoked by an Administrator or if you have deployed a Witness Server (as in the above diagram). Only when the database has been failed-over will the application be able to connect to the mirror (now principal) server.
If you use these diagrams I would be grateful if you could include my name somewhere, I know that’s not always possible, or preferable. Instead you can always send me a tweet, or at least leave a comment below if you like them 🙂
Following the diagram theme, I thought it’s worth mentioning Santiago Buitrago. He often produces top quality and detailed diagrams for all sorts of Lync deployment options and related technology on his blog… in Spanish, but still very useful and educational, worth a follow, even if it’s just for the diagrams.