Category: Editorial

  • Moar Azure

    There are a number of choices for working in the cloud, aka, renting resources, but there are three big choices: Azure, AWS, and GCP. These three dominate the cloud services, though arguably AWS and Azure are way ahead. All three have lots of services, and all three can likely meet your cloud or hybrid needs, even if you work in a regulated industry or government.

    This week there was a piece on the work Microsoft is doing to increase their capacity. Between the 0365 Office services, Teams for collaboration, and their regular PaaS/IaaS workloads, they’ve grown quite a bit this year with the COVID-19 pandemic. As they try to increase their resources, they’ve had people working round-the-clock to add new servers. I’m sure they are still using containers, but likely they are struggling to fill these with new hardware.

    They’ve also been adding bandwidth, which is a bit need between the data centers. I had no idea they have their own undersea cables, but apparently they do. I suspect Amazon and Google do as well.  There is a note that they’re also coding, trying to improve efficiency. After all, while you can throw hardware at a problem, many of us know that bad code can overwhelm those efforts. We see it in our jobs every day. I would hope that many of our organizations that might be depending on software more realize that better code is an advantage for us and our customers.

    I know Microsoft runs a lot of their own stuff on Azure, including development work, and they’ve had to reschedule their internal workloads as well as move other work outside of regions. I think that’s fine in many cases, but with different laws in different countries, I hope they’re extremely careful about what moves. Data sovereignty can matter.

    If you read through the article, it seems that Microsoft has learned a lot about adapting their work methods, both with people and systems, to meet the increased workloads. This is one area that I hope we see some detailed technical blogs, which might help others learn how to better manage their own resource challenges, or even learn to code better. While some of this might be proprietary, with the move to having many things open source, why not share ways to improve application resource usage.

    Steve Jones

  • Evaluating Life at Work

    One of the more interesting things that we do at Redgate is regularly ask workers to evaluate their environment. We use a company, called Thymometrics, and periodically employers as asked to rate various factors, both in terms of how important are they to us, and how satisfied are we. I tweeted the general dashboard, but essentially there are a series of sliders we use to rate things, between a max and min. No scale, just a visual choice of are things more or less important. Am I more of less satisfied.

    The range is factors are here:

    • Work Environment
    • Wellbeing
    • Salary
    • Benefits
    • Culture and Values
    • Giving Something Back
    • Leadership
    • My Manager
    • Personal Growth
    • Recognition
    • Redgate’s Purpose
    • My Team
    • My Role

    When I log in, I can see how I last set things. I can also reset everything to the middle and re-evaluate how I view the world. Usually I look through and see if I want to change my satisfaction. Rarely do I think that some part of my job situation has changed in importance. However, at least once a year I do reset things and start over.

    While I know plenty of people see this as a pain in the sitting part of the body to go through, I appreciate it. This lets me evaluate how I feel about my job situation, and about my company. I get to think for a few minutes about whether I am truly satisfied with my position and how I am treated by this organization.

    This is a somewhat formalized process. I checked with the team that looks at this and they get anonymized rollup of data, unless someone puts in a comment and asks for a reply. Even then, they don’t send the raw data to managers, but attempt to mediate if there are issues. It’s a good idea, and really, this is what I do and recommend for others.

    At least once a year I take a serious look at my employment situation, in conjunction with how my personal life is going and think about what I like and don’t. I think about my other options, and discuss this with my wife. Is this the best way to live my life? So far it has been every year, since I think I have one of the best jobs out there. That doesn’t mean I should assume there aren’t other options or ways that I might want to change my job.

    I think you should do the same thing yourself, at least once a year. Honestly evaluate your situation, ask others about theirs, and make the best decision for you. After all, you only get one chance to go through this life. If it’s not working, plan to make a change.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Why Billing Will Be Part of Our Job

    I am old enough to remember when many large corporations implemented chargebacks. Essentially, each internal department was charged for their usage of IT systems, similar to how we are charged in the cloud. It was a mess, and individual departments had to answer for excessive charges. I don’t know that any department ever lost service, but their shared of the IT budget was certainly discussed in management meetings.

    These days more and more of us are going to move systems to the cloud, and some of those systems moved will be databases. We may not move all our systems, but we will move some, and the ongoing cost of those systems is something that we will periodically be asked to justify. In the past, we rarely dealt with billing, usually just when specifying and procuring new hardware or requesting a VM.

    Moving forward, I can see us spending time every quarter, or likely every year, analyzing the resources we are paying for and then determining if we are overspending.

    Or, if you’re proactive, perhaps you’ll start looking at costs and performance, as Brent did, and try to write better code to reduce your outlay every month by more efficiently using resources. Have you built in-efficient designs? Are you pulling back too much data with SELECT * from a table or view? Are you building code that recreates the N+1 problem?

    We’ve known for years that writing good code to interact with databases can prevent scale problems and overloaded hardware, even with large workloads. Many case studies over the years show SQL Server backing extremely large databases and busy workloads. Multi-TB databases with thousands of concurrent clients are common these days, and often we find that workloads at clients would easily be run on existing hardware with some better code.

    For some of us, the refocus on the cost of systems may give us some help in pushing developers to write better code from the beginning, learn to use efficient patterns and avoid anti-patterns, and perhaps even get more time to tune systems. However, those are skills that many of us need to improve, learning how to find code that can be improved, and what techniques to use to do so. We have lots of articles that help, as to Brent Ozar, Erik Darling, sqlSkills and others. There are lots of ways to improve your skills, and they can help improve your bottom line. If you work on them.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.

  • Other IDEs

    Most of us use SSMS (SQL Server Management Studio) to manage our SQL Server instances or to write database code. However, Microsoft does give us database options with Visual Studio, VS Code, and Azure Data Studio. It does seem as though Microsoft would prefer more of us move to ADS, but I’m not sure I’m ready, and I wonder if you are.

    I saw a list recently of some other tools, and I wonder if anyone uses these in their work. Most of these are cross platform, and support a number of different database platforms. Datagrip might be the most popular, but there are others. SQL Manager, Adminer, DBVis, SQLPro, and Flyspeed are ones I’ve heard of in the past. I’ve used DBArtisan at one company, and loved it as I could work disconnected. At the time, Query Analyzer didn’t support offline work.

    Having an IDE that you are comfortable using is important to working efficiently. Many of us become quite used to the flow of our tool, we develop habits, muscle memory, and shortcuts that work for us. We get used to where things appear on the screen and what icons to click. Changing IDEs can be very disruptive and frustrating while you get used to a new interface. I still remember going from Enterprise Manager to SSMS and it was an annoying period of a few months as I got used to SSMS.

    These days I find myself trying ADS often, but usually falling back to SSMS. I think that visually the basic HTML-like display is annoying. I have much preferred the thick client look at SSMS. It doesn’t help that some of the tools I often use don’t quite work the same in ADS. If we get a bit more of SQL Prompt in there, I might change my mind, but using the Command Palette rather than keyboard shortcuts is somewhat unfamiliar to me. What’s strange is that I like VS Code overall, and use it for PoSh, but for some reason it’s not the same with databases.

    I am glad we have choice in tooling, though I don’t know that any large set of users actually use anything more than what is installed with SQL Server. I don’t know if other tools will allow anyone to produce more, or better, code, but I do know that I have found that some tools do help. It can be worth spending a bit of time experimenting with some other IDE to see if your work improves.

    Steve Jones

    Listen to the podcast at Libsyn, Stitcher or iTunes.