chanzuckerberg / single-cell-data-portal

The data portal supporting the submission, exploration, and management of projects and datasets to cellxgene.
MIT License
64 stars 14 forks source link

Simplify deployment of single-cell-infra and corpora #348

Closed Bento007 closed 4 years ago

Bento007 commented 4 years ago

M1 Requirements:

  1. Use @maniarathi 's secret doc for deployment and rollback instructions for oncall engineer

============== Below to be done in M2

The current deployment processes looks something like this:

  1. Deploy corpora-data-portal/browser/backend.
  2. The resulting api-gateway ID is added to single-cell-infra/terraform/env/{stage}/corpora/variables.tf/api_gateway_id
  3. deploy single-cell-infra/terraform/env/{stage}/corpora
  4. run make upload-deloyment in corpora-data-portal/browser/backend to save the chalice state.
  5. Deploy corpora-data-portal/browser/frontend
brianraymor commented 4 years ago

@Bento007 - to work with @tihuan and @mweiden to clarify specific solution.

tihuan commented 4 years ago

Seems like we need more discussion to figure out what exactly we want to do in this issue, so we can't estimate this one yet?

I remember @mweiden had some thoughts on how we could simplify the deployment, @Bento007 can you help leading this issue and sync with Matt on the best approach to resolve this issue please?

Thank you!

mckinsel commented 4 years ago

Does this overlap with #469?

Bento007 commented 4 years ago

@mckinsel #469 depends on this one.

Bento007 commented 4 years ago

The initial deployment process has been simplified to the following steps:

  1. Deploy corpora-data-portal/browser/backend.
  2. Deploy single-cell-infra/terraform/env/{stage}/corpora secrets
  3. Populate secrets in AWS
  4. deploy single-cell-infra/terraform/env/{stage}/corpora
  5. run make upload-deloyment in corpora-data-portal/browser/backend to save the chalice state.
  6. Deploy corpora-data-portal/browser/frontend
  7. Deploy cloudfront-invalidator

While the initial setup process may seem cumbersome, the update process is easily automated using github actions.

Remaining work