Production Architecture: Difference between revisions

Created page with "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) Upload Storage * Platform: AWS S3 Web and Application * Platform: AWS Fargate / ECS * Container image: MediaWiki Docker * Instance class: * Storage..."
 
No edit summary
Line 1: Line 1:
This page contains notes on the architecture that will one day support hundreds of thousands of users in a wiki community.
This page contains notes on the architecture that will one day support hundreds of thousands of users in a wiki community.


Register Domain
=== Register Domain ===
 
Once we decide on a name.
Once we decide on a name.


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


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


Upload Storage
=== Upload Storage ===
 
* Platform: AWS S3
* Platform: AWS S3


Web and Application
=== Web and Application ===
 
* Platform: AWS Fargate / ECS
* Platform: AWS Fargate / ECS
* Container image: MediaWiki Docker
* Container image: MediaWiki Docker
Line 26: Line 22:
* Multi-AZ: not at first
* Multi-AZ: not at first


Load Balancer
=== 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


* AWS
=== 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 (~$8 per user per month)