-
Notifications
You must be signed in to change notification settings - Fork 45
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
feat(multi region setup): deploy lambda perf into multiple region #804
base: main
Are you sure you want to change the base?
Conversation
…-east-1, us-west-1, eu-west-1, eu-west-3)
…esource for local deployment
Hey! Thanks for your contribution!
This way we would still have the complete historical data on git + have a lightweight multi-region single file for the UI WDYT? |
Might be nice yes ! Actually, json data is structured this way :
Do we add another dimension in the runtimeData like :
And for the ui-optimized one, the same but we remove the "i" field (the one with the init durations) ? Would that work for you ? |
I don't think there are region-specific runtimes so maybe :
would make more sense? |
Mmmh for the manifest yes that was my idea. But i was talking about the results, the one that are actually commited to the github repo. We need to specify the region somewhere. And each region will have its own results, that why I proposed this json structure 📏 If we want to join everything in one single file, we will need to think about a way of retrieving all of the results from a single lambda (which will access every dynamodb table I guess ?). What is your opinion on that ? |
What do you think about deploying the result builder into a single region ? Will need to have a proper role just for this one actually. My point is that I think that building the reports should work that way (for the multi region setup) :
This way we will have one central file which contains every data for one for multiple region. Now, if we want to shorten the data that we have to ease the frontend when loading (more than true if you go 100 iterations a runtime), we will need to do the same thing, but shrink to the least amount of data needed. WDYT about : runtimeData.push({ Are there any other field that we dont need for filtering/display purpose ? Another question that comes in mind, you wanna go with 100 iterations / runtime / memory ? If you bump it to 100, it's gonna go to 24.000, might need to increase this quotas (and hope you don't have other things using lambda in production at the same time lol) What do you think about all that also ? (lots of question, reinvent flight back was productive :D) |
Deploy everything into 4 different regions (to start).
Everything seem's to work, at least on my computer setup.
I don't know how you create the underlying infrastructure (s3 buckets for example or ECR repositories) but you might need to deploy them in the new region (i've taken us-west-1, us-east-1, eu-west-1, eu-central-1).
Also, there is a breaking change in the github page, be carefull, you might want to run everything when you deploy it for the first time to production (I've updated the way you fetch data from the JS script). As I am not really great at web development, I think there is place for improvement on this side... Making 1 http call everytime you change a filter is not that optimized (we only need one call if the region changes, because file is different).