Going Cloud Native

I am constantly surprised at the migration of workloads to the cloud. It seems that many of the customers and clients that I speak with are moving some of their assets to the cloud. Some are moving the majority of their systems, and they are pushing to do this sooner than later, including database assets.

I ran across an article that noted that while many companies love the on-demand provisioning of cloud resources, they don’t always get improvement in their software performance. In fact, quite a few might experience worse performance, though often not horribly worse. Instead, what they often get is a bit more unpredictable performance, and sometimes a bigger bill, which makes perfect sense. After all, the cloud is really just someone else’s computer, and the one you’re using might have other people doing the same thing.

To truly embrace the cloud and get the power of the cloud, you do need to consider being cloud-native, which is often a change in how your software is architected. It is also a change in your entire software lifecycle, meaning not just buying DevOps tools or renaming a team, but also embracing the entire way that DevOps works. Not just fast releases, but experimentation, learning, adapting,  testing, and changing how you build and release software. This is also changing how you manage the teams that build software.

If you think this is just for the Netflixes and Spotifys of the world, that’s not true. Stripe and Capital One are financial companies completely in the cloud. There are plenty of other examples as well, and the successful ones, in all industries, are embracing a new way of building and operating software. Docusign has had a lot of success, and quite a bit with a lift-and-shift to IaaS resources as they continue to build and rebuild their software to embrace the cloud and adopt more PaaS services. They didn’t move systems and expect everything to just get better. They started a journey that they continue to travel every week. The move is a journey, not a quick move, another item that the article points out and many managers forget.

That being said, not everyone is moving their systems to the cloud. Even organizations that adopt some cloud services, implementing Salesforce as a CRM, might continue to run plenty of systems on-premises. Lots of companies use the cloud for IaaS, but with the architectures and software that used to run in their own data centers. They just moved their  VMs.

The cloud can be successful in many ways, but you need to understand how you adopt the technology, what capabilities can help, and how limitations can hinder your software. There is no magic bullet, but there are a lot of opportunities if your organization takes advantage of them.

Steve Jones

Listen to the podcast at Libsyn, Stitcher, Spotify, or iTunes.

Posted in Editorial | Tagged , | Comments Off on Going Cloud Native

Daily Coping 20 Oct 2021

I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

Today’s tip is to thank yourself for achieving things you often take for granted.

I think I get a lot done, and I expect that I will do so. I also tend to just assume these are the things I need to do because I’m responsible, accountable, etc. for these tasks.

One of the things that I enjoy, but I also know that makes a difference, is I cook dinner. My wife doesn’t like to cook. My son will, but he’d rather not have the burden of deciding on a dish and shopping. If I do those things, he doesn’t mind.

It’s relaxing for me when I have time, but stressful when I’m busy. However, I also know everyone appreciates it rather than having the throw something together for themselves. It’s a shared chore, not assigned to anyone, but one that I usually take on.

I somewhat take for granted it’s my job, but I have started to internally recognize that it’s a good thing and I can thank myself.

Posted in Blog | Tagged , , | Comments Off on Daily Coping 20 Oct 2021

Daily Coping 19 Oct 2021

I started to add a daily coping tip to the SQLServerCentral newsletter and to the Community Circle, which is helping me deal with the issues in the world. I’m adding my responses for each day here. All my coping tips are under this tag.

Today’s tip is to make progress on a project or task you’ve been avoiding.

I have a lot of projects. Work, home, hobbies, and more. I rarely have a day when I don’t feel there is something I should be doing.

I am also good at avoiding some projects. For various reasons, I will delay certain things over and over. During the lockdown, I was a bit better at tackling some long overdue projects, but not all of them.

This year, I’d been putting off cutting the grass in the fields at the ranch. I regularly cut the green grass by the house, but the larger pastures need mowing once a year to knock down yucca plants and clean out some of the weeds that grow. When I do this once a year, we end up with healthier grasses the following year.

However, this is a project. It’s about 30-40 hours of mowing on the tractor. I kept delaying it, mostly because the tractor is behind two gates, and it’s a pain to get out. It also has to go back every day or two because it’s used to load hay into wagons. As a result, my plan to get the pasture mowed this fall was getting delayed. Finally I started just before my trip to Europe. I got the tractor out, attached the mower, and starting cutting. I had timed this so I had an afternoon and the next morning before the tractor was needed for hay. I spent about 5-6 hours across two days getting going on this project.

I got back from Europe and decided this was a relatively easy project to work on this past Sunday. 3 more hours, and things are looking better.

20211002_160450

Now I need to just keep going across the next few weeks, doing an hour or two a few days a week and hope to get done before October ends.

Posted in Blog | Tagged , , | Comments Off on Daily Coping 19 Oct 2021

STRING_SPLIT Basics–#SQLNewBlogger

Another post for me that is simple and hopefully serves as an example for people trying to get blogging as #SQLNewBloggers.

I saw a post on using STRING_SPLIT() with cross apply recently, and as I was reading, I realized that I hadn’t adopted this very often in code. Mostly it’s not something I need to deal with, but recently my wife did give me some data and asked to reformat it, and I used STRING_SPLIT(). I thought it was a nice easy problem, so I decided to write about it.

Conflated Data

The dataset that she gave me was formatted something like this:

2021-09-17 15_32_22-string_split_experiemnt.sql - WAY0UTWESTHP_SQL2019.sandbox (WAY0UTWESTHP_way0u (

What she wanted was a report that provided data more like this:

2021-09-17 15_37_20-string_split_experiemnt.sql - WAY0UTWESTHP_SQL2019.sandbox (WAY0UTWESTHP_way0u (

This was more complex in the past, and hard in T-SQL as string manipulation isn’t great. However, STRING_SPLIT makes this easier. Not great, but easier.

STRING_SPLIT

While STRING_SPLIT is a function, it is a table-valued function, meaning that it is used as the source for a data set. Rather than being in the SELECT column list, we would use this in the FROM clause as another table. Or anyplace a table can be used.

The basics of this would be:

SELECT ss.value
  FROM dbo.ClassSchedule AS cs
   CROSS APPLY STRING_SPLIT(students, ',') AS ss

Using this code, I would get a list of students.

2021-10-18 08_58_00-SQLQuery2.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (70))_ - Microsoft SQL Server

The STRING_SPLIT returns this single column, value, which is the string passed in split by the separator. I could see this more simply with this code:

SELECT * 
  FROM STRING_SPLIT('alpha,beta,delta,gamma',',') AS ss

This returns these items:

2021-10-18 09_06_24-SQLQuery2.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (70))_ - Microsoft SQL Server

A few more examples:

2021-10-18 09_07_23-SQLQuery2.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (70))_ - Microsoft SQL Server

2021-10-18 09_08_21-SQLQuery2.sql - ARISTOTLE.sandbox (ARISTOTLE_Steve (70))_ - Microsoft SQL Server

The important thing to note here is that this is a simple substring based on the separator, with no other processing. Spaces or any other character outside the separator is left in the result.

There also is no ordering of the results. While this appears to be in the same order in these simple examples, this is not guaranteed, meaning the ordering of the substrings might not match the original order.

This is a good way to easily split up data that you have stuffed into a large character field, but it has limitations, so use it carefully.

SQLNewBlogger

This post took me about 15 minutes to write after spending 5 minutes setting up some test data. I was using string_split to clean up some data and decided to make a few notes, then built a new table with some strings in it to help me explain how it works.

A good example of a post you could write, perhaps noting when this was released or comparing this to a way of splitting these strings with a more complex T-SQL query.

Posted in Blog | Tagged , , | 1 Comment