[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Setting-up the Debian Cloud Image Finder (DCIF ?) in production



Hi,

I've done some work on the initial packaging of our image finder. This
was trivial work, but more is needed.

Currently, the site at http://image-finder.debian.net/ runs on a single
OpenStack instance. Inside the instance, there 2 docker containers
running, one for postgress, one for the Flask application. What I would
like to do, is transform this into:
- One Octavia load-balancer using a VRRP floating IP [1]
- One postgress cluster, maybe with one master and one slave
- On the same postgress machines, setup the Flask application that
connects to this postgress cluster

With an anti-affinity on the instances, they would run on different
physical compute nodes, so this achieve full HA. Octavia can do the SSL
endpoint. (I'm not sure how we could reproduce this with DSA machines,
but that's at least my current plan...)

I would setup all of this either using Ansible or Puppet. My choice will
depend on what the team prefers, I don't really have a preference. As
the DSA team prefers puppet, this probably should be our choice, so we
prepare for migrating to some DSA machines later. Please voice your
opinion here. If we're to use MariaDB/Galera + puppet, then I can
package absolutely all, including the puppet modules for deploying the
image-finder.

With my first try, I could see that the application looks like working
under libapache-mod-wsgi-py3. I have some errors connecting to the DB,
and then it fails, but this was to be expected.

Now my current problem is:
1/ I never did postgressql clustering (I'm more a MariaDB/Galera guy).
How does one do it? Is it possible to do master-master connection? Since
the app is using SQLAlchemy, would it be possible to use MariaDB/Galera
instead of postgress?

2/ The Flask application is looking at its environment to get the DSN
connection URL, we need a configuration file instead.

3/ I have no idea how to feed this application with real data from our
generated Salsa images. How do I do that?

Could someone bring me some light on how to address the 3 points above?

Cheers,

Thomas Goirand (zigo)

[1] This is HA by itself, with 2 instances, each using HAProxy, and
sharing a single public IP address using the VRRP protocol, so this
provides full high availability.


Reply to: