Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tarantool/cartridge
Out-of-the-box cluster manager for Tarantool with a modern web UI
https://github.com/tarantool/cartridge
Last synced: 3 months ago
JSON representation
Out-of-the-box cluster manager for Tarantool with a modern web UI
- Host: GitHub
- URL: https://github.com/tarantool/cartridge
- Owner: tarantool
- License: bsd-2-clause
- Created: 2019-08-27T14:59:05.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-05-28T12:48:09.000Z (6 months ago)
- Last Synced: 2024-05-29T04:22:09.074Z (6 months ago)
- Language: Lua
- Homepage: https://www.tarantool.io/en/cartridge/
- Size: 31.4 MB
- Stars: 93
- Watchers: 30
- Forks: 30
- Open Issues: 7
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- Contributing: CONTRIBUTING.rst
- License: LICENSE
Awesome Lists containing this project
- awesome-tarantool - Cartridge - (Packages / Administration)
README
.. _cartridge_readme:
================================================================================
Tarantool Cartridge
================================================================================A framework for distributed applications development.
.. raw:: html
.. raw:: html
.. contents::
--------------------------------------------------------------------------------
About Tarantool Cartridge
--------------------------------------------------------------------------------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.--------------------------------------------------------------------------------
Getting started
--------------------------------------------------------------------------------~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Prerequisites
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~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``.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create your first application
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Long story short, enter these commands into the console one-by-one:
.. code-block:: bash
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:.. raw:: html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Next steps
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~See:
* A more detailed
`getting started guide `_
* More
`application examples `_
* `Cartridge documentation `_
* `Cartridge API reference `_--------------------------------------------------------------------------------
Contributing
--------------------------------------------------------------------------------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 `_... |--| unicode:: U+2013 .. en dash
.. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace
:trim: