Skip to content
Snippets Groups Projects
Commit ca3511ec authored by agata's avatar agata
Browse files

traduzione in italiano

parent 12176f3f
No related branches found
No related tags found
No related merge requests found
...@@ -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 documentation ### General Documentation
* [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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment