Ma3akApp is a comprehensive educational toolkit covering the Egyptian Ministry of Education curricula.
The application is designed to help students achieve their educational objectives in an easy-to-use format at the pace they choose.
When we start building the Ma3akApp.
Our main concerns were:
1- Highly Availability: we need the solution to be highly available.
2- Fault Tolerance: the solution can't go down for any reason. and we need to make it nearly 100% up all the time.
3- Scalability: the solution will serve all students worldwide. expecting more than 1 Million users in the 1st year.
4- Security: the main focus point is data security either at rest or in transit.
5- Performance: The solution needs the best performance from either the technology or the infrastructure.
6- Mobile Application: API Integration gives the customers a seamless experience between the website and mobile application
To address all the above challenges the architect should follow the AWS 5 pillars of Well-Architected Framework for the multi-tier application using:
1) AWS RDS: with Multi A-Z and read replica giving us Highly available with fail-over capabilities.
2) Route 53: for Highly DNS Management Service.
3) ELB Application Load Balancer: to distribute the loads to different EC2.
4) Auto Scaling: for elasticity and scalability: the number of running EC2 can scale out and scale in automatically to adapt the running servers with the demands.
5)MediaConvert and MediaPackage: Converting, handling videos, and managing the quality depending on the internet connection on the fly.
6) API Gateway: for all mobile applications rest API requests for the website with caching layer features within the API Gateway.
7)Lambda: for common tasks and Serverless architecture.
8)StepFunction: To orchestrate all the Lambda with CloudWatch Events triggering the lambda function.
9) Security: addressing the shared responsibility model between AWS and us. we shared the security responsibility where AWS secured our infrastructure and gave us the tools to secure our data and application at rest and in transit.
10) S3 with Cloud Front: to serve all static images for our users in a high-performance manner.
The Technology (.NET Core):
To get the best performance for a secure environment the need for .NET Core technology
We are using ASP.NET Core 5 Programming Language for the below advantages:
- Security: It is from the .NET family with the highest protection of sites from any attempts to hack.
- Speed: It is 859 times faster than ASP.NET
- Modernity: It is the latest language released and its latest update was issued in 2020