Sockets, Cores, and Hyper-Threading – Oh My!
I’ve been mulling over writing this post for awhile. I don’t expect everyone to agree with me, but I think it needs to be said. This post is purely my opinion and no one put me up to it.
Ever since SQL Server 2012 announced its new licensing model, and specifically, per-core, many have been up in arms. I can see where some can see this as a “betrayal” – I mean, one of the reasons SQL Server is so ubiquitous is that it has historically been affordable for most. Enterprise may be out of reach for some now more than ever, but it’s always been out of reach for some. I would argue if you didn’t use Enterprise before, you probably wouldn’t now. Per core is a big change that will explode some licensing costs even for larger customers that will make them even think twice in some cases. I know this to be true because I’ve had those conversations already with some of them. I hope some of you got Software Assurance to at least take care of some of that for now.
Quite honestly – and this is something I’ve said publicly – I’m surprised Microsoft waited as long as it did with SQL Server to switch models from processor/socket/CPU to physical cores (not hyperthreading). I’m not saying I agree or disagree with it, but it does make sense. Putting on another hat, I’ve been in the position where if you undercut your price too much, people don’t take you seriously or think you’re as good … or if you charge too much, you won’t get the job. Ben and I charge very fair prices out there and probably are lower than many folks or other consulting organizations but more than others. That’s just the way it is. Consulting – at least for me – has not been a get rich quick scheme to fleece customers out of money. If that was the case, I’d be retired already. I’m coming up on year six of being out there and I think the fact we keep getting business says that we’re doing a good job and our prices are in the right ballpark. At the same time, we’ve run into customers (or potential customers) who want the sun, the moon, and the stars for something like $25/hr. My response to that generally is: “If you can find someone like that at that price, lock them up!” To get expertise, you’re going to have to (reasonably) pay for it. But I digress …
Anyway, I think that’s some of the drive behind this. In my experience going back to 4.21a, Microsoft really doesn’t nickel and dime you a lot with SQL Server – most things come with the price. Want availability groups or failover clustering instances? Included in Enterprise’s license. You get the idea – and this is one reason I think SQL Server has gained so much momentum over the years. You don’t have to worry about a lot once you have it in place.
Before you scream “You insensitive @*(&#^@*&^#” remember I’m in the business of helping customers devise solutions that fit all of their needs – including meeting their budgets. I work with customers small and large, and I see the impact licensing has on them. I’ve heard rumblings from many of looking to possibly other platforms down the road for some systems … much like they did to Oracle when they switched to SQL Server many years ago. I would argue this may not be the way to go. Why? Think of the cost of moving the application (new app coding? new software to buy? cost to switch? when will the ROI be made up? skillsets? you get the idea). It’s not going to necessarily be cheap in all cases AND it’s going to take time, especially if you need to rearchitect it for a new platform. So saying “Screw you Microsoft!” may be premature and misguided.
With the announcement of Windows Server 2012’s editions and licensing I talked about in my previous post, we have the bigger picture. Will things cost you more even in the Windows Server 2012 world? You betcha. Again, to a degree this can’t come as a big shock to many. The change to per processor won’t make many happy, but how many people are buying more than two- or four-socket machines these days? Very few. And to be blunt – Windows licensing is not the same as SQL Server licensing. They didn’t implement per core, so while you’ll pay more, in the grand scheme of things, it’s still pretty reasonable.
The real problem: how do you account for processors that have more and more cores – especially with something like SQL Server that can really hammer the crap out of them with the right workload? Something has to give somewhere. If we get to 12, 16, 24 cores … I mean, when does MS get to say “Uncle!” Again, not defending them per se here – but at some point MS has to account for all of that additional computing horsepower somewhere.
Here’s another problem as I see it: we’ve been able to throw hardware at performance problems for years. For example, if you are/were CPU-bound, with the newer multi-core procs, you could probably eliminate your issues with very little fuss. That’s great, but the app still isn’t tuned. Now that, say, SQL Server is charging per core, I would argue we’re going to get back to brass tacks and demand that things be tuned to minimize costs. Many of us should have been doing this all along, but it hasn’t happened. It’s about being smarter, and that includes tuning the applications – be they internal or third party.
There’s never a free lunch, and never has been when it comes to licensing. The new stuff is always (with very, very rare exceptions) more expensive than the old stuff … and it generally always will be. I know the new licensing models will alienate some and create some hard feelings for some companies out there; it’s unavoidable. MS I’m sure will lose some customers or at least some systems at customers over time. What I do hope is that people step back, take emotion out of the discussion, and look at these things for what they are. Many of us are technologists. Microsoft is a company in the business of making money; so is your company, and so are you. Would you do your job for free? Hell no. Even if you are a salaried, full time employee you want to be paid a fair wage. Whether you think Microsoft is right or not, it’s their right to set what they feel is fair market value for their products, just as you do your services to a company (be it as an FTE or consultant).