Skip to content

Conversation

erichaberkorn
Copy link
Contributor

This shouldn't be merged.

Changes proposed in this PR:

  • Setup a performance testing framework. See the README for more details.

How I've tested this PR:

I've run a bunch of tests as described in the README.

How I expect reviewers to test this PR:

Checklist:

  • Tests added
  • CHANGELOG entry added

Copy link

@pglass pglass left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! Not fully reviewed, so just a few initial thoughts.

consul_ecs_image = var.consul_ecs_image
}

# TODO These are annoying because it frequently blocks refreshes and deletes. Is there a better way to do this?
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it help to create an "allow all" intention so that it isn't dependent on the task definitions?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved it there. It's more permissive, but that doesn't matter for these tests.

source = "github.com/erichaberkorn/consul-global-scale-benchmark/infrastructure/consul-server-ec2"
project = local.name
vpc_id = module.vpc.vpc_id
subnet_ids = module.vpc.public_subnets
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is on public subnets, are the servers exposed to the public internet? And if so, are they restricted from the public internet somehow (by security group / ingress ip or etc)?

Just double checking that the Consul servers aren't subject to any extra/unknown load from "random hackers" trying to get into our EC2 instances.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I moved the Consul servers to a private subnet


tags = var.tags
capacity_provider_strategy {
capacity_provider = "FARGATE_SPOT"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One concern with spot capacity is it can be pulled out from under us (interrupting our tasks / etc).

Spot capacity seems useful to minimize cost while dev/testing the performance test itself, but when running the test proper, we should probably not use spot capacity to ensure consistency from test run to test run?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm going to try out spot instances to see if we can save some money. If they start causing problems, we can go back to regular instances.

lkysow
lkysow previously approved these changes Nov 22, 2021
Copy link
Contributor

@lkysow lkysow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really good!

@hashicorp-cla
Copy link

hashicorp-cla commented Mar 12, 2022

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants