At work we're using some microservices in pharo, implemented with Zink and Teapot, can't tell you much about performance because they are not being stress tested currently.
I'm using Traefik as a load balancer WITH sticky session on docker, mainly because it scales acording to the docker configuration (traefik can detect new docker instances and add them to the load balancer group)
To keep images running we use a docker swarm which is in charge of restarting them if they fail. Why? ease of use, it's easier to deploy and keep track of what is where.
https://docs.docker.com/engine/swarm/As i have no need for the sources file and removing it reduces the final image size it's removed, but you can add it (or prevent it's removal if you need)
If you need help with any of these, please ask (if it's urgent send me a direct mail, i don't read the Pharo list very often).