Production Architecture

From Knowledge Commons
Jump to navigation Jump to search

This page contains notes on the architecture that will one day support hundreds of thousands of users in a wiki community.

Register Domain

Once we decide on a name.

DNS Hosting

I will host in my personal AWS account and transfer to the nonprofit once it exists.

Database

  • Platform: AWS RDS
  • Engine: MariaDB (MySQL)
  • Storage: xx GB (storage can be increased without any downtime)

Upload Storage

  • Platform: AWS S3

Web and Application

  • Platform: AWS Fargate / ECS
  • Container image: MediaWiki Docker
  • Instance class:
  • Storage: 50 GB
  • Multi-AZ: not at first

Load Balancer

  • AWS

Secrets Manager

  • Whenever possible, passwords and secret keys will be kept in AWS Secrets Manager.

Environments

The following environments will be built.

  • Development
    • All new enhancements will be added to the development environment
  • Testing
    • Completed features will be deployed to the test environment
    • A series of test scripts and procedures will be developed to be performed following each new deployment
  • Production
    • Once a release has passed all tests, it will be deployed to production

CI/CD Pipeline

This procedure will allow multiple developers to author and commit code. Automated procedures will move releases from Dev to Test, and then to Production.

Email and Productivity Suite

We will use Google G-Suite. Each account will be about $8 per month until the nonprofit has been formed and we can apply for a grant from Google for free accounts.