Archive for December, 2011

Performing an upgrade from TFS 2008 to TFS 2010

I recently had to go through the process of migrating a TFS 2008 SP1 to a TFS 2010 environment.

I will go into the details of the tasks that I went through, but first I want to explain why I define it as a migration and not an upgrade.

When this environment was setup, based on support and limitations for TFS 2008, we used a 32 bit platform for the TFS Application Tier and Build Servers.  The Data Tier, since we were installing SP1 for TFS 2008, was done as a 64 bit installation.  We knew at that point that TFS 2010 was in the picture so that served as further motivation to make that a 64bit install of SQL Server.  The SQL Server at that point was a single instance (Default) installation too.  We had a pretty good strategy in place for backups of the databases supporting the environment (and this made the migration so much smoother), so we were pretty familiar with the databases and the purpose they serve.

I am sure many of you that have gone through a TFS 2008 installation have encountered challenges and trials.  And likely even more so if you, like me, needed to configure your deployment for SSL.  So, frankly I was a little concerned about the process of migrating.  They say practice makes perfect, and this environment I worked on is in some way my brain child, so I was not ready nor willing for this to be a failure or something that would impact my client’s work.

Prior to going through the migration process, we did the install of the environment.  The Data Tier was the same, with a new Named instance in place to host the 2010 install.  The Application Tier was in place too, and we did the DefaultCollection configuration to test and validate all components were in place as they should.

Anyway, on to the tasks for the migration (thanks to Martin Hinshelwood for his very thorough documentation):

  1. Close access to TFS 2008, you want to make sure all code is checked in and ready to go.  We stated a difference of 8 hours between code lock and the start of migration to give time for any unexpected delay.  How do we close access?  Stop IIS.
  2. Backup your databases.  Which ones?
    TfsActivityLogging
    TfsBuild
    TfsIntegration
    TfsVersionControl
    TfsWorkItemTracking
    TfsWorkItemTrackingAttachments
  3. Restore the databases to the new Named Instance (make sure you keep the same names)
  4. Now comes the fun part! The actual import/migration of the databases.  A couple of things happen here. The TfsIntegration database will be scanned, the other databases will be checked to validate they exist.  Those databases will go through a process of data being extracted and transferred to the TfsVersionControl database to then be renamed to Tfs_<Collection>. You will be using a tool called tfsconfig and the option import. This tool is located in the TFS 2010 installation path (C:\Program Files\Microsoft Team Foundation Server 2010\Tools),  the command to use is as follows: 
      tfsconfig import /sqlinstance:<instance> /collectionName:<name> /confirmed

    Where <instance> is going to be the SQL Server instance where you restored the databases to.  <name> is the name you will give the collection. And to explain /confirmed, well this means you have done a backup of the databases, why?  well remember you are going to merge the databases you restored when you execute the tfsconfig import command.
     
  5. The process will go through about 200 tasks, once it completes go to Team Foundation Server Administration Console and validate your imported databases and contents.

We’ll keep this manageable, so the next post is about how to complete that implementation with the SSL configuration.

Something about Property Management or … the understanding of SharePoint Admins/roles ?!?

When I talk about SharePoint, for some reason it comes to my mind as if it were property management and all the tasks associated with it.

So, imagine you have a lot ( a piece of land of sorts), you then decide there is something you want to do with it.  So, you make the choice of having a building built.  Now, in order to go forward with your plan, you need to check what the rules/regulations are.  Has is it been zoned residential, commercial, industrial … you get the idea.  This to me sounds like Governance.  The what am I to do given a defined set of rules.

We keep on moving forward based on those rules.  And with this we start the process of building, the building process takes us to survey the land, identify what our boundaries are.  And as we go along we start getting the idea in our head as to what we will do as far as the building goes.  We identify the essentials of the building, basic services and such.  All in all, we plan.  And as with many things we do, we like solid foundations.  What a solid foundation looks like will depend on where and what we build.  The way buildings are built depends in many ways in being able to foresee the potential for natural disasters or to try to leverage the lay of the land.  Sound familiar?  We have done our Requirements Gathering.

We have the building in place, we have followed the zoning rules, we have implemented services.  But we need someone to manage the building, now we move on to the human side of the story.  We want to establish a means to normalcy in the building, someone that can be the monitoring agent as to the “what’s going on?” of it.  This person will be tasked with making sure all basic services are functional, that measures are taken if there is an issue and so on.  Enter the Farm Administrator. In a way, we establish an extension of the rules to make sure the building and the apartments/offices build follow a standard set of rules too.

Now, in turn you will have people leasing or buying the apartments/offices, they will be the keepers of that space.  So, now we are building sites, we have moved from having the building (farm) ready, to leasing/selling offices/apartments (site collections).  There will be someone assuming responsibility for those offices, that person will authorize or be informed about activities and also who not only gets a code into the building, but perhaps a key to the office.  Enter Site Collection Administrator.  And then perhaps we move on to the person that would be responsible for specifics within the office, for example a Human Resources Manager or Coordinator.  They will have specific control and knowledge about people.  A facilities coordinator, and so on.  I would translate that into Site Administrators.

With that said then, we identify the following:

Role Name Responsibility (but not limited to)
Farm Administrator Infrastructure
Site Collection Admin Policies for Content, Hierarchy, Recycle Bin, Security and Access
Site Owner
(Site Admin)
Security and Access, Training, Guidance, Manage Templates

All in all there are different levels of responsibility to be handled, but it is very important to understand what they are and what they mean.

Here is a link to very well laid out explanation on this …
http://www.endusersharepoint.com/2009/08/11/site-managers-and-end-user-expectations-roles-and-responsibilities/

What is PowerPivot?

Let’s start with it is a great way to be able to visualize data and transform to information.  It is intended to be a self-service business intelligence tool provided as an add-in for a tool we already know … Microsoft Excel … 2010.

If you have been wondering where to go? what to do? and how do I?

I am including links that will help you be on your way to better understanding of the topic and tool. (Links to TechNet documentation)

Introduction to PowerPivot

Walkthrough: Create your first PowerPivot Workbook

Get to know the UI

PowerPivot for Excel Central

Get some samples

Connecting Visual Studio 2008 SP1 to TFS 2010

Introduction

You have installed Team Foundation Server 2010, you are ready to go.  Your client is Visual Studio 2008 SP1, and need to connect to TFS 2010.

Here is the story, the steps to configure Team Explorer are almost the same … meaning, you will open Visual Studio, then go to Team Explorer.  At that point you will Add an Existing Project, this where we connect to TFS.  Except, we get this:

SNAGHTML1aa89d

Now what?!?  We need to install the Visual Studio Team System 2008 Service Pack 1 Forward Compatibility Update for Team Foundation Server 2010.  Where to get it from?

Update Installation

We arrive at the Welcome Screen for the Update, click Next

SNAGHTML1fa42b

Next comes the license screen, accept the license, by selecting the checkbox, then click next.

SNAGHTML2179b2

The installation process will start at that point.

SNAGHTML243736

Once it completes, click on Finish.

SNAGHTML24c496

Second Try

Time to attempt to connect again.

We are back to working with Team Explorer, and Adding an existing project.  There is a formula to be successful with this.

protocol://servername:port/tfs/<name of collection>

protocol = http or https

servername = your tfs 2010 server

port = 8080 by default, or the custom port you are using

/tfs = I am assuming the default too

/<name of collection = the name of the collection that was provisioned.

Once the values are provided, click OK, then close.

SNAGHTML2adeea

At this point you should see a listing of Projects available within the TFS 2010 collection. Select the project and click OK.  You will now see this listed in Team Explorer.

Creating a new project for Team Foundation Server Basic.

We have installed and configured TFS, we have connected to it using Visual Studio.  Now it is time to get a project created.

From Team Explorer, we will right click on the servername\Collection item in the tree to select New Team Project.

image

Once selected, this will open the New Team Project dialog.  Provide a name, then click Next.

image  The next step is to select a Project Template.  By default you will have 2 available (but there are many downloadable options).  It is important to understand what the templates bring and what options we will live with in the Lifecycle Management option we select. Once selected, click Next.

image

image

Now we are at the point to specify where our code will be collected, Source Code settings part of the wizard.  Since we are starting new, we will select an empty folder. Click Next.

image

Next we get a Summary view of the options selected. Click Finish.

image

Once the template is downloaded, applied and our choices processed, we have completed the project creation.

image  This should be our final product …

image

Connecting to a new installation of TFS 2010

When the installation and configuration for TFS 2010 is completed, the next step is to connect and use TFS.  There is a Web Access component, but in order for it to serve useful you need to create a project into the Team Project Collection.  This is where Visual Studio 2010 comes in.

Open Visual Studio 2010, then click on the Team Explorer Tab (red arrow pointing to it) or go to View > Team Explorer.

image

Once there, click the Connect to Team Project toolbar button

image

This will open up the Connect to Team Project dialog, click on Servers …

image

On the Add/Remove Team Foundation Server dialog, click Add …

image

On the Add Team Foundation Server, enter the name of your server and click ok.

image

If you are prompted for credentials, provide the credentials needed. Once accepted, the server will be listed on the Add/Remove Team Foundations Server dialog, click close.

You will be back at the Connect to Team Project dialog, assuming you have one Collection, click Connect. (In the event you have more than one project collection, select the appropriate collection and then click Connect)

Your Team Explorer tab will look something like the image below.

image

Configuring Team Foundation Server Basic on Home Server.

For the installation I selected only the Team Foundation Server role.

Then, I opened the Team Foundation Server Administration Console (which I think is a great addition and improvement over the way TFS was configured in the past) to proceed with the configuration of the pieces.

image

Once I selected the Configure Installed Features, the Configuration Center opened up.

image

Now, the choices … In my implementation here I just want to take advantage of Source Control primarily.  I want to be able to store my code and projects.  So, Basic it is!

image

So, the Basic Configuration Wizard opens up.  Now the options to configure are very limited, but we have to provide details for the SQL Server Instance. And now, to select Install SQL Server express.  If you want to take advantage of another system in your environment to host your database, well you could Use an existing SQL Server Instance.

image

Once it has the details it needs, you get a Summary view to confirm your choices.

image

Once, you click next or verify, it runs readiness checks on your system to make sure the installation will have a successful pass.  And we love GREEN!

image

Now, since got the green flag, our next stop is to let the wizard do its magic, click on Configure.  And once again, we love GREEN!

image

We click Next, and … We like a big Green Success sign …

image

We close the Configuration Center …

image

First results … Web Access …  Nothing to show … but we are there!

image

And all this running from a Microsoft Home Server installation.

Understanding the SQL Server 2008 R2 Installation Center

What is available to us through those links?  Have you taken the time to explore and identify what could be useful to you?

One of many gems that has come to my attention is the possibility of provisioning SQL Server to work in an image based environment (hint: Virtualization Template perhaps?!?).

 

clip_image001

Planning: Includes requirements information, documentation, how to guides, online documentation installation and other tools. Among the other tools you will find the System Configuration checker and The Upgrade Advisor. Both tools very important to ensure your deployment and installation would be successful.

 

 clip_image002

Installation:  This sections focuses on getting installations going, from standalone to cluster when it comes to new instances.  Add new nodes to an existing cluster, and also perform upgrades (in this case to SQL Server 2008 R2).  Also part of this is the option to find updates available.

 

clip_image003

Maintenance: We find in this section, options that will assist us in tasks like repairing corrupt installations to removing nodes from a cluster. An option that is interesting (and we should discuss benefits later in another post) is to be able to do an Edition Upgrade, this is a feature expansion and addition based on your product installation (Developer to Enterprise, for example)

 

clip_image004

Tools:  From the System Configuration Checker to identify readiness for deployment in a successful manner, to being able to report on features installed.  And being able to run upgrades of existing packages developed in the 2005 offering to the 2008 R2 release for SSIS.

 

clip_image005

Resources: Useful and essential links to gather information and guidance.

 

clip_image006

Advanced: Here is where it gets interesting.  I break this down into 3 main groups:

Installation Automation: When you install SQL Server there is a configuration file that gets dropped (ConfigurationFile.ini) that would allow for you to perform automated installations.  There are switches and options that go with this to have that process working.

Cluster configuration for Sysprep: Create images that are cluster ready, 2 options, start the prep work, and then the complete once at the final destination.

Stand-alone configuration for Sysprep:  Like the clustering counterpart, 2 options, prep and complete.  Giving you the option to create standard templates for your SQL Server deployments.

I find it fitting that the 3 topics listed here should (and will) be additional topics I will discuss.

 

clip_image007

Options: Very clear and specific about what this means. Select the Processor Type or the Installation Media Root Path.

A great option for those of us who live by virtual environments, SQL Server 2008 R2 sysprep

For a long time when creating images for my development environment, I had to install the OS and then sysprep.  Only after that would I then create a differencing drive/image that would have SQL Server. So, the thought of having a base/core image for SQL Server as a template was not easily done.  Well, how do things change?  SQL Server 2008 R2 gives us the option now.

Check this HOW TO provided on the library docs at TechNet.


http://technet.microsoft.com/en-us/library/ee210664(SQL.105).aspx

Follow

Get every new post delivered to your Inbox.