-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #70 from flyingcircusio/PL-132755-refactor-module-…
…and-subcommand-structure Pl 132755 refactor module and subcommand structure
- Loading branch information
Showing
82 changed files
with
5,734 additions
and
5,564 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
|
||
# Daemon | ||
|
||
Backy has a daemon that is responsible to: | ||
|
||
1. Schedule jobs in a timely manner according to their configuration. | ||
|
||
2. Provide an HTTP API to allow multiple backy servers to interact with each | ||
other. | ||
|
||
There is a (PostgreSQL) database to store metadata about backups that both | ||
the daemon, the CLI (including the sources) interact with. | ||
|
||
# CLI | ||
|
||
The are two levels of CLI interactions: | ||
|
||
1. The main `backy` command provides administrators interaction capabilities | ||
with the backy environment on a server to retrieve status information, | ||
run backups, restore data and some maintenance tasks. | ||
|
||
2. Backy itself interacts with sources through a second layer of CLI commands, | ||
specific to each source. They are called by the higher level CLI as well as | ||
from the daemon. We use this layering to allow implementing sources in | ||
different languages. | ||
|
||
The CLI ideally does not interact with the daemon directly, but by inspecting | ||
or updating the database. | ||
|
||
# Nomenclature | ||
|
||
Words within the context of backup software are a bit muddy, specifically | ||
the meaning of "a backup". We decided to take inspiration from the git dictionary | ||
and use it the following way: | ||
|
||
1. A **repository** is - similar to git - the logical container for the user | ||
data relevant to one thing that we are backing up. | ||
|
||
2. A **source** provides the data that should be backed up. Different kinds | ||
of sources can model arbitrary data models: backy does not care whether | ||
you are backing up virtual disk images or S3 buckets. | ||
|
||
3. A **revision** specifies the state of the source at a certain point in time | ||
and corresponds to what would be colloquially called "a backup". | ||
|
||
4. The daemon uses a **job** for every repository to execute the steps necessary | ||
to perform regular backups with all surrounding management tasks like | ||
garbage collection, verification, etc. |
5 changes: 5 additions & 0 deletions
5
...log.d/20240812_133802_ct_PL_132755_refactor_module_and_subcommand_structure.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
.. A new scriv changelog fragment. | ||
- Refactor the overall structure to prepare for more diverse sources: | ||
use a sub-CLI pattern to talk to source implementations and clean up | ||
the Ceph source, removing unused Code. (PL-132755) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.