{
    "componentChunkName": "component---src-templates-case-study-detail-ts",
    "path": "/case-studies/24",
    "result": {"pageContext":{"next":{"id":25,"attributes":{"feature":true,"title":"Apache ShardingSphere & iQiyi: What's Database Mesh?","content":"> _To further understand application scenarios, enterprises’ needs, and improve dev teams’ understanding of Apache ShardingSphere, SphereEx launched the “Enterprise Visits” series. The second stop took us to the leading online streaming platform in Asia, iQiyi._\n\nIn November 2021, a team from the ShardingSphere community visited the innovation center of iQiyi for in-depth interactions and discussions with their counterparts from Beijing and Shanghai. During the meetup, Zhang Liang, Apache ShardingSphere PMC Chair and SphereEx Founder provided details on the latest Apache ShardingSphere community initiatives, its future development, and Database Mesh.\n\nDuring the meetup, iQiyi was especially interested in the capabilities and future plans of ShardingSphere and Database Mesh. here are some key takeaway questions from the visit:\n\n**Q: How does ShardingSphere manage its encryption keys?**\n\n[Encryption](https://shardingsphere.apache.org/document/current/en/features/encrypt/) key management is a capability subordinate to the encryption algorithm. When ShardingSphere needs an encryption key in its decryption, the key could be passed through properties configured by the encryption algorithm. In principle, encryption key management is not a capability of ShardingSphere but the job of the encryption algorithm.\n\n**Q:Is there a built-in cryptographic algorithm in ShardingSphere? Or is it done through outside cooperation?**\n\nStrictly speaking, ShardingSphere is not equipped with built-in capability. That’s because the pluggable architecture of ShardingSphere is divided into multiple layers, and the encryption module itself is only a capability of L2 of the pluggable architecture.\n\nThe encryption module only defines the top-layer encryption connector and the detailed encryption algorithm achieves the pluggable part of the connector. Currently, ShardingSphere supports several of the most commonly used open source algorithms, but it does not support any national cryptographic algorithm in particular.\n\nIntegrating an encryption algorithm is easy for developers: instead of changing source codes, all they need is a ShardingSphere encryption algorithm connector. ShardingSphere’s data encryption process is completely transparent to users and very easy to use.\n\n**What’s the future plan for Database Mesh?**\n\nDatabase Mesh is another ShardingSphere initiative. We are now planning to integrate Database Mesh through Sidecar. Sidecar will be used to manage traffic, while ShardingSphere will be used to manage to compute, and the underlying databases’ nodes to manage storage.\n\nSidecar’s and ShardingSphere functions overlap in part, but not completely. ShardingSphere has more than 190 modules, therefore it’s not possible to completely replace ShardingSphere with Sidecar. That’s why ShardingSphere empowers some lightweight capabilities to Sidecar, and Sidecar is equipped with the capabilities to buffer some traffic and requests.\n\nThe database computing capability is still processed by ShardingSphere, as it would consume too many application resources to run heavyweight computation via Sidecar for the distributed transaction, query and optimization of heterogeneous databases.\n\nIn the future, other Sidecar capabilities, such as management, SQL auditing and authorities, will be developed. In this way, Sidecar and ShardingSphere will have their own focuses, providing a better solution. \n\n**Sidecar is equivalent to a data plane. Will you combine the control plane with [Istio](https://istio.io/) or will you build the control plane separately?**\n\nShardingSphere uses DistSQL (Distributed SQL) to create rules for sharding, encryption and so on. ShardingSphere is already equipped with the control plane capability of Sidecar. Any capability achieved on Sidecar can be controlled by ShardingSphere’s [DistSQL](https://opensource.com/article/21/9/distsql). In the future, we will consider integrating Sidecar into the Istio ecosystem.\n\nSo far, Apache ShardingSphere with the release of a version of 5.0 has officially repositioned itself in a new field with the Database Plus concept at its core. In addition to the powerful incremental capability at the upper layer of databases, the Database Plus architecture also opens a highly extensible database ecosystem to developers and users, charting a new future development course for Apache ShardingSphere.\n\n**Apache ShardingSphere Open Source Project Links:**\n\n[ShardingSphere Github]\n(https://github.com/apache/shardingsphere/issues?page=1&q=is%3Aopen+is%3Aissue+label%3A%22project%3A+OpenForce+2022%22)\n\n[ShardingSphere Twitter](https://twitter.com/ShardingSphere)\n\n[Contributor Guideline](https://shardingsphere.apache.org/community/cn/contribute/)","date":"2022-01-10","author":"Yacine Si Tayeb","excerpt":"Also known as the Netflix of Asia, iQiyi is an ad-supported television and movie portal providing fully-licensed, high-definition media content.","metaDescription":null,"createdAt":"2022-09-26T07:52:25.745Z","updatedAt":"2022-09-28T02:38:53.315Z","publishedAt":"2022-09-27T07:00:31.240Z","locale":"en","caseStudiesType":{"data":{"id":9,"attributes":{"name":"Internet","createdAt":"2022-09-26T10:34:03.086Z","updatedAt":"2022-09-27T06:59:34.838Z","publishedAt":"2022-09-27T06:59:34.836Z","locale":"en"}}},"cover":{"data":{"id":389,"attributes":{"name":"iqiyi2.jpg","alternativeText":"iqiyi2.jpg","caption":"iqiyi2.jpg","width":500,"height":360,"formats":{"thumbnail":{"name":"thumbnail_iqiyi2.jpg","hash":"thumbnail_iqiyi2_3b19419f07","ext":".jpg","mime":"image/jpeg","width":217,"height":156,"size":5.22,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_iqiyi2_3b19419f07.jpg"}},"hash":"iqiyi2_3b19419f07","ext":".jpg","mime":"image/jpeg","size":12.26,"url":"https://official-media.sphere-ex.com/iqiyi2_3b19419f07.jpg","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-28T02:38:45.900Z","updatedAt":"2022-09-28T02:38:45.900Z"}}},"metaLogo":{"data":null},"localizations":{"data":[]}}},"prev":{"id":23,"attributes":{"feature":false,"title":"Apache ShardingSphere & Keep: Asia’s Leading Workout & Fitness Trainer App Maker","content":"For our community’s first visit, we went to Asia’s leading workout & fitness trainer app maker “Keep” headquarters at Vanke Times Center and shared our technologies with developers at Keep Co.\n\nWay back in 2018, Keep had already deployed ShardingSphere capabilities such as sharding and read/write splitting in multiple application scenarios for its diversified lines of business.\n\nWith the release of Apache ShardingSphere 5.0, the concept of Database Plus and pluggable architecture has to some extent, reshaped the ShardingSphere ecosystem. During our visit, we conducted in-depth exchanges and discussions with our counterparts at Keep.\n\nKeep engineers expressed great interest in Apache ShardingSphere 5.0. At the event, Juan Pan, Apache ShardingSphere PMC and SphereEx CTO, presented a full overview of the initial ShardingSphere architecture, user-end access, community building and [the Database Plus concept.](https://www.infoq.com/articles/next-evolution-of-database-sharding-architecture/)\n\n## Database Plus: Freeing DBAs and Developers\n\nDatabase Plus is a design concept of the distributed database system. By building a standard layer and ecosystem for use and interaction above fragmented heterogeneous databases, and by multiplying and expanding computing capabilities (e.g. data sharding, data encryption and decryption), all the interaction between applications and databases is oriented to the standard layer built by Database Plus. This results in shielding the differentiated impact of database fragmentation on upper layer transactions.\n\nPan believes that the global database industry has boomed thanks in large to the following two reasons:\n\n**Business side demand:**\n\nIn terms of business, to ensure sustained visits and transactions growth, underlying databases must respond to requests as soon as possible. In addition, the breakup of microservices and subsequent modification of corresponding databases also generate demands from the business side.\n\n**Operations & maintenance side demand:**\n\nDBAs are responsible for running the whole business and data system, including data security, backup, distributed governance, and API smart monitoring of data clusters.\nIf the middle layer can meet transaction traffic and understand the request, DBAs can modify the request accordingly and then more operations can be performed. Therefore, we need to strike a balance between the two sides of demand to carry transaction traffic and support database capacity building, thus creating an efficient, collaborative ecosystem between the two sides.\n\nFollowing the version 5.0 release, the sharding function is no longer at the core of Apache ShardingSphere. Actually, sharding has been “downgraded” to a secondary function in the ShardingSphere ecosystem. Following the Database Plus concept, Apache ShardingSphere has built a pluggable architecture ecosystem, enabling the middle layer to achieve more value-added capabilities.\n\n![ShardingSphere’s Database Plus Architecture\n](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c8kc9fdyp0n1kd3eo341.png)\n\nTaking data encryption and decryption as an example, we can see how they are generally done at the business layer because MySQL and other databases do not support encrypted algorithms themselves. This means encryption & decryption is only be achievable at application and business layers. However, this poses a problem if we consider complex online businesses that face considerable tasks when they upgrade their encryption algorithms.\n\nThe best solution to this problem is to encrypt and decrypt data at the middle layer. ShardingSphere-Proxy can be directly bound to databases, be placed at the middle layer between applications and underlying databases. ShardingSphere-proxy will feel “DB-like” by taking advantage of protocols that are compatible with different databases, thus deciding which node the SQL quest will fall on, letting upper layer applications be programmed for ShardingSphere, and shielding the impact of underlying databases. Data is in plaintext status when the transaction sends a request, but it will be encrypted after going through Proxy and decrypted when being retrieved.\n\n![ShardingSphere Encryption & Decryption Capability](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hkesryh371m8tzlqct3c.png)\n\nAs such, the ShardingSphere encryption and decryption process can be separated from the existing system of applications and databases and can be linked with special encryption algorithms, especially in the cases where a cipher machine is involved. ShardingSphere capabilities such as encryption can free significant amounts of DBAs’ and developers’ time, allowing them to focus more on businesses.\n\n\n## Apache ShardingSphere Open Source Project Links:\n\n[ShardingSphere Github](https://github.com/apache/shardingsphere)\n[ShardingSphere Twitter](https://twitter.com/ShardingSphere)\n[ShardingSphere Slack Channel](https://apacheshardingsphere.slack.com/ssb/redirect)\n\n","date":"2022-01-10","author":"Yacine Si Tayeb","excerpt":null,"metaDescription":"Keep is a mobile fitness community that offers a variety of training programs for different groups of people.","createdAt":"2022-09-26T07:48:54.261Z","updatedAt":"2022-09-27T07:00:22.104Z","publishedAt":"2022-09-27T07:00:22.099Z","locale":"en","caseStudiesType":{"data":{"id":9,"attributes":{"name":"Internet","createdAt":"2022-09-26T10:34:03.086Z","updatedAt":"2022-09-27T06:59:34.838Z","publishedAt":"2022-09-27T06:59:34.836Z","locale":"en"}}},"cover":{"data":{"id":344,"attributes":{"name":"keep.png","alternativeText":"keep.png","caption":"keep.png","width":880,"height":347,"formats":{"thumbnail":{"name":"thumbnail_keep.png","hash":"thumbnail_keep_d033ce5311","ext":".png","mime":"image/png","width":245,"height":97,"size":18.27,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_keep_d033ce5311.png"},"medium":{"name":"medium_keep.png","hash":"medium_keep_d033ce5311","ext":".png","mime":"image/png","width":750,"height":296,"size":83.73,"path":null,"url":"https://official-media.sphere-ex.com/medium_keep_d033ce5311.png"},"small":{"name":"small_keep.png","hash":"small_keep_d033ce5311","ext":".png","mime":"image/png","width":500,"height":197,"size":47.39,"path":null,"url":"https://official-media.sphere-ex.com/small_keep_d033ce5311.png"}},"hash":"keep_d033ce5311","ext":".png","mime":"image/png","size":24.11,"url":"https://official-media.sphere-ex.com/keep_d033ce5311.png","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T07:53:26.070Z","updatedAt":"2022-09-26T07:53:26.070Z"}}},"metaLogo":{"data":{"id":357,"attributes":{"name":"keep logo.png","alternativeText":"keep logo.png","caption":"keep logo.png","width":205,"height":204,"formats":{"thumbnail":{"name":"thumbnail_keep logo.png","hash":"thumbnail_keep_logo_ecc24449b4","ext":".png","mime":"image/png","width":157,"height":156,"size":13.7,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_keep_logo_ecc24449b4.png"}},"hash":"keep_logo_ecc24449b4","ext":".png","mime":"image/png","size":18,"url":"https://official-media.sphere-ex.com/keep_logo_ecc24449b4.png","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T09:00:55.470Z","updatedAt":"2022-09-26T09:00:55.470Z"}}},"localizations":{"data":[]}}},"article":{"id":24,"attributes":{"feature":false,"title":"Apache ShardingSphere & Sohu","content":"The Apache ShardingSphere community team visited Sohu.com headquarters for in-depth discussions with their counterparts at the internet giant. At the meet-up, Juan Pan, Apache ShardingSphere PMC and SphereEx CTO, elaborated on Apache ShardingSphere’s capabilities.\n\nSohu, Inc., an integrated Internet company with a rich history and comprehensive lines of business, uses ShardingSphere products in their multiple lines of business, such as social media and video services.\nDriven by ShardingSphere-JDBC and with ShardingSphere-Proxy as the container management platform, ShardingSphere provides support for Sohu in all aspects, helping Sohu relieve database traffic stress.\n\nAt the event, engineers from Sohu.com expressed great interest in Apache ShardingSphere 5.0. Juan Pan presented a full overview of ShardingSphere’s architecture, client end access, community building and the [Database Plus](https://dzone.com/articles/apache-shardingsphere) concept.\n\n## Navigate & Solve Industry Challenges\n\nDue to the complexity of enterprise database systems, and the heavy cost of databases, service providers are supposed to provide enterprises with mainstream database products as well as products and services that can meet multiple needs.\n\nFacing diverse users' needs and increasingly diversified products in the database market, one viable solution could be database deployment and functions with higher flexibility and scalability.\n\nBy creating upper-level standards and ecosystems for heterogeneous databases, Apache ShardingSphere provides diversified functions that can precisely meet enterprise needs. As an ecosystem consisting of multiple adapters, by using a hybrid deployment model of ShardingSphere-JDBC and ShardingSphere-Proxy, Apache ShardingSphere enables users to configure sharding strategies through one console and to flexibly create application systems that suit the needs in different scenarios. This allows engineers more freedom to build system architectures that could best suit the needs of their ongoing projects.\n\n![ShardingSphere’s Deployment Architecture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qmtr376g8hbr9ssz37z0.png)\n\nCentering around connections, incremental and pluggable features, and based on a pluggable architecture, Apache ShardingSphere creates a powerful kernel architecture in the form of a micro-kernel.\n\nBased on its powerful kernel capabilities, Apache ShardingSphere products can provide users with ideal solutions for distributed database, data security, database gateway, and [full-link stress testing](https://shardingsphere.medium.com/full-link-online-stress-testing-for-production-database-apache-shardingsphere-shadow-database-84f7cba56f99), helping increase the efficiency of enterprises and users.\n\n![Overview of Apache ShardingSphere’s Functions](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3fsgj8f7tf6b1rcq0ufl.png)\n\nWhen it comes to future optimization, Pan believes that some deficiencies remain in Apache ShardingSphere’s performance and this is particularly true for ShardingSphere-Proxy’s adaptor. \n\nIn the future, the community will double down on improving its kernel, minimizing business and data performance loss of the Proxy, improving routing and rewriting logic, reducing creating database objects, and avoiding excess young GC.\n\n**Apache ShardingSphere Open Source Project Links:**\n\n[ShardingSphere Github]\n(https://github.com/apache/shardingsphere/issues?page=1&q=is%3Aopen+is%3Aissue+label%3A%22project%3A+OpenForce+2022%22)\n\n[ShardingSphere Twitter](https://twitter.com/ShardingSphere)\n\n[Contributor Guideline](https://shardingsphere.apache.org/community/cn/contribute/)\n\n","date":"2022-01-10","author":"Yacine Si Tayeb","excerpt":"Sohu offers a network of web properties and community-based products and services for Chinese users.","metaDescription":null,"createdAt":"2022-09-26T07:50:57.763Z","updatedAt":"2022-09-27T07:00:26.583Z","publishedAt":"2022-09-27T07:00:26.580Z","locale":"en","caseStudiesType":{"data":{"id":6,"attributes":{"name":"Media","createdAt":"2022-09-26T10:29:40.567Z","updatedAt":"2022-09-27T06:59:40.008Z","publishedAt":"2022-09-27T06:59:40.006Z","locale":"en"}}},"cover":{"data":{"id":343,"attributes":{"name":"Sohu.jpg","alternativeText":"Sohu.jpg","caption":"Sohu.jpg","width":880,"height":460,"formats":{"thumbnail":{"name":"thumbnail_Sohu.jpg","hash":"thumbnail_Sohu_ba5ad984c2","ext":".jpg","mime":"image/jpeg","width":245,"height":128,"size":3.23,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_Sohu_ba5ad984c2.jpg"},"medium":{"name":"medium_Sohu.jpg","hash":"medium_Sohu_ba5ad984c2","ext":".jpg","mime":"image/jpeg","width":750,"height":392,"size":15.57,"path":null,"url":"https://official-media.sphere-ex.com/medium_Sohu_ba5ad984c2.jpg"},"small":{"name":"small_Sohu.jpg","hash":"small_Sohu_ba5ad984c2","ext":".jpg","mime":"image/jpeg","width":500,"height":261,"size":9.06,"path":null,"url":"https://official-media.sphere-ex.com/small_Sohu_ba5ad984c2.jpg"}},"hash":"Sohu_ba5ad984c2","ext":".jpg","mime":"image/jpeg","size":18.61,"url":"https://official-media.sphere-ex.com/Sohu_ba5ad984c2.jpg","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T07:53:26.009Z","updatedAt":"2022-09-26T07:53:26.009Z"}}},"metaLogo":{"data":{"id":358,"attributes":{"name":"sohu logo.png","alternativeText":"sohu logo.png","caption":"sohu logo.png","width":317,"height":159,"formats":{"thumbnail":{"name":"thumbnail_sohu logo.png","hash":"thumbnail_sohu_logo_46a734f7df","ext":".png","mime":"image/png","width":245,"height":123,"size":25.89,"path":null,"url":"https://official-media.sphere-ex.com/thumbnail_sohu_logo_46a734f7df.png"}},"hash":"sohu_logo_46a734f7df","ext":".png","mime":"image/png","size":10.38,"url":"https://official-media.sphere-ex.com/sohu_logo_46a734f7df.png","previewUrl":null,"provider":"strapi-provider-upload-s3-compat","provider_metadata":null,"createdAt":"2022-09-26T09:04:52.675Z","updatedAt":"2022-09-26T09:04:52.675Z"}}},"localizations":{"data":[]}}}}},
    "staticQueryHashes": []}