Coder Social home page Coder Social logo

vifley / cartridge Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tarantool/cartridge

0.0 0.0 0.0 27.72 MB

Out-of-the-box cluster manager for Tarantool with a modern web UI

Home Page: https://www.tarantool.io/en/cartridge/

License: BSD 2-Clause "Simplified" License

Shell 0.26% JavaScript 23.94% Python 0.93% Lua 60.32% TypeScript 14.01% HTML 0.02% CMake 0.52%

cartridge's Introduction

Tarantool Cartridge

A framework for distributed applications development.

Tarantool Cartridge allows you to easily develop Tarantool-based applications and run them on one or more Tarantool instances organized into a cluster.

This is the recommended alternative to the old-school practices of application development for Tarantool.

As a software development kit (SDK), Tarantool Cartridge provides you with utilities and an application template to help:

  • easily set up a development environment for your applications;
  • plug the necessary Lua modules.

The resulting package can be installed and started on one or multiple servers as one or multiple instantiated services โ€“ independent or organized into a cluster.

A Tarantool cluster is a collection of Tarantool instances acting in concert. While a single Tarantool instance can leverage the performance of a single server and is vulnerable to failure, the cluster spans multiple servers, utilizes their cumulative CPU power, and is fault-tolerant.

To fully utilize the capabilities of a Tarantool cluster, you need to develop applications keeping in mind they are to run in a cluster environment.

As a cluster management tool, Tarantool Cartridge provides your cluster-aware applications with the following key benefits:

  • horizontal scalability and load balancing via built-in automatic sharding;
  • asynchronous replication;
  • automatic failover;
  • centralized cluster control via GUI or API;
  • automatic configuration synchronization;
  • instance functionality segregation.

A Tarantool Cartridge cluster can segregate functionality between instances via built-in and custom (user-defined) cluster roles. You can toggle instances on and off on the fly during cluster operation. This allows you to put different types of workloads (e.g., compute- and transaction-intensive ones) on different physical servers with dedicated hardware.

Tarantool Cartridge has an external utility called cartridge-cli which provides you with utilities and an application template to help:

  • easily set up a development environment for your applications;
  • plug the necessary Lua modules;
  • pack the applications in an environment-independent way: together with module binaries and Tarantool executables.

To get a template application that uses Tarantool Cartridge and run it, you need to install several packages:

  • tarantool and tarantool-dev (see these instructions);
  • cartridge-cli (see these instructions)
  • git, gcc, cmake and make.

Long story short, enter these commands into the console one-by-one:

cartridge create --name myapp
cd myapp
cartridge build
cartridge start -d
cartridge replicasets setup --bootstrap-vshard
cartridge failover set stateful --state-provider stateboard --provider-params '{"uri": "localhost:4401", "password": "passwd"}'

That's all! Now you can visit http://localhost:8081 and see your application's Admin Web UI:

See:

The most essential contribution is your feedback, don't hesitate to open an issue. If you'd like to propose some changes in code, see the contribution guide.

cartridge's People

Contributors

rosik avatar yngvar-antonsson avatar rgbabaev avatar hustonmmmavr avatar olegrok avatar steap2448 avatar filonenko-mikhail avatar usenko-timur avatar errora avatar murashki avatar knazarov avatar dhorrible avatar ashelist avatar iv-ov avatar lenkis avatar olgayakovleva avatar klond90 avatar artembo avatar mmelentiev-mail avatar patiencedaur avatar alexandrlitkevich avatar nickvolynkin avatar printercu avatar grafin avatar ylobankov avatar runsfor avatar slobodetsky-dima avatar onvember avatar dependabot[bot] avatar vpotseluyko 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.