Many users plan to migrate database applications to container environments to enhance resource delivery efficiency. However, ensuring that both performance and storage availability meet database demands on container platforms like Kubernetes is not an easy task.
Recently, a futures institution built a Database Platform as a Service (DBPaaS) using IOMesh, our Kubernetes-native storage solution, to provide high performance and high availability for the database platform. With IOMesh, the DBPaaS has significantly increased the efficiency of resource application and delivery while reducing the operational and maintenance burden.
In this blog, we will share detailed user practices, explaining how to build DBPaaS and how to select the right storage solution for the platform.
This industry-leading futures company has gradually transitioned its IT infrastructure from physical servers to virtualization, cloud-native architecture, microservices, and distributed architecture. For the company’s IT infrastructure team, one of their primary responsibilities is to provide timely support to the business team, including quickly provisioning resources and maintaining system stability and reliability.
Initially, although the infrastructure team successfully delivered a significant amount of container resources and assisted the business team in deploying numerous containerized applications, most of these applications were stateless. The infrastructure team found it challenging to efficiently provision resources for stateful database applications. Key challenges include:
To meet the data service needs of various business applications and improve the efficiency of resource requests and delivery, the futures company decided to build a DBPaaS based on Kubernetes clusters. With this platform, the business team could independently apply for database services through a graphical user interface (GUI). Despite the infrastructure team's extensive experience in the cloud-native field, deploying databases in containers presented significant challenges, especially concerning data storage:
To address these questions, the infrastructure team decided to evaluate potential storage solutions for the DBPaaS.
The futures company decided to use an RDS database cloud platform (hereinafter referred to as "RDS"). Based on cloud-native technologies, the RDS platform can provide mainstream database services such as Oracle, MySQL, and Dameng.
Initially, the futures company outlined three potential storage options, each with its own drawbacks:
For the three solutions above, the futures company was satisfied with LocalPV’s performance but concerned about its availability. This created a dilemma between performance and storage data security, prompting the company to seek a storage solution that offered both advantages.
While researching various enterprise-grade cloud-native storage products, the company learned about IOMesh, our Kubernetes-native distributed storage solution. With a strong storage core, IOMesh provides high-performance data storage services for stateful applications, along with production-grade high-availability features and O&M support. After an in-depth evaluation, the company decided to test IOMesh's performance and reliability against LocalPV in supporting RDS.
Hardware configuration
Software version
In the test, we created 32C128G Dameng database clusters (1 primary and 1 standby), MySQL database clusters (1 primary, 1 standby and 1 secondary) and PostgreSQL database clusters (1 master and 2 standbys) respectively, and conducted stress tests via sysbench on each database based on LocalPV and IOMesh. The results showed that in the three database use cases, the performance of IOMesh was very close to that of Local PV, which exceeded the user's expectations.
In addition, to verify the reliability of IOMesh, the user simulated a node failure on the Damon database to verify the efficacy of database primary/backup switchover and master/backup cluster recovery.
In addition to the multi-replica strategy, IOMesh also provides second-level snapshot of PV, intelligent data recovery, and optimized Pod HA capabilities to enhance the reliability of container environment. For more information, please refer to: IOMesh Pod HA: Enhancing Kubernetes Cluster Availability.
Since the futures company was highly satisfied with IOMesh's performance and reliability in the tests, they ultimately decided to adopt IOMesh as the storage solution for the RDS platform. Currently, the company has deployed several IOMesh clusters in both production and test environments to provide high-performance and reliable storage support for RDS database services. With IOMesh and RDS, the company has built a DBPaaS that allows the business team to independently deploy database services in just three steps:
With IOMesh's superior performance, reliable data protection strategies and O&M-friendly features, the DBPaaS provides users with the following benefits:
Currently, the user's DBPaaS has been running stably for nearly a year with IOMesh's support. They are also leveraging IOMesh to support KubeVirt, providing unified storage services for both virtual machines and containers. Looking ahead, the company plans to expand the use of IOMesh clusters to support more critical business systems, messaging middleware, and other application scenarios. For more information on using IOMesh for persistent storage in KubeVirt, please refer to: Enhanced Performance and Availability: Using IOMesh for Persistent Storage in KubeVirt.