Category: Editorial

  • Changing Hardware

    I’ve been an Intel user for most of my life. While I have owned Mac machines, and I did once have an AMD desktop for the kids, I have pretty much stuck with Intel as my CPU of choice. Certainly I’ve had other processors in mobile devices, but for work, I have almost always purchased servers, desktops, or laptops with Intel CPUs.

    I remember the time in the 80s and 90s when there were lawsuits, advertisements, and innuendo put out by the companies, as well as fans of either side. I knew people that were sure Intel was the only way to go, fervently claiming that I’d have all sorts of issues trying to run my software on anything other than an Intel CPU. Just as insistent where others that assured me AMD worked fine and Intel was an overpriced waste of money.

    Over the years, I’ve seen Glenn Berry note that SQL Server runs better on Intel, because of the superior single-threaded performance on Intel machines. He’s changed his mind recently, and talks about why in a post this week. Glenn does advocate moving to new hardware, which often can give you better performance over older hardware at a lower consumption. If you are stuck on an older 2008/2012/2014 system, perhaps a hardware refresh is worth considering.

    Would any of you consider moving to AMD CPUs for your SQL Server instances? Is a hardware refresh something you might consider instead of upgrading software versions? If you got a 30-40% performance increase from a modern processor over a 2012/2013 era one, would that be worth the cost of changing hardware?

    We know that changing hardware isn’t as simple or easy as replacing one part with another. Likely you’d have a fair amount of labor to change out a bit of server hardware, even if you didn’t have to change any of your storage. With the growth and advantages of the cloud, is this something to even consider these days?

    I don’t know, though I tend to think that for most organizations, it’s not worth the time and hassle to update hardware without updating software. Perhaps you feel differently, and if so, tell us why.

    Some of you might be like me, not even really thinking about what hardware choices are out there. You let someone else worry about the physical machines and you just ask for a certain level of RAM, a number of cores, and a certain amount of storage performance. That’s how I’ve built SQL Servers in the past, which is really what I do now in the cloud.

    Steve Jones

  • Are Windows Containers a Good Choice?

    I like containers. I think they’re the future of the SQL Server data platform. I also think this is likely on Linux, with Linux versions of SQL Server. You might disagree, and that’s fine, but that is where I see this moving over time.

    Why? I ran across a great post from Joey D’Antoni of DCAC that outlines one reason: Kubernetes. This is the way we will start to orchestrate SQL Server instances in the future, whether disparate or scaled-out, and this is really Linux technology. If you go Linux, with Kubernetes and containers, you’ll be able to easily move your systems as needed from your data center to developer machines (perhaps with SQL Provision from Redgate), to the Azure cloud, or over to the AWS cloud, a partner Kubernetes install, etc. It’s flexible.

    Windows Kubernetes will be less flexible. Inherently because less people use it, while more and more people are using, supporting and deploying Kubernetes on Linux.

    This won’t happen soon, as I think it’s 5-10 years before a good majority of SQL Server moves to 2019+ and containers become more mainstream for app and data work, but this shift is starting.

    This also doesn’t mean Windows goes away. I really like Windows. I’m comfortable with it, and I plan on having a Windows laptop for the forseeable future. What’s more, I can run Linux containers on Windows, thanks to the WSL. Even Microsoft sees containers with Linux as a future on Windows.

    Like Joey, I don’t want to dismiss or denigrate any work for Windows containers. I think it’s a good idea, and certainly some people will want to run their Windows apps in Windows containers. I just don’t think it’s the future for the data platform.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • The AI Manager

    One of the advantages of a computer is that it will handle repetitive tasks very well. That’s one reason the DevOps world pushes for automation of simple tasks, like compiling code or copying files between machines. We know the software will perform the task the same way every time, giving us a reliable, repeatable process. Even in many AI systems, the structure of the program ensures some level of reliability, though the actual actions or results may vary dramatically based on the inputs.

    For some tasks, this is great. If we have a system watching for a change in code to rebuild the application, that’s certainly a job for a computer rather than a human. If a sensor needs to be checked and an action taken if it exceeds a value, certainly the watching ought to be done by software, though the actions may or may not be something we want a system to do without human input.

    In some sense, I likewise think that the use of AI to manage workers is a bad idea. This was something I read about in Manna, which seemed exxagerated when I first perused the story. Now it seems that some of this is coming true in this story about workers in a call center being manager by an AI system. There is a software on their machines that tracks their activity, the way they interact with customers, and more. If there are potential problems, the software tries to give them messages about how to alter their behavior. Many employees aren’t bothered by this, but I wonder if that will be the case over time, especially if this software starts to affect employment and pay decisions.

    I think this is micromanagement at a level I’d never want to work under. I know that some of these jobs are akin to factory jobs that make widgets, with employees doing the same thing over and over again. However, there also is some creativity and thought required, otherwise I’d assume an AI could just do the whole job. That might be coming, and I wouldn’t be surprised to see it, but as long as humans are working here, there ought to be plenty of human oversight.

    Could you see this in our industry? Maybe AI reminders that you’re slow to close a ticket, or not committing enough, or even that you’re not doing enough testing. It’s crazy to think that there could be software that companies use to manage developers and other technology staff.  My guess is most of you think this would be a poor idea, but I could see this becoming used in help desks and infrastructure at some point. If it works there, who knows what types of AI software might be deployed by companies.

    Perhaps more worrisome for many is that if this becomes a trend, this might affect the middle management levels in companies more than workers. One manager might do the job of 10s,  or even 100s, which is its own societal implications if we use less people as supervisors. Maybe this would make for more efficient companies, and hopefully, less meetings. I don’t know if I think that’s a good evolution of software being used to manage a process.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • DevOps and OSS Can Scale

    Microsoft has changed quite dramatically in the last decade, in many ways. One of the more surprising ways to me is their embracing of open source software, while still building products that customers want and use. This is quite a change from the Microsoft that I knew back in the early 90s when I started working with SQL Server. Open Source software was seen as a complete anathema to the Microsoft way.

    One of the very interesting ways that Microsoft works in the open is their use of GitHub as a VCS (version control system) for many projects. From .NET to Azure Data Studio to the new virtual kubelet code, thousands of Microsoft engineers are writing and committing code in a very transparent way. Not all their products are here, but there are more than I would have ever expected.

    Part of the challenge of using a (formerly) third party platform is the infrastructure and administration of users. Microsoft has a scale issue here that most us do not deal with. While we work with dozens or hundreds of developers, they deal with thousands. There’s a good blog post about how they’ve scaled up to ensure 25,000+ developers can work.

    The post has lots of information, both at a high, conceptual level as well as at a detailed, technical level in places. Some of the big themes I see in the post is that automation is important, and that there are tools that facilitate the collaboration of their developers by sharing information, triggering notices and reminders, and by enabling the discovery of others. Collaboration is a huge part of DevOps, and the more software can encourage this while reducing the burdens of tedious work, the better the system works.

    None of this works without a culture change. If Microsoft can do this with thousands of developers and thousands more non-technical staff, any of us can. Microsoft has grown in the recent years to be one of the more valuable companies on the planet. Many of our organizations can learn from this by adopting DevOps, but not just in name or at a technical level. The technical tools are easy, but to get your organization to perform better, you need to ensure culture grows with the Three Ways and a team environment. Let your management know that you can all do better, but only if they truly embrace all the concepts of DevOps, teamwork, feedback, and learning from our previous actions to drive continuous improvement.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.