2018-05-15 Frontend Deployments tech plan
George Babey, Feanil Patel, Ari Rizzitano (Deactivated)
Build MVP
- Set up build environment
- npm, repos cloned, etc.
- Docker container
- In edx/configuration
- https://github.com/edx/configuration/tree/master/docker/build/go-agent-marketing may be a good starting place
- "go-agent-frontend-app"
- `FROM edxops/go-agent:latest`
- GoCD pipeline
- GoCD: deploy specific branch, must edit pipeline itself to change. Rigorous!!
- Maybe talk to Platform team also
- https://github.com/edx/edx-gomatic
- Good reference: https://github.com/edx/edx-gomatic/blob/master/edxpipelines/pipelines/deploy_marketing_site_production.py
- You can run a local GoCD and deploy the gomatic to your local GoCD
- Test suite
- e2e/smoke tests
- Contract based testing?
- Potential areas of exploration around JS-based e2e tests
- Tests should live alongside portal code
- Tests before S3 vs. tests after S3
- This might require changes to the docker container (e.g. browser dependencies)
- Set up buckets
- https://github.com/edx/terraform
- Terraform
- One bucket per environment deployment vs. one bucket vs. paths for different environments
- CDN configuration
- Start with Cloudflare defaults, evolve as necessary
- Subdomain setup
- customer.portal.edx.org vs. portal.edx.org/customer
- portal.edx.org/customer is easier operationally, but need to follow up with product
- customer.portal.edx.org vs. portal.edx.org/customer
Sandbox Deployment (Enterprise team, current sprint)
- Modify current sandbox job
- Store build assets for enterprise portal in a directory
- Point nginx at that directory
- CNAME job add extra subdomain for portal