ScyllaDB Tablets DEMO

This project walks you through the following scenario:

  1. Starting off with 3 ScyllaDB nodes
  2. Spike in the number of requests
  3. Add 3 additional ScyllaDB nodes to handle requests
  4. Request volume goes down
  5. Remove 3 nodes

Requirements

Usage

  1. Clone the repository

    git clone https://github.com/zseta/tablets-scaling.git
    
  2. Create EC2 instances in AWS (takes 4+ minutes)

    terraform init
    terraform plan
    terraform apply
  3. Open ScyllaDB Monitoring

    One of the Terraform outputs is the link to Monitoring, similar to this:

    Outputs:
    
    monitoring_url = "http://<IP-ADDRESS>:3000"
    [...]
    

    There should be 1 active node and 5 unreachable nodes seen on the dashboard.

  4. CD into the ansible folder to run playbooks

    cd ansible
    
  5. Start up a 3 node cluster

    ansible-playbook 1_original_cluster.yml
  6. Create schema and restore snapshot (takes 5+ minutes)

    ansible-playbook 2_restore_snapshot.yml
    
  7. Start cql-stress

    ansible-playbook 3_stress.yml
    
  8. Scale out (start up 3 more nodes)

    ansible-playbook 4_scale_out.yml
    
  9. Stop cql-stress

    ansible-playbook 5_stop_stress.yml
    
  10. Scale in (stop 3 nodes)

    ansible-playbook ansible/6_scale_in.yml
    
  11. Stop demo and remove AWS infrastructure

    cd ..
    terraform destroy
    

DEMO UI

You can also run the DEMO with a user interface. To access the UI, run Terraform as usual then open index.html (the link to this file is also an output of TF).

ui screenshot