First of all, thanks for all the effort and the hard labor it took to bring good old Zope and Plone to Python 3!
We did the greater part of the migration work to bring our application to Python 3 and did not reach any greater hurdles.
Great job! In very good quality! But I must say, that was no supprise to me ;-).
It was already asked here, but it seems to me that this was in a very early state of this kind of setups:
There are some hints in Volto docs:
and Zope docs:
After reading this I'm not sure, which is the right way to go. Would be great if some of you can share their opinion!
Until now we are using 4teamwork buildout scripts for Zope2, and this scripts seem to work for Zope4/5 and Python3 widely.
In first tests I got some problems only with the implemented healthcheck which depends on ZServer unless I'm mistaken.
But I'm not sure, if it results in an optimal setup with WSGI, e.g. 4 threads in wsgi.ini for a ZEO-client is not optimal for a ZEO setup, is it?
Would be really helpful for us if some of you can share some experiences or general recommendations:
Standard installation is using Waitress, isn't it?
Do you use this pure-Python WSGI implementation in production?
Do you use PM2 or good old Supervisor?
How did you solve loadbalancing, over PM2 or good old haproxy?
Is implementing a healthcheck needed?
ftw.monitor utilizing zc.monitor is not working with WSGI.
Is ftw.publisher.monitor the new way to go?
Do you use more ZEO-Clients than before?
Would be great if some of you are willing to share the buildout.cfg of your latest production setups!
Thanks in advance
[buildout] extends = https://zopefoundation.github.io/Zope/releases/5.1/versions-prod.cfg https://raw.githubusercontent.com/4teamwork/ftw-buildouts/master/production.cfg https://raw.githubusercontent.com/4teamwork/ftw-buildouts/master/zeoclients/4.cfg https://raw.githubusercontent.com/4teamwork/ftw-buildouts/master/haproxy.cfg https://raw.githubusercontent.com/4teamwork/ftw-buildouts/master/single-thread.cfg ...
[server:main] paste.server_factory = plone.recipe.zope2instance:main use = egg:plone.recipe.zope2instance#main fast-listen = [0.0.0.0](tel:%E2%80%AA0.0.0.0%E2%80%AC):10601 threads = 4 ...