Re: State of python3 in our infrastructure

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I don't contribute much time to infrastructure these days so I'll try to outline costs::benefits rather than saying whether something is a good idea or not -- I won't be spending much time doing the work so it's not right for me to sign other people up for it :-)

> Good morning everyone,
> 
> I would like to start gathering our thoughts about python3 in our apps.
> 
> To my knowledge, we currently have two applications that are python3 (only):
> - Mailman3 core (as in hyperkitty is still py2)
> - mdapi
> 
> Both are *not* running via apache/mod_wsgi. MM3 runs on RHEL7 while mdapi runs
> on a Fedora node for the moment.
> 
You'll probably either need to have a few load balanced Fedora webservers running mod_wsgi for python3 or the equivalent rhel7 webservers with mod_wsgi for python3 to do this.  You'll want both python2 and python3 web servers because it will allow your applications to port one at a time.  Doing everything at once will be overwhelming.

* Going with Fedora means a more frequent distro upgrade cycle but Fedora is pushing python3 as default so the support from packagers not in infrastructure is likely higher.
* Going with RHEL7 means that you can continue with your current lifecycle for the distro but it means that you'll have to take a more active role in the python3-for-epel effort.

* Note: EPEL was started in large part because mmcgrath knew we needed extra packages for RHEL.  Rather than doing it all alone, he pushed for us to share the workload with other people in the wider ecosystem that could also use the packages.  So there probably is a bit of "if you build it, they will come here"... Infrastructure might need to contribute a fair amount of packaging time to get python3 on RHEL7 viable but after that there will be a steady stream of packagers who want to contribute to making the set of packages bigger. 
 
> So, what do we think about python3 app in our infrastructure? Are we ok with
> it? Do we want to avoid them for the moment? Do we want to split 'backend' vs
> 'frontend' (ie web-apps)?
> 
backend-frontend may make sense because fedora is moving to python3.  So frontends (command line CLIs and python libraries for people to write their own scripts or apps) that run on python3 and backends that run on python2 would match the existing reality of what people want to do.  It doesn't help your pygit2/maggit problem on the backend, though.  It also doesn't help if some of your CLIs also have to run in your infrastructure.

> However, maggit is python3 only.
> But the pain of dealing with pygit2 is such that I have been considering looking
> more into maggit and maybe porting pagure to it (which means porting pagure to
> python3, already checked, all of its dependencies are py3 ready).
> 
It could be less overall effort to port maggit to run on python2.7+

However, that feels like moving backwards instead of forwards.

> Before I consider such effort (which would be a 2.0 release), I want to clarify
> the status of python3 web-apps.
> 
I think starting to run python3 web apps will contribute more to the greater good than limiting apps to python2.  It will help to future-proof the web-apps since python2 probably won't be default in RHEL8 (who knows if it will be available as an add-on, though)... so at some point you do have to pay this price.  So the real question is whether you want to pay this price now and which people within infrastructure are going to be doing the work:

Do it when a RHEL releases with python3:
* sysadmins will have to manage both RHEL7 and RHEL8 web servers for py2 and py3.
* Concentrated work for developers to get applications ported as we'll want to migrate to rhel8 and python2 web apps will be holding us back.
* Packagers will have to branch (and sometimes maintain) needed packages from Fedora to EPEL. 

Do it now with the EPEL python34 (or a new python35) stack:
* packagers will have to create python3x packages in EPEL
* developers can start porting their apps now which gives them a longer window to port and perhaps less urgency 
* sysadmins will have to manage RHEL7 with python2 and RHEL7 with python3 web servers

Do it now with Fedora:
* developers can start porting their apps now which gives them a longer window to port and perhaps less urgency 
* Packagers still have to get packages running on python3 but not as many due to efforts from Fedora itself.
* sysadmins will have to manage RHEL7 with python2 and Fedora with python3 web servers.  Fedora has a different lifecycle so there's additional work involved here.

Waiting for RHEL is probably the least overall work but there is a drawback there.... porting applications to python3 is probably what will take the most time so the sooner you can get started on that the sooner you'll be able to stop supporting python2.

-Toshio 
_______________________________________________
infrastructure mailing list
infrastructure@xxxxxxxxxxxxxxxxxxxxxxx
http://lists.fedoraproject.org/admin/lists/infrastructure@xxxxxxxxxxxxxxxxxxxxxxx



[Index of Archives]     [Fedora Development]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux