Team Foundation Server 2010 Proxy: Informal Performance Evaluation

Joseph JunAfter launching our Team Foundation Server 2010 Proxy beta service, I was very curious to see what type of real world results would be returned. My expectations were pretty high. During the deployment process, I was just using a generic ASP.NET 4.0 Web Application Project and the improved download speed was very impressive but how about a real project?

Evaluation Method

To get an idea of what type of actual performance to expect, there isn’t any isolation involved and I’ll be using actual production servers. I’ll be using our shared TFS server hosted at our European data center and using the TFS Proxy server at our North American data center.

Instead of trying to determine connection-related efficiency from different types of Internet connections and speeds, I elected to use the office connection during normal business hours where other staff members would be utilizing the connection. I did try a few of the tests on a residential DSL connection. I will not be including the results but I’ll mention my findings in the conclusion.

There wasn’t an easy way to get start and completion times through Visual Studio – I used the tf command-line utility in a batch file. The results do not take into consideration any overhead that an IDE might require. The tests were run back-to-back so a test without proxy was immediately followed up by a request with TFS Proxy involved.

I’m also looking at two of the most frequently used commands that benefit from TFS Proxy: get and diff. Each test was run five times, a new Workspace was created for each trial and only the local client cache was cleared.

The result times were rounded up to the nearest second, as the main purpose is to try and get an idea of real world wait times.

Test Setup

Team Project Collection:

  • Team Projects: 2
  • Size: 44.1 MB
  • Folder count: 504
  • File count: 3,983

Team Foundation Server 2010 server:

  • Server: ETFS01 (shared production server)
  • Location: London
  • Operating system: Windows Server 2008 R2 Standard (x64)
  • CPU: Intel Xeon E5520
  • Memory: 4GB
  • Hard drive: Microsoft Virtual HD
  • Connection type: Tier 1 data provider
  • Average latency: 150-200 ms

Team Foundation Server 2010 Proxy server:

  • Server: USW-PROXY01 (shared production server)
  • Location: Irvine, CA
  • Operating system: Windows Server 2008 R2 Standard (x64)
  • CPU: Intel Xeon E5620
  • Memory: 4GB
  • Hard drive: Microsoft Virtual HD
  • Connection: Tier 1 data provider
  • Average latency: 7-9 ms

Team Foundation Server 2010 client (my trusty laptop!):

  • Location: Pasadena, CA
  • Operating system: Windows 7 Professional (x64)
  • CPU: Intel Core i5-430M
  • Memory: 8GB
  • Hard drive: Seagate Momentus XT ST750LX003
  • Connection: Business-class 10mb

Commands:

  • Get (with and without Proxy):
    • Full recursive
    • Single binary file (approximately 1MB)
    • Single text file (approximately 66KB)
  • Diff (with and without Proxy):
    • Single file (approximately 494KB)

Get (Full Recursive)

While it’s not something that you might end up doing frequently, I thought it would be fun just to see how much of a difference TFS Proxy makes on a full recursive get.

The recursive get of the Team Project results in downloading files from 30 seconds to a full minute faster! Again, it’s not something that would be done frequently but it’s a good way to show how much of an improvement Proxy provides.

Get (Binary)

There might be some binary files that you might end up pulling from a server. Much like the previous test, this isn’t something that you might end up doing occasionally.

TFS Proxy wound up being as much as 2.5 times faster than no proxy. I wasn’t able to try a larger file, but the benefits of using Proxy are evident.

Get (Text)

For a more practical test, I tried performing a get on a single file.

On a couple of the trials there wasn’t much of a difference since text data downloads relatively quickly. If you’re pulling a large group of files, you’d definitely see improved performance.

Diff

File comparing is a command that’s also issued frequently against a server.

Much like the get performed on an ASCII file, text-based data seems to only have a minimal benefit but I suspect that under low bandwidth high latency conditions, the difference in speed would be more noticeable.

Conclusion

After spending a lot more time working with TFS Proxy, the difference between an operation completing may seem minimal but over the course of time, the amount of time saved for a download is incredible. I’m very impressed by the performance.

The results I came across led me to believe that the ideal time to use Proxy would be in low bandwidth high latency environment so I tried performing a few of the tests from home over a residential DSL connection. After purposely reducing the transfer speed by saturating the connection with some downloads and video streams, a get against a text file was reduced from 8-9 seconds down to a very good 4-5 seconds.

I thought I’d include the statistics on the Proxy server here as well and here are the details:

  • Cache size: 38MB
  • Files in cache: 4,060
  • Number of requests: 28,167
  • Number of cache hits: 24,107
  • Number of cache misses: 4,060
  • Cache hits percentage: 85.59%
  • Cache miss percentage: 14.41%

Proxy was used almost 86% of the entire time.

If you’ve established an account and your TFS server isn’t in your region, I’d definitely recommend enabling the Proxy service if there’s a Proxy server near you.

FREE WebMatrix v2 RC beta Hosting with node.js

Takeshi Etowebmatrix v2 betaMicrosoft just launched WebMatrix v2 RC and  we are extremely happy to announce another free sandbox: FREE WebMatrix v2 RC beta hosting sandbox program, this time with node.js support!

node.js hostingThis most recent Web Matrix v2 RC includes enhancements to more easily install many open source applications, adds support for more languages like PHP, HTML5 and node.js, and adds support  for developing mobile-friendly web sites.

The sandbox we provide is completely FREE and open to all developers as long as there is space available. You do not have to be a DiscountASP.NET hosting customer to take advantage of this program.

Check it out at http://labs.discountasp.net

The Art of Hosting: Control Panel

Takeshi EtoIn the past when web hosting was in its infancy there were no automated tools but these days consumers expect a certain level of self-service and expect to use a hosting control panel. So then comes the next question. What does a host use as their control panel?

There are different ways to approach the issue of the Control Panel. The host can (1) use an off-the-shelf control panel, (2) build their own control panel, (3) use an open source control panel, (4) customize an off-the-shelf content management system (CMS). So let’s look at the pros and cons of each of these options for control panels from the host’s point of view and the consumers point of view.

Buy or License a Solution

Pros Cons
Hosting Provider Buying/Licensing a control panel solution is by far the fastest way to enter into the web hosting market and there are several control panel vendors out there to choose from. Using a popular control panel used by many hosts can mean that there are many resources out there in addition to the vendor for information and support. There will also be a larger pool of talent that the host could potentially hire with previous experience on the platform. Corollary: The natural evolution of the “buy” option is that some hosters introduce a “rent” option – where the host will pre-install a control panel on a server and rent the server out as part of a “reseller hosting” plan. Corollary: If the host’s goal is to grow and then sell their company, using an off-the-shelf solution can ease the transition to a new owner. There was once a large ecosystem of hosting control panel vendors, but many of them have sold their companies or gone out of business and are now defunct. So one problem for the host is that they are essentially tied to the control panel vendor for their control panel and product development. That’s why you’ll sometimes see a host that has two control panels – one for legacy customers and one for new customers. Having to support many different control panels is a resource drain for the host and continuing to use a defunct control panel could lead to many issues in the future (e.g. security, compatibility with new OS versions…etc.), since there is no support and no more updates to the old code base. Corollary: If the control panel vendor is successful in getting a lot of adoption by other hosting providers, then it is that much easier for customers to leave and have the same experience with another host. Corollary: Another issue is that if the host becomes dependent on a control panel vendor and has no other options, then the vendor can increase licensing pricing and the host will need to pay up or incur disruption.
Hosting Customer If the control panel is used by a lot of hosts then the customer can move from host to host and have pretty much the same experience. In addition, since the host does not have to invest in the development and maintanance of a control panel, the savings can be passed down to customers with lower pricing. The customer is also dependent on the control panel vendor for product development. If a new technology is released, the control panel vendor may or may not update their panel in a timely fashion. If the control panel vendor goes out of business or decides to focus on something else, the customer will need to choose to remain on an unsupported control panel or migrate to another control panel system – which can be disruptive.

Build Your Own Control Panel Solution

Pros Cons
Hosting Provider If the host builds their own control panel they are no longer beholden to a third party vendor for their control panel and product development. The host is on their own timetable with the launch of new features and does not have to worry about a large install base of other hosters and different business models. The host may be able to introduce new features faster and they can have unique features that no other hosts have. Building a control panel system takes a lot of investment of resources. And it isn’t a one time investment. The control panel will always need to be maintained and improved – with bug fixes, new updates, and new features. The host will need to become in part a software development company.
Hosting Customer A well maintained and updated proprietary panel are not subject to disruptions encountered with off-the-shelf vendors being sold or going out of business. The customer can benefit from unique tools/features. The customer may get new features faster than customers hosting elsewhere. Every control panel is different so the customer will need to learn the workflow of each proprietary control panel. While a well maintained and updated proprietary panel can be great, a non-maintained and seldom updated panel can be a nightmare.

Open Source Control Panel Solution

Pros Cons
Hosting Provider & Customers There are some control panel code that is available as open source. This is a free option for hosting providers so there is zero cost to obtain a control panel. The savings by the host can flow to the customer as lower pricing. With an active community, crowd-sourced apps can grow quickly and with regularity. The cadence of updates can be much faster than a proprietary or commercial vendor with an active community. You can check out the open source control panel’s forums to see the activity and review the updates and suggest features. Technical support for an open source app is provided by the community as well as its development. In general, there is no vendor to turn to for support. If the host runs into a problem and cannot resolve the problem themselves, their only recourse is to post on a forum and hope someone can help. If the community loses interest in the application, the host will need to make their own investments or hire consultants to keep their control panel updated. The open source apps may not have billing system integration.

Customize a CMS

Pros Cons
Hosting Provider & Customers With the availability of mature open source and commercial CMS applications, some hosts customize CMS applications as their control panel. A modern CMS application has built-in customer registration, login, and content management systems that the host does not need to develop themselves. This could potentially speed up the development of the control panel. CMS apps are not created as a hosting control panel so depending on the app, the hosting control panel solution can be very elegant or can be a hack. As with any open source project, the community interests will drive its development. If the community loses interest, then the CMS app may not evolve with new technology updates. If the app is a commerical app, the host is dependent on the application vendor whose focus may change depending on the interests of their larger CMS user base. Most CMS apps do not have billing system integration so billing is something that the host will need to figure out how to do and determine if it is possible to integrate the billing solution into their CMS control panel. You may have seen hosts that have a control panel and a separate system for billing.

What we decided to do at DiscountASP.NET
We launched in 2003 with the intent to focus on ASP.NET Hosting. Because of our focus, we thought it would be important to have a control panel developed using ASP.NET. That is, we thought our claim of being ASP.NET hosting experts would not be convincing if we used a PHP-based control panel or Active Server Pages (ASP) solution.

Of course, we did look out there to see if there were any ASP.NET-based hosting control panels back then. We found none. Furthermore, ASP.NET was also in its infancy so there were no mature CMS applications out there that we would be confident to use as a foundational platform. Therefore, we decided to build our own control panel using .NET and commit to its maintenance and updates.

Our decision had ramifications. There was a lot of resources invested into building a hosting automation system and control panel. Our first control panel version was very rudimentary. For example, our first control panel embarrassingly did not support SQL databases – but you have to launch sometime. Today our control panel has many features that are not found in other off-the-shelf control panels and we are able to keep up to date with Microsoft’s release schedule for new technology. But it took a lot of work and investment to get to where we are today and we continue to invest in making updates and improving the control panel.

Takeaway
The control panel is an important self-service tool for the host and for their customers. What control panel the host uses tells you something about the host. How the host keeps up with new technologies and control panel updates or doesn’t, tells you something about the host and their prioirties.

As the end user, you may want to check out a demo of the control panel to see what the host is using and which category they fall into in the segments discussed above. You may want to check out the host’s news, press release, blog, and forum content to understand the cadence of control panel improvements. By reviewing the news content, you can get an sense of where the host is making investments and if the host’s actions/vision meshes well with your business and site requirements.

Suggestions?
If you have suggestions for topics or areas that you are curious about, let us know in the comments below.

DiscountASP.NET Master Control Panel

Martin OrtegaDo you have multiple hosting accounts with DiscountASP.NET and would like to keep track of them with one easy login?

Let me introduce the Master Control Panel for DiscountASP.NET.  The Master Control Panel has been around for quite some time now. Basically it was created to make managing multiple hosting accounts much easier for our users.

Simply click on this link to get started: Master Control Panel

Click on the “Create a New Master Account” link.

You will be brought to the page shown below. Enter an email address and password that you would like to use as the Master Control Panel login.

Click “Create Master Control Panel Account.”

A verification email message will be sent to the email address you have just entered.

You will then receive the verification code that you will need to copy and paste into master verification box (below).

Click “Create Master Control Panel Account” button after you have entered the verification code.

You will then be prompted to reenter the email address and password that you choose previously.

Click on “Master Control Panel Binding Admin” to start binding your hosting accounts to your master control panel account.

Click on “Bind A Hosting Account” tab.

Enter your Hosting Account credentials as you originally set them up.

Go back to the “Bind A Hosting Account” tab to add more hosting accounts.

Once completed you can simply login with your Master Control Panel email address and password.

Are DiscountASP.NET users going Metro?

Stefanus HadiSteven Sinofsky, president of Windows and Windows Live Division, unveiled the Windows 8 operating system (OS) at the D9 Conference in Rancho Palos Verdes, California, almost one year ago. (1)  Windows 8 was a re-imagined Windows OS focused on touch and a Metro-style platform option similar to that used in Microsoft’s mobile operating system for Windows Phone 7.  Windows 8 is geared toward a new generation of devices with touch-only screens from a small size such as a phone to a large size such as a flat screen monitor or television.  Many of these devices may not require a keyboard or mouse.

On September 13, 2011, several different pieces of hardware running Windows 8 were showcased during the Build Conference in Anaheim, California. (2)  Then, on December 6, 2011 at a Windows Store Preview event in San Francisco, the Windows team encouraged developers to begin developing Metro style apps with an 80% revenue share for apps sold thru the marketplace. (3) Windows 8 continues to gain attention and during the Mobile World Congress in Barcelona in February 2012, the Windows team announced the release of Windows 8 Consumer Preview. (4)

At DiscountASP.NET, we asked our users whether they intended to develop Metro-style apps. We used the same question and answer choices for the past two surveys, conducted in October 2011 and March 2012.  Here we discuss some of our findings.


Chart 1 shows our users’ awareness of the Metro-style platform within the 5 month span between the two surveys.  It appears that Microsoft’s activities around Windows 8 and their push to encourage developers to develop Metro-style apps is increasing awareness of the Metro platform. In October 2011, 32% of survey respondents in the U.S. were not sure what a Metro-style app was.  In March 2012, the percentage decreased to 29%, so there was a 3% increase in awareness.

Chart 2 shows that the percentage of DiscountASP.NET users who are not planning to develop Metro-style applications remained at a relatively steady level.


Chart 3 shows that in October of 2011, 7% of DiscountASP.NET users had already started developing Metro-style apps using the available betas.  The percentage increased to 9% 5 months later.  Our March 2012 survey showed that our users who were planning to develop Metro-style apps within the next 3 months doubled compared to our previous survey in October 2011.


In general, there is increased interest among our users in developing Metro-style apps.  We believe that in our next survey these percentages will increase, as the Windows team is planning to release more updates to Windows 8, as well as tools to help build Metro apps. As we approach the launch of Windows 8 later this year, we will continue to monitor our users’ interest in the new platform.

An Introduction to The Art of Hosting Series

Takeshi EtoFor a few years, we’ve sponsored the SoCalCodeCamp, had our sponsor table at the event, and also gave a Q&A session last year that was well attended (unlike our January 2012 session). We like these types of events because we like to meet face to face with the developer community and to talk to current and even former customers. During these events, we field many questions and a large number are, in a way, related to why there is such varied pricing and why there are such varied feature sets among different hosting vendors.

No Two Hosts are the Same
While hosting providers may look similar when you compare their web sites or check their features lists, the truth is that all hosting providers are different under the covers. Every hosting company has to make a multitude of decisions about how they will run their business and no two hosts make the same decisions, which is why no two hosts are ever exactly the same. But more importantly, the decisions that the web hosting provider makes about their business will impact the host and their customers in different ways.

So in essence, the web hosting business is all about trade-offs. Unless you have a press for printing money and an unlimited supply of free, talented labor, all hosts need to decide where  and when to invest their limited resources.

For example: Do you build your own data center? Do you buy used equipment? Do you run your hosting business full time or part time? Do you hire an ad agency?  Do you use off-the-shelf web hosting management software or build your own? Do you do technical support in-house or do you outsource? Do you rent space and establish a physical office? How many hosting plans will you have? How much will you charge? Who are your target customers? How many hours of sleep will you get every night?

The questions go on and on and new questions never stop arising. Running a hosting business is no different than running any other business. It’s a lot of hard work, and every aspect of running a business requires time, resources and money.

Intro to the Art of Hosting Series
This is an introductory post to kick off a new series of blog posts that we will be publishing about different decisions that hosts need to make about running their business, the pros and cons of those decisions and how they may impact the host and their customers. We will also discuss why we made the decisions that we did at DiscountASP.NET.

We call this series The Art of Hosting because running a successful business is an art. We’ve added a new Art of Hosting category here in the blog so you will be able to access the posts in this series quickly and easily.

No Right or Wrong
One thing I would like to point out is that there is more than one “right way” to run a hosting business. We do what we do because we have chosen to run our business a particular way for various reasons. It doesn’t mean that we are right or wrong, or that any other host is right or wrong. Hosts, just like any other business, are trying to survive in tough economic times and in ever-changing markets. They are trying to pay the bills and their staff, keep their hosting systems up and running smoothly, and keep their customers satisfied.

No One Size Fits All
Another thing worth mentioning is that there is no single hosting provider that can host every type of website for every type of customer and do it all well. It is simply not possible no matter how large a company may be. That is why there is space in the market for all different kinds of hosting providers.

Our Hope for this Series
We hope that this blog series will provide you with some insight into how a hosting company works and what makes a hosting company tick. And as consumers of hosting services, we hope the information will help you make more informed decisions about your hosting needs and help you in your due diligence – no matter where you decide to host your stuff.

Are you ready for NUads?

Takeshi EtoI blogged about Microsoft’s research into new interactive advertisement possibilities last year – something they are calling NUads – or Natural User Interface advertisement. Check out the video in the old post.

Well, according to CNET, Microsoft is getting ready to launch this in late spring. There are definitely going to be some privacy issues that will be raised.

Some of the wild potential is that with the Kinect’s ability to react to biometric information, there is the possibility of it working in reverse – for example, the advertiser may be able to detect how many people are in the room and which of those people are watching the screen, and perhaps be able to capture audio with Kinect’s microphones to get a sense of how people are reacting to an ad. With the type of information, the advertiser can react to the reaction. This kind of activity is going to bring up a lot of questions around how interactive data is going to be used and who owns this type of data.

The CNET article does have a link to Kinect’s Privacy information.

Are you ready for a new world with NUads?

Team Foundation Server: Introducing Proxy

Joseph JunTeam Foundation Server 2010 Proxy – much like a traditional caching proxy server – improves network performance by saving local copies of source control files. As part of a new beta service we have launched Team Foundation Server 2010 Proxy to three regions for all of our customers. While we’ve had a presence in North America and Europe, I’m happy to announce our first step into Asia with our TFS Proxy server in Singapore.

Our main goal with the remote deployment of TFS Proxy is to enhance the user experience but we’re also extending our infrastructure using Amazon Web Services – where the Singapore server is located. It’s an exploratory venture and if it works, we would be able to extend our reach even further to other locations.

I’m sure the big question is: who does this benefit? It has the potential to help everyone! If you’re a one-person shop in Europe with a server that’s hosted at our North America data center, it will help. If your team is split into different countries, it will help.

If the server that you’re hosted on is already geographically near your location, then using TFS Proxy wouldn’t help – it could result in poorer performance – but if one of the nodes where we’re deploying a server is closer to you, you’ll definitely want to enable the service.

Team Foundation Server 2010 Proxy isn’t meant to replace your current server – it works in tandem with your existing TFS server. There are certain day-to-day features that will bypass TFS Proxy, mainly: work items, check-in/check-out, lock/unlock, shelving and checking the history of a file but the following will see huge improvements:

  • Get
  • Compare
  • Annotate

I performed some general tests and the improvements are impressive.

I migrated a 7MB project that I had been working on to ETFS01 (our shared Team Foundation Server 2010 server in Europe) and then connected to our North American TFS Proxy. At first, there weren’t any performance-related improvements – since there isn’t any data that’s been cached, that was something I expected – but after the majority of my files had been cached, I was curious to see how much of a difference a full get of a project would take. Our office is fairly close to our North American data center so your mileage vary, but an uncached get to ETFS01 took about 42.1 seconds, the cached get took 7.6 – a huge difference! I was impressed.

By now this probably sounds like a sales pitch and you’re waiting for the “catch” – how much will you have to pay for this service?

Well, I’m not very good at sales — there’s a good reason why they keep me in support – but since this is a beta service, it’s absolutely free. If you want to evaluate TFS Proxy, access the Proxy Manager and enable a server. We don’t have automatic discovery feature enabled so use the instructions published in the following articles to configure your client:

If you haven’t established an account with us, you can sign-up for a 30-day free trial shared account.