GithubHelp home page GithubHelp logo

finraos / elasticd Goto Github PK

View Code? Open in Web Editor NEW
10.0 9.0 12.0 322 KB

Elastic Discovery - Help applications that don't quite work in the cloud better handle autoscaling and other cloud events.

Home Page: http://technology.finra.org

License: Apache License 2.0

Perl 2.54% Python 97.46%

elasticd's Introduction

ElasticD for direct communication between frontends and backends

##Table Of Contents

Objective

The goal is to have frontends communicate directly with backends by using IP addresses instead of DNS in cloud environments. This will remove the unnecessary components in-between the two and associated overhead.

Why ElasticD?

  • AWS is very dynamic in nature. A lot of their services start with ‘E’ for elastic.
  • IP addresses change all the time, allowing more flexibility.
  • The number of server performing a task may increase or decrease at any time.
  • So far, standard industry technologies don’t operate optimally in this dynamic environment.
  • Many cache DNS lookups for performance. This is great in a static environment but a burden in AWS.
  • A few technologies used at FINRA required significant additional effort and workarounds included:
  • Varnish
  • Apache
  • Nginx (special configuration required)
  • It was difficult to automatically configure frontends and know about the backends without using DNS.
  • This required additional components between the front ends and back ends.
  • More components meant more overhead in maintenance, testing, and development.
  • More components meant more failure points.

Solution

Create a light weight application that informs the frontends of the backends, allowing them to communicate directly with IP addresses.

Features

  • Pluggable
  • It's able to extend components to suit your needs.
  • Frontend agnostic
  • Additional implementations are available for different frontend technologies (Varnish, Nginx, etc).
  • Backend agnostic
  • ElasticD only needs a way to find the backend's IP address.
  • Cloud agnostic
  • At FINRA, we use AWS but the resource locator can be extended for other cloud offerings.

Alt text

##Setup This section will walk you through how to start up the ElasticD services You will need to install the following

  • Pip
  • Flask
  • Jinja2
  • boto
  • apscheduler
  • pyyaml

After that you can run python bin/run.py or python test/test_driver.py

elasticd's People

Contributors

benbunk avatar bryantrobbins avatar fnrw avatar gallagherrchris avatar gurumitts avatar katie-simpson avatar kood1 avatar mikev37 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elasticd's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.