Gunicorn is known as a Python WSGI HTTP Server for UNIX. But today the WSGI specification shows its limits and people wants more. This talk will introduce the new Gunicorn released in January with a new IPC library usable in others Python programs to handle the concurrency and support HTTP2.
Gunicorn handles the concurrency using a pre-fork worker model: workers are spawned processes managed by a main process. Until now there is no dialog between workers and the master which can trigger some issues like the thundering herd. To solve it and prepare gunicorn to support new protocols like HTTP2, a new IPC library has been specifically written in pure python. Mostly inspired from imsg in OpenBSD (but also Mojo), this new library is entirely written in Python and can be used outside of Gunicorn.
This talk will present the following:
1) The design of Gunicorn 1, its pros and cons 2) Description of the new IPC library how you can use it in your own projects 3) The design of Gunicorn 2 and its usage of the new IPC library, how it can do more than simply WSGI and HTTP 1.1.