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..." |
|||
| (2 intermediate revisions by the same user not shown) | |||
| 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 | |||
* 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. | |||
=== Smart Phone Apps === | |||
The GoalStriving project uses MediaWiki as the application platform. I intend to do some customizations to the UI and the application, but previously I was thinking that would be done in PHP, but I had not begun planning. Once the web version is stable, I would like to create an iPhone and Android version. Would Flutter/Dart be useful on this project? I want to remain aligned with the MediaWiki community, because I think that community would all be potential users or supporters of the project. [[Flutter Dart|View Response]] | |||