Welcome to episode 324 of the Microsoft Cloud IT Pro podcast recorded live on March 6th, 2023. This is a show about Microsoft 365 and Azure from the perspective of it pros and end users where we discuss the topic or recent news and how it relates to you. Scott and Ben have been playing even more with chat G P T and they talk through some of their experience with it, sending you in the wrong direction, even for code snippets.
Then they dive into a discussion on Azure virtual machine scale sets and orchestration modes including V M S S, flex Wax. Too many places to hit record, but I think I got it Always. I need to record a bot to figure that all out for me. I have a solution. . Yeah, go ask Chad g p t how to do it. No, Chad, G B T. The answers are devolving, for a time. I, so funny story. Okay, I had somebody reach out to me the other day and they were asking a question about how easy copy works.
So I, I'm the PM for easy copy. Now I don't know how I fell into that one, but you know, congrats to me in that case I got that. Now. I have some requests, Scott. You and a bunch of other people, somebody starts like chatting me in teams and they go, Hey, does AZ copy do this? And they put a screenshot in of a command line and I'm like, where did you get that command line from? Like it has a set of options that we don't have in AZ copy.
And okay, where did you even get that command line from? So I said, can you like show me the whole screenshot cuz they sent me a screenshot of a command line. I was, but it looked like it was in like a web browser, not exactly in a terminal or, or a command window or anything like that. So I sent me a screenshot of the whole thing. So they sent me a screenshot of the wider window. It was chat G P T, giving them an answer about how to do something.
So chat G P T totally gave them what looks like 100% to valid command line. It actually gave them an example of like a J S O N output too as well. and that person read that and they tried to pump it into a command line and they tried to run it and it failed. And they were annoyed at me that it failed. They're, they're like, this is supposed to work, right? I'm like, no, not the way that you or the bot in the cloud. That's just making stuff up about tooling, right?
Who thinks it's going to? So it, it was very interesting in that I've been fairly impressed with chat G P T I think we talked about this, right? And some of the code completion and, and the things that it can do. Yeah. And kind of co-pilot and, and all that stuff.
It just straight up made up some options for a command line tool, which was kind of interesting to me that it not only made up the options, it also made up a fake output which looked like it would've been the right thing given that set of command line options if they actually existed and then, uh, had somebody coming at me like, Hey, why doesn't this work? Yeah, because we haven't built it yet. I, I don't know if it's a good idea. Should I start getting all my ideas about you know,
what should happen with my AZ copy client from chat G P T? I don't know.
Yeah. Well and this brings up a question, and this was not our topic today, but I think there's some dangers in chat G P T and relying on being in some of that stuff in that people do that they, instead of actually doing research and like going and reading the AZ copy documentation when something doesn't work or something like that, there's that danger of taking chat G P T, taking Bing chat, whatever the AI is feeding you information as this is always going to be 100% accurate versus. It is not.
, right? Instead of treating it as a helper or like with documents, treating it as a draft document, it gives you a good starting point and maybe gives you some ideas. But there is no guarantee that this is going to be 100% truth. If anything, it's a guarantee that it's probably never going to be 100% true. You're still gonna have to proof it and tweak it and fix it and evaluate it and all of that. My 2 cents. I was hoping the disinformation around things like technical tooling would take
a little bit longer to get to us, but , it's okay, here it is. So that,
that was my fun chat G P T story for for the week. So. Do you think it could snowball too, like let's say this person uses chat G P T to generate a blog post about how you do this with AC copy and then chat G P T learns from the blog post and gives it to somebody else and somebody else creates a blog post and all of a sudden the whole snowball effect of the fact that open AI chat G P T is learning from information published on the internet,
but now it's starting to generate the information start on the internet that you could create like this snowball effect of it's learning its own information that it's generating and either it gets really siloed because it's only learning from itself or disinformation can increase exponentially because it's learning wrong information that it's selfish publishing. I don't know, interesting thought exercises around how does this
change evolve over time? It's. Got, so to your point about blog posts, I've definitely seen blog posts out there where folks are getting called out. I've also, I, I don't know if you've seen this, I'm a fairly big Reddit user, Uhhuh . I have a habit of like reading and checking in on a bunch of Reddits in the morning or afternoon or evening, things like that.
And across some of the more technical ones like our CIS admin, I hang out in some of the Microsoft ones as well, like our Azure, things like that. People are starting to respond to questions cuz quite often like those technical forums end up filling up with technical questions with answers from E chat G P T and they're running into the same issue that I was running into with this person who was ping me about easy copy
and it was just blatantly wrong information. I I saw a couple, I meant to send it to you , maybe I'll, I'll be able to dig it up again. I saw one the other day with somebody asking a question about the graph and the way the graph works and and the rest response from it and you know, it looked like hey here's this great well thought out answer right for your question. And it turns out that it was a well thought out answer.
It was just completely wrong cuz it was using a bunch of stuff that again, doesn't exist or, and or doesn't work in the way that it was presented just in, in the raw text that came back kind of thing. So uh, yeah it's gonna be interesting over time. I'm not too worried about somebody taking away my job just yet. Yeah, in a couple years I think it'll definitely be weird. It'll as it learns.
So I had an interesting one too since we're on the chat g PT topic, have you taken any of those answers or documents, whatever written by chat G P T and actually asked chat G P t if it wrote that . It. I haven't played around with it a whole bunch. I'm not, I'm not one of these people out here trying to trick what is it like bing into, you know, it's like AI names Sydnee or or whatever it is. So. I was curious cuz the topic came up.
I think my wife and I were talking about it more related to school and teachers getting documents that kids wrote that came from chat G P T and how do you start combating that? And I have not played with this a ton and I need to go find some documents that weren't written by chat G P T but I took some things that I've been playing around with and had chat g p t write for me and all of that and granted I'm pasting it back into chat G P T as the same user that created it.
But chat G P T was telling me if it was something that was written by AI or if it was not written by ai, it was fascinating like can you actually use chat G P T to figure out if something was written by chat G P t? Because how much does a log, how much is it able to recognize its own information something else to play with. There's actually tooling out there already where you can go and you can do things like paste in a snippet of text and it will tell you if an AI wrote that or not.
Be it chat g p t g p t three, one of the other kind of various language models that that exists out there and is is kind of super prevalent today. Same thing exists for art, you know, all the people doing things from stable diffusion or or mid journey, things like that that, so there are websites that you can go test them in. I'll put some articles in the show notes about kind of like where things might fall down in this area that you're talking about.
Like hey let's go talk to the bot about the bot and see what it does and how it responds to that . Yes I think it gives you an idea like if you read some of these articles like I'm always kind of intrigued by the how do theis think about themselves thing, right? Where people can kind of trick an AI to going here's my internal code name, here's the parameters that I'm designed around, here's what I can or can't tell you. All those kinds of things.
It's an interesting form of hacking cuz it's all linguistics and just trying to trick a bot into giving something back over the other side. So. Well and at the end of the day, thinking even from a security standpoint like that security, security vulnerabilities, right? Finding the loopholes in the code that causes the code to override itself, that allows you to inject certain things into the code, all of that, this is truly just another form of hacking code, right?
The AI on the backend is code so. Very much so yeah, that's what can we. Inject into the code to hack the bots. But it is, it's fascinating. I've read a few of those, I haven't looked at that a ton yet because I'm also not in that vein of trying to make the bot angry at me or see how upset I can get a bot at me. not yet. That's not your life stream. No. That it's not my live stream. I have other things to focus on. Do you feel overwhelmed by trying to manage your Office 365 environment?
Are you facing unexpected issues that disrupt your company's productivity? Intelligent is here to help much like you take your car to the mechanic that has specialized knowledge on how to best keep your car running intelligent helps you with your Microsoft cloud environment because that's their expertise. Intelligent keeps up with the latest updates in the Microsoft cloud to help keep your business running smoothly and ahead of the curve.
Whether you are a small organization with just a few users up to an organization of several thousand employees they want to partner with you to implement and administer your Microsoft cloud technology, visit them at intelligent.com/podcast. That's I NT E L L I G I N k.com/podcast For more information or to schedule a 30 minute call to get started with them today. Remember intelligent focuses on the Microsoft cloud so you can focus on your business.
You had a topic for us today aside from chat G P T and bots and how we can trick them and how they are already showing their blatantly wrong flaws. always love the the bots thing. We can always come back and revisit them later. I am sure this will be an ongoing discussion about bots as they continue to grow
and gain popularity. I. Thought it would be kind of fun today to revisit something that we talked about in the past briefly, but I've been playing around a little bit more and it's actually been pretty nifty. So today I want to talk about VM scale sets and orchestration modes. So I you're familiar with scale sets? Yep. Yeah and we'll leave it at that. Did you want me to expand on scale sets and being able to expand contract expand and contract grow shrink down your compute.
So essentially your have these VMs put 'em all in a scale set as demand grows or lessons you can spin up VMs, scale down VMs, shut them off to account for the extra compute that may be required to run set applications, set website, whatever it is running on these VMs in the scale set. Is that what you were looking for for me? Did I meet your expectations though? That's what I was looking for. You. You know what I'd like you to do the, the, the little intro thing and ground everybody in it.
I think you might fall into the world where you think of skill sets the way I do in that they're used for the same type of thing. So within that scale unit that scale in kind of scale out and and elasticity that comes there, I tend to think about those maybe like in the traditional layered sense, right? I have a three layered web application with you know, a front end, a middle tier and then like a backend data tier and each of those tiers is its own thing.
So all my web servers are always web servers and they're all the same type of web server. Like great, they're all Linux, they all run engine X as a proxy on the front end and boom, they all go out. I have a middleware layer that you know, runs my tooling, maybe that exposes my rest APIs or things and it could even be like a PA service, maybe like a APM or something like that. And then I got my backend with my database, right?
I stand up like by my SQL database and oh I want to have two servers for some resiliency but they're still both my SQL servers so they're all the same. So in that world of kind of multi-tiered application where I'm thinking about scaling between these tiers, you know that might be like three scale sets, right? If it's I as top to bottom where I have one scale set from my web servers, one scale set for my middleware and one scale set for my database.
And one of the things that happens when you use scale sets is you start to get more control over things like update domains and fault domains and where your servers live and then then that kind of scale in scale out component that happens on top of it and says hey let's make all these things the same or make them uniform, right? There's gonna be some uniformity to everything that that goes into this layer, right?
And there was this concept that was introduced with scale sets called flexible orchestration or VMSs flex which says well what if everything's not uniform? What if I want the benefits of things like controlling the AZs that my VMs fall into and I, I want to have that same kind of spread between update domains and fault domains maybe for like a single instance VM alongside these 10 other VMs that are running all the time into my web tier, right?
Like maybe I have like a log sync or like a sidecar thing that's like, it's almost like everything else. Like it totally supports the system but it's not actually like everything else, it's not uniform. It needs to be a little more flexible along the way.
So VMSs flex, it gives you this ability to say hey I'm gonna create a VM scale set and it's gonna be running in flexible orchestration mode and in flexible orchestration mode I can still have my uniform servers like I can have my 10 servers that sit all out on the front and they're all the same thing and they're all spun up off the same arm template, same set of extensions, you know they run the same bootstrapping code, all that kind of stuff.
But then I can can bring in that 11 like single instance server just as its own thing, just as a one-off. I can say like oh you're not a uniform server but I want you to be part of the same skill set so you can scale in and scale out with the skill set and you know, you effectively become part of like the management plan and the operational model for that skillset set.
But you can be a little bit different and maybe I wanna bring in something else that's a little bit different later into that same skill set cuz again I want it to fall into the same kind of management mentality of uh, availability zones, update domains, fault domains, all that kind of thing and have it trickle down to me.
So it lets you have this world where you can start to mix and match things within a scale set and you don't have to be so rigid or have that uniformity, you can kind of have uniformity plus flexibility, which is kind of interesting once you start to dig into it a little bit. And I think some of the options that it opens up for you cuz now I don't need to necessarily think about like my three tier application as three scale sets.
I could maybe think about it as one big scale set and like do I really care about scale in scale out at these various layers or was I looking for some of the operational and management plane niceties that come along with things like fault domains and update domains and AZ spread within my scale set or you know, do I want to continue to think about it as like 1, 2, 3 and you can kind of have your cake and eat it too in this world, which is pretty interesting.
I'm trying to wrap my head like around the scenario in the case here. So in this scenario you're not necessarily bringing in that additional server, that flexible server to necessarily scale out being able to handle more web traffic or being able to handle more database requests. You're bringing it in for all of the other types of features, the availability zones, fault tolerance, that type of stuff that you inherently get with skillsets.
Things like I might say like use some of the add-ons for like proximity placement group functionality within a skillset set. So I want this single instance thing over here to you know, adhere to my proximity placement group or that PPG and bring it through that way you can start to do things like that. Or the other interesting thing is in flexible orchestration mode you can mix and match OSS as well.
So say I run like my entire web tier thing, like I said it's all Linux based and it does engine X but I have one thing over here and it's legacy windows and it requires, you know, whatever. So it's a Windows server but it still sits in my web tier and I want it to kind of adhere to all those other management plane operations.
So now I can mix that kind of one Windows web server in line along with all my Linux web servers and you know, take advantage of the same proximity placement groups, the same disk types, all those kinds of things, right? Like whatever it happens to be. It's a weird kind of concept I think, but it breaks down some of that rigidity that just comes with scale sets that not everybody always needs. Like you don't need the management overhead all the time of multiple scale sets.
Like you might really be able to get by with just one and then kind of a, a minimum set of things within there. So like let's take the example of my web tier where maybe at any given time I need two web servers minimum and I need one sidecar over here. So great I run my two web servers, my two Linux web servers and my Windows sidecar. Those all go into a flexible orchestration skillset. Now what I can do is when I create those Linux servers that are kind of
two instances, they're the same thing, right? They're, they're my cattle, I can make those uniform servers within a flexible skill set. So uniformity being like when I scale out, the next thing that's gonna come up is gonna come from this uniform thing. So now I do a ScaleOut event and I say I want to go from three to four
instances. It's not gonna, the scale set's not gonna create a new window server for me, it's gonna go back to the uniform configuration, it's gonna create me a third instance of that Linux thing and then if I scale it out even further it's gonna create me a fourth one and and a fifth and a sixth and a seventh and eighth up to like got it whatever, you know my scale rules are around that.
And then same thing when I scale down I can basically put a resource lock on the flexible server so we can never be deleted. Like let me put a a resource lock on that and it's disks and it's nicks and things like that. And then as scaling happens, my sidecar always stays there, it's doing what it needs to do and then the rest of my servers can continue to scale in and scale out around it. Let's say and that scenario. So that makes sense.
Like in theory that could almost be, I'm not gonna say this is why you would do it from a security perspective, but that could be like a jump box if you need some type of management box that you use to remote into all of those Linux boxes, that could be kind of the standalone box that's a part of the scale set used to manage all these web front ends but not really a part of the scales, not a part of that uniform front end of the scale set
I guess would be a way to say it. So can you put rules in place then let, let's say you need additional management boxes per every four web front ends or per every six web front ends, you wanna add one of these one-off servers.
Can you get to that point where you can actually scale out different types of servers within the same scale set or are you kinda limited to you set that standard machine, this is what we scale and scale out on and then these one-off boxes they just are there but there's no real scaling I guess around those one-off boxes? Yeah, so it's the ladder, there's no real scaling around those boxes you end up doing. I think some like the functionality you're describing would be pretty cool,
right? For every n of these spin up one of these and it's kind of like a, a uniform at a second layer. So I've, I've got uniformity for these up here and then, but I need less of these but I still need uniformity and I, I want them to live there. So it doesn't quite work that way today. Like one-offs are truly one-offs and you do have to do some, I think some things that aren't immediately apparent. So like I, I mentioned on like a scale in scale outen, right?
So I have a minimum of three servers in my scale set at any time. It's those two Linux servers and it's my one window server over here when I scale from three to four and okay great it added a new uniform server in and now I go back from four to three. I don't want my my sidecar to be deleted, right? That thing needs to stay around. But the scale set really only knows that it's a flexible thing. It doesn't know it's not supposed to delete it cuz it's part of a scale set,
right? It should be disposable. So that's why you have to do things like the resource locks on top of it because you actually have to prevent the management plane from coming in and and kind of like railroading you. So you can say like okay great I'm gonna lock this VM and because of the resource lock on this vm, well the only thing that can be deleted now is the uniform thing over here. Like in that case of where I'm going from four four to three.
So you don't define this is my uniform, these are are my uniform machines, this is my one-off machine. At that scale set level you have to manage that then with the resource locks versus the. You do define it at skill set level because when you're adding a new VM to a skill set and that skillset started out as a flexible skill set, the type of VM that you add, it can be a uniform VM or it can be a flexible vm. Got it.
So you are very IT specifically associating that VM with a skillset set cuz a scale set is still its own resource type, right? It's got its own set of rules right and things like that. But by being a flexible scale set, you're getting this additional functionality. So something like just a straight uniform skill set. You don't worry about things like specifying which zone your
VMs end up in, right? You don't care if my VMs in zone one, zone two or zone three cuz it's just gonna scale and round robin in the whole thing. But for a single instance machine that's part of that skill skillset, you might actually care like hey does this go into zone one, zone two or zone three? So for that one-off managed instance you get that flexibility like you can totally go and just assign that to a specific availability zone. You can also assign to a specific fault domain if you want
to. So that's all out there and available to you. Update domains are all handled by fault domains now so you really don't need to to worry about that too much. And then platform maintenance and and other things work the the same kind of way. It's a weird model. I don't think it's, it's not for everything out there for sure. It's not something where you go like oh every scale set I have now would now be better suited by going from a uniform skill set to a flexible skill set.
But it's another tool in the toolbox, right, to let you bring it together in different ways. Got it. So can you add multiple flexible servers to a flexible skill skillset? Yes. So you mentioned web servers management now we can go add management and I can add a sequel server. I can add like four or five of those flexible ones in with these four uniform. Yep. Totally. Interesting. I would say this is what I'm adding to my list. I'm not gonna say that Scott, I'm not adding this to my list.
So it also gives you some additional options like when you think about limits. So just think about like things like availability, set limits and things like that. So flexible orchestration, uniform orchestration, like they both give you the ability to deploy across AZs, all that kind of stuff. When it comes to fault domain availability guarantees when you're doing VMSs flex you get up to a thousand instances that can be spread across three fault domains in the region.
But if you're doing uniform you can only do a hundred instances and if you're doing just regular availability sets, 200 instances, uh, things like placement groups, like uniform orchestration supports all that, you're good to go. Flexible orchestration's gonna have some limitation for you there. Update domains might play a little bit differently, things like that.
So there there's kind of slight differences between all of them between doing just a straight availability set which could in and of itself be different instance types doing virtual machine scale sets that are 100% uniform across the board or doing VMSs flex which could be a mix of uniform and flexible deployments. Got it.
And we will put links to all of these in the show notes as well so you can go dig through all these different types cuz I don't remember all those and you just told me like 30 seconds ago . I never remember them either. Like you only need to know 'em for the test, right, right.
You could get me going on a side topic there on my beef with tests and that very fact that you only have to memorize stuff for the tests but yes, yes all the documentation will be in the links so you can go look it up, you don't have to memorize it unless you're taking a test. Anything else with V M S S flex that people should know about if they're looking to get going with it, stand it up, test tested out, et cetera, et cetera? No, I think this is about it.
It's a little confusing to describe so I'll give everybody that like it's worth getting hands-on with and at least going through the deployment experience. So now it becomes more apparent when you use something like VM SS flex as to why some options have been added to virtual machines over time. Do you remember, was it, it's, it's been a while now.
I can't remember if it was last year or the year before, but they added options on the arm side for like a VM to basically give you like bullion values for when this VM is deleted, what should I do with the nick and what should I do with the disc? Oh. Yes, yes. Like I do remember those. Yeah. Yeah. So when I delete this VM should arm delete the disk and the nick and you know by itself that's kind of a weird option. Like you think about it maybe as like a little bit of like my backup strategy
kind of thing. Like oh crap Aaron, you know, delete operation takes down the vm, I can get stuff back. It makes much more sense in the world of virtual machine scale sets and VMSs flex because now by default those options are enabled on a flexible VM because what if you didn't know that you had to put a resource lock on it to
prevent that thing from going away? ? Uh, well it could very well turn out that an autoscale operation deleted your VM but your disc and your nickel to be there so you're basically like up and running way quicker than you would be in in another scenario. So some of those things that you're seeing I think in normal arm or normal Azure are actually kind of bleeding in or driven by some of the other functionality in things like, like scale sets.
One other thing when it comes to like flexibility within here, so you can do other interesting things like what if that sidecar thing was something that you wanted to be in the same kind of resiliency model, fault domains, update domains, availability zones, all that kind of stuff. Yep. But it didn't need to be on all the time. So I just wanna like turn it on and turn it off. Okay.
Now you can view that too and the scale set, like things like auto scale operations are smart enough to know like, hey don't touch VMs that are off, like just leave this thing alone and, and don't do anything with it. So you do get some flexibility that way as well. Got. It. Nice. So that, yeah cuz it's labeled as that flexible one so it doesn't treat it as a something else.
It would be nice to see them update the settings and maybe it'll come eventually where you don't have to use resource locks because you would think it knows that it's a flexible vm, that it shouldn't just delete it without having to go in and put resource locks on it. It's almost like, uh, that functionality you described was kind of two layers of uniformity would be pretty interesting like that that might get you there in a lot of these scenarios.
Yeah, for sure. Huh. Very intriguing around V M S Flex, V M S S, flex. V M S S Flex. Yeah, it just rolls right off the tongue. Yes, absolutely. All these acronyms, virtual machine skill sets flex that I don't, that doesn't even work. Like skill set. Yeah. Anyways, we'll stick with VM SS flex. There. You go. Okay. Done. And with that Scott, it's a Monday and we should probably start working maybe potentially Yeah. It's early in the morning Monday. We definitely should get back to.
It or get more coffee. I, I or. A little bit of both. Need more coffee as well? I'm, I'm out there. You're out. I still have half a cup left but now it's cold because we were talking and I wasn't drinking my coffee but it's still coffee and it's still caffeine regardless of the. Temperature. Such is life. All good stuff. Well I will let you go get coffee and we will chat again next week. Thanks Ben. If you enjoyed the podcast, go leave us a five star rating in iTunes.
It helps to get the word out so more IT pros can learn about Office 365 and Azure. If you have any questions you want us to address on the show or feedback about the show, feel free to reach out via our website, Twitter, or Facebook. Thanks again for listening and have a great day.