Hey a few thoughts –
By default answer was using sqlite and writing sessions to disk. This website is using mysql with redis-cache plugin for caching and sessions. I had issues with load balancing and horizontal scaling until switching to redis cache plugin. Probably due to file system latency when using a shared mount for reads/writes as the containers scaled up/down across worker nodes.
I modified the build steps for the UI so static assets (js, css, fonts) are uploaded to a cdn after the build. This also uses an ENV var as part that step so the js bundler knows where it will be loading files from:
# Build the UI.
PUBLIC_URL="https://cdn.godev.com/answer/ui/${COMMIT_HASH}/" make ui
# Upload the UI build to the CDN.
s3cmd put /workspace/ui/build/* s3://${DO_S3_CDN_BUCKET}/answer/ui/${COMMIT_HASH}/ --recursive
# Build the answer binary.
PUBLIC_URL="https://cdn.godev.com/answer/ui/${COMMIT_HASH}/" \
ANSWER_MODULE="/workspace" ./answer build \
--with github.com/apache/incubator-answer-plugins/connector-basic \
--with github.com/apache/incubator-answer-plugins/cache-redis \
--output /workspace/new_answer
They've also got an S3 storage plugin, but it's not enabled here right now. From what I can tell it was mainly for file attachments (file in posts, user avatars, branding, etc). It didn't handle resizing when I last tried so didn't enable it. Plan to revisit that when I've got time.
This website is also hosted in Eastern US only right now other than the additional points of presence for CDN files. Not sure where you're located, but that could have something to do with it as well. If there is ever enough traffic here to justify it, I'd probably setup geo DNS and add another k8s cluster in EU or Asia and split traffic that way.
This website has less content than those as well, so perhaps it could slow down eventually.
Here's a screenshot of regional latency on godev.com FWIW:
![](https://godev.com/uploads/post/5chyi687z87.png)