Chapter 32. Your Environment

As SharePoint becomes more of a centerpiece in the Microsoft BI landscape, a major consideration that must be examined is the hardware and software required to operate a properly performing and secure environment.

Historically, a BI environment would require a large number of big iron servers with massive amounts of expensive storage behind it. With the new features of SQL Server 2012 and the xVelocity engine, the landscape has changed in a dramatic way.

In this chapter, we discuss the way in which you will need to lay out your environment to support the efforts in this book and a BI scenario in general. As a part of this effort, we will provide guidance around creating the environment in which to develop the solutions in this book, as well as recommended practices for development and production environments.

The topics covered are:

Note that we are not going to be making recommendations around best practices, but instead will suggest recommended practices. The reason for this distinction is that Microsoft does change its best practices periodically and we are making recommendations based upon our years of experience doing work with BI scenarios.

When examining physical servers versus virtualized servers, general constants exist no matter the operating system or applications. Of course, you will also need to consider variables regardless of the hosting mechanism (hardware or virtual) when talking about SharePoint and SQL Server. The following virtualization specs refer to Hyper-V in Windows Server 2008 R2 & VMWare vSphere 4.x.

Let’s take a look at the constants first.

Physical server constants:

Virtualized server constants:

In the years since virtualization was finally supported as a platform for hosting SharePoint and specifically with the release of SharePoint 2010, the concept of virtualization has been more widely embraced and is now a standard for how SharePoint farms are architected. The debate around SQL Server still rages on in many circles, but it is widely acknowledged that in most cases the benefits outweigh the drawbacks when it comes to virtualization.

The concern around virtualization of SQL Servers is that when configured in an out-of-the-box manner, you have a VHD or VMDK file that serves as your logical disk container. This means that you are working within a single file on a file system for all reads and writes, which can cause contention in high activity instances, such as SQL Server.

The benefits that come from this manner of operation are that you are able to snapshot an entire farm at a specific point in time. Virtualization is the only option that allows you to restore a SharePoint farm and remain in a supported state. Doing a backup using snapshotting prior to the deployment of operating system patches, SharePoint or SQL updates, or new code that could impact the environment is a recommended practice.

When dealing with high read-or-write scenarios, such as with SQL Analysis Services OLAP cubes or highly transactional SQL databases, it is most desirable to be backed up against high-speed disk. This can be accomplished with a virtualized environment, but requires configuration of the SAN fabric, which is beyond that which we will be discussing here, as it is not a requirement for the solutions described in this book.

The reason that high-speed disks are not a requirement for these solutions lies in the nature of the new BI Semantic Model (BISM) in SQL Server 2012. SQL Server Analysis Services Tabular Mode (Tabular BISM) leverages the xVelocity for BI engine, which is a memory resident model of hosting cubes. Rather than requiring a high-speed disk, tabular BISM model cubes require large amounts of RAM. In addition, the architecture of SQL Reporting Services Integrated Mode makes it so that report definitions are hosted in the SharePoint content database rather than in an external database that would require another database engine on the App Tier.

Over time we have found that unless you model your development environment after your production environment, you can run into untested scenarios where code may not work across tiers as expected. It is not necessary to scale your development environment to exactly match your production environment; instead, simply mirror the functional tiers. While it is not necessary to “scale” a development environment to the same level as a production environment, the datasets used for testing should be similar in nature so as to ensure valid load and performance testing for business intelligence solutions that are implemented.

In our design (Figure 32-2), we have:

To build out a properly performing multi-server VM environment will require a large amount of RAM, high core count, and a significant amount of disk space. Keeping in mind that hardware allocation of resources is desired, you will most likely need to be hosting the environment and not using local resources. Table 32-1 shows the core, RAM, and disk count that we have allocated for the effort in CloudShare.

It should be noted that while they work for our examples, these machines are undersized for production use and that Microsoft’s “Hardware and software requirements for SharePoint Server 2010” should be consulted before sizing this scenario for production.

We built out a functional, lower performing environment on CloudShare that you can work with to deploy out the functional components discussed in this book. That environment is shown in Table 32-2.

In this environment, Visual Studio LightSwitch is installed on the App Server.

To build out a reasonably performing single server instance of this will require the specs in Table 32-3.

The reason that the disk count in the single-server model is lower is that there is no need for repetition of the operating system from each server. It is recommended that the disks that are backing SQL be placed on their own spindles to allow for higher input/output operations per second (IOPS). The high RAM count is required to run SQL Server, the SharePoint Web Apps and Service Applications, Tabular BISM, and the operating system concurrently. Running Visual Studio will impact performance, but is possible under these conditions and in a development scenario.

In this chapter, we discussed the way in which you will need to lay out your environment to support the efforts in this book and a BI scenario in general. As a part of this effort, we provided guidance around creating the environment in which to develop the solutions in this book, as well as recommended practices for development and production environments.

We covered server requirements including physical versus virtual, overall constants, as well as SharePoint and SQL Server specifics. Finally, we discussed single-server versus multi-server environments including logical requirements, server role determination, and recommended technical specifications.