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.

