Category: SQL Server

How the Redis Cache Fits into Skype for Business Server

Ever heard of a ‘Redis Cache’? If not, you’ll need to read this post.

I was researching comparisons between Skype for Business and HipChat (the Data Center version) for an upcoming blog post. Along the way, I discovered that HipChat uses a Redis cache in its server-side deployments. A Redis cache…wow, hadn’t even heard that name for a while. Then I realized I hadn’t addressed the topic on this blog at all!

Don’t worry; the Skype for Business vs. HipChat comparison will come soon enough. For now, let’s talk Redis.

What is a Redis Cache?

Redis is a data structure store. According to this Introduction to Redis, you can use it as an in-memory database, cache, and message broker. It’s available for Linux and OSX natively, but Microsoft does maintain a Win-64 port of it (we’ll see why very soon).

HipChat makes use of Redis for caching. It has a Postgres server for database storage; the Redis cache helps to improve message availability and quality.

 

HipChat Deployment with Redis Cache

A HipChat Data Center deployment, with Redis Cache. Image courtesy of Atlassian.com.

Can you use a Redis cache in Skype for Business? Yes! It can serve as a data store for Skype4B’s SDN Interface.

What’s that? According to a quote from John A. in MSDN Documentation:

In a pool configuration, Skype for Business SDN Interface needs a data store to share call states for concurrently ongoing calls or for configuration settings among multiple SDN Manager instances, which can be a Redis No-SQL key-value store.

Setting up a Redis cache system – MSDN

How the SDN Interface Works

SDN stands for Software Defined Network. In the case of Skype for Business, it provides an interface for call diagnostics and QoS. In a nutshell, here’s how it works:

  1. The SDN Interface collects call data while Skype for Business Server is active.
  2. The SDN provides this data to other services on the network (e.g. network controllers).
  3. The other network systems add in their own network traffic data.
  4. The data pool is analyzed for media quality.
  5. Analysis results are used to resolve quality & performance issues on the Skype for Business servers.

Think of it like a tune-up constantly running in the background. Its goal? Better performance on calls. It’s part of the reason why Skype for Business calls seem ‘clearer’ over time.

How to Set Up a Skype for Business SDN Interface (with a Redis Cache)

You don’t have to use a Redis cache to set up a Skype for Business SDN. A SQL Server will also do the job. But the setup process is the same, either way.

Fortunately, we have a well-documented set of installation instructions right here:
Installing the SDN Interface – MSDN

As you can see in this screenshot, the Redis cache is one of three options for the SDN Interface’s SDN Manager topology.

Skype for Business SDN Manager Setup

Please note: You must have a Redis server set up BEFORE you set up SDN Interface! To set up Redis on a Windows server, use the Windows port on GitHub: Redis on Windows – GitHub.

Redis Cache is Still Available for Skype for Business – But Maybe Not for Long

Now we know. Redis is an available cache option for Skype for Business Server, designed to help its SDN Interface tune media stream performance over time. It’s part of an engine, running in the background, making every Skype4B call better.

Before I go, one caveat: The current Redis port version on GitHub is fairly recent. However, I saw a comment that indicated Microsoft may have decided to archive it. That doesn’t mean Skype for Business users can’t use it, or it will become vulnerable…it’s on GitHub, after all. Other developers will contribute.

However, that does place Redis in something of a limbo. At least as far as Windows Servers are concerned. Redis is open source; it will continue to have a Linux/OS X version for a while.

Perhaps Microsoft is taking another direction with Skype for Business Server 2019. Only time will tell. Once we find out, I’ll make note here, of course.

Does your Skype for Business Server use a Redis cache?

Facebooktwitterlinkedinmail

Can Skype for Business Contribute to Big Data Research?

Analysis has been part of the Lync Server family pretty much since the beginning. How else will you know to troubleshoot a SIP trunk or softphone, if you don’t have some form of data on where the problem is?

In recent years though, we’ve seen the arrival of Big Data. Going beyond server logs to huge data warehouses. Algorithms poring through exabytes. Insights teased out for many a scientific or commercial purpose.

Some Big Data research goals I’ve seen include:binary_file

  • Analyzing marketing campaigns
  • Predicting customer behavior
  • Improving scientific research processes
  • Finding inefficiencies in operations

It got me wondering. Skype for Business generates a fair amount of data. What kind of value could it contribute to Big Data research?

More Than Monitoring

In a sense there’s already a Big Data engine within Skype for Business Server – the Monitoring Server. It collects data on the other servers and Skype4B clients. Call Detail Recording (CDR)? Quality of Experience (QoE)? The Call Quality Dashboard? All a type of data analysis.

I’m thinking bigger than Monitoring though. Every bit of data generated & stored by Skype for Business and its dependencies. Conversation logs, call data, SIP traffic, bandwidth monitoring, server use records, and so on.

If you put all these together, what would be the best Big Data purpose for which to use them?

I’d have to say the last one strikes me as the one best suited for Skype for Business data: Finding inefficiencies in operations.

Analyzing these data can tell you if:

  1. There’s a correlation between your website’s uptime and customer support calls?
  2. Your recent beta launch took off, according to call workflow activity?
  3. Inter-department conversations alert you to an internal management issue?
  4. Marketing’s claim of 20% brand awareness growth matches to Sales’ incoming call volume?

And so on.

So there’s at least a business case for adding Skype4B data into Big Data research. The question now is, how feasible is it?

How Skype for Business Could Contribute Data

Skype for Business is a Microsoft server app. So of course its default database server is MS SQL Server. Running Skype4B Enterprise Edition requires multiple SQL servers in fact – Front End, Persistent Chat, Archiving, Monitoring, and any mirroring you want. (Standard Edition uses SQL Express.)

SQL Server databases are relational. In some Big Data articles I’ve read, relational databases are considered inferior for Big Data applications. The reason being that Big Data takes multiple disparate data sources, tosses them in its blender, and whips up some results. The inherent tabular structure of relational databases complicates making matches to other data types.

Not sure I believe this. Besides, it doesn’t mean SQL Server data is unusable. Far from it! You’d just need the proper tools to either convert the relational data, or analyze it as-is.

In terms of tools, I went looking, but quickly got lost among the many Big Data technologies! Hadoop, Odata, Spark, R…suffice to say there’s options out there to make use of your Skype for Business data.

(In fact SQL Server 2016 will include R, which should make Big Data analysis much easier.)

I did find a third-party solution called PowerView from UnifySquare. PowerView collects Lync Server 2013 data (website says it’s also Skype for Business 2015 Ready) into a central warehouse usable for Big Data queries. It also generates visual reports & dashboards, to make use of the insights you’ll find.

There’s also the PowerBI initiative from Microsoft. Among PowerBI’s listed connections are “SQL Database Auditing,” “Azure SQL Database” and “SQL Server Analysis Servies.” I see no reason why it couldn’t use Skype for Business databases as a data source.

I’m sure many other third-party Big Data platforms exist, which can incorporate Skype for Business data sets. If you know of any, please share!

Have you employed Skype for Business data in a Big Data query? What tools did you use? Please comment or email.

 

Facebooktwitterlinkedinmail