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.
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.