Présentation de Floci
Floci est une suite d’émulateurs cloud open‑source sous licence MIT. Chaque émulateur est distribué sous forme d’un binaire natif compilé avec GraalVM Mandrel, ce qui permet un démarrage en 24 ms et une consommation d’inactivité de 13 MiB. Aucun jeton d’authentification, aucune clé d’accès et aucune facturation ne sont requis, ce qui élimine le risque de fuite de secrets. L’ensemble fonctionne sur macOS, Linux et Windows, et peut être lancé directement depuis le CLI ou via Docker.
Architecture et couverture des services
Floci propose quatre binaires distincts : floci‑az (Azure) sur le port 4577, floci‑gcp (GCP) sur le port 4588, floci‑oci (OCI) sur le port 4599 et le binaire principal floci (AWS) sur le port 4566. Le simulateur AWS expose 119 services, dont S3, SQS, Lambda, DynamoDB, RDS et EKS. Azure couvre 28 services (Blob, Queue, Table, Functions, Key Vault, Event Hubs, Service Bus, etc.). GCP émule 25 services (GCS, Pub/Sub, Firestore, Cloud Run, Cloud SQL, GKE, …) et OCI propose 8 services (Object Storage, Identity, Queue, Streaming, KMS, Vault, Functions). Les services critiques sont exécutés avec une fidélité de protocole 100 % : Lambda tourne dans de véritables conteneurs Docker, RDS utilise des bases PostgreSQL/MySQL réelles, et ElastiCache déploie un serveur Redis natif.
Intégration et cas d’usage
Floci s’insère dans n’importe quel workflow cloud grâce à la compatibilité avec les SDK, les CLI et les outils d’infrastructure‑as‑code. Un agent IA ou un pipeline CI peut simplement rediriger les appels vers http://localhost:4566 sans modifier le code. Exemple d’utilisation avec l’AWS CLI :
# Exporter les variables d’environnement pointant sur Floci
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
# Créer un bucket S3 local
aws s3 mb s3://my-bucket
# Upload et téléchargement d’un fichier
aws s3 cp hello.txt s3://my-bucket/
aws s3 cp s3://my-bucket/hello.txt ./
Cette approche permet des boucles d’itération rapides (24 ms de cold start) dans les phases de test, de développement local, de dry‑run Terraform/OpenTofu ou d’ateliers pédagogiques où la facturation cloud serait prohibitive.
Limites et considérations
Bien que Floci reproduise le protocole de nombreux services, il ne simule pas les aspects multi‑région, la latence réseau réelle ou les quotas dynamiques propres aux fournisseurs. La persistance des données dépend du cycle de vie du conteneur ; à l’arrêt du binaire, les volumes volatils sont perdus, ce qui impose une sauvegarde manuelle pour les scénarios de long terme. De plus, certaines fonctionnalités avancées (ex. : IAM policies complexes, VPC peering, services managés spécifiques) ne sont pas encore implémentées, limitant l’usage à des tests fonctionnels plutôt qu’à des validations de performance à grande échelle.