diff --git a/transcripts/496-scaf-deploys.txt b/transcripts/496-scaf-deploys.txt index affecd4e..031b1615 100644 --- a/transcripts/496-scaf-deploys.txt +++ b/transcripts/496-scaf-deploys.txt @@ -96,7 +96,7 @@ 00:04:07 - I don't know, not being on your show, I guess. -00:04:09 I actually was super excited when you asked that I could be on here, This has been like a life goal, at least a goal since ClockPython to me has ever existed. +00:04:09 I actually was super excited when you asked that I could be on here, This has been like a life goal, at least a goal since Talk Python to me has ever existed. 00:04:17 >> I really appreciate that. That's very kind. @@ -454,7 +454,7 @@ 00:16:44 That's an opinion I hold that containers are for development as well. -00:16:48 Like that developer experience, some organizations I've seen, they may be deploying on the Kubernetes because there were operational opinions about deploying into containers, but the developers themselves haven't adopted that fully on their local workstation because it may feel hard until you've got that muscle built up for doing that level of development. That's originally, that's why Scaf came about, to make that development experience just a breeze. +00:16:48 Like that developer experience, some organizations I've seen, they may be deploying on the Kubernetes because there were operational opinions about deploying into containers, but the developers themselves haven't adopted that fully on their local workstation because it may feel hard until you've got that muscle built up for doing that level of development. That's originally, that's why Skaff came about, to make that development experience just a breeze. 00:17:14 We focused on how quickly can a developer be productive locally using containers and still have all your tools. It shouldn't feel different than if you were developing with your local Django files on your local file system and you were just running a Postgres instance, you know, out of homebrew, except it's better because now the versions will match what's running in production and you can have five different projects running with five different versions of things because you want to make sure they match your expectations when they go to launch and not be surprised when, you know, the version of Redis doesn't support some new operator because you were one minor version off in your local machine compared to the sandbox and production machines. @@ -538,7 +538,7 @@ 00:20:35 You can upload your own internal packages to share or import packages directly from PyPI. -00:20:40 Your team members can install from these repos in normal ways using tools like pip, poetry, and ub. +00:20:40 Your team members can install from these repos in normal ways using tools like pip, poetry, and uv. 00:20:47 Posit Package Manager can help you manage updates ensuring you're using the latest, most secure versions of your packages. @@ -562,7 +562,7 @@ 00:21:42 - No, everything's in containers. -00:21:44 That was, Scaf primarily, And some people will see Skaff as a deployment tool. +00:21:44 That was, Skaff primarily, And some people will see Skaff as a deployment tool. 00:21:49 I see Skaff as a developer experience tool and a deployment tool. @@ -572,9 +572,9 @@ 00:22:06 So part of what we, you know, that Skaff tool is, it's gonna be able to give you the scaffolding to build out of an initial project. -00:22:13 Like starting from scratch, you have nothing on the file system, Scaf will build out those initial tools, but then Scaf is a set of opinions, more importantly, because lots of scaffolding tools exist out there. +00:22:13 Like starting from scratch, you have nothing on the file system, Skaff will build out those initial tools, but then Skaff is a set of opinions, more importantly, because lots of scaffolding tools exist out there. -00:22:22 I mean, current Scaf is built on Cookie Cutter, but we can move that, we can move those opinions as we change our opinions about the development world. +00:22:22 I mean, current Skaff is built on Cookie Cutter, but we can move that, we can move those opinions as we change our opinions about the development world. 00:22:31 So as we build a new project and let that get started, we now can develop locally on containers. @@ -664,11 +664,11 @@ 00:25:12 >> -00:25:12 All right. Here we are, six feet up slash Scaf on GitHub. +00:25:12 All right. Here we are, six feet up slash Skaff on GitHub. 00:25:15 >> Yep. -00:25:16 >> Scaf provides developers and DevOps engineers with a complete blueprint for a new project using Kubernetes. +00:25:16 >> Skaff provides developers and DevOps engineers with a complete blueprint for a new project using Kubernetes. 00:25:22 We talked a lot about the motivation and so on, but let's start with the beginning. @@ -952,9 +952,9 @@ 00:33:28 Skaff tries to give those to you like right away. -00:33:30 Like, so it's, for example, it's going to install kubectl and kind and tilt and a couple of other tools if they're not found on your system and it'll use, if homebrew installed, it'll just use homebrew out of the box to do that and it puts it into your home directory. It doesn't, it shouldn't require, you know, one of my goals is not to require sudo anywhere in this process, you know, there's no sudo needed here for that curl command to run. And so it should be less impactful on your system than a lot of other tools, but it gives you a lot of power for what you are installing. So you run that one liner, it will now give you in like your dot local bin directory, a scaf CLI command that you'll be able to run. +00:33:30 Like, so it's, for example, it's going to install Kubernetes and kind and tilt and a couple of other tools if they're not found on your system and it'll use, if homebrew installed, it'll just use homebrew out of the box to do that and it puts it into your home directory. It doesn't, it shouldn't require, you know, one of my goals is not to require sudo anywhere in this process, you know, there's no sudo needed here for that curl command to run. And so it should be less impactful on your system than a lot of other tools, but it gives you a lot of power for what you are installing. So you run that one liner, it will now give you in like your dot local bin directory, a Skaff CLI command that you'll be able to run. -00:34:10 And you can just run scaf and then the name of the project you want to build. +00:34:10 And you can just run Skaff and then the name of the project you want to build. 00:34:14 And it'll ask you some questions. @@ -982,17 +982,17 @@ 00:35:10 What database we're using, what if we're using Celery, we're going to use Redis, actually we should change that. -00:35:16 We're changing from Redis over to Valky at the moment as well. +00:35:16 We're changing from Redis over to Valkey at the moment as well. -00:35:21 >> Valky, what is this? +00:35:21 >> Valkey, what is this? -00:35:23 >> So Valky, V-A-L-K-E-Y. +00:35:23 >> So Valkey, V-A-L-K-E-Y. 00:35:26 >> Close. -00:35:27 >> Valky, which is the Redis. +00:35:27 >> Valkey, which is the Redis. -00:35:29 >> Valky, okay. +00:35:29 >> Valkey, okay. 00:35:31 >> The Redis for Blake's Code. @@ -1004,13 +1004,13 @@ 00:35:38 I think that's another whole, we could do a whole other podcast on just open source licensing and interesting history. -00:35:44 You know, the Elastic folks did this with ElasticCache. +00:35:44 You know, the Elastic folks did this with Elastic Cache. 00:35:47 I think the Reddit folks kind of were following suit, but then you now-- - I think Mongo did 00:35:51 maybe a little bit as well. -00:35:52 - Well, now you've seen the Elastic folks kind of go back on that, heading back toward the more open open source licensing. +00:35:52 - Well, now you've seen the Elastic folks kind of go back on that, heading back toward the more open source licensing. 00:35:59 We'll see. @@ -1074,11 +1074,11 @@ 00:40:05 That's definitely, that's the roadmap piece for sure. -00:40:08 There probably is some, I'm not totally up on it, but it's probably some open source Valky equivalent Docker based Lambda type stuff as well that you might be able to say, we want to have a self-contained serverless as part of this. +00:40:08 There probably is some, I'm not totally up on it, but it's probably some open source Valkey equivalent Docker based Lambda type stuff as well that you might be able to say, we want to have a self-contained serverless as part of this. -00:40:21 - Yeah, for example, the Scaf challenge. +00:40:21 - Yeah, for example, the Skaff challenge. -00:40:25 So if you went to DjangoCon last year, 6PF ran a Scaf challenge where it was to see how fast you could basically run and get a running Django project on your machine in Kubernetes, running locally, ready to develop. +00:40:25 So if you went to DjangoCon last year, 6PF ran a Skaff challenge where it was to see how fast you could basically run and get a running Django project on your machine in Kubernetes, running locally, ready to develop. 00:40:36 The winner did it in 26 seconds from running Skaff to Django, actually ready to respond to HTTP requests. @@ -1170,11 +1170,11 @@ 00:44:28 - Yeah, I honestly work in the cloud, it's super scary in that regard, you know, when it's overly automated. -00:44:34 So, one of the things, speaking of deployments and all this that I do when I'm working with my Docker stuff is I'll set up a Docker compose file, that's kind of my zen right now. +00:44:34 So, one of the things, speaking of deployments and all this that I do when I'm working with my Docker stuff is I'll set up a Docker compose file, that's kind of my Zen right now. 00:44:42 - Yeah. -00:44:43 - And in there you can set deployment limits, like this container can only use so much CPU, more significantly for me usually is like, this container can only use one gig of RAM, even though the server's got 16, tell it it has one. +00:44:43 - And in there you can set deployment limits, like this container can only use so much CPU, more significantly for me usually is like, this container can only use one gig of RAM, even though the server's got 16, tell it has one. 00:44:55 And the reason that I think that's super useful is, something goes crazy or starts using too much memory or something like that, you could say, "Oh, there's something going on here without it taking down everything else." And there's other things, especially databases. They're like, "Oh, I've got 16 gigs. I was just going to load everything into memory because that'll be more efficient." Like, no, no, no, you're sharing this with everyone. Could you just load the indexes into your two gigs? That would be good, right? Is there stuff like that here? @@ -1270,7 +1270,7 @@ 00:47:43 Sure, let's get Celery installed. -00:47:46 If you're doing something with a fancy front end React, where our opinion is really to use Next.js. And if you install Next.js, you'll get like the strawberry GraphQL stuff out of the box, which is kind of nice and Apollo on the front end, if the Next.js is also chosen. So some GraphQL opinions have been made and the plumbing laid to make it just work, which is kind of hard sometimes. If you're diving into a new technology like React and GraphQL, it's nice to have some opinions and to have them pre-wired up for you. So you can just just kind of follow the pattern that's already been laid for you. +00:47:46 If you're doing something with a fancy front end React, where our opinion is really to use Next.js. And if you install Next.js, you'll get like the strawberry GraphQL stuff out of the box, which is kind of nice and Apollo on the front end, if the Next.js is also chosen. So some GraphQL opinions have been made and the plumbing laid to make it just work, which is kind of hard sometimes. If you're diving into a new technology like React and GraphQL, it's nice to have some opinions and to have them pre-wired up for you. So you can just kind of follow the pattern that's already been laid for you. 00:48:20 Okay. I'm told that Next.js is really, really popular. @@ -1280,7 +1280,7 @@ 00:48:26 Yeah, I mean, Next.js is a set of opinions around React. -00:48:30 Much in the way that, for example, like Zope and Plone were opinions around how to do a Python web framework. +00:48:30 Much in the way that, for example, like Zope and Ploen were opinions around how to do a Python web framework. 00:48:37 Next.js is kind of a packaging of some opinions about how I would deploy and write React applications and keep them up to date. @@ -1350,9 +1350,9 @@ 00:51:22 It gives you UI and a way to configure it and away you go. -00:51:26 - And then after that, we have Valky. +00:51:26 - And then after that, we have Valkey. -00:51:27 - Yeah, Valky. +00:51:27 - Yeah, Valkey. 00:51:29 Which is our Redis drop-in replacement. @@ -1388,7 +1388,7 @@ 00:52:38 Yep. Right. Just pick a different branch and have it watch that. Right. -00:52:41 But that's what we do. So inside the SCAF built skeleton you get on your file system, you're going to have a Kubernetes manifest directory that has a base set of manifests, which are, this is what's needed to define the deployment and the services and all the bits. +00:52:41 But that's what we do. So inside the Skaff built skeleton you get on your file system, you're going to have a Kubernetes manifest directory that has a base set of manifests, which are, this is what's needed to define the deployment and the services and all the bits. 00:52:57 And then each environment, for example, like the sandbox environment, has an Argo running that'll be watching for sandbox changes, and the production environment will be watching for production changes. Another thing we standardize on here that's not listed is things like sealed secrets. So you can check in your secrets to your Git repository for sandbox, for example, but the only machine on the planet that can decrypt them is the sandbox instance, because you actually use the sealed secrets operator to do the encryption. And the only The only way it can be decrypted is if those things are sitting in that cluster, in the sandbox cluster or in the production cluster. @@ -1460,13 +1460,13 @@ 00:57:13 I see. -00:57:14 So maybe a better analogy would be like IngenX or yeah. +00:57:14 So maybe a better analogy would be like NGINX or yeah. 00:57:19 Yeah. -00:57:19 I mean, I think we all grew up, we all grew up on IngenX and made it do all the crazy reverse proxy things like traffic is the one born in the cloud native world version of that. +00:57:19 I mean, I think we all grew up, we all grew up on NGINX and made it do all the crazy reverse proxy things like traffic is the one born in the cloud native world version of that. -00:57:29 Now IngenX has their own ingress controller as well that they've re rewritten to be more cloud native. +00:57:29 Now NGINX has their own ingress controller as well that they've re rewritten to be more cloud native. 00:57:35 That's just what traffic is for us. @@ -1560,11 +1560,11 @@ 01:00:58 Yeah, yeah, yeah, yeah, definitely. -01:01:00 I mean, there's there's so many good example dashboards under Fanta that it is no reason not to be using this for durability. +01:01:00 I mean, there's so many good example dashboards under Fanta that it is no reason not to be using this for durability. 01:01:07 And this is like the table stakes, like you better start here and you better just do it. -01:01:10 But a lot of people deploy an app and then they they I mean, how many times have you worked within a developer and you're like, well, if something's wrong, I can't figure out why. +01:01:10 But a lot of people deploy an app and then they I mean, how many times have you worked within a developer and you're like, well, if something's wrong, I can't figure out why. 01:01:18 And the first thing you tell them, I guarantee you, Michael, the first thing you tell them to do is did you look in the logs? @@ -1610,7 +1610,7 @@ 01:02:27 Talos Linux has the ability to launch Kubernetes clusters. -01:02:30 So you can use kubectl to manage your Kubernetes, but then you have the Talos CTL to manage Talos. +01:02:30 So you can use Kubernetes to manage your Kubernetes, but then you have the Talos CTL to manage Talos. 01:02:36 There's no reason to shell into a box. @@ -1716,7 +1716,7 @@ 01:06:44 Again, it has a lot of other cool things, nice UI. -01:06:47 If you fire up Scaf, at the very end of it, it'll tell you, "Congratulations, you got a new project on your file system. +01:06:47 If you fire up Skaff at the very end of it, it'll tell you, "Congratulations, you got a new project on your file system. 01:06:53 CD in your project and just type Tilt up." You type Tilt up and you hit space bar, I think it is, and it launches a web browser with all the status of all the containers that are running locally. @@ -1816,7 +1816,7 @@ 01:10:15 They may be more data pipeline versions of your apps. -01:10:19 And so those will be templates that can be updated and and redeployed and kept up to date with Copier. +01:10:19 And so those will be templates that can be updated and redeployed and kept up to date with Copier. 01:10:24 That's cool. Yeah, I can see a whole idea, a whole concept of this for ML workloads and science @@ -1824,7 +1824,7 @@ 01:10:32 What we need is data ingestion and intel and we want results, either a notebook or just something in a database on the other end of them. -01:10:39 Yeah. Yeah, that's a big, that's a big deal. And that's another thing that is included in Skap Opinions is the CI pipeline, the GitHub actions, Bitbucket Act, you know, workflows or whatever their CI thing is called. Because those Those are important, those need to be there day one, 'cause they're so hard to tack on later, or you just get busy and you don't tack them on when you should have. +01:10:39 Yeah. Yeah, that's a big, that's a big deal. And that's another thing that is included in Skaff Opinions is the CI pipeline, the GitHub actions, Bitbucket Act, you know, workflows or whatever their CI thing is called. Because those are important, those need to be there day one, 'cause they're so hard to tack on later, or you just get busy and you don't tack them on when you should have. 01:10:58 - Yeah, it's good to have all this experience and all these rounded off rough edges put together in one box for you, very cool. @@ -1832,13 +1832,13 @@ 01:11:13 So let's close it out with a final call to action. -01:11:15 People are interested in SCAF. +01:11:15 People are interested in Skaff. 01:11:17 - Yeah, they should definitely go to-- - Should I go to Starrett? 01:11:20 - Yep, go to Starrett. -01:11:20 log in apparently. Yeah, go hang out, go to the 6github/scaph GitHub repository. It's a one-liner to install. I would love to hear your feedback, you know, any feature requests, you know, any bugs you find. We've worked really hard on ironing out a lot of those issues over the last year as we kind of pushed toward DjangoCon last year. It's amazing and mind-blowing to see how fast you can get a Django project up and running on your own machine with Kubernetes in the mix. Maybe people a little background information, like they're like, I heard of Kubernetes. +01:11:20 log in apparently. Yeah, go hang out, go to the 6github/Skaff GitHub repository. It's a one-liner to install. I would love to hear your feedback, you know, any feature requests, you know, any bugs you find. We've worked really hard on ironing out a lot of those issues over the last year as we kind of pushed toward DjangoCon last year. It's amazing and mind-blowing to see how fast you can get a Django project up and running on your own machine with Kubernetes in the mix. Maybe people a little background information, like they're like, I heard of Kubernetes. 01:11:54 What do I do with it? @@ -1906,9 +1906,9 @@ 01:13:20 - Yeah, so here's the thing. -01:13:21 If you like Linkin Park and that style of music, you're gonna love it. +01:13:21 If you like LinkedIn Park and that style of music, you're gonna love it. -01:13:24 If you hate Linkin Park, maybe call it a show. +01:13:24 If you hate LinkedIn Park, maybe call it a show. 01:13:27 Anyway, it's gonna be super fun. @@ -1961,4 +1961,3 @@ 01:18:45 We should be right at the top. You can also find the iTunes feed at /itunes, the Google play feed at /play and the direct RSS feed at /rss on talkpython.fm. We're live streaming most of our recordings these days. If you want to be part of the show and have your comments featured on the air, be sure to subscribe to our YouTube channel at talkpython.fm/youtube. 01:19:07 This is your host Michael Kennedy. Thanks so much for listening. I really appreciate it. Now get out there and write some Python code. -