blog: update django hosting in k8s
This commit is contained in:
parent
f4b4560a5f
commit
1e18675220
|
@ -46,27 +46,41 @@ might potentially even come from a private registry.
|
||||||
|
|
||||||
All of our Django applications are using Postgresql for storing
|
All of our Django applications are using Postgresql for storing
|
||||||
data. Postgresql is used by quite some other applications that we
|
data. Postgresql is used by quite some other applications that we
|
||||||
deployed in k8s, so this is a no-brainer - Django hosting at ungleich
|
deployed in k8s, so this is a no-brainer. Django hosting at ungleich,
|
||||||
even in k8s will be based on Postgresql.
|
even in k8s, will be based on Postgresql.
|
||||||
|
|
||||||
Static data of Django applications can easily be stored on a PVC. This
|
Static data of Django applications can easily be stored on a PVC. This
|
||||||
has the drawback that filesystem PVCs based on ceph block devices are
|
has the drawback that filesystem PVCs based on ceph block devices are
|
||||||
RWO and thus in case of restart, there will be a short downtime.
|
usually RWO and thus in case of restart, there will be a short downtime.
|
||||||
|
|
||||||
This is, generally speaking probably accepted, like a deploy would
|
This is, generally speaking probably accepted, like a deploy would
|
||||||
have caused a short downtime on a VM as well.
|
have caused a short downtime on a VM as well.
|
||||||
|
|
||||||
However alternatives would be a shared filesystem (such as
|
However alternatives would be a shared filesystem (such as
|
||||||
NFS/CephFS), but they are usually slower than dedicated block
|
NFS/CephFS), but they are usually slower than dedicated block
|
||||||
devices.
|
devices - so reliability can be traded against speed. Maybe we offer
|
||||||
|
both options or add an NFS server as an option to our Django Hosting.
|
||||||
|
|
||||||
|
|
||||||
## Django startup
|
## Django startup / processes
|
||||||
|
|
||||||
On startup, Django will need to ensure the database schema
|
On startup, Django will need to ensure the database schema
|
||||||
has been upgraded to the latest version. so something like `python
|
has been upgraded to the latest version. so something like `python
|
||||||
manage.py migrate` should probably be called in an InitContainer for
|
manage.py migrate` should probably be called in an InitContainer for
|
||||||
most apps.
|
most apps. We could specify that the customer provided container
|
||||||
|
supports multiple commands:
|
||||||
|
|
||||||
|
- /init - anything that needs to be done *once* on startup
|
||||||
|
- /run - something that runs the actual site
|
||||||
|
|
||||||
|
Some django apps however utilise Celery
|
||||||
|
or [Django Q](https://django-q.readthedocs.io/en/latest/)
|
||||||
|
for async tasks. We don't know which system is used, but it would be easy to
|
||||||
|
add a flag to the hosting whether or not a third container
|
||||||
|
should be utilised. Thus we could define:
|
||||||
|
|
||||||
|
- If async container is defined, enable it and run /async (or similar)
|
||||||
|
|
||||||
|
|
||||||
## Secrets
|
## Secrets
|
||||||
|
|
||||||
|
@ -88,8 +102,8 @@ write for each client/customer.
|
||||||
|
|
||||||
This probably includes:
|
This probably includes:
|
||||||
|
|
||||||
- Possible encrypted secrets
|
- (Possible encrypted) Secrets
|
||||||
- Image definition
|
- Image definitions
|
||||||
- Maybe even (part of) a pod definition?
|
- Maybe even (part of) a pod definition?
|
||||||
|
|
||||||
Some parameters are likely to be stored in a different, ungleich only
|
Some parameters are likely to be stored in a different, ungleich only
|
||||||
|
@ -98,3 +112,8 @@ writable repository, such as:
|
||||||
- Size of RAM
|
- Size of RAM
|
||||||
- Number of CPUs
|
- Number of CPUs
|
||||||
- Storage size (Postgresql, Static files, ...)
|
- Storage size (Postgresql, Static files, ...)
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
This document is still WIP and will be used as a basis for
|
||||||
|
deploying our own Django apps first.
|
Loading…
Reference in New Issue