-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Splitting services across containers #9
Comments
Besides being more towards the "spirit of Docker", does this approach have any big wins? One of the goals of the pS Docker effort was to make it really easy to use, and a single container was seen as a good way to make it accessible to people without a lot of Docker knowhow (also selfishly: easy to maintain / debug).
Dan Doyle
GlobalNOC Software Developer
1-812-856-3892
[email protected]
… On Nov 7, 2017, at 4:29 AM, Luke Kreczko ***@***.***> wrote:
Currently, all services are run in one big container:
https://github.com/perfsonar/perfsonar-testpoint-docker/blob/master/supervisord.conf <https://github.com/perfsonar/perfsonar-testpoint-docker/blob/master/supervisord.conf>
which is very different to Dockers microservices approach.
Do you have a list of services that only communicate via ports or the file system?
I am very tempted to break things apart using docker-compose to make them easier to monitor.
Is there interest for this?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#9>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AG5fpFXa6TB-MesRMsiUqvy5xGqqnmbQks5s0CLfgaJpZM4QUfTB>.
|
Generally, I do agree with you. From that perspective, the only thing I would add is a docker-compose file (instead of the Makefile) to explicitly specify the ports and to set volumes (for the database, logs, etc). However, from a certain point of view, there can be advantages. Secondly, having some of the services (e.g. postgresql, http) separate allows for simpler backups, scaling (unlikely to be needed for perfsonar), and port mapping. Such a split can be also beneficial for the actual service development, but that strongly depends on the developer base (a different mindset manifests when one realises that bits of the system could run on different machines). Anyway, I thought I will at least ask. I will be putting together a docker-compose file anyway in order to handle the generated data & configs outside the container itself (thus keeping it stateless). |
Probably the most beneficial thing to split out and use |
There are a couple of situations in the installation process where the configuration of the database server is changed and it has to be bounced for those changes to take effect. That might pose problems if the perfSONAR container can't reach into the PostgreSQL container and do that. |
Another benefit to using multiple containers: allow services to run with different network configurations. Example use case: I'm deploying perfSONAR to shared hosts. While prototyping, I got my setup working on dedicated hosts using docker's I did try to configure pscheduler to run on a port other than 443 inside the container ( https://github.com/perfsonar/pscheduler/wiki/Alternate-Server-Ports ) - but couldn't get that working. My short-term solution was to trade my owamp tests for plain rtt tests, which is what I did for now. If I could run owamp in its own container, using |
Horizontal scaling of central MA requires multiple instances pointing at the same DB.. Now it's not possible |
I'm not sure if your comment is a response to mine. Thanks! |
I believe he's talking about central measurement archives: |
Yup, sorry my brevity :) |
Thanks for clarifying! For my particular use-case, I'm deploying to vanilla docker hosts (not kubernetes), and I'm using the http archiver to send test results elsewhere. I might be mistaken, but I don't think the caveat's you've pointed out apply in this case. |
This would be relevant to running perfsonar in kubernetes. Which is of interest to some folks. Has anyone started work on a Helm chart as well? |
At least from the kubernetes perspective, heres some reasons having the option of having it broken up would be good:
I think a helm chart would be great because some Kubernetes clusters experience internal network issues. Being able to deploy perfsonar along with a tool node on each k8s node would allow much quicker detection of these sorts of issues. There is an untapped userbase here I think. |
Currently, all services are run in one big container:
https://github.com/perfsonar/perfsonar-testpoint-docker/blob/master/supervisord.conf
which is very different to Dockers microservices approach.
Do you have a list of services that only communicate via ports or the file system?
I am very tempted to break things apart using docker-compose to make them easier to monitor.
Is there interest for this?
The text was updated successfully, but these errors were encountered: