Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typo and build fixes #5

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .travis/publish.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

if ([ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]);
then
echo "Triggering a versioned release of the project"
echo "Attempting to publish signed jars"
sbt +publishSigned
echo "Published the signed jars"
echo "Attempting to make a release of the sonatype staging"
sbt sonatypeRelease
echo "Released the sonatype staging setup"
else
echo "Not running publish since we're either not in master or in a Pull Request"
fi
Binary file added .travis/pubring.gpg.enc
Binary file not shown.
Binary file added .travis/secring.gpg.enc
Binary file not shown.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
[![Build Status](https://snap-ci.com/ashwanthkumar/vamana2/branch/master/build_image)](https://snap-ci.com/ashwanthkumar/vamana2/branch/master)
[![Build Status](https://travis-ci.org/indix/vamana.svg?branch=master)](https://travis-ci.org/indix/vamana)
[![Maven Central](https://maven-badges.herokuapp.com/maven-central/in.ashwanthkumar.vamana2/Vamana/badge.svg)](https://maven-badges.herokuapp.com/maven-central/in.ashwanthkumar.vamana2/Vamana)


# Vamana
[Vamana](https://en.wikipedia.org/wiki/Vamana) is an Autoscalar Abstraction that provides ability to scale clusters on the cloud. Vamana by itself doesn't do autoscaling (not yet), but uses the Autoscalar available on various cloud platforms. Some autoscalars on the cloud support scaling up / down based on application metrics collected on their platform. If you're already using a metric collection system you need not move away or send the same metrics to two different places instead Vamana can read metrics from any metrics store and perform autoscaling of your application.
@@ -7,20 +9,20 @@
I'm managing quite a number of Hadoop Cluster (across environments) whose TTs are backed by Auto Scaling Groups (ASG).
Each cluster has its own usage patterns. Certain clusters run 24x7 while certain other clusters need to be up only during certain duration (when we have jobs running) and not always.
- We were forced to add Scale Up and Scale Down stages on the beginning and end of our job pipelines.
- Though using something like Anisble's ASG plugin made it trivial it was still a pain to add this everytime some one creates a new pipeline.
- Though using something like Ansible's ASG plugin made it trivial it was still a pain to add this everytime some one creates a new pipeline.
- It became a problem when we've more than 1 job pipelines sharing the same cluster, one's scale down shouldn't affect the other's runtime.
- Overnight / weekend failures makes the cluster remain idle.

## Usage
Vamana is expected to be run on a Cron (with reasonable duration).
```bash
$ git clone https://github.com/ashwanthkumar/vamana2.git
$ cd vamana2 && mvn clean package
$ java -cp target/vamana2-1.0.0-SNAPSHOT.jar in.ashwanthkumar.vamana2.Vamana path/to/clusters.conf
$ git clone https://github.com/indix/vamana.git
$ cd vamana && mvn clean package
$ java -cp target/vamana-1.0.0-SNAPSHOT.jar in.ashwanthkumar.vamana2.Vamana path/to/clusters.conf
```

## Architecture
![Vamana2 Architecture](https://raw.githubusercontent.com/ashwanthkumar/vamana2/master/docs/vaman-architecture.png)
![Vamana2 Architecture](https://raw.githubusercontent.com/indix/vamana/master/docs/vaman-architecture.png)

## Configuration
Sample configuration would be