Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
float
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Container registry
Model registry
Operate
Environments
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ai3
float
Commits
ca3511ec
Commit
ca3511ec
authored
5 years ago
by
agata
Browse files
Options
Downloads
Patches
Plain Diff
traduzione in italiano
parent
12176f3f
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+111
-1
111 additions, 1 deletion
README.md
with
111 additions
and
1 deletion
README.md
+
111
−
1
View file @
ca3511ec
...
@@ -12,6 +12,22 @@ environment, with minimal but complete features, to prepare services
...
@@ -12,6 +12,22 @@ environment, with minimal but complete features, to prepare services
(and developers) for a full migration to something more sophisticated
(and developers) for a full migration to something more sophisticated
like Kubernetes.
like Kubernetes.
float - in italiano
====
*float*
è un kit di strumenti minimalista per gestire le configurazioni
di gestione di servizi basati su immagini di container, installati
direttamente su macchine vere (ovvero è
*un sistema di orchestrazione di container*
).
É implementato come una serie di plugin e di ruoli di Ansible
che si possono usare dalle proprie configurazioni di Ansible.
L'obiettivo principale è ottenere un ambiente di container facile da gestire.
con il minimo ma indispensabile numero di caratteristiche, per preparare i servizi
(e pure le persone) a una completa migrazione a qualcosa di più sofisticato,
come Kubernetes.
# Features
# Features
Some of these, especially when comparing against full-featured
Some of these, especially when comparing against full-featured
...
@@ -38,6 +54,32 @@ just a few hundred lines of Python all together), while trying to
...
@@ -38,6 +54,32 @@ just a few hundred lines of Python all together), while trying to
minimize cognitive and operational load. We may have failed on both
minimize cognitive and operational load. We may have failed on both
those accounts.
those accounts.
# Funzionalità
Alcune di queste, specialmente se comparate con soluzioni più sofisticate,
come Kubernetes, sono anti-caratteristiche:
*
*allocazione statica di servizio*
- lo scheduler del servizio non migra i
containers al runtime in caso di una risèposta negativa da parte di un host,
tutti i cambiamenti avvengono solo nel "momento della configurazione"
che è quandpo si fa andare Ansible.
*
*1:1 istanze/host mapping*
- lo scheduler non farà andare più che una
istanza di un servizio per ciascun host.
*
*assegnamento delle porte manuale*
- devi manualmente scegliere un'univoca
porta per ciascun dei tuoi servizi, non c'è distribuzione ed assegnazione automatica.
*
*protocollo di service discovery*
- basato sui DNS.
*
*gestione PKI*
- tutte le comunicazione service-to-service possono essere
criptate e autenticate usando un PKI riservato.
*
*servizi integrati*
- il toolkit provvvede a un numero di servizi
integrati, come il monitoring, alerting, la raccolta ed analisi
dei log, thorough audit functionality, private networking. Quei servizi sono
automaticamente configurati e gestiti (nonostante possano essere estesi).
Alcune di queste "Funzionalità" furono scelte nell'idea di semplificare massicciamente
l'implementazione (lo scheduler e il livello di service discovery sono giusto
qualche centinaio di righe di Python tutte insieme), provando a minimizzare il carico
cognitivo e operativo. Ma potremmo anche sbagliarci..
# Target
# Target
It should be clear from the list of "features" above, but this system
It should be clear from the list of "features" above, but this system
...
@@ -57,12 +99,30 @@ relatively straightforward to build partitioned or replicated
...
@@ -57,12 +99,30 @@ relatively straightforward to build partitioned or replicated
services, where one can tune the threshold for manual operator
services, where one can tune the threshold for manual operator
intervention arbitrarily.
intervention arbitrarily.
# Obiettivo
Dovrebbe essere chiaro dalla lista delle "Funzionalità" qui sopra, ma, significa
che questo sistema non offre grande disponibilità senza alcune accortezze
nei servizi stessi. La maggiore limitazione è il requisito del'operazione manuale
in caso di cambiamenti dell'ambiente ad alto livello (perdita di macchine,
cambiamenti nella richiesta/offerta), quindi per esempio non succederà nulla
ad un singolo servizio domiciliato su un host che è morto. Il sistema
non agisce al runtime con nessuna azione tempestiva (è così, in fatti,
è implementato sopra ad un sistema di gestione delle configurazioni).
Però, è possible piazzare "reliable" servizi su questa infrastruttura
grazie alla collaborazione del servizio stesso, permettendo al servizio
di usare le primitive lasciate disponibil dall'infrastruttura. Appena
con il "service discovery", e un livello abbastanza robusto di routing
del traffico, è relativamente possibile costruire servizi avanzati distribuiti o replicati,
dove si può calibrare il livello intervenendo arbitrariamente con operazioni manuali.
# Documentation
# Documentation
More detailed documentation is available in the
*docs/*
subdirectory,
More detailed documentation is available in the
*docs/*
subdirectory,
and in README files for individual Ansible roles:
and in README files for individual Ansible roles:
### General
d
ocumentation
### General
D
ocumentation
*
[
Quick start guide
](
docs/quickstart.md
)
*
[
Quick start guide
](
docs/quickstart.md
)
*
[
Guide to Ansible integration
](
docs/ansible.md
)
*
[
Guide to Ansible integration
](
docs/ansible.md
)
...
@@ -85,6 +145,34 @@ not run in containers. But this is just an implementation detail, and
...
@@ -85,6 +145,34 @@ not run in containers. But this is just an implementation detail, and
in the future they could be moved to containers without requiring any
in the future they could be moved to containers without requiring any
changes in the clients.
changes in the clients.
# Documentazione
Una documentazione più dettagliata è disponible nella sottocartella
*docs/*
,
e nei file README per i singoli ruoli Ansible:
### Documentazione generale
*
[
Guida di partenza
](
docs/quickstart.md
)
*
[
Guida all'integrazione con Ansible
](
docs/ansible.md
)
*
[
Configurationi
](
docs/configuration.md
)
*
[
Protocollo Service discovery
](
docs/service_mesh.md
)
*
[
HTTP router
](
docs/http_router.md
)
*
[
Usare Docker
](
roles/docker/README.md
)
*
[
Usare gli strumenti da CLI
](
docs/cli.md
)
*
[
Sperimentazione
](
docs/testing.md
)
### Documentazione dei servizi integrati
*
[
Monitoring and alerting
](
roles/prometheus/README.md
)
*
[
Gestione ed analisi dei Log
](
roles/log-collector/README.md
)
*
[
DNS pubblici e autoritativi
](
roles/dns/README.md
)
*
[
Gestione dell'identità e delle autorizzazioni
](
docs/identity_management.md
)
I servizi integrati sono implementati con i ruoli di Ansible, e non sono
eseguiti nei containers. Ma questo è giusto un dettaglio dell'implementazione, e
in futuro è possibile che essi vengano mossi dentro a dei container senza
richiedere nessun cambio lato client.
# Requirements
# Requirements
On the local machine (the one that will run Ansible), you're going to
On the local machine (the one that will run Ansible), you're going to
...
@@ -105,3 +193,25 @@ number of external services that are not provided by *float* itself:
...
@@ -105,3 +193,25 @@ number of external services that are not provided by *float* itself:
*
git repository hosting
*
git repository hosting
*
CI system to build container images
*
CI system to build container images
*
a Docker registry
*
a Docker registry
# Requisiti
Sulla macchina locale (quella su cui fai andare Ansible), necessiti
[
Ansible
](
https://ansible.com
)
, ovviamente, e alcuni altri piccoli
strumenti appositi usati per maneggiare le credenziali. Quegli strumenti
dovrebbero essere creati nella macchina localmente usando
[
Go
](
https://golang.org
)
:
```
shell
sudo
apt-get
install
golang bind9utils
go get
-u
git.autistici.org/ale/x509ca
go get
-u
git.autistici.org/ale/ed25519gen
export
PATH
=
$PATH
:
$HOME
/go/bin
```
Nonostante non siano dei requisiti obbligatori, probabilmente vorrete
usare alcuni servizi esterni che non sono forniti da
*float*
stesso:
*
git repository hosting
*
un sistema di CI per creare in proprio le immagini dei container
*
un registro Docker
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment