Coding Blocks - Site Reliability Engineering – Evolution of Automation

Episode Date: June 20, 2022

We explore the evolution of automation as we continue studying Google's Site Reliability Engineering, while Michael, ah, forget it, Joe almost said it correctly, and Allen fell for it....

Transcript
Discussion (0)
Starting point is 00:00:00 you're listening to oh wait no i gotta start over with like a bunch of like pizzazz and like wow and you know hey you're listening to coding blocks 187 because you know i can't can't do it the same you know i gotta like trip it up you know spice it up right i think you know thank you thank you for recognizing so uh yep this is coding blocks that's our new intro. Yep, this is Coding Blocks. Here we are. No, this is 187. Subscribe on iTunes, Spotify, and forget it.
Starting point is 00:00:35 Wherever you can. Hey, and while you're forgetting it, go ahead and visit us at codingblocks.net. Forget it. Well. If you haven't unsubscribed and left yet uh you can find us on web5 at codingblocks.net uh follow us on twitter at codingblocks and uh yeah we got a bunch of social uh dillies at the top of the page i'm joe zach i'm michael outlaw And I'm Alan Underwood. All right. So what are we talking about here?
Starting point is 00:01:10 So we are talking about in the book, site reliability engineering. Oh, I said it almost right. Almost. The book we've been talking about for a while. We're talking about chapter seven tonight, the evolution of automation at Google. And we skipped a chapter earlier in the book that was kind of focused on Google,
Starting point is 00:01:25 but we decided to go ahead with this one because we thought it had a lot of just kind of good general stuff about automation and some interesting case studies, which, you know, I'm typically lukewarm on, but I liked here. So we'll see how far we get tonight, but I'm pumped.
Starting point is 00:01:42 I like it. Yep. So from iTunes, we'd like to say thank you to everybody who left it. Yep. So from iTunes, we'd like to say thank you to everybody who left us a review. So from iTunes, we have a sobering. Pushbendy? Pushbend, I would think. Oh, that's probably better.
Starting point is 00:02:01 I like the way you said it better. I'm going to pretend I said it that way. Membrane, Angry Little Hamster, and John Smith's 1982. Like M&M Brain. I do too. Oh, is it supposed to be? Yeah, okay. M&M Brain.
Starting point is 00:02:16 I was thinking like Membrane, but like where there'd be like a silent M in the beginning of the word or something, you know, the way he, with the way he spelled it. Yeah. That's what, that's what made me think of it. But yeah, M and M brain that works too. Um, so say that name again, Alan. Rupesh. Rupesh. Bindi. Okay. So Rupesh asked, uh, along with his, his comment, like, how do you find the time along with your day jobs to, and hobbies to, to keep doing this and everything? I mean, we do this to study. I, at least that's the way I kind of view part of it. You know, like, I mean, this, this definitely over the years has been, uh, a great vehicle to vehicle to force me to continue learning on topics that I might have not bothered to dive into. I will say, so for me, I still get like a fair bit of just kind of couch coding time.
Starting point is 00:03:17 And my trick there is to just code on things that I'm excited about and that I'm having fun with. And as soon as it stops being fun, I quit. That's not a great way to get projects done but it is a nice way to just enjoy life and also learn some things along at the same time. So I am fond of doing fun projects and doing it when I feel like it.
Starting point is 00:03:36 But what does that have to do with CodingBox? Because he was asking how we find time to do CodingBox. Is CodingBox fun? For some reason I read this is programming along with your day job with hobbies yeah no so yeah i'm gonna just make up another question and answer that one randomly yeah well along those lines i just let these guys study it and then i just show up for the show right like that's that's
Starting point is 00:04:02 and i just like to call out Joe on the things he says. Yeah, no, I mean, I'd say the safety outlaw said though, I mean, for real, this is, this is kind of the way that, that we study, but you know, ironically, a lot of times, you know, we'll pick subjects that we feel will positively impact the things that we're doing in our day to days too. Right. So, so it's a good way for us to learn and share at the same time. And we also get feedback, right? Like we've had amazing people like, um, Merle who will hit us up and be like, Hey, you know,
Starting point is 00:04:36 here's some additional context to what you're talking about. So, you know, we study for this and then we share, and then we also get killer feedback from our Slack group, from people just emailing us or, or adding us somewhere like it. So, yeah, I mean, and that's the other thing.
Starting point is 00:04:54 And I know that we say it when we're, when we're begging for reviews and all that stuff, but it truly is like, I know for me, anytime I get something that's like, Hey man, you guys don't even realize, but you've, you've changed my life. Right, right? Or you've made things so much better or I'm happier with what I'm doing now.
Starting point is 00:05:11 Like that kind of stuff is so motivational that it makes it to where it's exciting. Because there are times like, I mean, we could all attest to it. There are times like, man, we got to crank out another episode. And man, that means we got to study and we got to get show notes done. And there are just times when you're busy with work and everything. You're like, I don't want to do this, man. Like I really don't want to do this.
Starting point is 00:05:33 But when you get- I don't feel like that ever, Joe, do you? Like it's just Alan, right? You're just going to leave me hanging? That's good. So I will say, you know, like what I've gotten this question before, my first answer is typically having good partners. Because if I was doing this by myself, just like you said, with the couch programming, I quit as soon as it got tough or, you know, the first time I got tired, I just would have backed away.
Starting point is 00:05:56 But when you've got other people that you're kind of involved with, it makes it easier to kind of, you know, show up and do a poor job, which is what I usually do. You know, the other thing that does help too, and it's funny coming from me, because if you ever saw my inbox, I know we've talked about inbox zero on here, which I think is insanity. Um, like my inbox is a search box. It's got, you know, hundreds of thousands of emails in it. Having a schedule like we do, like we typically have a night that we try and record on knowing that that's coming up definitely helps, right?
Starting point is 00:06:29 Like it's like knowing that you have a test coming in and you've got to prep for it. Remember in the first year though, when we didn't, Oh man, Hey, can we get together tonight? Nah,
Starting point is 00:06:38 man, I got things to do tonight. What about tomorrow night? Nah, I got things to do tomorrow night too. One month. We might only get an episode out. Oh yeah. Oh yeah yeah there were times when it'd be like six weeks or whatever yeah next month we're like here's three episodes maybe we should slide back to that that was kind
Starting point is 00:06:55 of good i wasn't going no i wasn't like you know going down memory lane trying to encourage bad habits again. We have moved on from that for a good reason. I like bad habits. Yeah, me too. But I think there have definitely been some – I think that the community and you guys, there have definitely been some books that, for example, or topics that I might not have found or gone after on my own. But because either one of you or gone after on my own, but because you know,
Starting point is 00:07:26 either one of you or somebody in the community said like, Hey, what about this? And I'm like, Oh yeah. Or even topics that we, we do already, you know,
Starting point is 00:07:36 like user, like we think we know. And then somebody would be like, Hey, have you ever thought about doing an episode on this? And then like, we'll do a deep dive on that thing. And it'd be like, Oh, okay, that's why that was like that.
Starting point is 00:07:48 I mean, this has been a way to, I view it as a way to stay engaged in my career and to continue learning and just kind of advancing myself. Does that make sense? To keep myself relevant in this ever-changing world of technology. Why did I not just become a plumber where everything stays the same? Right. And you make a good amount of money doing it too.
Starting point is 00:08:21 Yeah, right? There's so many other jobs out there that you make seriously good money and the things don't change you know but uh i don't think you've talked me into it so we're gonna do an episode every six weeks and i'm gonna be a plumber we're good that's it real estate you know i mean like that it's it's the same you're just selling stuff like it's but yeah i decided to change i decided to go for this one so yeah i mean that so i mean i don't know if i if i if we answered rupesh's question but uh yeah i mean this is part of the i kind of view it as like part of the job you know so yeah so with that um this isn't a survey, but we ask, why do we automate things? Right, yeah.
Starting point is 00:09:07 So diving into Chapter 7, all about the evolution of automation in Google. They start off just by kind of looking at basically the reasons why you would automate things. And these are all kind of obvious things, but it's kind of nice to just split it up a little bit to make sure we're all kind of on the same page. The first one is kind of on the same page the first one is kind of obviously uh it's consistency so people make mistakes you know even on simple tasks maybe even especially on simple tasks especially if you have to do that simple task a million times like how many times you uh brush your teeth and realize you're using the wrong end of the brush you know something i do i don't, once a month or so. For real? No.
Starting point is 00:09:48 Wait, I don't know that you're lying about that. I like that Joe trolled Alan and Alan totally fell for it. And he's still not convinced. Well, what's it say about being that it's believable that I could have done it? Well, I was thinking like a better example is like um how many times have you just like misspelled common words right like i mean oh yeah that that's that's a simple simple task you know like you're typing in an email with just you know the language you speak every day and for some of us it might be the only language we know and we still like mess it up yeah i try to not even type variables at all copy paste them
Starting point is 00:10:26 and like outlaw bust me today on like having somehow dropped a letter on a word this is crazy yeah you know you know what's insane that they brought up here and i actually remember this from from working at a college campus is they brought up like school campuses and whatnot how they typically have people that manually do a bunch of steps all the time, right? Like a new person comes in, uh, I need you to set up this account.
Starting point is 00:10:51 I need you to log into this. I need you to do that. I need you to install this, right? It's a bunch of manual things and somebody is going to miss something along the way, right? There's just too many things.
Starting point is 00:11:01 And so the consistency really is key. I think more than even some of the other ones that come up here. Yeah. You know, there was, um, it reminds me of a story. So, um, one time I was working on the company and had filled out the, uh, the paperwork, you know, when you start the company and one of the things you had to fill out was the, the match for, um, for 401k or not the match, sorry, but how much of your, your paychecks you want to put into 401k, which is like a uh american thing for basically retirement savings and i typed in a number and
Starting point is 00:11:32 got my first check and it was wrong i was like that's like doing the math so i contacted hr and i put this number in it looks like this number is coming out and they're like oh yeah i must have typed it wrong like Like, wait, what? Yeah, right. I typed it into the form. What do you mean you typed it? They're like, oh, no, you typed stuff into the form. Then I get an email with everything you typed.
Starting point is 00:11:53 And then I go type it into all these other systems. And so I must have missed somewhere. And that was just amazing to me that there was someone actually going through for doing that and basically doing data entry and HR and like a modern day company, you know, but. And you know, the insane part is that was probably several years ago.
Starting point is 00:12:11 Um, I remember just a handful of years ago through a very popular HR company that was out there that did the same thing. You'd type in stuff and behind the scenes, they had a bunch of people going into other systems and entering it into the other system. So they were selling a platform that they integrated with a bunch of other things.
Starting point is 00:12:30 The reality was you'd fill stuff out through a nice front end and then they had a bunch of people going out and logging into the other systems, setting things up. And so you'd have mistakes all the time. I bet we're talking about the same company. Oh really? Yeah. They had a really nice website.
Starting point is 00:12:44 I was like, no, this is the best hr experience i've ever had and then beautiful i can't was it called uh does have a z or something are you gonna you're gonna throw i wasn't gonna throw them under but i remember i had a similar thing though because and i remember i remember too uh like it did but not not to beat up on them, though, specifically. But I mean, I remember I ran into a similar thing related to setting up your insurance options. And part of the reason that they said that they did have it as a person entering it in is because all these different systems that they were, quote, integrating with, not all of the options were the same or supported across. And so that's why they didn't have anything automated on their end. But I don't know, like that seems whatever.
Starting point is 00:13:37 I'm not going to like, you know, judge your business. definitely if there's anything that we've learned through this, this journey on coding boxes, that like whatever you can do to do things in a repeatable way, the better you are. Right. Especially like, like, you know, as our CICD type conversations,
Starting point is 00:13:56 which is where this like automation kind of comes from. And specifically the consistency, right. Is coming from is like the more things that you can do in a repeatable fashion, then, you can do in a repeatable fashion, then, you know, in repeatable, having a person type something in is not something repeatable. It's a task. It's, it could even be toil. It might not be, but it's definitely not, it should not be considered repeatable, even if they do the same thing three times in a row.
Starting point is 00:14:23 Yep. So I think anyone who's written software that's been used by people know that consistency is a you know a nice dream um now the next one is not as obvious at least it wasn't to me the reason that google says they automate things is because they're building a platform and automation begets automation, which means basically you can extend and grow and fix bugs in and combine automated tasks into bigger and bigger automated tasks. And so it's kind of like the idea of like almost like starting a garden or something, you know, the idea being that the work that you do to automate things pays dividends. Every time you run that automation or the automation gets run, you're saving time that you would have had a person doing that. And so it's providing value as opposed to somebody going through and doing something manually, which is literally a cost center. And also has the higher chance of going wrong and costing you more money to kind of fix it. I mean, we have a, you know, a recent example of that in our day job where like
Starting point is 00:15:27 we automated a, uh, you know, uh, one of our processes in, and, you know, somebody on the team bothered to do like some back of the napkin math and came up with like, here's, here's like a ridiculous amount of money that was saved per month just because we don't have to have an engineer go and do that task manually that was being done for a while like somebody would you know go and do uh you know like a build and deploy kind of operation of some code uh you know out to a specific environment and and now they didn't have to do that and you know so to your point like you there can definitely be like real savings in in doing these things.
Starting point is 00:16:07 Yeah, totally. And centralizing is important, too. So back to this notion of platform, this notion of platform comes up over and over again throughout this whole chapter. Platform centralizes the logic, too. So you think about kind of having a centralized kind of code base or automations, your configurations all in one spot. So you don't have to jump around to computers or go ask someone how to do something you've got it all in one say you know repository or one centralized location doesn't necessarily have to be one repo or anything but uh basically a centralized kind of i don't know uh was a nucleus of control i don't
Starting point is 00:16:41 know well that's what they called out here, right? Like if there's a problem in that centralized system, that's doing things, that's one place you got to fix it. Right. And then it fixes it for everything. As opposed to if you have a bunch of people out there doing things and you find out that you had a bug in your, in the process to onboard somebody, right. You now got to go tell everybody that does any onboarding, like, hey, don't do this thing here. And it just, it doesn't scale well when you're dealing with people or anything like that, right?
Starting point is 00:17:13 So if you have a centralized system, not only does it make it easier to do, but it also makes it easier to fix things. Yeah, totally. And things drift. You imagine if like, there's some tasks that everyone does and everyone does a little bit differently.
Starting point is 00:17:24 Like Alan's got a script, alan's got a different script and i was too lazy to do a script but maybe i found some way that kind of shortcuts something so i you know i've just reset it or something every a couple hours um but and then all of a sudden you figure something out wrong you know with the process say okay we all need to do this uh additional step somewhere in the middle then you've got to communicate that to all these different people. They need to figure out how to integrate with the processes that they're already doing and adapt. And it's just painful. But it's centralized.
Starting point is 00:17:51 You fix it in one spot and you're done. Also, if you've got a platform and then you start doing these things more and more often, the more you do it, you start getting kind of like economies of scale. So you can start getting metrics and like economies of scales uh scale so you can um start getting metrics and using these measurements to make better informed decisions about you know things kind of going forward and how you want to spend your time and resources and kind of tying into that faster repairs is the idea that the more often automation runs you hit the same problems with it so you imagine you've got a task that runs a thousand times a day.
Starting point is 00:18:27 It's going to run into network problems or it's going to run into timeouts or it's just going to have things go wrong in it. Compilation errors. Compilation errors. If you're running it a thousand times a day, you know, after one month, two months, two years, four years, you're going to see a lot of the same problems over and over again. And you're going to figure out, you know, how to solve those problems quickly either by scripting around it or just, you know, having some kind of manual fix.
Starting point is 00:18:54 But the idea is that the more often you run it, the more often you hit the problems, the faster you get at repairing it. So over time, the average cost of fixing those errors drifts down lower lower lower until it basically gets as low as it possibly can go well and also too like what my experience has been like what i've seen happen is that like the things that you start fixing the improvements you start making they start becoming more and more like granular as you get like like in the beginning, it might be like the compilation errors, right? Like you're just trying to get the thing to build right in a consistent and repeatable pattern. And then, you know, you might have that as part of your PR process, like it's automatically kicked in and eventually like, it'll get to the point of like, you know,
Starting point is 00:19:39 Oh, the, Hey, there's these network timeouts. Maybe we should use something else as a, as a proxy, uh, you know, to cat like. Maybe we should use something else as a proxy, you know, like an artifactory or something to cache external dependencies so that we can kind of like reduce our dependency on the external internet, you know, or connectivity to it. And then it might be like, hey, you know what? These build times, like let's improve these build times and get those like, you know, I mean, two minutes was okay,
Starting point is 00:20:04 but you know, hey, what if we were able to cash a bunch of things and get a two second? And like, you just start making like these improvements over time, you know, to where like, that's not the thing that you, you know, you didn't start with trying to get your build time down to two seconds, but eventually you were able to iterate to that point to where now, because your automation keeps getting mature and the things that you work on the improvements that you're making like what becomes a problem today you know is so much more minute than what was a problem yesterday right and so like that that's one of the uh advantages to like setting these these things up yeah totally yeah totally um and i'm using build as a sorry but i'm using build but obviously like you know google isn't necessarily only talking about building things yeah i was just using that as an example yeah totally and i think i think it's a really good example and we'll get they have an interesting uh i don't know how to see the um i
Starting point is 00:21:03 don't know if i want to say definition of the word automation, but they have an interesting take on automation where they say, I'm sure this is somewhere up ahead in the notes. It's going to trip me up later. But they say that they think of automation as being these things that kind of like sit outside their systems and like orchestrate them. Um, thought that was pretty cool. Uh, faster action.
Starting point is 00:21:35 So obviously there are things that a computer can do much faster than human. You know, there's only so fast that you can kind of click buttons or enter commands or run scripts. And if you've got a, uh, or wake up in the middle of the night to create a new pod. Exactly.
Starting point is 00:21:48 Yeah. Can you imagine if... Yeah. Can you imagine if Kubernetes worked that way? Like every time it needed to auto scale, it would be like, hey, let me page Joe or Alan and get one of them to create the new pod for me. Yeah. What's the turnaround time on that?
Starting point is 00:22:05 But I mean, so that's an example of like I'm being kind of extreme. But, you know, in faster action, it doesn't necessarily need to be that you couldn't like click the button fast enough. It's just you might not a person. I'm sorry, Alan. A human might not even be available, you know, in a reasonable amount of time, especially like in off hours. Yeah. And another good point there is that there are things that as you scale would be prohibitively expensive to just have a human sitting there doing. So, you know, maybe when you've got, you know, 100 different servers running or, you know,
Starting point is 00:22:42 you've got one data center running, you can have a team of people that can manage that. When you get to a hundred data centers, you just cannot hire enough people and kind of keep that many people active and solve that problem. You have to automate. Otherwise you just can't do it. You can't grow to that size. So you can't scale people that well.
Starting point is 00:22:59 Hey, one thing that they actually called out along those lines, and it might've been further in the chapter. I can't remember either, but they said, you know, a lot of these things that they talk about here are specific to Google and the fact that Google has these scale issues, right? Like if you work at a small company, that's got four or five people on a developer team, chances are you handle a lot of that stuff manually because you sort of can, right. But they've grown to a point to where they can't.
Starting point is 00:23:25 They just, they couldn't hire enough people to do all that. And it wouldn't even be cost effective to do that, right? So there's definitely this, you've got to keep in mind that there's a scale of a company like Google or an Amazon or a Microsoft or whatever that may not match for a small company, but it doesn't mean you couldn't get these same type benefits if you started pushing for some of that automation in your smaller company, right? Like how awesome would it be if when your boss asked for a build, you didn't have to
Starting point is 00:23:55 go in there and do something yourself to get a build out and get it over to him. What if there was a push button, you know, package and ship type thing? So, um, you know, they call it out and it is worth knowing push button you know package and and ship type thing so um you know they call it out and it is worth knowing that you know they are aware that they are sort of special because they have a lot of huge systems yeah and i think um originally i thought about maybe we should skip this chapter for the show whatever because it's so google centric but part of what i thought was so fascinating about the idea of this kind of platform is that it seems like Google thinks of themselves as a platform. Google is a platform.
Starting point is 00:24:31 Google is building and investing in these systems, not just for their search and their Gmail and all their other products, but also their HR systems, their employee systems, their ability to kind of spin up clusters and sell Google Cloud. If you think about it that way, it's like they really think about this almost as like kind of investing in themselves. They want to own the source code for their business. And that's not just the products. It's also the business itself. And I think that's a really cool idea. Yeah. And they even called that out explicitly like you're talking about. One of the reasons why they said that they like investing in building their own software is because when you buy off the shelf products or whatever, they don't have the APIs and things built in that allow them to get the visibility into how the thing's running, right? Like the metrics that we mentioned
Starting point is 00:25:25 or APIs to see how things are running or getting data out of it. Like they want it because they know, because they've done it so well for so long now, they know what they need out of that software to know if it's running effectively and doing what it needs to be doing and all that. So it was a really interesting take
Starting point is 00:25:42 from their perspective on why they prefer to build versus buy. Yeah. Yeah. I thought that was really good. And if you think about like, you know, if you're a company that large, like why would you want to buy something that you're not going to be able to integrate with the other systems? So why buy these black boxes? Like you really need to be able to kind of own that stuff. And that's, that's something as a large company, again, like you, like you said, like you have to think about things differently than if you're a scrappy startup. Right. Yeah. I mean, if your core competency as a small startup is to sell widgets, everything you do needs to be geared towards getting those widgets sold, right? You can't
Starting point is 00:26:18 be investing in writing your own logging library or your own metrics gathering library. Like there's reasons those tools are out there and you should leverage them, right? Yep. Google, I'm sure, runs their own SMTP servers. They run their own mail servers. Yeah, totally. They run millions of billions of emails through every day.
Starting point is 00:26:39 If you're a startup, you should not be trying to run your own mail server. It seems like, though, it seems like though, like, I don't know if it was from a book or, or where, but it seems like we've ran across something at some point where it was like,
Starting point is 00:26:51 you know, you should use the tools that are available, whether you like they're commonly available or you had to buy them or whatever. And until you grow big enough to where, you know, it no longer meets your needs. Right. So if, if using like Alan mentioned a logging library,
Starting point is 00:27:09 so like if using a log for J is good enough to get you going, like focus on your core business until that thing becomes no longer, you know, doesn't do it for, it doesn't do what you need it to do. And now, you know, there's some kind of business need why you need to change it or whatever. Or even like, you know, you mentioned, um, as it relates to like, uh, using other services for like, you know, HRs or whatnot, you know? Um, yeah, I mean, focus on, focus on what your core business, the problems are at that time until it, until you outgrow it. But I don't remember where we came up with, where that came from. I remember hearing that too at some
Starting point is 00:27:46 point in the past, but I couldn't tell you. I'm going to go ahead and credit it with Uncle Bob because it's probably in one of the Uncle Bob books. That sounds like something he would say. So the last item here is time-saving. When they talk about time-saving, we already mentioned how it's faster to action, faster to actually do these
Starting point is 00:28:04 automations and faster to human doing it. It's faster to fix. But whenations and faster than a human doing it. It's faster to fix. But when they say time-saving, they're actually talking about the human cost, meaning if something's automated, then it can just be run by a simple script and anyone on the team can do it. We don't have to find the specialized expert
Starting point is 00:28:19 who has the knowledge and maybe the shell script and their home directory or whatever, right? So the time to actually do this thing is really fast. It's whoever gets to it first or whoever gets the page and, you know, you've got it as opposed to kind of having to scramble whenever there's a problem. So it just a kind of different take on saving time there.
Starting point is 00:28:37 It's interesting. But they also called out, right. That in order to get those time savings, you have to invest the time in creating whatever it is that will do that. So if you have something that takes away 15 minutes from a person every day, it might take you a day to automate that. So there'll be a payback period before that thing breaks even and ultimately ends up paying for itself over time. But you've got to bite the bullet and get that, you know, get somebody working on the
Starting point is 00:29:07 problem to get it done. Imagine if you had to manually take time out of your day, QA comes up to you, they tap you on the shoulder, tap, tap, tap. Hey, I want to test this version of the code. And you're like, oh, let me go check out that specific version of the code. I'll compile it. I'll build it. Okay, now i'll go deploy it for you somewhere and there you go there's your there's your thing right versus if you've actually like automated all that then they can just click a button and away they go right right i mean that that's you know clear example of this time saving
Starting point is 00:29:42 idea where like now anybody and it doesn't even have to be QA in this case, it could be like a salesman who, who wants to like be able to demo the latest thing to a potential customer, right. Or, or anyone like, you know, C-level executives that want to be able to show shareholders or board or whatever, like, Hey, here's the thing right now, you've like literally automated the thing to where anybody can do it. Yeah, absolutely. Um, we have a fun little quote that relates to that, uh, coming out. Like you want to try reading this? Okay. If we are engineering processes and solutions that are not automatable, we continue having to staff humans to maintain the system. If we have to staff humans to do the work,
Starting point is 00:30:28 we are feeding the machines with the blood, sweat, and tears of human beings. Think The Matrix with less special effects and more pissed off system administrators. Yeah, so it's kind of a funny idea of like the humans kind of powering these machines and powering this process, which is kind of funny idea of like the humans kind of powering these machines empowering this process which is kind of the reverse of what you want to be doing with computers right you have
Starting point is 00:30:51 computers to to replace the the human need to do those repetitive tasks so yeah and that quote was from joseph baronis yep yeah i'm so i wasn't gonna be able to pronounce that name so i literally didn't say the name because i was like oh oh, I'm going to butcher this name. And I was going to call out, I was going to make a joke to call out to have you say the name, Alan. So you saved me that embarrassment. Oh, wait a minute. I don't think it happened that way. I didn't save the embarrassment at all.
Starting point is 00:31:21 Yeah, nice. And the next section was they had a couple paragraphs on the value of sre google and this is all stuff that we already kind of hit on like google has a strong bias for automation because of their scale and google is a massive company do we know how many developers they have um just like i think it's nine because they've automated everything so um wouldn't it be like super crazy if it was like a much smaller number than you expected like automated everything. Wouldn't it be super crazy if it was a much smaller number than you expected?
Starting point is 00:31:49 What if it was like, they have 57 developers around the world. I have a number from last year. Do I want to take a guess? I'm going to say it's going to be a strong five-digit number would be my guess. Of developers, not all employees, right? Software engineers. What a strong five digit number would be my guess of developers. Not in, not all employees,
Starting point is 00:32:05 right? Software engineers, software engineers. What's strong five digit mean? That's very vague, sir. Um, I'm probably going to be like super low,
Starting point is 00:32:19 but I'm going to say 25,000. Wow. Wow. That was really high. I don't know. You were real close. 25,000. Wow. Wow, that was really high. No, no. You were real close. Yeah. That's good.
Starting point is 00:32:29 27,000. Isn't that what you're saying? Yeah. Yeah. Okay. Now, how many employees do they have? That's the number I looked at, 150,000. Yeah.
Starting point is 00:32:38 I remember for the longest time, IBM was one of the largest uh employers because they were i think like around 150 but then there was like a there was a german company i can't remember that made like medical equipment and they were closer to 300 000 um wow so yeah that's a few. Yeah. Yeah. Just a few. Just a couple people. So, yeah. Sorry, I was just reading.
Starting point is 00:33:12 So, Google's core is software, right? I mean, that just makes sense. If you've read, if you've even spent any five seconds learning anything about Google, you could know that it was about software and creating software. So, they don't want to use software. They were, this is kind of what we've said before, where they don't own the code and they don't want processes in place that aren't automated. You can't scale tribal knowledge. So, and that's the worst thing, by the way, like you, have you ever been that person that knows something and like you get hammered, like everybody will keep coming to you for like that thing. And it's like, why don't you just write it down or automate it or do something like here? I never want to talk about this thing again. Right. I think we even
Starting point is 00:33:55 referenced something similar to like, um, I think it was Scott Hanselman that like every time somebody would ask him a question, he would never respond by email. He would just write a blog article. And then that way, if a second person ever asked him the same question, he could just be like, there you go. Go away. It's brilliant. Yeah, I mean, that's brilliant. With 150,000 employees, how often people are getting locked out of their accounts or needing to create a new account or quitting, transferring, changing their 401k contribution rates. I mean, how many employees would they just be dedicated to doing that?
Starting point is 00:34:31 You know, it's crazy. I had a friend who worked for kind of a hospital complex, a couple of local hospitals. And a lot of his job was like resetting passwords and stuff because there were like nurses and doctors on the floor that don't want to be filling in the password. So they needed to be able to call a number quickly and have someone kind of do that. But there was a pretty large staff for, you know, a couple hundred employees. And that's all they did all day long was kind of deal with like sysadmin type stuff like that.
Starting point is 00:34:55 And yeah, that doesn't it doesn't scale very well. I mean, it doesn't even have to be a Google scale. Just imagine like you're having like a Thanksgiving or Christmas where all of the family and extended family are coming over to your house for the holidays. Right. And immediately everybody comes in and like, Hey, what's the wifi password.
Starting point is 00:35:14 Right. When you just like to have something just like automated, like boom, they came in and like, okay. And you, you now have the credential. You're good.
Starting point is 00:35:22 As long as you're in this radius and then you're out, you're gone. Yeah. You're good. As long as you're in this radius and then you're out, you're gone. You're off my network. So the last little bit that they have here on, on Google's value of the SRE is Google wants to invest in platforms, right? Because when they build those platforms, then there are things that they can improve and extend over time. And that goes back to them not wanting to use other people's software, right? Because they have an idea of where they need the software to be, and it's sort of its end state because they've been doing it for so long. But really, in the grand scheme of things,
Starting point is 00:35:57 they haven't really been doing it, quote, that long. I mean, it's only been around since, like, what, the late 90s? I mean, you're talking about the heyday of all development though. Right. Since, since like software development became as huge as it has been. But my point is, is like, they're not as old as like an IBM or an AT&T or, you know, whatever. Right. Yeah.
Starting point is 00:36:19 Like even an HBO, for example, you know, like they're older and then you have this like new kid on the block called Netflix and it's like, hey, let me show you something. Right. So. Yeah. So I guess we got somewhat, you know, last time. It worked. It pains me, Joe.
Starting point is 00:36:39 It pains me. That's what it kills me. Because I dread what you're going to say. But I'm going to ask you to do the bag for the reviews, but I'm probably going to regret it. But then when the next episode comes in, people are going to make me not regret it. And I feel like that's worse because it only encourages the bad behavior. That's right. Right?
Starting point is 00:37:12 So here we go all right i'm gonna do it i'm just gonna i'm gonna shoot straight here uh i don't trust that that's already off to a bad start you're lying already whatever tells you something like that you just know know. It's going to be great. Like, wait for it. Imagine we're a bunch of vampires, right? Okay. But instead of needing blood, we need reviews to live. Right? Way better than blood, right? We can all agree.
Starting point is 00:37:37 And we even try to make it easy for you. So if you want to feed the vampires, we set up a URL, comingbox.net slash view. And even if it's a terrible view, it's still pretty good. See? That's where you took it too far.
Starting point is 00:37:55 You were doing okay. You're fine with vampires. It was weird. I'm not going to lie. It was weird. But I was like, okay, he's got this analogy. It's weird, but it's working. And then you took it off the cliff.
Starting point is 00:38:06 And then he sucked the life right out of us. Yeah. I've been watching a lot of Twilight lately. I don't know. You know, I thought you were kind of sparkling. Thank you. All right. So how about we start off with a joke?
Starting point is 00:38:23 How about that? Let's do. What do you call a group of programmers? How about we start off with a joke? How about that? Let's do. What do you call a group of programmers? I don't know. An assembly. Oh, nice. That's pretty good.
Starting point is 00:38:41 That's pretty good, right? Yeah. I saw the survey that's coming up. Jim Hummelstein, he sent us this link link i'll have this in the show notes but it's the ultimate list of programmer jokes and puns and other funny so yeah we'll have it in jim excellent thank you yeah one last one how you know how to you know how a hacker escapes the FBI no backslash FBI
Starting point is 00:39:12 okay I like it there's going to be more of them in there it's a good list I'm telling you this is this is there's some true gold in here but so now we head into my favorite portion of the show, Survey Says. All right. So a few episodes back, we asked, so, I mean, we're talking about this whole Google SRE thing, right?
Starting point is 00:39:37 So wait a minute. DevOps is a culture, but SRE is a title? And your choices were... Wait, what? Or... Yeah, I get it. Or... Eh.
Starting point is 00:39:55 All right. So this is an odd number episode. So according to Tateko's trademark rules of engagement, Alan, you are first. So I'm just going to go with the fact that I think every, Oh man, this, this is amazing.
Starting point is 00:40:11 This goes along with something micro G shared with me with a optimism, pessimism and whatever. But at any rate, I'm going to go with most developers are pessimistic and I'm going to say, meh. And we're going to go 50%. Meh. 50% okay.
Starting point is 00:40:30 Joe? Right away Joe before you say anything mathemachicken like this is already in your favor like I think from a mathemachicken point of view you're
Starting point is 00:40:42 I have faith that you can pull this off. I feel like he's giving you hints, man. That's not fair. Yeah, so I got this. No, I wasn't. That totally wasn't a hint. Yeah, I get it. I'm just saying it's more than two, so, you know. I get it. No, I mean, that's my answer.
Starting point is 00:40:58 Yeah, I get it. Oh. And for the percentage, alan did 50 uh so uh you know i'm gonna go with uh i'm gonna go with 90 bold spicy he failed so the hint didn't work i tried to help you there man i tried there tried. There's a hint? I tried. So, yeah. So, Alan says, meh, with 50%.
Starting point is 00:41:31 And Joe says, yeah, I get it. 90%. Alan wins. But he overshot, so he lost. Oh, doggone it. Yeah. Really? Yeah.
Starting point is 00:41:44 Meh was 40% of the vote. Oh, wow. It was close, though.one it. Really? Yeah, it was 40% of the vote. Oh, wow. It was close, though. All right. Yeah, I get it. It was second, 32%. So, you know, there's hope. There's hope in there.
Starting point is 00:41:56 So, yeah. How about if I ask you this, then? What do you call two monkeys who share an Amazon account? Primates? Yeah. Yes, primates. That's it. Primates. Yep. Primates.
Starting point is 00:42:16 Okay. Mates? Primates? Primates. Well, instead of a primate, because a monkey would be a primate. Yeah. Well, yeah. True. I like the additional pun on top of primates. I do, too. I think Joe's answer is better. I like it. He wins.
Starting point is 00:42:31 Fine, then. What is a... P-R-E-S. Okay, so a thesaurus is the only dinosaur that can read. What does a thesaurus eat for breakfast? I don't know. A cinnamon roll. All right. So for this episode's survey, we ask...
Starting point is 00:42:52 Synonym? Oh, man. I got it. Got it. Man, that one took longer than I expected. It sounded like you said cinnamon roll, but maybe that's what I was trying to hear. Yeah. Yeah.
Starting point is 00:43:07 Maybe I did. Okay. Sounds good. I'm sorry. All right. Well, then for this survey, I asked, or we asked, what's your, you know, because there's this new Tom, everybody's making a big deal about this new Top Gun movie, right? I don't know if you've heard, but there's a new Top Gun movie. So everybody's making a big to about this new Top Gun movie, right? I don't know if you've heard, but there's a new Top Gun movie.
Starting point is 00:43:27 So everybody's making a big to-do about it, right? So we ask, what's your favorite Tom Cruise movie? And your choices are Mission probably something, something. Or Top Secret Gun. Or Risky Company. Or Risky Company. Or Edge of Today. Or Majority Report. Or Rainy Men.
Starting point is 00:43:57 Or Tom and Jerry Maguire. Or A Few Okay People. Or Interview with a dead guy. These hurt so bad. Oh, it hurts so bad. It's so hard to choose just one of those delicious titles. Well, you know, like some of those, some of those, like, I think I was putting this together.
Starting point is 00:44:21 I think I might do this for like all of them from now on. Like they might all be silly stuff like this. because this one I had fun just trying to put together the titles. But the Tom and Jerry Maguire, that was among my favorites on there, especially since it's Tom Cruise, so it had an extra little oomph to it. Ah, yeah. But then also Top Secret Gun made me feel a little sad, because that like one of Val Kilmer's first movies, if not his first movie, Top Secret. And they were both in Top Gun.
Starting point is 00:44:54 I did like it that you had an interview with a dead guy in here after Joe's take on the review as well. It kind of fit, right? Right. I thought that that's where that came fit, right? Right. I thought, I thought that that's where that came from when, when he was talking, I don't know. Did I,
Starting point is 00:45:09 did I influence your review there with that? Did you cheat? No, I just play a lot of video games. Oh, right. Okay. That makes sense.
Starting point is 00:45:17 That checks out. All right. Well, a lot of novels I think is what it is. Let's keep talking about, uh, automation and specifically Google's use cases for automation. Yeah, so much of Google's automation is around managing the life cycles of systems, not actually
Starting point is 00:45:36 the data, which I guess is kind of obvious, but it was just kind of interesting to think that they have the distinction. We talked about how they kind of view automation as, I think I jumped ahead to the spot, where they kind of think of it as being software for software, like meta software. They did mention a couple of tools that they use, including Chef Puppet, which if you're not familiar with, I think of those as kind of centralized tools that like manage things like installations and kind of, I've seen it for desktop software. I'm sure it's,
Starting point is 00:46:08 you know, all sorts of stuff. It's like Kubernetes, but for like things that you can go poke at, like would, it's another way of like building automate of like defining how you would install a system. Right.
Starting point is 00:46:24 Except yeah, it's not a Docker file. It's like a real machine that's there. I know when we've seen Chef for Puppet, they're kind of similar. But what I've seen in the past, it would be do things like every workstation that comes up needs to have a security client installed and the certificates installed needs to be running this version of Windows. And the same thing works for servers, though.
Starting point is 00:46:51 So you could like spin up a data center maybe and say like every data center needs to have early. Every DNS server needs to have these things and every load balancer needs to have this stuff or uh it can kind of go crazy and uh just kind of gives you ways to basically manage uh these kind of more complicated distributed systems you know and can reach like really far out you know like i mentioned workstations and um like load balancers and stuff like things like into the real world like i would be surprised if there's somebody out there running a farm with like chef or puppet real world that's that's be surprised if there's somebody out there running a farm with Chef or Puppet. Real world. That's a good way of saying it. Reaching out into the real world. That's what I meant by you go poke at it. It wasn't
Starting point is 00:47:29 just something like a container running on your machine or a Kubernetes cluster full of mini containers. Yep. Totally. CF Engine, which is something I've not heard of before, but it's basically for change management. So it looks pretty cool.
Starting point is 00:47:46 Here it comes. Best one, Perl. Specifically mentioned Perl. So obviously these are tools that kind of work at different levels of distractions. Like Chef, maybe you'll have a recipe or whatever they call it that defines a data center
Starting point is 00:48:01 or some sort of storage block or whatever. Perl is going to be something that you're going to do for different kinds of things, you know, different kinds of tasks, like much smaller things. Like writing your websites in Perl. Hey, people do it. They certainly used to do it a lot. It used to be super popular.
Starting point is 00:48:23 I know. It's crazy. I mean, it's not crazy. It's like, it's perfectly fine and did a great job. It's just, it's kind of fallen out of favor.
Starting point is 00:48:33 Well, that's why I found like, you know, consider it. Cause I think the date of this book was sick. 2016. Is that right? And,
Starting point is 00:48:40 and Pearl still made it, it's way into this book at 2016, which was – I think it's fair to say that Pearl had fallen out of favor of mainstream by 2016. Oh, for sure. Well, you know what they said about it, though, was it has access to low-level system type things. And that's why, right? All the other ones were sort of higher-level abstractions. And they said Perl got you down to dealing with system-level APIs. And so you had more finer-grained control,
Starting point is 00:49:17 but that comes at a cost, right? That's basically what they were getting at. I mean, they could have picked any language, though, for that. Yeah, they could have picked any language there for that. Yeah, they could have gone to C or anything. But I guess Perl's more scripty, right? So it's a little bit easier to deal with, I guess. So, I don't know.
Starting point is 00:49:36 So yeah, confirmed 2016. Some of the authors or some of the people thanked the mentions were all like, SREs until 2013. So let's, you know, just because the book came out in 2016, it was going on before that. Yeah. They moved on to something else, you mean? Yep.
Starting point is 00:49:54 But just the fact that they were SRE in 2013, before the world has heard that term, was interesting to me. So, we mentioned Perl being a very low-level tool. so uh you know we mentioned pearl being a very low level tool you could do a lot of things a very granular system level uh you literally write to standard out and you know things like that um higher level abstractions like things like chef or puppet are easier to work with and reason about but they're leaky uh so like when we talk about kubernetes like it's a i guess i would call it a high level tool, but there's a lot of stuff that goes on underneath. And there's a lot of layers of indirection before you get to something actually running on a VM somewhere and getting traffic started. Like the way you, the concepts you talk about and the terms that you use are just pretty far away from like what's actually happening on your cloud provider of course, or on-prem or, you know, wherever you're running it.
Starting point is 00:50:49 And, you know, high level obstructions are great because they're easy to work with reason about and you know you can say with um programming languages like the higher level it is the more stuff you could be the more expressive the languages are you can do more with less but they're leaky so things that can go wrong include like a partial failure, a partial rollback, or a timeout where you're not sure if the thing happened or not. And so the higher level the tool is, the less it's able to handle these little kind of intermittent props because it doesn't know what you want to do. If it is a partial failure, what do you want to do about it? The further back, the less you have to do of set this stuff up and get it to run. It's basically like saying another, another way of saying it is that like you have,
Starting point is 00:51:30 when you get to higher levels of abstraction, then you have less control. Yeah. And the reason you have less control is because it is a higher level of abstraction. So there are cases where like, you know, there could be something very specific,
Starting point is 00:51:44 low level that happens. Like it failed to open a socket and you're not going to be able to know. You might not be able to catch that at the top level, you know, whatever you're working in, you know, so you're you know, you you don't know why it failed or just that it failed or, you know, kind of thing like that type of thing. But what's weird about that is typically when you hear a leaky abstraction, that usually means that it's abstracted, but it's giving you a lot of visibility into the layer that it's touching. And their example that they mentioned here doesn't really, doesn't follow that. So I don't really know what they meant by the leaky abstraction but they did give an example of like let's say that you had something that was doing a rollout and it was supposed to be pushing binaries out to to a bunch of different clusters right or whatever and things could fail in different parts of that binary being pushed out
Starting point is 00:52:40 like maybe the binary didn't make it to a system Maybe it did make it to a system and it didn't stop, stop the old one and start the new one. Or maybe it did get there and it did run. So, so they were basically saying these higher level abstractions have problems and that they may not be able to deal with things that happen further downstream because they're not even aware that they happened, right? Because they expect things to happen in a particular way, right? Like release the binary, restart the thing. And if something happens somewhere in between there, then it's not going to know about it. But again, that's why their term leaky abstraction is sort of confusing here.
Starting point is 00:53:17 Yeah, because normally you would think of it as like, you know, you're going to have an interface like how to create a user but that generic interface that could like go to any number of providers also has something very specific to like one or more of those providers and it's like well wait a minute like you're actually leaking details of how you how the underlying implementation is is working and i don't want people to know that yeah or care about it. Yeah, and that's where the leaky abstraction at least when it comes to code and stuff is how that's communicated. But it sounds like all they're saying here is your lower level stuff like Perl, awesome because you can do things, but it's more complicated. Your higher level abstractions are great until they're
Starting point is 00:54:00 not, right? And that's kind of the trade-off you run all the time with layers of abstraction right so yep i'll say it's like a script that calls the script that calls scripts calls script and something goes wrong there and then somehow it's got to bubble that information up to a spot where you know someone can make an informed decision about what to do but the the options and just everything that might need to all the information you need to to have in order to kind of fix that are not necessarily present in the machine so i think of that that is kind of being almost like the leak that's where things kind of go wrong and uh you've got to actually
Starting point is 00:54:31 get in there and kind of diagnose it and look at logs and do whatever you need to do uh get past it uh i got a couple examples here of uh automation um so So account creation, termination, that's something we talked about. Cluster setup and shutdown. So when they say cluster here, they think about just a group of computers. I mentioned DNS, load balancers, things like that.
Starting point is 00:54:59 Authorization servers, whatever. Certificate issuers. Software install and removal removal uh kind of mentioned that too with the security agents that sort of thing chef um a bit yep this is definitely what i think of their uh software upgrades so not only your software aware but also system upgrades so you want to upgrade your linux kernel or something like that windows uh windows uh configuration changes like you're making some networking changes or something, you know, changing your servers around.
Starting point is 00:55:28 Dependency changes. Now, this is a one where it's this is a little bit trickier because it's something that your system depends on change. But maybe maybe your code hasn't changed, but there was a patch deployed that fixes some security vulnerability or something so you need to not only look at the things that you have told your systems to deploy but also the things that they're built on so imagine like um i don't know the log for j uh cve whatever vulnerability that had a couple months ago now uh you have to know as a system administrator that your which of your systems are running code that's vulnerable to it.
Starting point is 00:56:09 And that may not be the code that you ran, but the framework that it runs in, the other libraries that it brings in, the company blog that is running somewhere, if any of those dependencies need to be upgraded, then it's going to have a cascading effect. Speaking of, I remember you've heard about, like, where GitHub has capabilities, like, where they will, in your repos,
Starting point is 00:56:33 they'll find, like, hey, you have this dependency on blah, blah, blah. That dependency has these bugs, blah, blah, blah. And I think I recently heard something. Tell me if you guys heard about this, too, where, like, Google is now going out after like projects and they're finding, you know, like, Hey,
Starting point is 00:56:50 this project has this bug, but also like, here's the PR. Does that sound? Did you guys hear about that? I'll see if I can find it. I hadn't heard about the bug. I knew about with dependencies,
Starting point is 00:57:00 like they started creating PRs and stuff or upgrading software. I think I've even had it happen you know what's interesting about this list that you had here like you just rattled off about seven or eight of them but they also said this list could just basically go on and on forever right like finitum yeah because any anything that you can think of that they could possibly automate, they will try to. Right. I found it. Google announced this is the beginning of last month.
Starting point is 00:57:34 So or well, basically about a month ago, Google announced that they were creating what they called the open source maintenance crew tasked with improving the security of critical open source projects. That's pretty cool, right? I mean, it's kind of off topic to what you're talking about, but what made me think about it though, was just the dependency changes though. Like,
Starting point is 00:57:56 uh, because now Google is doing it, Google scale. And they're like, Hey, it's not enough that we do this for us. We got to do it for your stuff too. But I mean,
Starting point is 00:58:04 the reality though, is that like how interdependent the world is on open source now. So it's not – I suspect it's not entirely altruistic that they're doing it. They benefit from it too because they use a lot of open source as well. So it only – it helps them to be more secure too. benefit from it too because they use a lot of open source as well. So, you know, it only helps them to be more secure too. But, you know, related to the configuration changes, the example I was thinking of there was like,
Starting point is 00:58:34 I mean, nowadays, especially with like Sarbanes, you know what I'm saying? Sarbanes-Oxley. Yeah. There's like controls where like you'd probably want to, like, you know, specific credentials for auditing systems, you know, here and there. But, you know, you can think back to a time in the not-too-distant past where, like, you might have had, like, a password for, you know, some credential. Like, oh, hey, here's the DB reader password.
Starting point is 00:59:01 Here's the DB writer password, right? That multiple systems might've been using. And, you know, if you wanted to like roll the password occasionally, uh, you know, depending on how many systems you had, that could be a big deal. Right. So, you know, that rolling passwords was kind of an example of like, uh, a configuration change that I was thinking of that, you know, automate that as much as you can. Right. Even though there are like, I know there,
Starting point is 00:59:27 there's like other, uh, services out there to where like, you know, the, the, the secrets can be shared, you know,
Starting point is 00:59:34 and, and retrieved as needed. Yeah. Totes. Totes. Is that what we're, is that how we talked now? That's where we're at.
Starting point is 00:59:43 Yeah. That's what the vampires. Okay. Well, I am the youngest. So just at, yeah. That's what the vampire says. Okay, well. I am the youngest, so just saying. Hey, wait, are you? You are. I think you are, yeah. I mean, I look it.
Starting point is 00:59:54 Wait a minute, I thought I was the youngest. You still got hair, for sure. Yeah, 21 still. Thank you, thank you. All right, so the final section we're going to cover tonight, it's the hierarchy of automation classes. And this is the
Starting point is 01:00:09 idea here that there's kind of a maturity model. We've talked about this with security. We've talked about this a few different times.
Starting point is 01:00:13 It's kind of a repeating pattern and kind of technology and probably just the universe. But the idea is that ideally you
Starting point is 01:00:20 wouldn't need to stitch any systems together because they would all kind of just handle their own problems and they would all have APIs and, you know't need to stitch any systems together because they would all kind of just handle their own problems. And they would all have APIs and, you know, components that work together and were designed to work together with all these different systems. And everything would just be perfect and you wouldn't have to do anything ever.
Starting point is 01:00:36 But that's not the real world we live in. We have systems that are separate and we have a bunch of glue code. And that glue code is especially susceptible to bit rot so basically you know one of the systems upgrades maybe it removes some old options add some new ones and changes some things how you know how it does and so your glue code is now maybe out of sync and then your other system that you're gluing to maybe it's got other you know configurations and things and options added. Now it's kind of out of sync with that original system.
Starting point is 01:01:08 And the way your glue code works doesn't really apply anymore. And those things kind of drift over time. And so the problems might be kind of subtle. And it's really hard to know. And it's expensive to go in there and kind of test this glue. Could you ever add code where you're like, you did something that integrated two systems like three years ago, and you gotta go figure out why it's not working anymore and you like don't remember anything about it and then you look at the apis now and they're like totally different
Starting point is 01:01:32 and the the api you're using it was apparently depredated like three years ago you can't get a key again sorry outlaw i was gonna it's funny you mentioned that because I think we talked about that as an example in a past episode where like the Slack changed how they create their tokens. You know, they're completely different now and, you know, from one to the next. So, yeah, I definitely am facing that. Yeah, even when Slack changed our APIs and so the plugin we used to let people join automatically and stop working one day. Yeah. There's another one. Yeah. And didn't even know until people started uh not being able to get in but we do have that up uh by the way if you go to your coinbox.net slash slack can uh and you can join uh so i mentioned those maturity levels uh so the idea here is kind of that the more rare and risky a task is the cheaper it is to basically to deal with, the less likely it is to be fully automated.
Starting point is 01:02:29 So in this example, we'll talk about a database failover, which we've talked about in prior episodes as being something that a lot of times a human is involved in because of all the different things that go wrong and severity of kind of how bad you can munch your data if things don't go well uh database rollovers are kind of a sorry failovers are kind of a famously difficult problem and a lot of databases are specifically written around the the kind of goal to make that a little bit easier like we mentioned uh cassandra well i was thinking like not all not all database systems are created the same. So could you imagine like failing over multi-region in like, you know, going back to like a cloud example, like multi-region failures, like, you know, especially like it's some of those problems are okay in like an active-active kind of situation, you know, or not even active-active, just like
Starting point is 01:03:23 the other thing is available, right? So you have like the hot, the hot region and then standby region. But, you know, if your strategy is I'll spin up the other region on an as needed basis, you know, like automating that would be pretty, you know, pretty tough, but, you know, and there might be like legit cost reasons why you only want to spin up your, your other region on an as need basis. So I can't imagine why you would take the time. It's rare and the truckload of risk in it. And so even if you did go through the expense of trying to automate that process today well things might change in a year when you actually need it to happen and so are you still going to trust that the automation is
Starting point is 01:04:13 going to work or would you still want a person there like checking that as it went right so yeah i mean that's an example that comes to mind yeah totally so that first level is basically no automation just like you said like you know you you've got a site making 150 profit a month uh you're probably not going to spend three months you know practicing and setting up the database failover you know automation because it's just not worth it it's probably never even going to happen at that scale uh second level is what they call externally maintained system specific automations so what we're talking about here is that a SRE, a developer, has a couple commands that they can run, and they basically got some information in the notes,
Starting point is 01:04:52 or maybe they saved a stack over a full link. And so maybe they've got a shell script, their home directory, something like that. The idea is that it's externally maintained, which means it's the person who is who did not write the system uh so in this case you know developer our company is supporting a database that is from some other vendor and they're maintaining it and they're just you know keeping it to themselves and they can they can run it if you need to and that's kind of the second level
Starting point is 01:05:21 uh next one up uh externally maintained so, this is us running it, not the database vendor. Generic, but still system-specific automation. The only difference is here that SRE adds that script to a playbook or throws it in the wiki or checks it in somewhere, and so now anyone can run it. So it's the evolution in that now anyone can run this thing, but it's still externally maintained. This is much better than having no automation for a failover. If I started a new company and saw they had a script for failing over databases, I would think it's something that they're probably pretty good at. They've done a few times.
Starting point is 01:05:56 I'd have a lot more confidence in that script than I would me Googling my way through a manual failover. That's pretty good. But here's where things start getting even better. What I'd like even more than having some wiki with a script for failing over would be if the database itself shipped with a script that will let you do it. And so you could go shell in a box and run database failover and that's it. So now there's nothing, no special knowledge.
Starting point is 01:06:29 It's responsible for doing that stuff. It's presumably been tested, you know, by a whole bunch of people. That's the trick is it's, it's, it's continuously tested and maintained as part of the product. Not like that first example that I gave where like,
Starting point is 01:06:43 you know, you do it a year later. Yeah. And this is the experts that, you know, you do it a year later. Yeah. And this is the experts that, you know, you've probably got some sort of support contract. And this also assumes though that like now the, like the, the rarity is, is probably becoming less, right? Yeah. And that's why you bothered to automate it in the first place.
Starting point is 01:07:00 And now like that automation is just maturing as you go. And we're kind of getting into bot territory so you know if you're buying it you know into a database or something like if i'm paying for a ten thousand dollar a month license for uh you know microsoft sql server they better have some tools for me to fail over uh you know because i'm paying good money so i'm sure like the the more expensive database solutions like this these are the things that they're able to add on and kind of get their value add uh over like you know other ones well well worth calling out though is sure on like paid for databases but but google here is even talking about their own things right like so yeah so this this could be that they're building in failover scripts into their own thing
Starting point is 01:07:43 right like uh what is it? SQL spanner and that kind of stuff, right? Like they, they probably have things that they've built into their own product to handle their own failovers as time goes on. So it could be a paid for off the shelf thing or something that you're doing yourself that you're,
Starting point is 01:07:59 that you're baking into your own product. Yep. Are you ever seeing like a woodworking equipment or something that's got like an emergency pull cord or something that you know so it's like if your shirt gets stuck in the saw pull this cord real fast and it'll shut the engine off that's kind of what these scripts are and you're glad that's there still pretty scary though right well it's kind of quick man there could be a problem that you have to do something very important we provided that important thing for you but it still doesn't really make you feel great about using the product right right well yeah along the same that same line of thought though have you seen the the blades or the the saws where it will automatically stop
Starting point is 01:08:39 as soon as the next one yeah that's exactly yeah i i don't know that i could ever like i'm glad it's there i'm glad it's a thing like i i look forward to the day that it becomes so commonplace that like every saw every circular saw you ever want to buy is just has that it's not even something you think of as a feature anymore but oh my i don't know that i want to trust it yeah yeah and if you don't know what he's talking about just google or go to youtube and search for table saw with um blade stop and they'll show people like running a hot dog and as soon as the blade makes contact with the thing it'll barely nick that hot dog but it'll destroy the actual innards of the table saw to keep it from cutting a finger off. It basically injects a break into the blade.
Starting point is 01:09:33 The center of the blade can break as it does it. And it works off of like, it sets like a current. It trips like a current signal. Like when it touches that other thing, you know, like the hot dog example or, you know, your finger.
Starting point is 01:09:52 And, and yeah, to Alan's point, like it barely puts a, a dent on your, on the hot dog or your finger. But you look at like how fast that thing is engaging. Cause it's literally like shooting a gun to like fire,
Starting point is 01:10:07 uh, uh, uh, like a pen to, to break that, uh, saw blade. And it is read.
Starting point is 01:10:15 Diculously quick. Would either of you stick your finger in there to test it out? No. Yeah. Me neither. Yeah. Nope. Yeah.
Starting point is 01:10:25 So, all right. No, because it would be my luck that it would be like, you know, my long flowing locks would get caught in it instead. And so like my skin would never touch it. But, you know, my heavy metal long hair would get caught in it and it would like totally rip, you know, all the hair off my head. Yeah, definitely. totally uh rip you know all the hair off my head yeah definitely could you are you picturing me now with like long flowing locks you know like the scolding lock yeah about that fabio furl jeez i would hate for that to get damaged yeah be like uh chaining tatum in that in that in lost city you know i didn't see that that was i didn't enjoy that movie actually so uh the last one here
Starting point is 01:11:08 like i took us way off tangent but basically you know the example with the blade that i was describing is this last point that the system doesn't need automation the database notices and automatically fails over yeah isn't that automation like how is that yeah automation yeah definitely automation but there's something about it being kind of owned so you know example here be like the the blades you mentioned are like anti-lock brakes or you ever see pressure washers like anything dealing with electricity and water a lot of times they'll have a self shut off switch so they'll throw a breaker if the energy starts moving too quickly or whatever gets overloaded so i feel much better
Starting point is 01:11:43 about those systems because I never have to think about it. You know, um, it just kind of take care of it and it doesn't scare you. You know, it doesn't come with that script that you know that one day you might have to run.
Starting point is 01:11:53 So don't forget about it. Um, so yeah, it's just, that's the kind of the ultimate dream is that your system doesn't need automation and also that all your systems are going to work together. None of it's going to need anything. Just going to take care of itself.
Starting point is 01:12:06 Self self-correcting. Yep. That's kind of, I think, the promise of the cloud. So when you use a managed service, something like S3 or whatever, that kind of idea is like you don't need to worry about the automation. You don't need to worry about data centers.
Starting point is 01:12:22 Your stuff is up there. You've got this many nines for it. And you're kind of delegating that part to them. And that's huge. It's huge. There's a big difference between number four and number five here. It kind of goes back to the beginning of our discussion of this book where there was the quote that I'm probably going to mess it up but it was something about like they didn't want um you know what was it they didn't want automate they
Starting point is 01:12:51 they wanted not automation but self-correcting or something like that like i don't remember now but do you know the phrase i'm talking about yeah we looked this up last episode too oh we didn't remember we forget every episode. Automation, they wanted autonomous systems or something. Self-correcting systems, something like that. They didn't want continuously deploy. Oh, man. I'm going to go look it up.
Starting point is 01:13:20 Think about the difference. Just how you feel about this statement. Think about the difference between seatbelts and cars and having cars that can't ever crash. That's the difference between number four and five here that we're talking about. It's a huge leap from a script on my home director to a script in the wiki. That's much smaller conceptually and much easier to get to than it is to go from number four to number five here. Yep. Oh,
Starting point is 01:13:50 then you have one last one here. Go ahead. They want systems that are automatic, not just automated. Yeah, that's what it is. Dang it. That's a great quote. We wish we could just remember it.
Starting point is 01:14:00 Yeah. Yeah. I won't even bother to put it in the notes. We'll remember it. Yeah. Right. So, uh, no, Scott, one last thing and uh so we're breaking before we get into any sort of case studies or anything but this is kind of a theme that they um kind of come back to a little bit in
Starting point is 01:14:18 and some of the kind of case studies and so i thought it was an interesting question to ask here. Can you imagine a scenario where your company, your group automates so much that the devs are unable to actually manually support something when a real non-automated problem actually occurs? And do we mean that because the dev doesn't have experience with it or because things are just so complex that you couldn't possibly hope to do it? I would say a mix of so complex and also you're just so far away from that. It's like the difference, like you think about like me using it as like a computer user, if a Photoshop crashes or something, I restarted, like I'm not about to go diving into system calls and like trying to debug like you know i'm probably not even gonna look for a log file or anything because i'm so far from that or even better like if i pick up um uh or here oh i got one uh i push uh i push the button on a
Starting point is 01:15:20 toaster right to toast the bread and there's no power like the things that i'm gonna do to fix that are very limited right uh because you know ultimately if i trace the problem back to the power station like what am i gonna do as a human like what i'm saying is like you can get so far away from the the problems that you can have that you're just unable to fix it. If my toaster died tomorrow, I wouldn't be able to fix it. You know? Well, I was thinking like cloud storage providers, be it Apple, Google, Microsoft, Amazon, whoever, you know, they can't,
Starting point is 01:15:56 if you can no longer read your file or, you know, read a line from your file, they can't help you with it anymore, right? Like they don't have, that engineer doesn't have access to it right they can't see it in the raw to like help you you know i've been struggling with how to say this um do you ever hear that story about the guy who tried to make a toaster from scratch that's why i use toaster a guy got this idea he's like i'm gonna make i'm gonna smelt the metal. I'm going to smelt the copper. I'm going to make the wire.
Starting point is 01:16:26 I'm going to coat it in a, you know, non-conductive material. And I'm going to make a toaster from scratch. And he actually went and like mined the material. It took like, I forget how long, like 10 years or something. And it actually ended up catching fires in the museum. It's like a famous story. I'll find out. Like with shout outs.
Starting point is 01:16:42 But it was just the idea that you're so far away from things like just basic things that you don't even think about like imagine if you uh got dropped in the desert somewhere and uh your phone got smashed by a rock when you fell you can't fix that phone right you're so far away it's so complicated it's so the tools that you need to even work on your phone to fix it it's not practical it's so the tools that you need to even work on your phone to fix it it's not practical it's not something that you in your lifetime could build up the tools to have so i'm saying is like can you be so far away from the underlying building blocks of your systems that if when they do go wrong you like can't really fix it you just have to hope it works when you restart it i think that would be a good thing to shoot for,
Starting point is 01:17:25 because if you get to that point, then you've done such a good job of insulating yourself from all that. Like, I think that, well, here's the example. Here's the example. Um,
Starting point is 01:17:38 first of all, I want to answer your desert question. I would just die because I wouldn't even know which direction to go. My phone is the compass. Like, how would I even know? Like what, where's North? What are you going to do? You just got to die. Yeah. You just die because I wouldn't even know which direction to go. My phone is the compass. Like, how would I even know? Like, where's north? What are you going to do?
Starting point is 01:17:48 You just got to die. Yeah, you just die. Just follow. No one ever lives in a desert. That's just a fact. Right? Pretty sure. You can check my math on that, but I'm pretty sure.
Starting point is 01:17:58 I saw it happen in Spaceballs. No, no. They only combed it. They did comb the car. So, but to your automation question, though, here's the better analogy, though. Cars. It used to be that, like, the average person could just, like, buy a car and maintain it. But now they've gotten so crazy that, like, it's unrealistic to expect you and I to be able to maintain a common car now. And that was before we even got into electrics.
Starting point is 01:18:31 Now with the electric vehicles, it's, it's, you know, there's even an extra step there because now, uh, you know, you might not even have access to the actual software that's being used to run
Starting point is 01:18:42 that car. Right. So you, I mean, this isn't exactly, I don't think what you, you were talking about, but this is the closest example to a real world that I could think of was like, you know, you, you don't, you no longer have the ability to maintain that thing yourself when, when things go wrong, it's difficult. You know, a random light comes on.
Starting point is 01:19:00 You're like, well, I don't know which sensor that was. You can go by, you can go by a reader to tell you what sensor it is but even if you knew what sensor that is that doesn't necessarily mean that you easily have access to even get to that sensor because it might you know where it's physically located within the car you'd be like oh forget it i can't yep i would i would have to disassemble like half the car and that would just take me like you know the rest of my year just to disassemble it and then i'd be like okay now where was that baggie of screws that i had yeah knowing that you kicked over the plate that the screws were all that's why yeah they're everywhere that's why you eventually i just put them all into a bag you're like i'll figure it out yeah yeah and so
Starting point is 01:19:41 wordpress's example uh whenever that we have a problem with like a WordPress, it's something that I know if I put time in, I could learn more about how it works and how to kind of diagnose it. But it's so much easier just to restart the service and, you know, it usually is fine. But it's kind of an example. You can imagine like a company that doesn't need any developers. They've got a WordPress blog or something with a Shopify plugin. That's how they make all their money if that goes down they don't have the skill set to to maintain it or to fix it but they were they've been reaping the benefits from the automation you know like they're able to run a successful business with no no it staff at all um but when they're when they're
Starting point is 01:20:20 in trouble they're in trouble right when you were going on about your, the toaster example though, where I, no, no, no, I didn't mean that in a bad way. Uh, where I thought you were going with that was similar to the story of,
Starting point is 01:20:34 and I know Alan, I bet has heard of this one. Have you heard about the guy who built the Lamborghini in his basement? No, he spent, no, Alan surprised me. There was a guy who spent 17 years building an a
Starting point is 01:20:49 lamborghini in his basement and then decided he wanted to sell it and if i remember the story correctly he had to like have a wall of his house taken out in order to get the car out of the basement. Like that's just, I mean, Hey, kudos. The guy built like a 1980 Euro spec Lamborghini Countach LP 5,000 S like it was everything, your real taillights, everything like it was awesome. And if you saw the pictures of it, you're like, that is incredible. But yeah, i don't know why he didn't like think ahead and it's like you know if i build this car in the basement i'm gonna want to get out like let me build an airplane in my dining room that's insane absolutely yeah so we'll dive into more about automations and we'll hear some stories
Starting point is 01:21:45 that are kind of similar to what you just said about the airplane Lamborghini but yeah we'll dive into that a little bit next episode and so with that we'll all have a bunch of resources
Starting point is 01:22:00 links to resources we like in this episode especially the Lamborghini one so that Alan can catch up on his reading. With that, we head into Alan's favorite portion of the show. It's the tip of the week. I've been doing some development again lately, which is nice. I ran into something that was extremely frustrating. So I'm using Spring in Kotlin slash Java Spring Boot. And I was using the Spring Mongo JPA, whatever it is.
Starting point is 01:22:36 I don't know. It's something special. But here's the deal. Go look it up, kids. The Spring Java JPA, something special, you know, whatever. Yes, yes. So here's the deal. Go look it up, kids. The Spring Java JPL, something special, you know, whatever. Yes, yes. So here's the deal, man. Like we've talked about Spring is, I'm convinced.
Starting point is 01:22:54 I think I said this to somebody the other day. I'm convinced that if you actually knew Spring inside and out, you could write an application faster than anybody else could in any other language. You totally could because it does so much for you. However, if you don't know a lot about the Spring framework, you'll spend 10 times as much time writing it because you've got to figure out how things are supposed to work. At any rate, I had something that was using Mongo templates in Spring to do some database calls and I wasn't getting data back. And I was like, well, what in the world, right? Like this, this is magically going off and doing something. And apparently you guys know how, like in SQL server, they sort of have a history table.
Starting point is 01:23:38 So you can see what queries ran. You can even go find out the performance of the queries that ran, like there, there are specific queries and prox and stuff that you can run in SQL server to find what the last 10 queries were, whatever Mongo doesn't keep track of that stuff. Um, now I did read that there's maybe a version of Mongo or an enterprise version to where you can get some auditing turned on and it will write that stuff out somewhere. But by default, from what I understood, Mongo does not do this. Now I'm probably going to get 9 million comments. If you know differently than what I read, please feel free to share it on this episode's
Starting point is 01:24:13 discussion, which would be codingblocks.net slash episode 187. But so with all that out of the way, I needed to see the query that was running because it wasn't getting anything back. There is a setting for spring that you can just put in your application.properties, if that's what you're using. It might be application.yaml, whatever. You know, one of your 50 ways of configuring spring, you can set this logging.level.org.springframework.data.mongo2b.core.mongoTemplate equal debug. Just rolls right off the tongue. It does, right? Right.
Starting point is 01:24:48 It will actually output the queries that are being sent over to Mongo. I didn't catch that the first time. Could you repeat that? No, I can't. What was that setting? My spit's trashed. We're going to have this in the show notes.
Starting point is 01:25:02 So you're like, well, I didn't, let me rewind. Don't worry. It's in the show notes. It's in the show notes. So you're like, well, I didn't, let me rewind it. Don't worry. It's in the show notes. It's in the show notes. But the cool part is when you turn this on, then literally every time a Mongo statement or a Mongo query is made using Mongo template, then it would output that to your debug logs and you could actually see it. And for me, I got to see that I was using the wrong database name.
Starting point is 01:25:24 I was apparently substituting in the collection name for the database name, and thus it was never coming back. So having that one piece of visibility saved me hours of frustration and rewriting code that was never going to work, right? So there you go. So Spring almost automated you out of the way to be able to manually support the system. I was hoping it would have. It almost did. That was the goal to be able to manually support the system. I was hoping it would have. It almost did. That was the goal. That was the goal.
Starting point is 01:25:49 Yeah. So that was my bonus points. Have we ever talked about actuators? I don't think we have. No. Yeah. So here's a suite of configurable and extendable APIs that you can add to your Spring application that let you actually control things about the Spring application. Like, for example, changing the debug level live without having to do a reload.
Starting point is 01:26:15 So if you actually wanted to turn on debug logging for Mongo template and you have the actuator enabled for logging, for example, then you can actually go hit that resend point and say, hey, something says debug, do your thing, and then turn it back off again without doing any sort of deployment or anything, which is really nice in some cases, but not something you're going to want to expose to your customers. Probably it's not, you're going to want to keep those actuators locked up somehow. Yeah. Regardless of who,
Starting point is 01:26:41 where it's deployed to or who has access to it, you probably don't want it for everything because there's probably going to be some security-minded things. Even with the Mongo example of outputting the queries, I was thinking there might be some things in those queries that you don't want persisted out to a log. Totally. This is for local development type stuff.
Starting point is 01:27:02 And also the actuators. So one other thing to tack onto it, they're amazing. If you are running a web service or something with the web API, right? Because I tried to turn this on for a console application. And because there was no web endpoint for this thing, it didn't exist. So this is perfect if you're setting up a web service or if you have a website or something like that um but if you have those this is an amazing way to be able to do do changes on the fly without having to restart your system and all that
Starting point is 01:27:38 yeah that's also how they do like health checks and a few other things like that are just kind of nice little meta things about your spring is so nice it rip man i swear to you especially spring boot like i think we've talked about this in the past i would not want to live in the xml world that spring was prior to what we've been dealing with which is spring boot spring boot is just glorious once you learn how it works it is it is a joy to use. You like how we just started talking about this after we got some news about Pivotal? Yeah.
Starting point is 01:28:12 Anyway, this is inside baseball, but we might be worried. Anyway. VMware owns Pivotal. VMware owns Pivotal. Yeah. Do some more work withmware who knows yeah okay happen well this is awkward um okay you want to just talk to us about your
Starting point is 01:28:38 tip of the week then it's not weird um leave it to joe to make it weird yeah i know it's so late it's like she's 10 anyway that's why um so check this out there's a new but non-open source product from grafana called on call that helps you manage production support so it looks almost yeah i gotta compare it to like PagerDuty, which kind of manages like who gets the alerts, what the schedule is, what it integrates with, how those alerts happen, all that sort of thing. But this is a new product that is built off of
Starting point is 01:29:17 and extends Grafana from the Grafana people. So if you're heavily invested in Grafana and you need to set up some sort of on-call schedule or you're starting to kind of dip into notifications and you're finding it becoming a lot of toil to manage with those kind of production support issues, then this might be something you want to check out because Grafana is insanely popular. So I don't know if this product is going to take off. I think it's only been out and really talked about for the last couple of months. So, you know, who knows, may just be a flash in the pan, but I'm really interested in it
Starting point is 01:29:50 because it's such a popular product and so many people have it installed already. It kind of seems like a no brainer to just kind of go with them to take it the extra mile. And then you can figure your alerts and who's getting in your schedules, all that stuff in one spot, because Grafana is the king of the hill right now in terms of, you know, if you're running your own kind of metrics and stuff. And so if you don't already have something like a Datadog, whatever, if you're doing your own stuff, like it seems like a no brainer to me. Yeah, it does say, though, that it's based on the on call open source project. OK, so so there's some sort of open core
Starting point is 01:30:25 to it. There is an open source version of it, yeah. So like you said, I mean, that's the key is that if you're running your own metrics, then this could be helpful if you're heavily into Grafana. Yep.
Starting point is 01:30:40 If you're rolling around. The pricing's not terrible. Wait, wait, wait. It's not what? It's not terrible? It's not terrible it's it's wait wait wait it's not what not terrible it's not terrible that's right this i mean it says so they've got a free plan but then they've also like their pro plan is eight bucks a month per active user yeah that's nice so if you've if you've got three people that are on call that's's not terrible. Or if you have a pager that you rotate around to people, you basically have one active user, right? Like it's, it's not terrible. So it's totally affordable. Yeah. Pretty cool, man. Yeah.
Starting point is 01:31:16 Not terrible. It's not terrible. Uh, okay. So for my tip of the week, I'm actually going to steal this one from Angry Little Hamster asked. As part of their comment, they said, it's understood that you should run with the lowest privilege possible, but no one really gives a good way to go about it. Could one of you have a discussion or give guidance on how to do this correctly? I think I missed the part there where they were talking specifically about
Starting point is 01:31:47 Docker. If I remember the full question correctly. So there actually is in Docker, a user command where you can specify either a user by name or ID, as well as you can specify the group that the user should be a part of user by name or ID, as well as you can specify the group that the user should be a part of either by name or ID. And in the Docker file documentation, they actually show an example of where you could first create the image off of a Windows core server and then use a run statement to add a user and then a subsequent user statement where you switch to that user. And that user command will then instruct that everything from that point forward, you know, if you never changed users again from that point forward, then when the Docker image runs, it's going to run as that user.
Starting point is 01:32:52 Or you're going to, you know, when inside of that command, inside of that container, things are running as that user. Wait, does this work for Windows containers? They actually give a Windows example. Do they really? Yeah. Yeah. I wonder how that's doing. I haven't looked at like a state of the state of the Octoverse, whatever
Starting point is 01:33:10 type server in a while, but I'm curious to see how many people are running Windows containers. I would imagine there's a lot because Azure probably is. Yeah, I'm so far removed from that ecosystem right now. Yeah. Interesting. Good stuff. is right yeah i'm so far i'm like removed from that ecosystem right now but uh yeah yeah interesting i wish it well but i i've been like here of late like really more like alpine all the things i guess like make it as small a core as possible and just add on what you need.
Starting point is 01:33:46 I don't know. But I guess that's what Windows Server Core is doing, too. The idea behind it is as small a possible Windows environment. But also, too, it's like, why do you even need Windows specifically to run your.NET? You could do that in Linux. That's what we do.
Starting point is 01:34:02 Yeah, nowadays you don't need it. Yeah. uh here's one other tip of the week a really silly one do you remember the days of like when uh you know you when you first got your ios devices and you connect it to itunes by a wire crazy and you know that's when it would start this sync process and you could, it would show you a screen of all the pages that you had. And you could rearrange the pages however you wanted. You know, like, oh, this screen of here's all my media apps. They should be like the first one.
Starting point is 01:34:36 And here's like, you could rearrange all those things, right? Here's my reading apps. They'll be the third page. You know, whatever. That was like my single life before I got married. Yeah. Yeah. That was like the weekend for me.
Starting point is 01:34:46 And, and you thought it was a big deal when they like, then you could sync to iTunes wirelessly and you could still do stuff like that. Right. Well, but then like eventually they kind of got rid of, you know,
Starting point is 01:34:57 using iTunes to manage your, your screens. And, and, and you're like, Oh, I guess why I can't manage what screen is what anymore, like where those were.
Starting point is 01:35:06 Turns out you still can. On iOS, there's like a bunch of little dots there at the bottom that like indicate what page you're on. And I remember like, you know, in one of the recent ones they added in this ability where like you could like spread, you could slide over the dots real quickly to navigate between the screens. If you didn't know that.
Starting point is 01:35:23 But if you just press and hold on those dots, you can rearrange the pages of your, of your icons. It'll take you into like that old school looking kind of view where it's like, nice, you could rearrange them all. I would love to get excited about that, but it's,
Starting point is 01:35:40 it's, it's not, but it's also, it was also like, it's not interesting and exciting, but hear me out on this one. It was like, hey, somebody might find that useful. And like, this is literally the tip of the week. So, hey, don't be knocking on my tip of the week, man.
Starting point is 01:36:01 That's totally fine. I mean, it's one step closer to Android, so it's only like nine million steps away i don't well whoa whoa whoa whoa whoa in fairness i have no idea how long that's been there it could have been there maybe that feature has been there for a decade i don't know i just stumbled across it by accident and i was like what the shut the front door i am going to share that with people because that sounds pretty neat. It's well-deserved because I can promise you where this is going to come in handy is somebody is going to accidentally have screwed up and dragged one of those dots over and be like, what happened? Right? So this is helping that person out.
Starting point is 01:36:40 The anxiety levels will go down because of this tip. I can't hate. I'm talking about vampires anyway. So interview with a dead man or something like that. Yeah. Something like that. All right.
Starting point is 01:36:54 Well, um, I need to, I need to leave so I can go watch the latest episode of top secret gun. So, uh, you know, with that,
Starting point is 01:37:04 if you haven't already subscribed to us, uh, you know, with that, if you haven't already subscribed to us, um, don't necessarily take all of Joe's advice, but, uh, definitely subscribe to us. Uh, you can find some helpful links,
Starting point is 01:37:14 uh, at the top of the page for iTunes, Spotify, Stitcher, wherever you'd like to find your podcast. And, you can leave us a review. We greatly appreciate it.
Starting point is 01:37:23 Uh, it always does put a smile on our face when we read how we've helped people throughout their career or in during their career. And it really does mean a lot to us. It's one of the little ways that you can give back that that really does matter to us. So you can find some helpful links there at www.codingblocks.net slash review. Hey, and while you're at www.codingblocks.net, you can check out our show notes. Forget it. Well played, sir. Well played. All right. Uh, well, uh, make sure to follow us on Twitter at CodingBlocks or Web5 over at CodingBlocks.net.
Starting point is 01:38:08 And you can find all our social dailies at the top of the page. Don't you need like a keyword? Like what's the keyword for this? I got to get on the internet and I need a keyword to find it. Yeah. Yeah. Keyword CodingBlocks.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.