Application Lifecycle Management in SharePoint 2013 & Office 365 using Team Foundation Server 2013 & Visual Studio Online – Infrastructure Overview

This is the second article of a series of posts on SharePoint 2013 & Office 365 Application Lifecycle Management:

  1. Introduction
  2. Infrastructure Overview –> You are here!
  3. The Development Environment(s)
  4. The ALM Platform(s)
  5. The Testing Environment(s)
  6. Automated Build & Deployment for Full-Trust & Sandboxed Solutions
  7. Automated Build & Deployment for SharePoint-hosted & Autohosted Apps
  8. Automated Build & Deployment for Provider-hosted Apps (Azure-hosted)
  9. Automated Build, Deployment & Testing for Full-Trust & Sandboxed Solutions
  10. Automated Build, Deployment & Testing for Apps
  11. Release Management Overview
  12. Release Management for Full-Trust & Sandboxed Solutions
  13. Release Management for Apps

Throughout the series, we will be trying different scenarios for creating, deploying, building, testing & releasing solutions / applications that are based on SharePoint technologies, for both on-premises and in hosted or public cloud platforms. We will be also be switching between Team Foundation Server (On-premises) & Visual Studio Online (TFS Service) as an ALM Platform. This is to leave you comfortable with both platforms then you can decide later which option suits you the best.

In today’s post, I will give you a quick overview on the complete ALM environment that we will be creating in the next three posts. This infrastructure will then be used in our learning journey to apply the different ALM practices to SharePoint development.

Our ALM Environment

The environment that we will be creating includes some on-premises components & services as well as some cloud services.

Here are the main on-premises components & services needed for our ALM environment:

  • Active Directory Domain Controller
  • SharePoint Development Farm
  • Team Foundation Server 2013
  • Team Foundation Build Service
  • Visual Studio Test Controller
  • SharePoint System Integration & Testing Farm
  • Visual Studio 2013 Release Management Server

You can of course setup each of the above on-premises roles on a separate Physical or Virtual machine. In my case, I want to minimize the infrastructure needed therefore I will combine some of them to live side-by-side.

VM Name On-prem Components & Services
Dev Machine Active Directory Domain Services
SharePoint 2013 Development Farm
TFS Build Machine Team Foundation Server 2013
Team Foundation Build Service 2013
Visual Studio 2013 Test Controller
Release Management Server
Test Machine SharePoint 2013 Integration & System Testing Farm

As for the Cloud part of our ALM environment, the following services are needed:

  • Visual Studio Online (TFS Service)
  • Three Office 365 Tenants (For development, Testing & Production)
  • Windows Azure PaaS (Azure Websites)

And here is a combined view for the full environment:



VM1 :   Development Machine

O365 Tenant for Developing O365 Apps +
Windows Azure Platform

VM2 : TFS   Build Machine

Visual Studio Online (TFS Service)

VM3 :   Test Machine

O365 Tenant for Testing O365 Apps

O365 Tenant for Production

Please note the following:

  • For the sake of simplicity and for reducing the number of Virtual Machines, I’ll install the Active Directory Domain Services on the Dev Machine then I will promote it to be my primary Active Directory Domain Controller, I’ll then connect all the other machines to this Active Directory Domain. In real-life of course, there should be a separate machine for AD.
  • The third column in the first table “On-prem Components & Services” is very much simplified for now, I’ll be explaining and expanding on this in the next posts.
  • The VM’s can also be hosted in Windows Azure IaaS. In my case, I’ll just host them in my local Hyper-V server.

Throughout the next three posts, I’ll walk you through the exact steps needed for creating the full ALM environment, this includes both; the on-prem part and the cloud part.

To get prepared for the next post, I would like to leave you with the following homework:

Exercise 1: Read the “Development environment considerations” section of this MSDN article.clip_image001

This section describes the development environment considerations for SharePoint application developers and development teams. I cannot stress enough the importance of reading this section before proceeding to the next post.

Exercise 2: Prepare the physical machine that will host the three Virtual Machines that we will start creating in the next post.
In my case I’m using Windows 8.1 with Hyper-V enabled. To enable Hyper-V on Windows 8/8.1, you can follow the instructions in this article.You will also need to create two Virtual Network Switches (Private & External) in Hyper-V as shown in the figure below :imageWe’ll connect our Virtual Machines to both switches in the next posts.Note: You can use other Virtualization Technologies (VMWare, Oracle VirtualBox, etc…) if you would like to.
Exercise 3: Download the following software:
Windows Server 2012·
SQL Server 2012 SP1
SharePoint Server 2013
Visual Studio 2013 Ultimate

3 thoughts on “Application Lifecycle Management in SharePoint 2013 & Office 365 using Team Foundation Server 2013 & Visual Studio Online – Infrastructure Overview”

  1. Thank you so much for this great series. Waiting for more to come.

    Have a question on dev / test env for office 365. In your SPC session mentioned that due to the same version requirement better use the different dev. site collections in the same office 365 tenant. In this article talking about create 3 different tenants. Could you please clarify on this ?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s