When we start building the Ticketing solution. Our main concerns were:
1- Highly Availability: we need the solution to be high available.
2- Fault Tolerance: the solution can't goes down for any reason. and we need to make it nearly 100% up all the time.
3- Scalability: the solution will server all tickets for the Saudi Season. expecting more than 1 Million users in the 1st year.
4- Security: the main focus point is the data security either at rest or in transit.
5- Performance: The solution needs the best performance from either the technology and the infrastructure.
6- Mobile Application: with Api Integration giving the customers seamless experience between the website and mobile application
7- Data Analysis: For Inspecting and transforming ad modelling the data and providing our customers with complete report
The Technology (.NET Core):
To get the best performance with secure environment the needs for .NET Core technology
We are using ASP.NET Core 3.1 Programming Language for 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 in 2017 and its latest update 3.1 was issued in 2020
The Infrastructure (AWS):
Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform, offering over 175 fully featured services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.
To address all above challenges the architect should follow the AWS 5 pillars of Well-Architected Framework for the multi-tier application of the ticketing using:
1) AWS RDS: with Multi A-Z 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) Security: addressing the share responsibility model between the AWS and us. we shared the security responsibility where AWS securing our infrastructure and giving us the tools to secure our data and application at rest and on transit.
6) S3 with Cloud Front: to server all static images for our users in high performance manner,.
7) AWS Shield & AWS WAF: Protection the Application from the DDOS attacks and most common security issues.
8) API Gateway: for all mobile application rest api requests for the website with caching layer features within the API Gateway.
9)Lambda: for common tasks and Serverless architecture with CloudWatch Events triggering the lambda function.
10) Redshift: integration between RDS , DMS and Redshift for Data Lake Project with the TicketMX (will be further explained in another blog)