Enquiry

Sven Kieske kieske at osism.tech
Tue Sep 19 15:55:07 UTC 2023


Am Dienstag, dem 19.09.2023 um 12:31 +0000 schrieb Jeremy Stanley:
> Not really, no. Completely rewriting software in a different
> language is a massive undertaking, and when you consider it's taken
> 13 years to build the software to its current state that's a lot to
> rewrite from scratch. 

agreed

> 
> Keep in mind that most of OpenStack's own software is often not in
> performance-critical paths, it frequently calls out to other
> programs in userspace that are already written in "faster"
> languages, so the relative slowness of the Python parts of that
> system doesn't necessarily create much additional overhead anyway,
> therefore the benefits of rewriting them might not always be as
> great as you anticipate. It comes down to a cost vs. benefit ratio,
> where the cost of rewriting is very high and the benefits aren't, or
> can't clearly be proven as, good enough to outweigh those costs.
> 
> Python (well, the popular CPython interpreter anyway) is itself
> getting faster too, it's just not been a high priority for their
> community until the last few years, but more recently they've
> invested a lot of effort in making efficiency and performance
> improvements. Take a look at the speed improvements which came out
> of the Faster CPython effort in 3.10 and 3.11 as well as the 3.12
> release candidates for example, or the free-threading/no-GIL work
> for PEP 703. Why rewrite everything into a faster language when you
> could instead just make the language it's already written in faster
> instead?

well, if you have ever run any moderate sized openstack cluster
you must disagree here. of course many openstack components
*are* performance sensitive, especially if you run k8s on top of it
which can hammer the api servers with thousands requests per second.

I don't even want to go into arguments about general efficiency of
computing, preservation of resources and "green it" [0].

a good rewrite would possibly use rust instead of golang (there, I said
it), because it's easier to integrate with python[1] as it has a better
FFI story than golang, from what I read online. This way this could be
done in an incremental way. This would imho be the only feasible
approach, which could also yield new developers interested in
openstack/cloud computing.

e.g. Artem rewrote the current openstack cli client in rust and while
the current cli in python is really slow for larger clouds, it is fast
in rust[2]. So there is some work being done, although it's very very
early days.

the results of the poc where shown at the last public cloud sig
meeting, which was quite interesting.

But I do agree, as said above, that it's hard to do, and there seems
sadly to be not much buy-in from the community at large just yet.

[0]:
https://thenewstack.io/which-programming-languages-use-the-least-electricity/
[1]: https://pyo3.rs
[2]:
https://lists.openstack.org/pipermail/openstack-discuss/2023-August/034934.html

kind regards

-- 
Sven Kieske
Senior Cloud Engineer

Mail: kieske at osism.tech
Web: https://osism.tech

OSISM GmbH
Teckstraße 62 / 70190 Stuttgart / Deutschland

Geschäftsführer: Christian Berendt
Unternehmenssitz: Stuttgart
Amtsgericht: Stuttgart, HRB 756139




More information about the openstack-discuss mailing list