123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- .. spelling::
-
- Memcached
- Redis
- Sorl
-
- ===============
- Deploying Oscar
- ===============
-
- Oscar is a just a set of Django apps - it doesn't have any special deployment
- requirements. That means the excellent Django docs for `deployment`_ should be
- your first stop. This page adds some additional tips based on experience gained
- from running Oscar projects.
-
- Performance
- -----------
-
- Setting up caching is crucial for a good performance. Oscar's templates are
- split into many partials, hence it is recommended to use the
- `cached template loader`_. Sorl also will hit your database hard if you run it
- without a cache backend.
-
- If your memory constraints are tight and you can only run one Python worker,
- LocMemCache will usually outperform external cache backends due to the lower
- overhead. But once you can scale beyond one worker, it might make good sense to
- switch to something like Memcached or Redis.
-
- Blocking in views should be avoided if possible. That is especially true for
- external API calls and sending emails. Django's supports different email
- backends to allow for switching out the blocking SMTP backend to a custom
- non-blocking solution. Possible options are storing emails in a database or
- cache for later consumption or triggering an external worker, e.g. via
- `django-celery`_. `django_post-office`_ works nicely.
-
- For backwards-compatibility reasons, Django doesn't enable database connection
- pooling by default. Performance is likely to improve when enabled.
-
- Security
- --------
-
- Oscar relies on the Django framework for security measures and therefore no
- Oscar specific configurations with regard to security are in place. See
- `Django's guidelines for security`_ for more information.
-
- `django-secure`_ is a nice app that comes with a few sanity checks for
- deployments behind SSL.
-
- Search Engine Optimisation
- --------------------------
-
- A basic example of what a sitemap for Oscar could look like has been added
- to the sandbox site. Have a look at ``sandbox/urls.py`` for inspiration.
-
- .. _deployment: https://docs.djangoproject.com/en/stable/howto/deployment/
- .. _`Django's guidelines for security`: https://docs.djangoproject.com/en/stable/topics/security/
- .. _`cached template loader`: https://docs.djangoproject.com/en/stable/ref/templates/api/#django.template.loaders.cached.Loader
- .. _django-celery: http://www.celeryproject.org/
- .. _django-secure: https://pypi.python.org/pypi/django-secure
- .. _django_post-office: https://github.com/ui/django-post_office
|