WEBVTT 00:00.000 --> 00:13.120 So our next speaker is Ruik Tassem, and he's going to talk about Pai Infra, which is like 00:13.120 --> 00:16.240 the new alternative to Ansible and Go, right? 00:16.240 --> 00:17.240 Yeah, exactly. 00:17.240 --> 00:18.240 Exactly. 00:18.240 --> 00:19.240 Thank you. 00:19.240 --> 00:21.480 So given the big one of the plus, to welcome him. 00:21.480 --> 00:22.480 Thank you. 00:22.480 --> 00:32.400 One more thing, one more thing, we have a lighting talk slot at the end of the day. 00:32.400 --> 00:36.920 So if you want to do a lighting talk, like a five minute talk in front of the audience 00:36.920 --> 00:42.160 here, please go to the talk description there, so link in there with a form you can sign 00:42.160 --> 00:43.160 up there. 00:43.160 --> 00:44.160 Yeah? 00:44.160 --> 00:45.160 Thank you. 00:45.160 --> 00:54.880 Hi everybody, my name is Lerik, I'm French of the Terrible, but very sexy French 00:54.880 --> 00:55.880 accent. 00:55.880 --> 00:56.880 I'm sorry about it. 00:56.880 --> 00:57.880 Okay? 00:57.880 --> 00:58.880 Yes. 00:58.880 --> 01:03.240 So today I'm going to talk about infrastructure, like, wait, I'm in the Python room. 01:03.240 --> 01:06.800 Yeah, infrastructure has code. 01:06.800 --> 01:10.240 The long time ago, some people say that now we're going to do infrastructure as code, and 01:10.240 --> 01:13.040 what does it give us at the end, YML? 01:13.040 --> 01:15.640 YML is not code, okay? 01:15.640 --> 01:20.800 YML is some fine, fauna, sheen is not code, and that piece of, because I'm French, you 01:20.800 --> 01:24.480 know it's part of our blood and strike and whatever, you know? 01:24.480 --> 01:28.600 So what can we do about this? 01:28.600 --> 01:32.360 We can start to use code to build infrastructure. 01:32.360 --> 01:37.360 Let's give an example of what we can find nowadays with uncibel, which is equivalent 01:37.360 --> 01:39.400 for me of the devil, let's be clear about it. 01:39.400 --> 01:40.400 Okay? 01:40.440 --> 01:45.440 So you have some crazy YML, you have some conditioned, which are, not in the good order, 01:45.440 --> 01:50.480 I mean, look at this, does it look like it's easy to deploy infrastructure like this? 01:50.480 --> 01:51.480 No. 01:51.480 --> 01:52.480 Right? 01:52.480 --> 01:54.960 But the hell is this, you know? 01:54.960 --> 01:58.400 So, yeah, I'm just a French, you know? 01:58.400 --> 02:00.400 Just remember this, you know? 02:00.400 --> 02:07.240 And it's a different one, like, smell, who's a hell decided that YML was the future? 02:07.240 --> 02:10.960 Because that's some people, the Kubernetes, probably, but they are not very smart as you 02:10.960 --> 02:11.960 can see. 02:11.960 --> 02:19.200 So, we have a lot of issues with uncibel typically, and in addition, sensitivity, string 02:19.200 --> 02:24.200 templates, you do ginger, in template, in ginger, in template, etc., etc., a nice inception, 02:24.200 --> 02:28.600 no real function, you could be paste everywhere, cool, not repeat yourself, does not exist 02:28.600 --> 02:35.160 in infrastructure, you have no debugging, you have no IDE support properly, and you have 02:35.240 --> 02:38.360 no way problem, who knows about the Norway problem? 02:38.360 --> 02:46.160 Ah, whoa, okay, okay, so many people know about it, so if you put country and oh, YML 02:46.160 --> 02:48.520 will give you a false. 02:48.520 --> 02:54.000 I'm not that wiser, so I don't know how Zainfield is there no wiser in the room, how do 02:54.000 --> 02:56.160 you feel about it? 02:56.160 --> 02:57.160 Right? 02:57.160 --> 02:59.560 Right. 02:59.560 --> 03:04.920 An on-top, and similar, they give us error message, honestly, it's similar as Java, you 03:04.920 --> 03:09.680 know, like, look at this, you have anywhere somewhere, you don't know where, maybe it's 03:09.680 --> 03:16.760 here, maybe it's somewhere else, is that code, no, it's not, and on top, how do you do 03:16.760 --> 03:23.200 testing, you have to have a PhD in YML to do testing for uncibel, can you hear me well 03:23.200 --> 03:31.760 or, yeah, okay, so what I want to do is to do some code, some real code, that's where 03:31.760 --> 03:37.200 PIENF, how come in, that's all I'm hearing this room today, because we use Python to 03:37.200 --> 03:44.120 code infrastructure, yeah, so what is PIENF? 03:44.120 --> 03:49.800 PIENFRA is a Python library which will take some Python code in and will convert it to 03:49.800 --> 03:57.760 bash to run on servers or shell to be more specific, you don't need Python on the servers 03:57.760 --> 04:07.200 that you want to manage, uncibel, you need it, okay, and you have a lot of other advantages. 04:07.200 --> 04:12.520 PIENFRA works like this, PIENFRA is smart because PIENFRA is code, first step, you gather 04:12.520 --> 04:20.440 the facts, what do I have on my system, then you apply the facts, do I need, let's say 04:20.440 --> 04:27.200 NGX is installed, doing it to again install it, that's what NGX is doing, PIENFRA is not doing 04:27.200 --> 04:37.480 it, so that's how you manage a server, the reason to determine how you manage a server 04:37.480 --> 04:44.720 in Python, who is not a system in this room, everybody who is not a system in, do you understand 04:44.720 --> 04:55.640 this code, yes, right, very simple, and that's just Python, you have some real functions, 04:55.640 --> 05:00.760 you have some real loops, you don't have to do some crazy, ginger, plus, YAML loops, you have 05:00.760 --> 05:12.720 some if else, oh, such a good feature, you have some input, wait, you can have typing, 05:12.720 --> 05:19.720 oh, see something in this current code, that's typing, oh, crazy, I must see something 05:19.720 --> 05:26.680 based away, so I'm judging myself in this conversation, don't worry, on top, like I said 05:26.680 --> 05:30.840 by infar, just do the necessary changes, if you understand NGX the first time, the first 05:30.840 --> 05:36.600 time it will not even try to install it, just skip it, if NGX is already running, it will 05:36.600 --> 05:42.840 not do a system D, NGX start again, to just mean system CTL, so you don't have to 05:42.840 --> 05:46.320 modify it, it will not really plot the files if they are already there and they have already 05:46.320 --> 05:51.320 the configuration, it does not make sense to do some use this actions in today's 05:51.320 --> 05:56.520 world, and that's what I'm simple is doing, yeah, I don't like cannibals, if you 05:56.520 --> 06:03.520 didn't see it here, you know, on top we have an infrastructure which is zero dependencies, 06:03.520 --> 06:09.960 so we connect to remote resources through SSH, we can do 10 networks though, but I don't 06:09.960 --> 06:18.520 recommend it, obviously, and we are compatible with any POSIX-ish systems, servers, VMs, 06:18.520 --> 06:24.520 Docker containers, micro-tic routers, some Cisco, some stuff like this, we can do it, if 06:24.520 --> 06:33.280 there is an SSH and some shell-ish behind, we are safe, I guess it will connect to everything, 06:33.280 --> 06:38.640 so here you have SSH connection, a local, very next way to install some stuff on your personal 06:38.640 --> 06:45.440 laptop, Docker, and an inventory, so an inventory, you have an example just here, it's very 06:45.440 --> 06:52.840 simple, you put the servers that you want, you put them by category, Bob's your uncle, finish, 06:52.840 --> 06:57.880 on top, we have something amazing, you know, compared to an simple, that we can write some 06:57.880 --> 07:06.600 extra stuff inside the code, yeah, I know, it's all, so for example, it's an installed VPN 07:06.600 --> 07:13.080 on your server, and you want to fetch a configuration for this server, you just do a request 07:13.080 --> 07:19.880 because it's Python, you can use request, HTTP, whatever you want, you know, you can activate 07:19.880 --> 07:26.320 directly with Boto, you want to fetch an inventory dynamically for AWS, you write a code, 07:26.320 --> 07:37.240 you have an inventory, it's that simple, it's a library, just to be clear, the example 07:37.240 --> 07:42.160 that I give you before, make it look like it's just a CLI, a bit like Ansible, but it's 07:42.160 --> 07:53.120 not, it is a library, so it's a library, which means that you can use it outside of the CLI 07:53.120 --> 07:58.920 for example, you can use it, I don't know, that's mine, thank you very much, this one is mine too, 07:58.920 --> 08:05.160 this one is mine too, yeah, I think it's this one, it's one, it's one, it's one, it's 08:05.600 --> 08:15.320 not right, sorry, sorry, sorry okay, so for example you can do it inside a city task, you can put it 08:15.320 --> 08:21.160 in fast API, you can dynamically trigger deployment of the GPU server on the cloud, configure it 08:21.160 --> 08:31.180 through fast API, and you write, Python code to do this, no more yam, finish yam, I just 08:31.180 --> 08:39.180 Like I said, there is already a lot of paper packages to import from inventories, so we can import from terraform. 08:39.180 --> 08:45.180 Let's say that your team has the terraform. We suck it, we have an inventory, we have an inventory for the 08:45.180 --> 08:55.180 Enware vCloud director, don't judge, okay? That's fine, okay? Sorry, but any API can work. 08:56.180 --> 09:02.180 So, why pine fries better than an Enzybin? And how is it better? Yeah, I don't like 09:02.180 --> 09:13.180 Enzybilities, it's not here. So, we are much faster. That's the most important one. 09:13.180 --> 09:19.180 Right now, to manage around 2,500 servers, we need a small computer, like, 4 cores, 09:19.180 --> 09:25.180 a jigsaw frames at it, because we need to calculate the facts in memory, prepare the script, 09:25.180 --> 09:32.180 execute it. We can scale to that limit without any issue. On Enzybil, 09:32.180 --> 09:38.180 especially if you start to use, like, their crazy open source product like WX, it's out. 09:38.180 --> 09:48.180 You need a gigantic VM to do this. Just want to show you a bit how Enzybil is bad, 09:48.180 --> 09:54.180 still, you know, because I really hate it, in case it's not here. That's how you install a package, 09:54.180 --> 10:02.180 at least off package, unanswerable. How is that infrastructure as code again? Sorry, 10:02.180 --> 10:09.180 the internet's in, yeah. But that's how you do it in pine fries, in Python. 10:09.180 --> 10:18.180 Six names, five, six, whatever. I think it means content. 10:18.180 --> 10:26.180 Same for the logic. You have a configuration? Who understands the first one, 10:26.180 --> 10:32.180 really needs the first time? Okay, you're smart, my friend, we need to talk after. 10:32.180 --> 10:38.180 Me, I don't, and it's my job. So, maybe I'm completely stupid, I'm French, also, so, excuse me. 10:38.180 --> 10:44.180 But I think, person is that the second one is better. It's clean, Python, 10:44.180 --> 10:56.180 much more easier. Same for the loops. Who's the hell decided that this was a loop? 10:56.180 --> 11:05.180 No, it's, I just leave, guys. Right? Not a loop. Right? 11:05.180 --> 11:10.180 Is that, that's how to understand that's a loop? I'm not sure. 11:11.180 --> 11:23.180 For those who do some uncible from time to time, one of the biggest issue is that it's hard to debug. Always. 11:23.180 --> 11:29.180 So, you do it like, when we learn, you know, at school, with Python, or we see, we print some debug. 11:29.180 --> 11:35.180 Come on, it's infrastructure as code again. Since when do we do print to debug? You know? 11:36.180 --> 11:44.180 That's why it's good because, again, we are using Python. So, we can have BDB, we can have a debug, with backpoints, 11:44.180 --> 11:53.180 have some normal people, you know, doing code. That's simple. 11:53.180 --> 11:57.180 That's when you're on message in Python. It's much better than saying, 11:57.180 --> 12:02.180 maybe you have a mistake here, maybe you have it there, or maybe it's completely another fine. 12:02.180 --> 12:04.180 Right? 12:06.180 --> 12:12.180 We can do testing. Oh, by test, I love by test. I love it. 12:12.180 --> 12:19.180 And you can use it. You can literally, in case, you know, like some people are stupid, 12:19.180 --> 12:23.180 you can pre-test your configuration and apply it. 12:23.180 --> 12:28.180 Only if it's valid, you can have some test scenarios. It's limitless, literally, it's limitless, 12:28.180 --> 12:33.180 because you're using Python. And Python is amazing, obviously. 12:36.180 --> 12:41.180 The idea is support. Let's launch VS code. 12:41.180 --> 12:44.180 I don't like VS code too, I'm just to be clear. 12:44.180 --> 12:48.180 I'm French, I need to be opinionated. You know, it's part of my blood, you know, that's it. 12:48.180 --> 12:54.180 You have the uncivil package module, that you have to install in VS code, 12:54.180 --> 13:00.180 and you have the YML1, then there's conflict, and then it's crash, and then it takes two jigs of RAM. 13:00.180 --> 13:05.180 Okay, I'm an imax guy, okay, don't judge. 13:05.180 --> 13:11.180 But I like that I just have a perfect, simple Python set up to the big pipeline file, 13:11.180 --> 13:15.180 or to complete in-line documentation, jump to definition. 13:15.180 --> 13:19.180 Whatever you use in Python, you have it. 13:19.180 --> 13:32.180 Some people are saying that, yeah, but uncivil is much older, that's true. 13:32.180 --> 13:37.180 It's much better because I have the bigger community. 13:37.180 --> 13:44.180 Biger community is not a proof of better results. Look at Nages, right? 13:44.180 --> 13:51.180 No? Sorry, I'm French, I'm French, sorry about this. 13:51.180 --> 13:58.180 So again, you spend far, you need a request, you install it, you need to install it, you need the Azure SDK, you install it, you need integration, 13:58.180 --> 14:08.180 we screw you for you, you install it, you don't ask question, you do. 14:08.180 --> 14:18.180 I don't know about you, but me, I've seen many times, some uncivil playbook, that are 5,000 lines long, that nobody want to touch because they don't know what they do. 14:18.180 --> 14:22.180 Ah, a few of you are, I saw you. 14:22.180 --> 14:27.180 So here, that's the point, pioneer by itself, reduce the length of your code by 70%. 14:27.180 --> 14:31.180 You'll reuse, you'll deploy faster, you can't test. 14:31.180 --> 14:37.180 Junior devs understand it, if you take a Python junior guy, you can understand it very fast. 14:37.180 --> 14:40.180 Can scan and it's unbeatable. 14:40.180 --> 14:45.180 Yeah, this one I covered, sorry. 14:45.180 --> 14:51.180 One of the good parts, or sorry, that's zero dependencies. 14:51.180 --> 14:56.180 I know about you, but I like to keep myself very minimalistic. 14:56.180 --> 15:03.180 And when I have to install Python without needing Python, I don't like it, I love Python, but when I need it. 15:03.180 --> 15:07.180 Uncivil requires you to install Python everywhere. 15:07.180 --> 15:13.180 We don't, we'll just convert to shell, so it's perfect. 15:13.180 --> 15:17.180 And I agree with you, a lot of you are just saying, you know, why do I move to Python? 15:17.180 --> 15:24.180 I need to change my entire uncivil and you have it, man, it's like changing from Java to Python. 15:24.180 --> 15:31.180 It's much better, period. 15:32.180 --> 15:35.180 So how do you do your migration? What do I recommend? 15:35.180 --> 15:39.180 You start small, one playbook at a time, one rule. 15:39.180 --> 15:41.180 You publish it as a package. 15:41.180 --> 15:45.180 Let's say that you start with deploying a message keys for your company. 15:45.180 --> 15:49.180 You have one library, you share it, you dispatch it. 15:49.180 --> 15:57.180 Can you use your ID, you leverage all the Python packages, you test the query, and you sleep better, obviously. 15:58.180 --> 16:01.180 Is that production ready? 16:13.180 --> 16:16.180 Now, mostly yes, it's production ready. 16:16.180 --> 16:20.180 We are using it for around like 3,000 servers right now. 16:20.180 --> 16:25.180 We are not only one, we have a stability PI, that's one break, it's nice. 16:25.180 --> 16:31.180 We have a lot of tests, we are actively maintained, and we are in my T license. 16:31.180 --> 16:39.180 We don't have a corporate behind us, that starts to upset you some uncivil toy on whatever they have in mind, right? 16:39.180 --> 16:46.180 I will not say like a linear stuff out, but hey, that's it. 16:46.180 --> 16:50.180 Like I said, that's all you can do with Python. 16:50.180 --> 16:53.180 Life is good with Python and with Python. 16:53.180 --> 16:57.180 Even me, you know, relaxed with Python, you know? 16:57.180 --> 17:05.180 So yes, you can do all the other automation, synchronization, generating keys, rotating credentials easily. 17:05.180 --> 17:11.180 Some stuff that should be basic nowadays and are not at all in the system in world. 17:11.180 --> 17:14.180 How do we do it? 17:14.180 --> 17:19.180 So I'm still using PI, I'm sorry we had to talk just before, but UV. 17:20.180 --> 17:22.180 I need to move on to this, I know, okay? 17:22.180 --> 17:31.180 But you just do people in style, we have a Python file, you put everything in it, you launch it locally, and done. 17:31.180 --> 17:37.180 You obviously said me now, more or less. 17:37.180 --> 17:44.180 So, this is a call also for people which are traumatizing by Yemen like me. 17:44.180 --> 17:48.180 If you want to discuss after, I'm here with subbiels, okay, just to be clear. 17:49.180 --> 17:52.180 We can talk about it, have a group therapy, no problem. 17:52.180 --> 17:56.180 But we can also discuss immigration strategy, why Yemen is the devil? 17:56.180 --> 18:01.180 Let's be clear about this, and how painfully I can heal you. 18:01.180 --> 18:03.180 How to get involved? 18:03.180 --> 18:04.180 We are still on GitHub. 18:04.180 --> 18:09.180 We're moving, I would like us to move to Codeberg with, not yet there. 18:09.180 --> 18:11.180 You have some examples. 18:11.180 --> 18:17.180 Try it, try it even for you, even for your laptop, even to set up your Mac, whatever you want. 18:17.180 --> 18:18.180 This will help you a lot. 18:18.180 --> 18:23.180 We'll give you a lot of flexibility as a Python developer. 18:23.180 --> 18:29.180 Thank you very much, and again, no more Yemeni. 18:48.180 --> 18:51.180 Thank you very much for this really wonderful talk. 18:51.180 --> 18:55.180 We have a couple of questions, and we have time for questions. 18:55.180 --> 18:56.180 Yeah. 18:56.180 --> 18:58.180 Who are the questions? 18:58.180 --> 18:59.180 Yay. 19:00.180 --> 19:01.180 Second? 19:04.180 --> 19:06.180 Yeah, to be defined as not yet sure. 19:08.180 --> 19:09.180 Hi. 19:11.180 --> 19:14.180 Okay, there's a, yeah, I hear myself nice. 19:15.180 --> 19:18.180 Thanks for the, yeah, amazing talk. 19:18.180 --> 19:24.180 This is a really interesting technology, and I'd like to make this way. 19:36.180 --> 19:39.180 Guys, please, there's some questions, just quite dumb. 19:39.180 --> 19:40.180 Okay. 19:40.180 --> 19:42.180 We'll have the question there. 19:45.180 --> 19:46.180 Hi, bud. 19:46.180 --> 19:49.180 Hey, thanks for your amazing talk. 19:49.180 --> 19:56.180 I have a little, uh, an answer book out, and I would like to make this switch because, yeah, this is amazing technology. 19:56.180 --> 20:01.180 Um, but I also have Windows machines, uh, as, as clients. 20:01.180 --> 20:03.180 Uh, I don't really plan. 20:03.180 --> 20:04.180 Yeah. 20:04.180 --> 20:09.180 Because they exist and people use it, in particular, for, for their stops. 20:09.180 --> 20:10.180 Yeah. 20:10.180 --> 20:12.180 So no, we are walking on Windows right now. 20:12.180 --> 20:15.180 We're going to be a prototype that we did because it's too much maintenance. 20:15.180 --> 20:17.180 We are walking on it on the side. 20:17.180 --> 20:20.180 It's, we know it's, it's something that people need. 20:20.180 --> 20:22.180 Let's be fair, but. 20:22.180 --> 20:25.180 None of us is willing to put a lot of efforts on it. 20:25.180 --> 20:26.180 I don't know why. 20:26.180 --> 20:27.180 That's. 20:27.180 --> 20:28.180 We are. 20:29.180 --> 20:30.180 Thanks. 20:34.180 --> 20:36.180 You talk about me critique. 20:36.180 --> 20:37.180 I got a favor. 20:37.180 --> 20:39.180 You don't come, come. 20:40.180 --> 20:41.180 Ha. 20:41.180 --> 20:42.180 Better access. 20:42.180 --> 20:43.180 I don't know. 20:43.180 --> 20:45.180 You're talking about me critique. 20:45.180 --> 20:46.180 Yes. 20:46.180 --> 20:48.180 This thing does, uh, me critique. 20:48.180 --> 20:49.180 It's pretty. 20:49.180 --> 20:50.180 Uh, no. 20:50.180 --> 20:54.180 It's a support for me critique is not building, but it's in on paper. 20:54.180 --> 20:56.180 So you just have to install it. 20:56.180 --> 20:58.180 So there is some, many people version of it. 20:58.180 --> 21:00.180 No, no, not all of them are good. 21:00.180 --> 21:02.180 Because you are still trying on it. 21:02.180 --> 21:03.180 It's me critique. 21:03.180 --> 21:04.180 It's doable. 21:04.180 --> 21:05.180 Yeah. 21:05.180 --> 21:06.180 I have a question. 21:06.180 --> 21:07.180 Sure. 21:07.180 --> 21:08.180 Uh, okay. 21:08.180 --> 21:11.180 I understand you don't like, I'll, I told, uh, Yammer Faises. 21:11.180 --> 21:12.180 Yeah. 21:12.180 --> 21:13.180 Okay. 21:13.180 --> 21:20.180 If it was not clear, yeah, I need to be, but maybe more expressive about it. 21:20.180 --> 21:21.180 No, but, yeah. 21:21.180 --> 21:22.180 Yeah. 21:22.180 --> 21:27.180 But to my village, it's possible to use on C-Bull as Python module, and then I'm 21:27.180 --> 21:28.180 Port, and Python. 21:28.180 --> 21:29.180 Yeah. 21:29.180 --> 21:33.180 But you still lack a lot of the advantages of Python, which is, you have to have Python, 21:34.180 --> 21:35.180 there. 21:35.180 --> 21:37.180 You don't have the dependency also, which is very important. 21:37.180 --> 21:40.180 You're lacking a lot of features, more or less. 21:40.180 --> 21:43.180 So you can compensate some, like, I'm French. 21:43.180 --> 21:44.180 I have to be extreme, you know. 21:44.180 --> 21:45.180 Yeah. 21:45.180 --> 21:46.180 You have to, you know. 21:46.180 --> 21:47.180 So I'm French. 21:47.180 --> 21:48.180 Yeah. 21:48.180 --> 21:49.180 So you know, right? 21:49.180 --> 21:50.180 Yeah. 21:50.180 --> 21:53.180 But like, you can compensate some of the mistakes of Encibel. 21:53.180 --> 21:54.180 Okay. 21:54.180 --> 21:55.180 But not. 21:55.180 --> 21:57.180 And like, I think not enough. 21:57.180 --> 21:59.180 Took over what Payne Faises don't. 21:59.180 --> 22:00.180 Okay. 22:00.180 --> 22:01.180 Okay. 22:02.180 --> 22:09.180 Um, what about some possible draw box, draw box of Payne Fra. 22:09.180 --> 22:13.180 But by the way, we went with non-turing, complete fork. 22:13.180 --> 22:14.180 Start law. 22:14.180 --> 22:15.180 Yeah. 22:15.180 --> 22:17.180 So I say, each of you goes, you. 22:17.180 --> 22:21.180 That doesn't let us sit down to accidental infinite loops. 22:21.180 --> 22:25.180 What are the safety nets in Payne Fra to vote infinite loops? 22:25.180 --> 22:26.180 Yeah. 22:26.180 --> 22:27.180 I don't even understand it. 22:27.180 --> 22:29.180 So we need to talk about it after. 22:29.180 --> 22:30.180 Okay. 22:31.180 --> 22:32.180 Open stack integration. 22:32.180 --> 22:33.180 Yes. 22:33.180 --> 22:34.180 There is one. 22:34.180 --> 22:36.180 Open stack has a Python SDK farm right. 22:36.180 --> 22:39.180 And you can just use it to build your inventory, build whatever you want. 22:39.180 --> 22:40.180 Okay. 22:40.180 --> 22:41.180 So yeah. 22:41.180 --> 22:42.180 And last question. 22:42.180 --> 22:44.180 In the plans to support state management like with Terraform? 22:44.180 --> 22:45.180 No. 22:45.180 --> 22:46.180 Stick for us. 22:46.180 --> 22:47.180 The management is bad. 22:47.180 --> 22:48.180 So we're going to do it. 22:48.180 --> 22:49.180 Okay. 22:49.180 --> 22:50.180 Okay. 22:52.180 --> 22:53.180 Hello. 22:53.180 --> 22:55.180 I just like to thank you. 22:55.180 --> 22:57.180 This was my favorite talk in the three years. 22:57.180 --> 22:59.180 I've been at first them. 22:59.180 --> 23:04.180 My question is, how readable are the shell scripts at Payne Fra spits out 23:04.180 --> 23:07.180 when something inevitably, you know, when I make a mistake. 23:07.180 --> 23:11.180 So could I, for example, just print out the Payne Fra dot shell? 23:11.180 --> 23:12.180 Yeah. 23:12.180 --> 23:13.180 Yeah. 23:13.180 --> 23:14.180 That's what we debug it. 23:14.180 --> 23:16.180 When we start to build on new integration. 23:16.180 --> 23:17.180 We do literally this. 23:17.180 --> 23:20.180 We try to say we say like just print us the shell part. 23:20.180 --> 23:21.180 And then we can debug it. 23:21.180 --> 23:23.180 And it's readable and beautiful. 23:23.180 --> 23:24.180 Yeah. 23:24.180 --> 23:25.180 Better than that. 23:25.180 --> 23:26.180 No, it's shell. 23:26.180 --> 23:27.180 So it's still, you know. 23:28.180 --> 23:29.180 But it's better than you. 23:29.180 --> 23:30.180 So. 23:40.180 --> 23:41.180 That's payne Fra. 23:41.180 --> 23:46.180 Some tools to continuously have parallel run on multiple host 23:46.180 --> 23:51.180 so that hosts are surely in a consistent state. 23:51.180 --> 23:53.180 And something to analyze reports. 23:53.180 --> 23:57.180 If you know something like puppet where the run is continuous 23:57.180 --> 24:01.180 and you have a sense of the results. 24:01.180 --> 24:02.180 Sorry, didn't get the question. 24:02.180 --> 24:03.180 So compare to puppet. 24:03.180 --> 24:04.180 Sorry. 24:04.180 --> 24:05.180 No, I mean does. 24:05.180 --> 24:06.180 Yeah. 24:06.180 --> 24:10.180 You have some tools to continuously run against all the target systems 24:10.180 --> 24:12.180 and have an overview of the. 24:12.180 --> 24:14.180 Not payne Fra. 24:14.180 --> 24:17.180 I mean something like puppet in that sense. 24:17.180 --> 24:19.180 So you can use a flow. 24:19.180 --> 24:21.180 You can use whatever you want. 24:21.180 --> 24:23.180 Whatever I'll run in Python. 24:23.180 --> 24:26.180 You can use it to execute. 24:26.180 --> 24:27.180 Yeah. 24:27.180 --> 24:28.180 Yeah. 24:28.180 --> 24:30.180 Thank you. 24:30.180 --> 24:31.180 Yeah. 24:31.180 --> 24:32.180 Thanks for the funny talk. 24:32.180 --> 24:34.180 I think we really enjoyed it. 24:34.180 --> 24:38.180 So you mentioned cloud infrastructure because I'm one of the 24:38.180 --> 24:41.180 burned people who have the same pain with terraform. 24:41.180 --> 24:46.180 You mentioned cloud infrastructure, but this is not running on any sea 24:46.180 --> 24:48.180 line normally or how would you do it. 24:48.180 --> 24:51.180 And because you mentioned it on the slides. 24:51.180 --> 24:54.180 How would I execute it to build the infrastructure. 24:54.180 --> 24:55.180 I mean. 24:55.180 --> 24:57.180 The strategies are. 24:57.180 --> 25:00.180 And less, you know, like I think we can talk about. 25:00.180 --> 25:02.180 You could use AWS. 25:02.180 --> 25:03.180 You could. 25:03.180 --> 25:04.180 You could generate. 25:04.180 --> 25:06.180 You could like here's a just bottle. 25:06.180 --> 25:08.180 You could like you have a lot of possibilities. 25:08.180 --> 25:10.180 You know, that's that the good way of 25:10.180 --> 25:13.180 find that the limitation is whatever Python can do. 25:13.180 --> 25:15.180 So almost no limitation. 25:15.180 --> 25:16.180 Okay. 25:16.180 --> 25:20.180 But you mentioned on the slide, but it's not meant to be a terraform 25:20.180 --> 25:21.180 really. 25:21.180 --> 25:22.180 No. 25:22.180 --> 25:26.180 For terraform, you have more pulluming, which is closer to terraform. 25:26.180 --> 25:27.180 You know, it's. 25:27.180 --> 25:29.180 It's very interesting, for example, to have. 25:29.180 --> 25:32.180 Paying fraud, when you start to use a basic yes. 25:32.180 --> 25:35.180 Some French, I know, a lot of French one, but scale way. 25:35.180 --> 25:37.180 Typically, we'll pop VM with GPUs. 25:37.180 --> 25:39.180 You execute and then you shut it down. 25:39.180 --> 25:40.180 That's very interesting. 25:40.180 --> 25:43.180 Because you can control, you can plug yourself to your monitoring system 25:43.180 --> 25:46.180 through Python API or SDK or whatever you want. 25:46.180 --> 25:50.180 So you have this dynamic way of launching instances. 25:50.180 --> 25:52.180 Thank you. 25:52.180 --> 25:53.180 Thank you. 25:53.180 --> 25:55.180 Thank you. 25:55.180 --> 25:58.180 The last question. 25:58.180 --> 26:01.180 First, thank you. 26:01.180 --> 26:03.180 It was a really nice talk. 26:03.180 --> 26:06.180 Second, Mr. Bean is not French. 26:06.180 --> 26:07.180 I know. 26:07.180 --> 26:09.180 I have actually a question. 26:09.180 --> 26:13.180 Do you know if there is a standard way of having like subcomments or something 26:13.180 --> 26:16.180 in Python or like just whatever Python you like? 26:16.180 --> 26:21.180 Because you showed a lot of examples like one file and that's it. 26:21.180 --> 26:22.180 Okay. 26:22.180 --> 26:23.180 Yeah. 26:23.180 --> 26:25.180 Is it like one file? 26:25.180 --> 26:28.180 Because the question is like, it's not just a Python library. 26:28.180 --> 26:30.180 There is also the CLI. 26:30.180 --> 26:31.180 Yeah. 26:31.180 --> 26:33.180 So is the CLI. 26:33.180 --> 26:37.180 Do you, would you advise for the CLI to actually have like subcomments? 26:37.180 --> 26:40.180 For example, okay, with the same Python file, 26:40.180 --> 26:44.180 I can deploy, I can run this or, you know, like a project. 26:44.180 --> 26:45.180 There is just Python code. 26:45.180 --> 26:47.180 So whatever your execute is. 26:47.180 --> 26:48.180 Yeah. 26:48.180 --> 26:50.180 For like the library, it's quite a good bit for the CLI. 26:50.180 --> 26:51.180 The CLI is the same. 26:51.180 --> 26:52.180 So the CLI you will use. 26:52.180 --> 26:54.180 You will say first is by in fast. 26:54.180 --> 26:55.180 Second, your inventory. 26:55.180 --> 26:56.180 And third, what you want to do. 26:56.180 --> 26:57.180 So it's a Python file. 26:57.180 --> 26:59.180 Also, it's just Python interpreter. 26:59.180 --> 27:00.180 Yeah. 27:00.180 --> 27:01.180 Okay. 27:01.180 --> 27:03.180 So if you do like, if you have update the py, 27:03.180 --> 27:05.180 if you have an instant.py, if you have a, 27:06.180 --> 27:08.180 Destroy the begin.py, boom, you execute it. 27:08.180 --> 27:10.180 You know, so basically it's not opinionated. 27:10.180 --> 27:11.180 No, it's whatever. 27:11.180 --> 27:12.180 Yeah. 27:12.180 --> 27:13.180 Okay. 27:13.180 --> 27:14.180 Cool. 27:14.180 --> 27:15.180 Okay. 27:15.180 --> 27:16.180 Thank you. 27:16.180 --> 27:17.180 Thank you. 27:17.180 --> 27:18.180 Thank you. 27:18.180 --> 27:19.180 Thank you. 27:19.180 --> 27:20.180 Thank you. 27:20.180 --> 27:21.180 Thank you. 27:21.180 --> 27:22.180 Thank you. 27:22.180 --> 27:23.180 Thank you. 27:23.180 --> 27:24.180 Thank you. 27:24.180 --> 27:25.180 Thank you.