https://github.com/zseta/tablets-scaling
https://github.com/zseta/tablets-scaling
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/zseta/tablets-scaling
- Owner: zseta
- Created: 2024-09-05T14:59:01.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-18T17:07:38.000Z (about 1 year ago)
- Last Synced: 2025-01-13T22:46:27.497Z (about 1 year ago)
- Language: HCL
- Size: 160 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Security: security-group.tf
Awesome Lists containing this project
README
# ScyllaDB Tablets DEMO
This project walks you through the following scenario:
1. Starting off with 3 ScyllaDB nodes
1. Spike in the number of requests
1. Add 3 additional ScyllaDB nodes to handle requests
1. Request volume goes down
1. Remove 3 nodes
## Requirements
* AWS account
* [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)
* [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html)
## Usage
1. Clone the repository
```
git clone https://github.com/zseta/tablets-scaling.git
```
1. Create EC2 instances in AWS (takes 4+ minutes)
```bash
terraform init
terraform plan
terraform apply
```
1. Open ScyllaDB Monitoring
One of the Terraform outputs is the link to Monitoring, similar to this:
```
Outputs:
monitoring_url = "http://:3000"
[...]
```
There should be 1 active node and 5 unreachable nodes seen on the dashboard.
1. CD into the ansible folder to run playbooks
```
cd ansible
```
1. Start up a 3 node cluster
```bash
ansible-playbook 1_original_cluster.yml
```
1. Create schema and restore snapshot (takes 5+ minutes)
```
ansible-playbook 2_restore_snapshot.yml
```
1. Start cql-stress
```
ansible-playbook 3_stress.yml
```
1. Scale out (start up 3 more nodes)
```
ansible-playbook 4_scale_out.yml
```
1. Stop cql-stress
```
ansible-playbook 5_stop_stress.yml
```
1. Scale in (stop 3 nodes)
```
ansible-playbook ansible/6_scale_in.yml
```
1. 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).
