Public | Automated Build

Last pushed: a year ago
Short Description
A Distributed Database Template using Cassandra & Titan on Alpine inside Docker
Full Description

cassandraDB

A Distributed Database Template using Cassandra & Titan on Alpine inside Docker
by Collective Acuity

Components

  • Alpine Latest (OS)
  • Java Runtime Environment 1.8.0_66 (Environment)
  • Cassandra 3.0.2 (Database)
  • Titan (Graph Database)
  • Gremlin (Titan Interpreter)

Dev Env

  • Docker (Provisioning)
  • BitBucket (Version Control)
  • Cassandra (Record Database)
  • AWS (Web Services)
    • EC2 (Webhosting)
    • S3 (File Database)
    • Lambda (Scheduled Task Trigger)
  • PyCharm (IDE)
  • Google Drive(Collaboration, Backup)

Languages

  • Python 2.7
  • Python 3.5
  • Regex
  • Shell Script

Python Client Frameworks

Features

  • Cassandra in a Container
  • Local Credential Controls
  • Lean Footprint
  • Config from Local cassandra.yaml
  • Auto-Configuration of IP Addresses from OS
  • Maps Data and Logs to System Host
  • EC2 Ready for Deployment
  • Python 2.7 Enabled
  • Python 3.5 Enabled

Setup DevEnv

  • Install Docker Toolbox on Local Device
  • Install Git on Local Device
  • Clone/Fork Repository from Version Control service
  • Create a /cred Folder in Root to Store Tokens
  • [Optional] Create a New Private Remote Repository

Launch Commands

startDB.sh
Creates container with dependencies
Requires:

  • Container Alias
  • Mapped Volumes
  • Initial Command
  • Container Root Folder Name (if AWS EC2 deployment with awsDocker module)
  • Virtualbox Name (if Windows or Mac localhost)

rebuildDocker.sh
Initiates an automated build command on Docker to update base image
Requires:

  • Container Alias
  • Token from Docker Build Settings
  • Environment Variable File (in cred/)

Collaboration Notes

The Git and Docker repos contain all the configuration for deployment to AWS.
Google Drive can be used to synchronize local copies across multiple dev devices.
Use AWS IAM to assign user permissions and create keys for each collaborator.
Collaborators are required to install dependencies on their local device.
Repo should be FORKED by collaborators so reality is controlled by one admin.
New dependencies should be added to the Dockerfile, NOT to the repo files.
Collaborators should test changes to Dockerfile locally before merging to remote:

docker build -t test-image .

.gitignore and .dockerignore have already been installed in key locations.
To prevent unintended file proliferation through version control & provisioning,
add/edit .gitignore and .dockerignore to include all new:

  1. local environments folders
  2. localhost dependencies
  3. configuration files with credentials and local variables

Cassandra Documentation

Docker Pull Command
Owner
collectiveacuity
Source Repository

Comments (0)