Windows Web Hosting, Web Technologies, etc
Posts tagged webmatrix
WPC Talk 4/4: Deploying the infrastructure for 5000 shared hosting accounts in just 3 business days
Jul 11th
On the evening of June 9th I received an invitation for Applied Innovations to join a beta program that would be initially limited to just 3-4 hosters. The program would give us an 8 month jump start on our competition with a new program Microsoft was going to promote, later to be known as WebMatrix. In order to join the program we had to build out the infrastructure for 5000 trial/beta hosting accounts and provide them free hosting and support through the end of the year.
In order to properly support this program we had to deploy several new beta DLLs and components that inevitably meant we’d have to deploy an entirely new infrastructure to support this program. We would need to deploy:
- A customer self-service control panel and the supporting infrastructure
- At least 1 SQL Server 2008 server so we could include one database for all users
- At least 1 MySQL Server so we could include one database for all users
- And Web servers with about 15 different requirements and components with many of those being unique to this program and very much beta.
Oh and BTW, we need this ready for testing before the 15th which gave us just three business days to deploy all of this!
Of course, I said “no problem, we can do it!” and immediately scheduled a meeting with my senior team the next morning.
This is the story of how we did it and the motivation behind that.
The motivation for the build out.
Going into this build out we were certain about two things: We’d want to deploy this on top of our Dynamic Datacenter infrastructure and, we’d want to use the WebsitePanel control panel.
We’d need some sort of snapshotting – Immediately we knew this was going to be a beta environment which meant lots of changes, tweaks, updates, etc. so we’d need a reliable way to roll back changes in the inevitable event something got broken. Hyper-V snapshotting was the solution.
- We’d need the ability to spin up new machines very quickly – This meant we’d want to the ability to clone machines and turn them up as quickly as possible, Hyper-V again proved to be the solution.
- We’d need the ability to adjust server resources on the fly – One of the advantages Hyper-V offers our customers is that they can increase memory, diskspace and CPU power on the fly. We decided we’d leverage that same flexibility as opposed to purchasing new hardware for this deployment and we’d be able to increase memory, diskspace and CPU power on the fly.
- We wanted to test a virtual environment for shared hosting – With our Dynamic Datacenter Infrastructure we’ve been discussing options on how to bring that same functionality (failover clustering, flexibility, scalability, etc) to our own shared hosting customers. We couldn’t run the risk of impacting our production customers with an untested platform so this program would give us a chance to see just how well the virtual environment would work for shared hosting (and so far it’s great!).
- We’ve outgrown our existing control panel solution – We’ve been looking for alternatives for our existing control panel for more than a year and haven’t been able to find a solution that would fit our needs. Recently DotNetPanel, a control panel written from the ground up in .NET, became an open-source project which meant we had a proven commercial control panel solution available and full source code for it that we could test out. So this program gave us an opportunity to test and qualify the platform’s performance with potentially 5000 BETA customers.
What we learned from this deployment
Over the past month we’ve learned a great deal about the flexibility the Dynamic Datacenter and WebsitePanel offered us that previously wasn’t available:
- The Dynamic Datacenter allowed us to deploy a handful of servers very quickly and manage them efficiently. This is something we position as an advantage for our customers when selling the solution and realized we weren’t making use of this advantage for ourselves.
- Having the source code to WebsitePanel also proved to be invaluable. During the deployment of this infrastructure we learned that we needed to make some changes to how sites would be provisioned and by having the source code we were able to modify the code and make this happen very quickly. Previously, we probably wouldn’t have been able to participate in this beta offering!
Where we see WebMatrix fitting in.
As the beta program continues I have no doubt WebMatrix will be opened to more hosters. Most people in the .NET community are positioning WebMatrix as an entry level developer tool and although it will be very effective there, I see it as something more than that.
Today many developers are building a very profitable business by building websites based on open-source CMS tools like DotNetNuke, Joomla and WordPress. Frequently, these developers build the site on the production web hosting server and don’t have access to the error logs and debugging capabilities. Development goes slow and painful. With WebMatrix, these developers are able to not only debug and troubleshoot their new sites but build out the sites using the very same infrastructure (IIS7, FastCGI, ASP.NET 4.0, etc) that they’ll be deploying the sites too! I think this is something everyone is overlooking and really what will make WebMatrix is a killer app!
I hope you enjoyed my blog post about encourage you to review some of the links I’ve provided that will give additional information. If you have any questions or comments please feel free to leave a comment on this post or shoot me an email.
Attending WPC & Guest Speaking at a Session on Microsoft’s Technology Vision for Next Generation Hosting (part 1/4)
Jul 11th
This week I’ll be traveling to the Microsoft 2010 Worldwide Partner Conference and I’m excited because I’ll have ‘Speaker Credentials’ at this, Microsoft’s Flagship event for Partners. I’ve been invited by Anil Reddy to speak during his sessions and talk about our successes recently that were made possible thanks to our partnership with Microsoft. I’ll also be sharing how we’re leveraging the new programs and products being introduced by Microsoft to continue to build upon that success.
If you’re attending the WPC, the initial session was completely booked but they’ve opened a second session and I believe a third session may be in the works. The details for the sessions are listed below.
I’m looking forward to sharing our story and providing feedback on our success made possible in part by Microsoft’s Windows Server.
Today our company powers more than 25,000 domains for clients worldwide. We operate just over 500 physical servers and thousands of virtual servers all running on top of Hyper-V. This growth has been possible in part by picking great partners like Microsoft.
Although WPC currently has over 10,000 registered attendees I know many more won’t be able to make the event so I wanted to blog what I hope to speak about during the sessions. I also stink at powerpoint so I hope to refer the attendees here and continue the conversations further.
I’ll be breaking this out into 4 blog posts (including this post):
- The first will talk about the Dynamic Datacenter Toolkit, System Center suite of products and Hyper-V. It will discuss the cost savings we’ve seen thanks to Hyper-V and the unique opportunities it’s presented to our company that otherwise wouldn’t have been possible.
- The second post will be on WebsiteSpark, our leadership in the program as a Hosting Provider and how we’re leveraging WebsiteSpark to continue to grow our customer base and the opportunities it’s offered us.
- Finally, I’ll speak on the newest topic and that’s WebMatrix and how my company was able to build an infrastructure to support 5000 shared hosting accounts in just 3 days.
I hope you’ll enjoy this series of blog posts and if you’re attending WPC and want to meet up just drop me a line. I also hope that if you have any questions or comments you’ll feel free to comment on the posts and I’ll be sure to reply promptly.

Adding W3C Validation to WebMatrix
Jul 8th
One of the extremely cool features with IIS Developer Express is that you can extend it with the same modules you’d extend IIS7.5 with. Examples of popular modules are the IIS SEO Toolkit, FastCGI and WinCache.
Which are all included already. I’ve been looking for a module to add to it as an example that would bring value to web developers and came across a great post in Carlos Aguilar Mares blog titled: IIS SEO Toolkit and W3C Validation Service and I thought, That’s it! That’s a feature we could extend WebMatrix with that would bring value to web developers within the WebMatrix tool that is a perfect fit for the dev environment WebMatrix provides you.
How Carlos did it for IIS Servers
First if you haven’t visited Carlos’s blog, I recommend you do so (it’s another of the awesome IIS blogs). His article: IIS SEO Toolkit and W3C Validation Service talks about a sample project he created that basically takes your web content, runs it through the W3C HTML5 markup validation service and then returns a report of errors and warnings. The article was written around the current version of the IIS SEO Toolkit available for production, assumes you’re installing it on an IIS7 server and that you’re using the same version of IIS SEO Toolkit he’s using.
Unfortunately, we’re not using the same version of the IIS SEO Toolkit and not installing it on an IIS7 server but he was kind enough to give us the source so we’re good to go!
WARNING: In no way should I be confused as a professional programmer. I don’t know what I’m doing and if you follow the instructions from this point forward, proceed at your own risk.
How to add Carlos’s Extension to WebMatrix
We’re going to take 4 steps:
- Convert the project to .NET 4.0 (VS2010 does this for us)
- Recompile the DLL to use the same binaries for the Microsoft.Web.Management.SEO.Client and Microsoft.Web.Management references.
- Add the new DLL to the GAC
- Add a reference to the new DLL in the administration.config file for IIS Developer Express.
1. Converting the project to .NET 4.0.
This was the easy part. You’ll download the project, open it in VS2010, let it convert the project to VS2010 and then just go to Project –> SEOW3Validator Properties and change the Target framework.
While we’re in here, you should also update the Build Events. Carlos has it set to register the new DLL in the GAC and that’s throwing an error for me so I just removed the line by going to Build Events –> ‘Post-build event command line’ and removing the code in that box.
2. Update References and Recompile the DLL
There’s a reference to Microsoft.Web.Management and Microsoft.Web.Management.SEO.Client as shown below
We’ll delete those two references and then we’ll copy over these two DLL’s from our WebMatrix install, they can be found in:
“C:\Program Files (x86)\Microsoft WebMatrix”
(I actually copied over all of the Microsoft.Web.Management.* dll’s when I did mine)
once you’ve added these references back in pointing to the DLL’s where you downloaded them to (I put them in the project root folder and then just used the browse option to find them:
Then I recompiled the project and it compiled with 3 warnings all related to Microsoft.Web.Management.SEO.Crawler.Violation.Violation being obsolete.. but they were warnings and it compiled! WORKS FOR ME!
3. Add the new DLL to the GAC.
I used xcopy for this. I created a new folder:
C:\Windows\assembly\GAC_MSIL\SEOW3Validator\1.0.0.0__995ee9b8fa017847
and copied the DLL I just created to there. Only the SEOW3Validator DLL I created. If you don’t want to create this DLL yourself, you’re welcome to download the one I compiled, but you’re using it at your own risk and if you break something, blow up your computer or cause nuclear fallout, it’s your own fault for listening to me!
My DLL can be downloaded from here: SEOW3Validator-Jess.zip.
4. Add a reference in the Modules section of the administration.config file
This file can be found in:
C:\Program Files (x86)\Microsoft WebMatrix\config
You’ll open it up, look for the line: </moduleProviders> and just before that line, add this:
<add name="SEOW3Validator"
type="SEOW3Validator.SEOW3ValidatorModuleProvider, SEOW3Validator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=995ee9b8fa017847" />
and then save the file.
That’s it, Let’s see it in action!
Now all we have to do is fire up WebMatrix, go to one of our projects and then run an SEO report just like we’d normally do:
This fires up our site in IIS Developer Express and then sends each of the pages over to the W3C Validator a page at a time with a 1.5second delay between each page. After it’s done you’ll see the SEO report including the W3 Validator errors and warnings:
Where do we go from here?
Well hopefully someone finds this useful and takes up the project to extend it even further. I’d love to see this type of extension made a part of the WebMatrix tool actually, I think it’s a perfect component for it.
I hope you found my little article helpful. I’ve seen a lot of comments about WebMatrix and how it’s geared towards being a project for non-coders, noobs and ‘hobbyists’ (and most say how it is going to fail) but I don’t think that’s the case at all! Although it will allow that class of developers to use the tools and build a better web, it’s going to be equally useful for the seasoned developer. Best of all, it’s going to be useful for you whether you build your sites in custom .NET, custom PHP, in the new ASP.NET Web Pages or based off of open source applications like WordPress and DotNetNuke.
As I mentioned, I’m not a professional programmer but I considering programming (be it PHP, C#, VB, Perl, Bash Shell) a tool for the toolbox and I think if you’re a professional developer or designer WebMatrix should be another tool in your toolbox because it’s certainly one in mine!