You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi @JordanP, it's important to known if this project could be considered a production-ready solution. Some companies have restrictions on using new frameworks till they become stable. My question is related to author's opinion and people that already use it. If it's not a production-ready project, what would you say that is missing/not good? I'm not planning to use items described on TODO list.
Production ready is a term which so much varies from one company to another, it can be hard for the authors to say "yeah, go ahead now, it's ready". I think you should start by having a good look at the whole code base, then the issue tracker then the frequency and size of new commits (these metrics are not specific to Sanic). You could get a first opinion, in addition to what the authors will reply here.
Perhaps a more concrete, specific question would be: are there any companies / projects out there using Sanic in production? If so, it would be nice to know for how long they've been using it, and what are their loads like. (Note that I am not necessarily asking which companies are using it. I'm fine for that info to stay confidential.)
As someone who is considering using Sanic for a new service (that is part of a paid product), I'd appreciate any anecdotes or data-points from folks production experience with Sanic, or pointers to such anecdotes.
(I'll also add that the 'Development Status' classifier on Python packages isn't very helpful. I couldn't find a definition of what each status is supposed to mean, and it appears that different people are using the same status to mean different things. For example, Flask is labeled as 'Development Status :: 4 - Beta', and yet I am personally aware of several companies that use it in production.)
We are using it in our company, mainly for asynchronous push notifications. But the internal API's are not stable yet, some things are messy #381. But we like to be on the edge, hence it works and it keeps us developers happy and still achieve what we want. So I guess depending on who will implement your code and how much they are willing to deal with breaking changes, in our personal experience, can say sanic is production ready. 😇
anaulin, r0fls, str610, hhstore, 38elements and 3 morejoelin109 and yagggi
We are actually using it in production for big companies in Brazil, where the Sanic application exchanges the messages between our ML algorithms and other APIs. Since it's a very simple application, we didn't have any issue running Sanic.
But actually I'm migrating to Python 2.7 and Flask to use AWS Lambda for this task in the next weeks (we are a startup, and don't have someone to keep the deployments very stable on Kubernetes).
r0fls, 38elements, lukefcunha, joelin109, Congee and 1 more
Maybe it makes sense to add a list of companies that are using it? If there are a few to start that would be willing to name themselves it would be nice to add it as a section to the docs in my opinion.
@anaulin Although I do not consider it production ready because it's a young project I'm using it since last month under a considerable load... so far no issues.
If you plan on using Sanic in production, do not use Sanic's multiprocessing code at all.
Instead, rely on supervisord or circus to start and keep multiple web server instances alive. You can configure such a daemon to periodically check on the health of each instance with an HTTP request and restart it when, not if it goes bad, for all web servers eventually become unstable after some number of requests for various reasons including memory leaks.
Activity
[-]Question: production ready?[/-][+]production ready?[/+]JordanP commentedon Feb 8, 2017
Question: what do you mean ?
jonathansp commentedon Feb 8, 2017
Hi @JordanP, it's important to known if this project could be considered a production-ready solution. Some companies have restrictions on using new frameworks till they become stable. My question is related to author's opinion and people that already use it. If it's not a production-ready project, what would you say that is missing/not good? I'm not planning to use items described on TODO list.
JordanP commentedon Feb 8, 2017
Production ready is a term which so much varies from one company to another, it can be hard for the authors to say "yeah, go ahead now, it's ready". I think you should start by having a good look at the whole code base, then the issue tracker then the frequency and size of new commits (these metrics are not specific to Sanic). You could get a first opinion, in addition to what the authors will reply here.
illume commentedon Feb 9, 2017
It says in the meta data (setup.py and pypi) this - Development Status :: 2 - Pre-Alpha.
anaulin commentedon Feb 10, 2017
Perhaps a more concrete, specific question would be: are there any companies / projects out there using Sanic in production? If so, it would be nice to know for how long they've been using it, and what are their loads like. (Note that I am not necessarily asking which companies are using it. I'm fine for that info to stay confidential.)
As someone who is considering using Sanic for a new service (that is part of a paid product), I'd appreciate any anecdotes or data-points from folks production experience with Sanic, or pointers to such anecdotes.
anaulin commentedon Feb 10, 2017
(I'll also add that the 'Development Status' classifier on Python packages isn't very helpful. I couldn't find a definition of what each status is supposed to mean, and it appears that different people are using the same status to mean different things. For example, Flask is labeled as 'Development Status :: 4 - Beta', and yet I am personally aware of several companies that use it in production.)
zkanda commentedon Feb 10, 2017
Hello,
We are using it in our company, mainly for asynchronous push notifications. But the internal API's are not stable yet, some things are messy #381. But we like to be on the edge, hence it works and it keeps us developers happy and still achieve what we want. So I guess depending on who will implement your code and how much they are willing to deal with breaking changes, in our personal experience, can say sanic is production ready. 😇
brunoalano commentedon Feb 14, 2017
We are actually using it in production for big companies in Brazil, where the Sanic application exchanges the messages between our ML algorithms and other APIs. Since it's a very simple application, we didn't have any issue running Sanic.
But actually I'm migrating to Python 2.7 and Flask to use AWS Lambda for this task in the next weeks (we are a startup, and don't have someone to keep the deployments very stable on Kubernetes).
r0fls commentedon Feb 16, 2017
Maybe it makes sense to add a list of companies that are using it? If there are a few to start that would be willing to name themselves it would be nice to add it as a section to the docs in my opinion.
anaulin commentedon Feb 16, 2017
@r0fls I agree that it would be nice, but I also can understand that not every company is comfortable speaking publicly about what's in their stack. 😄
frnkvieira commentedon Feb 24, 2017
@anaulin Although I do not consider it production ready because it's a young project I'm using it since last month under a considerable load... so far no issues.
xycloud commentedon Mar 3, 2017
watching
nszceta commentedon Mar 10, 2017
If you plan on using Sanic in production, do not use Sanic's multiprocessing code at all.
Instead, rely on supervisord or circus to start and keep multiple web server instances alive. You can configure such a daemon to periodically check on the health of each instance with an HTTP request and restart it when, not if it goes bad, for all web servers eventually become unstable after some number of requests for various reasons including memory leaks.
In fact, Instagram disables garbage collection entirely (
gc.set_threshold(0)
) and uses a supervisor to destroy and restart the entire Python process after it reaches a set memory usage threshold.https://engineering.instagram.com/dismissing-python-garbage-collection-at-instagram-4dca40b29172#.ovixdthq8
In essence, proper management of processes is in a way more important than the operation of the processes themselves.
18 remaining items