Coder Social home page Coder Social logo

cloudi's Introduction

#CloudI 0.1.9 (alpha)

ABOUT

CloudI is an open-source private cloud computing framework for secure, internal data processing. CloudI manages a dynamic cloud of services with an internal messaging bus. Services can be created in Erlang, C, C++, Java, Python, or Ruby, by using the CloudI interface (API). The interface provides a small set of functions that are commonly used for creating Service-Oriented Architecture (SOA):

  • subscribe, unsubscribe
  • send_async, send_sync, mcast_async
  • recv_async
  • return, forward

CloudI offers a simple way to integrate diverse services into a fault-tolerant framework. Messages are easily load balanced based on a service's destination refresh method. Access Control Lists (ACL) can be defined for services that must explicitly allow and/or deny messages from being sent to other services. All CloudI functionality supports the creation of RESTful (Representational State Transfer) services. Prefixes are given to service code in their configuration and act like a directory path, into which a service name is created by calling the "subscribe" interface function (e.g., "/db/pgsql/" is a prefix for the Erlang service code cloudi_job_db_pgsql which creates the service name "cloudi_tests" (also, the database name) so that all messages can reference the service with "/db/pgsql/cloudi_tests" and ACLs can allow or deny prefixes like "/db/pgsql/"). More features are currently explained in the configuration file (src/cloudi.conf), but proper documentation will be added soon.

The default configuration runs the hexadecimal PI test using the Bailey-Borwein-Plouffe formula and verifies that the digits are correct (the test can be found in src/tests/hexpi/). A HTTP test also is in the default configuration and uses the command line curl for simple test cases (the test can be found in src/tests/http/ with the client script run.sh). Another HTTP test is provided that can be used for load tests (the test can be found in src/tests/http_req/) and provides a basic HTTP server for static files (content is cached and not updated dynamically, since it just demonstrates basic cloudi_job_filesystem functionality) that are located at src/tests/http_req/public_html/ (access at http://127.0.0.1:6464/tests/http_req/).

CloudI currently supports the following databases:

  • CouchDB (>= 0.9.0)
  • memcached (>= 1.3)
  • MySQL (>= 4.0)
  • PostgreSQL (>= 7.4)
  • Tokyo Tyrant (>= 1.1.23)

To support CloudI development donate here.

CONFIGURATION

Build Requirements:

  • Erlang >= R14B01
  • Java
  • Python >= 2.5.0
  • Ruby >= 1.9.0 (ruby1.9 package in Ubuntu, ruby19 package in OSX ports)
  • GNU MP library (libgmp3-dev package in Ubuntu, gmp package in OSX ports)
  • boost >= 1.36.0

Optional:

  • ZeroMQ > 2.0

On OSX, to run configure with the OSX ports paths, use: CXXFLAGS="-I/opt/local/include" LDFLAGS="-L/opt/local/lib" ./configure

To build with ZeroMQ integration, use the "--with-zeromq" configure flag. If ZeroMQ is not installed, it will be installed locally and linked into a NIF statically, so it is not a runtime dependency. The ZeroMQ NIF requires Erlang >= R14B02.

See src/README for basic build information

See src/cloudi.conf.in for system configuration information

RUNNING

See src/README

USING

Integration points:

Dynamic configuration uses the job API (See src/job_api/README)

LICENSE

BSD License

CONTACT

Michael Truog (mjtruog [at] gmail (dot) com)

cloudi's People

Contributors

okeuday avatar

Stargazers

 avatar

Watchers

 avatar

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.