Skip to content

Changes for ops team support #18

@joshbryan-globus

Description

@joshbryan-globus

This issue is a document of things we should address to make operationalizing the stac transaction api for production easier. I've documented them here as a task list, but we can break them into individual issue if they are big enough to warrant.

  • For CI/CD (and as general good practice) we should add a test suite. Ideally being able to run that with a single command in CI would be good. E.g. pytest or make test or test.sh.
  • Since we will put the transaction (and search) API behind a load balancer, we should increase keepalive for uvicorn to greater than ALB default of 60. This AWS Post has some discussion, and examples of doing this with gunicorn can be found here
  • Anything that might need to be changed between deployment environments (e.g. test/staging and production environments) should be specified as environment variables. Many of the settings are now, but bootstrap server and topic stand out as things that will need to be configurable.
  • Log configuration. We will generally want access/audit logs written out to stdout/stderr so they can be shipped to cloudwatch. I don't see much intentional logging, besides this line that is commented out. We should make sure we are including things like transaction id in those logs. Additonally, formatting logs as json with e.g. python-json-logger will make searching logs much more usable in cloudwatch.

Metadata

Metadata

Labels

enhancementNew feature or request

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions