<html lang="en">
<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
    <title>ShardingSphere-on-Cloud</title>
    <link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png" />
    <link rel="manifest" href="/favicon/site.webmanifest" />
    <link rel="mask-icon" href="/favicon/safari-pinned-tab.svg" color="#5bbad5" />
    <meta name="msapplication-TileColor" content="#da532c" />
    <meta name="theme-color" content="#ffffff" />
    <meta property="og:title" content="ShardingSphere-on-Cloud" />
    <meta property="og:description" content="Take Apache ShardingSphere to the cloud with automated deployment scripts to virtual machines in AWS, Google Cloud Platform, Alibaba Cloud, CloudFormation Stack templates, and Terraform one-click deployment scripts or Helm Charts, Operators, automatic horizontal scaling, and other tools for Kubernetes." />
    <meta property="og:type" content="website" />
    <meta property="og:url" content="https://shardingsphere.apache.org/oncloud" />
    <meta property="og:image" content="https://shardingsphere.apache.org/images/base/logo.png" />
    <meta name="twitter:card" value="summary" />
    <meta name="twitter:site" value="@ShardingSphere" />
    <!-- <link rel="icon" href="/favicon/favicon-32x32.png"> -->
    <link rel="stylesheet" href="./style/style.css?20230630">
      
</head>
<body>
    <header>
        <div class="orgin-halo"></div>
        <div class="blue-halo"></div>
        <div class="ico-1"></div>
        <div class="ico-2"></div>
        <div class="ico-3"></div>
        <div class="ico-4"></div>
        <nav>
            <div class="wrap">
                <img src="images/LOGO.png" alt="logo" class="logo"/>
                <div class="links">
                    <div class="menu">
                        <div class="i-drop-btn">
                            <span>Get Started</span>
                            <span class="arrow"></span>
                            <div class="i-drop-pop">
                                <a href="https://shardingsphere.apache.org/oncloud/current/en/quick-start/aws-quick-deployment/" target="_blank">CloudFormation</a>
                                <a href="https://shardingsphere.apache.org/oncloud/current/en/quick-start/kubernetes-quick-deployment/" target="_blank">HelmCharts</a>
                            </div>
                        </div>
                        <div class="i-drop-btn">
                            <span>Document</span>
                            <span class="arrow"></span>
                            <div class="i-drop-pop">
                                <a href="https://shardingsphere.apache.org/oncloud/current/en/overview/" target="_blank">current</a>
                                <a href="https://shardingsphere.apache.org/oncloud/0.3.0/en/overview/" target="_blank">0.3.0</a>
                                <a href="https://shardingsphere.apache.org/oncloud/0.2.0/en/overview/" target="_blank">0.2.0</a>
                                <a href="https://shardingsphere.apache.org/oncloud/0.1.2/en/overview/" target="_blank">0.1.2</a>
                                <a href="https://shardingsphere.apache.org/oncloud/0.1.1/en/overview/" target="_blank">0.1.1</a>
                            </div>
                        </div>
                        <div class="i-drop-btn">
                            <span>Community</span>
                            <span class="arrow"></span>
                            <div class="i-drop-pop">
                                <a href="https://github.com/apache/shardingsphere-on-cloud/blob/main/CONTRIBUTING.md" target="_blank">Get Involved</a>
                                
                                <a href="https://shardingsphere.apache.org/community/en/team/" target="_blank">Team</a>
                                
                                <!-- <a href="https://github.com/apache/shardingsphere-on-cloud/wiki" target="_blank">Wiki</a> -->
                                
                                <a href="https://github.com/apache/shardingsphere-on-cloud" target="_blank">GitHub</a>
                                
                                <a href="https://github.com/apache/shardingsphere-on-cloud/issues" target="_blank">Issue Tracker &nbsp;</a>
                                
                                <!-- <a href="https://shardingsphere.apache.org/community/en/powered-by/" target="_blank">Powered By</a>
                                
                                <a href="https://shardingsphere.apache.org/community/en/involved/subscribe/" target="_blank">Mailing List</a> -->
                                
                                <a href="https://twitter.com/ShardingSphere" target="_blank">Twitter</a>
                                
                                <a href="https://apacheshardingsphere.slack.com/messages/C026MLH7F34" target="_blank">Slack</a>
                                  
                            </div>
                        </div>
                        <div class="i-drop-btn">
                            <span>ASF</span>
                            <span class="arrow"></span>
                            <div class="i-drop-pop">
                                <a href="https://www.apache.org" target="_self">Foundation</a>
                                <a href="https://www.apache.org/licenses/" target="_self">License</a>
                                <a href="https://www.apache.org/events/current-event" target="_self">Events</a>
                                <a href="https://shardingsphere.apache.org/community/en/security/" target="_self">Security</a>
                                <a href="https://www.apache.org/foundation/sponsorship.html" target="_self">Sponsorship</a>
                                <a href="https://www.apache.org/foundation/thanks.html" target="_self">Thanks</a>
                            </div>
                        </div>
                        <!-- <a href="#community">Community</a> -->
                    </div>
                    <div class="lang">
                        <a href="index_zh.html">CN</a>
                        <span>|</span>
                        <a class="active" href="index.html">EN</a>
                    </div>
                </div>
                <div class="iconMenu"></div>
            </div>
        </nav>
        <div class="overview">
            <div class="wrap">
                <h2>ShardingSphere-on-Cloud</h2>
                <p class="sub-tit">Take Apache ShardingSphere to the Cloud</p>
                <div class="con">
                    <p>A collection of tools & best practices including automated deployment scripts to virtual machines in AWS, Google Cloud Platform, Alibaba Cloud, CloudFormation Stack templates, and Terraform one-click deployment scripts.</p>
                    <p>Helm Charts, Operators, automatic horizontal scaling, and other tools for the Kubernetes cloud-native environment are also included.</p>
                </div>
                <div class="button">
                    <a href="https://shardingsphere.apache.org/oncloud/current/en/quick-start/" target="_blank">Get Started</a>
                </div>
            </div>
        </div>
    </header>
    <div class="features">
        <div class="wrap">
            <h3>Features</h3>
            <div class="con">
                <div class="item">
                    <img src="./images/one-click.png" />
                    <p class="tit">Kubernetes DevOps</p>
                    <p>Achieve seamless Kubernetes DevOps with ShardingSphere's advanced features. Effortlessly deploy ShardingSphere Proxy on Kubernetes with one-click deployment using Helm Charts or leverage Operator-based deployment for automatic DevOps and simplified management.
                    </p>
                </div>
                <div class="item">
                    <img src="./images/Automatic.png" />
                    <p class="tit">Cloud Deployment</p>
                    <p>Accelerate your cloud deployment with our Cloud Deployment feature. Experience rapid deployment of ShardingSphere Proxy using AWS CloudFormation and effortlessly deploy Terraform-based ShardingSphere Proxy in your AWS environment.
                    </p>
                </div>
                <div class="item">
                    <img src="./images/AWS.png" />
                    <p class="tit">Compute-storage CRD for Data on K8S</p>
                    <p>Seamlessly integrate compute and storage resources using CRD in Kubernetes, simplifying interface extension with Java SPI and WebAssembly for enhanced performance and flexibility.
                    </p>
                </div>
                <div class="item">
                    <img src="./images/Terraform.png" />
                    <p class="tit">Automatic Horizontal Scaling</p>
                    <p> Effortlessly scale resources with ShardingSphere's custom metrics autoscaling on Kubernetes and AWS. Achieve optimal resource utilization with automatic horizontal scaling and efficiently handle traffic fluctuation.
                    </p>
                </div>
                <div class="item">
                    <img src="./images/Horizontal Scaling.png" />
                    <p class="tit">Load Balancing & Readiness</p>
                    <p> Achieve seamless proxy connection readiness behind the load balancer using ShardingSphere. Experience enhanced connectivity and reliable load balancing with this advanced feature.
                    </p>
                </div>
                <div class="item">
                    <img src="./images/Load Balancing.png" />
                    <p class="tit">Observability</p>
                    <p>Gain deep insights into your distributed database environment with ShardingSphere-on-Cloud's Observability feature. Effortlessly monitor and analyze performance, health, and metrics in real-time. Empower your data management with enhanced control and decision-making capabilities.
                    </p>
                </div>
            </div>
        </div>
    </div>

    <!-- design philosophy -->
    <section id="philosophy" class="philosophy">
        <div class="wrap">
            <h3>Scenarios</h2>

            <div class="con-detail">
                <div class="tab-nav">
                <ul>
                    <li class="on">Cloud Native</li>
                    <li>Database Kubernetes DevOps</li>
                    <li>Multi-Cloud Open Source</li>
                </ul>
                </div>
                <div class="con-list">
                <div class="con-item show">
                    <h4>Cloud Native</h4>
                    <div class="con-item-detail">
                    <ul>
                        <li>Unleash the potential of Cloud Native Apache ShardingSphere - the ultimate solution for scalable and efficient data management in the cloud. </li>
                        <li>Seamlessly integrate with cloud infrastructure, enabling effortless deployment, auto-scaling, and high availability. </li>
                        <li>Experience the future of data management with Cloud Native Apache ShardingSphere.</li>
                    </ul>
                    <img src="./images/Cloud Native.png" />
                    </div>
                </div>

                <div class="con-item">
                    <h4>Database Kubernetes DevOps</h4>
                    <div class="con-item-detail">
                    <ul>
                        <li>Supercharge your database with ShardingSphere's seamless integration with Kubernetes (K8S). </li>
                        <li>Effortlessly migrate your database to K8S for enhanced flexibility, scalability, and resilience. </li>
                        <li>Unlock the full potential of your data management strategy with ShardingSphere's advanced features in a K8S environment.</li>   
                    </ul>
                    <img src="./images/Database Kubernetes DevOps.png" />
                    </div>
                </div>

                <div class="con-item">
                    <h4>Multi-Cloud Open Source</h4>
                    <div class="con-item-detail">
                    <ul>
                        <li>Seamlessly manage data across multiple cloud platforms while enjoying the benefits of transparency and customization.</li>
                        <li>Experience the best of both worlds with ShardingSphere: multi-cloud flexibility and open-source innovation.</li>   
                    </ul>
                    <img src="./images/Multi-Cloud Open Source.png" />
                    </div>
                </div>
                </div>
            </div>
        </div>    
    </section>


    <div class="core">
        <div class="wrap">
            <h3>Open Source, Standardized & Consistent</h3>
            <div class="con">
                <img src="./images/Group 1036.png?20230630" />
                <img src="./images/Group 1037.png?20230630" />
                <img src="./images/kubebuiler.png?20230630" />
                <img src="./images/Group 1041.png?20230630" />
                <img src="./images/Group 1040.png?20230630" />
                <img src="./images/Group 1039.png?20230630" />
            </div>
        </div>
    </div>
    <!-- <div class="community" id="community">
        <div class="wrap">
            <h3>Community</h3>
            <div class="content">
                <p>
                    <span>Mailing List</span>
                    <a href="https://groups.google.com/g/database-mesh" target="_blank">https://groups.google.com/g/database-mesh</a>
                </p>
                <p>
                    <span>Dev Meetings</span>
                    Bi-weekly (Starting Feb 16th, 2022), Wednesday 9:00AM PST
                </p>
                <p>
                    <span>Dev Meetings Invite</span>
                    <a href="https://meet.google.com/yhv-zrby-pyt" target="_blank">https://meet.google.com/yhv-zrby-pyt</a>
                </p>
                <p>
                    <span>APAC Friendly Dev Meetings</span>
                    Bi-weekly APAC (Starting April 27th, 2022), Wednesday 9:00PM GMT+8
                </p>
                <p>
                    <span>APAC Friendly Invite</span>
                    <a href="https://meeting.tencent.com/dm/6UXDMNsHBVQO" target="_blank">https://meeting.tencent.com/dm/6UXDMNsHBVQO</a>
                </p>
                <p>
                    <span>Meeting notes</span>
                    <a href="https://bit.ly/39Fqt3x" target="_blank">https://bit.ly/39Fqt3x</a>
                </p>
            </div>
        </div>
    </div> -->
    <footer>
        <div class="wrap">
            <div class="links">
                <a href="https://github.com/apache/shardingsphere-on-cloud"><img src="./images/github.svg" /> Github</a>
                <a href="https://twitter.com/ShardingSphere"><img src="./images/twitter.svg" /> Twitter</a>
                <a href="https://app.slack.com/client/T026JKU2DPF/C026MLH7F34"><img src="./images/slack.svg" /> Slack</a>
                <a href="https://medium.com/@shardingsphere"><img src="./images/medium.svg" /> Medium</a>
                <a href="https://www.linkedin.com/showcase/apache-shardingsphere/"><img src="./images/linkedIn.png" /> LinkedIn</a>
            </div>
            <div class="copyright">
                <div class="logos">
                    <a href="https://www.apache.org/foundation/contributing.html">
                    <img src="./images/base/support-apache.png" alt="Apache Support Logo">
                    </a>
                    <a href="https://www.apache.org/">
                    <img src="./images/base/asf_logo.svg" alt="The Apache Software Foundation">
                    </a>
                </div>
        
                <span class="text">
                    Copyright © 2018-2023, Apache ShardingSphere, ShardingSphere,
                    Apache, the Apache feather logo, and the Apache ShardingSphere
                    project logo are either registered trademarks or trademarks of The
                    Apache Software Foundation in the United States and other
                    countries.
                </span>
                
            </div>
        </div>
    </footer>

    <div class="mobileMenu">
        <header>
            <img src="images/LOGO.png" />
            <div class="close"></div>
        </header>
        <!-- <div class="mobile-menu-list">
            <a href="https://shardingsphere.apache.org/oncloud/current/en/overview/" target="_blank">Document</a>
            <a href="#community">Community</a>
        </div> -->
        <div class="lang-select">
            <span>Get Started</span>
            <div class="arrow-icon"></div>
        </div>
        <div class="lang-list">
            <a href="https://shardingsphere.apache.org/oncloud/current/en/quick-start/aws-quick-deployment/" >CloudFormation</a>
            <a href="https://shardingsphere.apache.org/oncloud/current/en/quick-start/kubernetes-quick-deployment/" >HelmCharts</a>
        </div>
        <div class="lang-select">
            <span>Document</span>
            <div class="arrow-icon"></div>
        </div>
        <div class="lang-list">
            <a href="https://shardingsphere.apache.org/oncloud/current/en/overview/">current</a>
            <a href="https://shardingsphere.apache.org/oncloud/0.3.0/en/overview/">0.3.0</a>
            <a href="https://shardingsphere.apache.org/oncloud/0.2.0/en/overview/">0.2.0</a>
            <a href="https://shardingsphere.apache.org/oncloud/0.1.2/en/overview/">0.1.2</a>
            <a href="https://shardingsphere.apache.org/oncloud/0.1.1/en/overview/">0.1.1</a>
        </div>
        <div class="lang-select">
            <span>Community</span>
            <div class="arrow-icon"></div>
        </div>
        <div class="lang-list">
            <a href="https://github.com/apache/shardingsphere-on-cloud/blob/main/CONTRIBUTING.md" target="_blank">Get Involved</a>
                                
            <a href="https://shardingsphere.apache.org/community/en/team/" target="_blank">Team</a>
            
            <!-- <a href="https://github.com/apache/shardingsphere-on-cloud/wiki" target="_blank">Wiki</a> -->
            
            <a href="https://github.com/apache/shardingsphere-on-cloud" target="_blank">GitHub</a>
            
            <a href="https://github.com/apache/shardingsphere-on-cloud/issues" target="_blank">Issue Tracker &nbsp;</a>
            
            <!-- <a href="https://shardingsphere.apache.org/community/en/powered-by/" target="_blank">Powered By</a>
            
            <a href="https://shardingsphere.apache.org/community/en/involved/subscribe/" target="_blank">Mailing List</a> -->
            
            <a href="https://twitter.com/ShardingSphere" target="_blank">Twitter</a>
            
            <a href="https://apacheshardingsphere.slack.com/messages/C026MLH7F34" target="_blank">Slack</a>
        </div>
        <div class="lang-select">
            <span>ASF</span>
            <div class="arrow-icon"></div>
        </div>
        <div class="lang-list">
            <a href="https://www.apache.org" target="_self">Foundation</a>
            <a href="https://www.apache.org/licenses/" target="_self">License</a>
            <a href="https://www.apache.org/events/current-event" target="_self">Events</a>
            <a href="https://shardingsphere.apache.org/community/en/security/" target="_self">Security</a>
            <a href="https://www.apache.org/foundation/sponsorship.html" target="_self">Sponsorship</a>
            <a href="https://www.apache.org/foundation/thanks.html" target="_self">Thanks</a>
        </div>
        <div class="lang-select">
            <span>Language</span>
            <div class="arrow-icon"></div>
        </div>
        <div class="lang-list">
            <a href="index.html">EN</a>
            <a href="index_zh.html">CN</a>
        </div>
    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript">
        let mobileMenu = $('.mobileMenu');
        // langList = $('.lang-list')
        $('.iconMenu').click(function(){
            mobileMenu.show()
        })

        mobileMenu.find('.close').click(function(){
            mobileMenu.hide()
        })
        
        $('.lang-select').click(function(){
            $(this).toggleClass('active')
            $(this).next('.lang-list').toggleClass('show')
            // langList.toggleClass('show')
        })

        $('.mobileMenu a').click(function(){
            mobileMenu.hide()
        })

        $('.philosophy .tab-nav li').on('click', function(){
            $('.philosophy .tab-nav li').removeClass('on')
            $(this).addClass('on')

            var tabIndex = $(this).index();
            
            // 隐藏所有内容
            $('.philosophy .con-list .con-item').removeClass('show');
            // 显示对应索引的内容
            $('.philosophy .con-list .con-item').eq(tabIndex).addClass('show');
        })
    </script>
</body>
</html>
