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