{"id":18633701,"url":"https://github.com/scylladb/1m-ops-demo","last_synced_at":"2025-06-13T04:03:34.220Z","repository":{"id":193039155,"uuid":"687182304","full_name":"scylladb/1m-ops-demo","owner":"scylladb","description":"1 million operations/second ScyllaDB demo","archived":false,"fork":false,"pushed_at":"2025-02-03T15:08:24.000Z","size":1434,"stargazers_count":19,"open_issues_count":3,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-03T16:23:48.912Z","etag":null,"topics":["database","demo","nosql","scylla","scylladb"],"latest_commit_sha":null,"homepage":"https://1m-ops-demo.scylladb.com/","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scylladb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-04T20:09:46.000Z","updated_at":"2025-02-03T15:08:27.000Z","dependencies_parsed_at":"2023-09-06T14:04:38.291Z","dependency_job_id":"0b4ec0bb-df4b-4f9e-90e8-a4f611379d43","html_url":"https://github.com/scylladb/1m-ops-demo","commit_stats":null,"previous_names":["zseta/scylladb-1m-ops-demo","scylladb/1m-ops-demo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2F1m-ops-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2F1m-ops-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2F1m-ops-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scylladb%2F1m-ops-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scylladb","download_url":"https://codeload.github.com/scylladb/1m-ops-demo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239432361,"owners_count":19637785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","demo","nosql","scylla","scylladb"],"created_at":"2024-11-07T05:15:59.216Z","updated_at":"2025-06-13T04:03:34.208Z","avatar_url":"https://github.com/scylladb.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ScyllaDB 1 million operations/second DEMOs\n\nThis repository contains Terraform and Ansible based projects to help you\nset up DEMOs and POCs with ScyllaDB in a cloud environment. \n\nCurrently supported DEMOs:\n* [ScyllaDB Cloud 1 million operations/second (AWS and ScyllaDB Cloud account needed)](/scylladb-cloud)\n* [ScyllaDB Enterprise 1 million operations/second (AWS account needed)](/scylladb-enterprise)\n* [Scaling from 3 to 6 nodes (AWS account needed))](/tablets-scaling)\n\n[See how DEMO UI works](https://www.youtube.com/watch?v=-nPO9KeNydM).\n\n## Prerequisites\n* [AWS CLI](https://aws.amazon.com/cli/)\n* [Docker](https://docker.com)\n* [ScyllaDB Cloud API key](https://cloud.scylladb.com/)\n\n## Usage\n1. Clone the repository\n    ```\n    git clone https://github.com/scylladb/1m-ops-demo.git\n    cd 1m-ops-demo/\n    ```\n1. Make sure AWS CLI is configured properly, and know the location of the credentials file (e.g. `~/.aws/credentials`)\n1. Edit `config.py`\n    ```json\n    {\n        \"aws_creds_file\": \"/home/user/.aws/credentials\",\n        \"region\": \"us-east-1\",\n        \"scylla_cloud_token\": \"API-TOKEN\",\n        \"running_in_docker\": true\n    }\n    ```\n    * `aws_creds_file`: the location (absolute path) of your AWS credentials file\n    * `region`: AWS region you want to use for the demo\n    * `scylla_cloud_token`: You can generate an API token in ScyllaDB Cloud\n    * `running_in_docker`: Normally this should be `true`\n1. Run the web app (by default, it uses port 5000)\n    ```bash\n    ./build_and_run.sh \n    ```\n    This will spin up a Docker container and run the web app on the `5000` port. You can stop the container with `docker stop scylla-demo`\n1. Open DEMO UI application\n    \n    Go to http://0.0.0.0:5000\n1. Select a demo you want to try (this will run `terraform init` under the hood)\n    ![demo ui](/docs/source/_static/img/demo_ui.jpg)\n1. (Optional) Configure cluster size and workload settings on the left side\n    ![demo ui workload](/docs/source/_static/img/demo_ui2.jpg)\n1. Hit `APPLY` (this runs `terraform apply`)\n1. Keep an eye on the console output to see when Terraform finishes\n1. Click on the different dashboard tabs to monitor the cluster.\n1. If you are done, don't forget to run `DESTROY` to remove infrastructure elements and avoid unnecessary costs.\n\n## Usage tips\n* In case you need to manually access `terraform`, you can always access it through the container's shell (keep in mind, that you need to change to a directory that contains the TF files):\n    ```bash\n    docker exec -it scylla-demo sh\n    cd \u003cdemo-folder\u003e\n    ```\n* To run `terraform apply` from within the container: \n    ```bash\n    terraform apply -var-file=user.tfvars.json -auto-approve\n    ```\n* To run `terraform destroy` from within the container: \n    ```bash\n    terraform destroy -var-file=user.tfvars.json -auto-approve\n    ```\n* You can change the underlying Terraform implementation by stopping the container, making your changes then running `build_and_run.sh` script again.\n* If Terraform fails after spinning up some parts of the infrastructure, you can do two things:\n    * Either just click the `DESTROY` button, fix the problem, then run `build_and_run.sh` again or\n    * Open the container's shell, fix the problem, and run `terraform apply -var-file=user.tfvars.json -auto-approve`\n* If you want to install some package using the container's shell, you can use `apk add \u003cpackage-name\u003e` (the image is based on `Alpine`)\n\n## Local development\nRequirements:\n* NodeJS 22 (`npm install -g node@22` or `nvm install 22`)\n* Python 3\n\n1. Install Python packages and start Flask server\n    ```bash\n    virtualenv env \u0026\u0026 source env/bin/activate\n    pip install -r reqiurements.txt\n    python app.py\n    ```\n1. Install frontend requirements and start dev server:\n    ```\n    cd frontend\n    npm install\n    npm run dev\n    ```\n1. Edit `config.json`:\n    ```json\n    {\n        \"aws_creds_file\": \"/home/user/.aws/credentials\",\n        \"region\": \"us-east-1\",\n        \"scylla_cloud_token\": \"API-TOKEN\",\n        \"running_in_docker\": false\n    }\n    ```\n    If you are running the app locally for development purposes, make sure to set `running_in_docker` to `false`.\n\n## Relevant links\n* [ScyllaDB docs](https://docs.scylladb.com/stable/)\n* [ScyllaDB Cloud](https://cloud.scylladb.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2F1m-ops-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscylladb%2F1m-ops-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscylladb%2F1m-ops-demo/lists"}