Cloudformation TM Way Ahead
See original GitHub issueLast week, we saw a pretty significant performance improvement in the tasking manager. By changing gunicorn
to use threads instead of synchronous workers, the tasking manager is able to:
- Take on more requests, and complete them asynchronously in a shorter period of time.
- Use smaller and cheaper AWS instances
- Use a smaller and cheaper RDS instance
This also means that we’ll have more detailed metrics, and ways to monitor our stacks.
Next steps to wrap up the CloudFormation work
We have a few key decisions to make as we wrap up this migration.
Please weigh in with your thoughts on the following, @xamanu, @smit1678, @dakotabenjamin and the rest of @hotosm/tech-staff, so we can wrap up the CloudFormation migration in a way that makes the most sense.
- Upgrade to an ALB (Application load balancer): Currently, we are using an elastic load balancer. We can migrate to a more advanced “Application Load Balancer” to take advantage of better metrics and load balancer performance and customisation.
- Take a call on our deployment strategy: Moving to CloudFormation from ElasticBeanstalk would require us to change our deployment methods. Currently, our deploys are tied together tightly with CircleCI. This means, a code merge with the
develop
branch creates an automated deploy to our staging stack, and a code merge withmaster
creates an automated deploy to the production stack. After the switch, we have one of two options:- Easy: We would have to manually deploy to a staging stack using
cfn-config
and after testing the changes, manually deploy to a production stack usingcfn-config
. This would mean that we no longer do code merges. We always- Use
cfn-config
to deploy to thestaging
stack from the development branch, or the branch used to create a PR. (before the merge) - If things look good on
staging
, we merge the branch withmaster
, and deploy toproduction
. Anything merged withmaster
is always final, and in line with production. So, a merge withmaster
is always accompanied with a deploy toproduction
- Use
- Hard If we want to retain the automated deployment model we currently follow, we would have to build this with AWS Code Deploy, using AWS Code Config. I would prefer us going ahead with the easy deployment strategy for our first iteration, but document the process really well, so that anybody on the team is able to deploy.
- Easy: We would have to manually deploy to a staging stack using
- Spring cleaning Decide on maintaining EBS files and data. Should we dump, or keep?
- Cleanup old RDS snapshots and databases We have a ton of old snapshots, and databases that are stale. We can dump several of these.
- Spot instances We have a call with our AWS manager tomorrow, when we can make a decision about this. This will be a org-wide push, and will not be implemented for the first iteration of the tasking manager.
There are a few more items listed on https://github.com/hotosm/tasking-manager/issues/1353.
Issue Analytics
- State:
- Created 5 years ago
- Comments:9 (9 by maintainers)
Top Results From Across the Web
Deep Dive on AWS CloudFormation Macros to transform ...
AWS CloudFormation macros add custom operations to your templates, including iterations, string manipulations, and math operations.
Read more >Pulumi vs. AWS CloudFormation
Pulumi and AWS CloudFormation share some similarities, but there are many key differences. Learn about these major differences here.
Read more >AWS CloudFormation Benefits
Get a primer on Infrastructure-as-Code and learn why combining it with AWS CloudFormation will streamline your AWS environment.
Read more >AWS CDK vs CloudFormation
This blog compares CDK vs CloudFormation and how to choose. ... just starting out on your AWS journey, CloudFormation is the way to...
Read more >On Cloud 66 Series (Part 3): Getting Stacked with AWS ...
This time around, we're excited to share that Iridium is an official launch partner for the newly released AWS CloudFormation Modules on the ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
See https://github.com/hotosm/tasking-manager/pull/1396 for nearly finished ALB work
OK- I think this one is good to close but please reopen if there’s anything else