Ik ben (hobbymatig) een applicatie aan het ontwikkelen in Python. Puur om mijn kennis op peil te houden en problemen op te lossen waar ik tegen aan ga lopen.
Ik heb 2 scripts (consumer.py en producer.py). Beide maken gebruik van een Class (in data_processor.py).
Beide scripts (consumer en producer) doen een import van config.py (waar in rabbitmq, mariadb, api, en andere credentials en variabelen in staan).
producer.py: haalt data op van een API (json) en stuurt dit door naar RabbitMQ.
consumer.py: haalt data op van RabbitMQ en zet dit in MariaDB.
Ik wil zowel de producer als de consumer als een container draaien. De producer zal 1x draaien, de consumer 3 of 4 keer naast elkaar.
Volgens mij zijn er 2 manieren hoe ik dit het beste kan aanpakken, namelijk:
1. Een base image maken (de base hiervoor is een python image). In deze image de data_processor.py en config.py opnemen. Vervolgens 2 nieuwe images maken welke als base deze gecreëerde image gebruiken, 1 image voor de producer en 1 image voor de consumer.
2. Van de Class (in data_processor.py) een module maken. Twee images maken (welke als base Python hebben), in de images dmv pip install <mijn module> de module installeren.
Nadeel van optie 1 is dat je bij iedere wijziging aan data_processor.py de base image opnieuw moet bakken om vervolgens de 2 andere images die hierop gebaseerd zijn ook opnieuw bakken.
Nadeel van optie is 2 misschien dat je aan versioning moet doen, de module steeds opnieuw moet bakken en je Containerfiles moet bijwerken.
Ik ben benieuwd naar jullie meningen/ervaringen/suggesties/tips. Dank
Ik heb 2 scripts (consumer.py en producer.py). Beide maken gebruik van een Class (in data_processor.py).
Beide scripts (consumer en producer) doen een import van config.py (waar in rabbitmq, mariadb, api, en andere credentials en variabelen in staan).
producer.py: haalt data op van een API (json) en stuurt dit door naar RabbitMQ.
consumer.py: haalt data op van RabbitMQ en zet dit in MariaDB.
Ik wil zowel de producer als de consumer als een container draaien. De producer zal 1x draaien, de consumer 3 of 4 keer naast elkaar.
Volgens mij zijn er 2 manieren hoe ik dit het beste kan aanpakken, namelijk:
1. Een base image maken (de base hiervoor is een python image). In deze image de data_processor.py en config.py opnemen. Vervolgens 2 nieuwe images maken welke als base deze gecreëerde image gebruiken, 1 image voor de producer en 1 image voor de consumer.
2. Van de Class (in data_processor.py) een module maken. Twee images maken (welke als base Python hebben), in de images dmv pip install <mijn module> de module installeren.
Nadeel van optie 1 is dat je bij iedere wijziging aan data_processor.py de base image opnieuw moet bakken om vervolgens de 2 andere images die hierop gebaseerd zijn ook opnieuw bakken.
Nadeel van optie is 2 misschien dat je aan versioning moet doen, de module steeds opnieuw moet bakken en je Containerfiles moet bijwerken.
Ik ben benieuwd naar jullie meningen/ervaringen/suggesties/tips. Dank
EU DNS: 86.54.11.100