Exisitng database is not scalable and performant both from logical and physical design structure. This infrastructure leads to a single point of failure. Application and Database are running on the same Server (AWS EC2). As the existing setup is running on tightly coupled mode therefore security, scalability, performance and operation excellence are major challenges. Below points outline in detail.
Here are some of the Challenges in existing Database (MySQL RDBMS):
-
When dealing with highly volatile data – Customer's current database size and complexity is less. However for large transactions, complex stored procedures and functions would lead to performance impact and scalability of using MySql.
-
MySQL is a product of Oracle. Currently Oracle offers it as open source but in future it might have a chance to become a commercial database. From a cost optimization perspective it would be a potential risk for Customer.
-
For large scale databases and complex applications, leveraging PostgreSql database is a better solution because of its logical and physical design. Customer's new application is complex in nature and a mix of microservice based hence Postgresql would be a better choice and not Mysql.
-
MySql is not ideal for AI and vector database solutions. If Customer is planning to integrate AI with their upcoming new application then existing MySql will not be able to handle this need. Postgresql Pgvector extension supports vector databases.
-
As the amount of data increases, MySql’s inability to handle parallel processing leads to a lack of scalability in the search function. Customer's new application might need parallel processing as the number of their subscribers/customers will increase. Parallel processing will eliminate CPU waiting or query processing time.
-
The existing database and query pattern consumes high CPU and Memory creates IO issue and Memory pressure.
-
The connection between application and database is being done through hard code database server credential. The credentials of the database are exposed in application web config in clear text (no encryption) which is vulnerable from a security perspective.
-
Database data set is getting stored on unencrypted storage (AWS EBS volume). No data at rest present. It leads to high risk from internal/external threats.
-
From a physical design perspective the database is not scalable. Write and Read all hits coming to the same node. Hence, there would be a tendency of waiting, blocking, IO, CPU and Memory pressure. Any sort of reporting performance will be degraded.
-
AS IS database does not have any High Availability and Disaster Recovery in place. Exisitng Database Overview
Exisitng Databsse Analysis
Type of Database |
Relational database |
Database |
MySQL |
Version |
8.0.33 |
DB Architecture |
Single database |
Size of database |
10 GB |
Schema |
Single |
Number of tables |
200 |
Data Encryption |
No TDE, No Data at rest and Data in transit |
Database Monitoring |
No DAM or monitoring is being placed |
Access Control |
No Role based access control exists. Developers are connecting through MyPhpAdmin which is not recommended. Version control is not there. |
Level of Normalization |
Below moderate |