Main Page: Difference between revisions
Tag: Undo |
Tag: Undo |
||
| Line 39: | Line 39: | ||
; 1. Construire un assistant IA privé | ; 1. Construire un assistant IA privé | ||
* Déployer une stack type ''' | * Déployer une stack type '''Hermes WebUI + Ollama + GPU''' | ||
* Ajouter un modèle de chat et un modèle de résumé | * Ajouter un modèle de chat et un modèle de résumé | ||
* Brancher des données internes via '''RAG + embeddings''' | * Brancher des données internes via '''RAG + embeddings''' | ||
| Line 71: | Line 71: | ||
* les déploiements sont industrialisés, | * les déploiements sont industrialisés, | ||
* l’infrastructure reste '''compréhensible, portable et réutilisable'''. | * l’infrastructure reste '''compréhensible, portable et réutilisable'''. | ||
Chaque sortie IA est mesurée en temps réel, les modèles faibles sont remplacés automatiquement, et les tâches sans valeur sont coupées. L'autonomie vient de mécanismes techniques qui fonctionnent quand personne ne regarde — pas de règles écrites dans un doc. | |||
[[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]] | [[File:SUMMARY-DIAGRAM-7311e6b1-aede-4989-ade2-a42d1a6e0ff2.png|thumb|right|Main page summary]] | ||
| Line 82: | Line 84: | ||
! Catégorie !! Service !! Rôle | ! Catégorie !! Service !! Rôle | ||
|- | |- | ||
| API || [https://api.ailab.infocepo.com | | API || [https://api-nothink.ailab.infocepo.com/docs LLM] || Modèles de chat, code, RAG, OCR | ||
|- | |- | ||
| API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio | | API || [https://api-audio2txt.ailab.infocepo.com/docs STT] || Transcription audio | ||
| Line 90: | Line 92: | ||
| API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC | | API || [https://github.com/ynotopec/api-realtime-ai realtime-ai] || Temps réel WebSocket / WebRTC | ||
|- | |- | ||
| API || [https://api.ailab.infocepo.com | | API || [https://api-nothink.ailab.infocepo.com/docs IMAGE2TXT] || OCR / VLM via endpoint dédié | ||
|- | |- | ||
| API || [https://api-summary.ailab.infocepo.com:wait-2026- | | API || [https://api-summary.ailab.infocepo.com:wait-2026-12/docs summary] || Résumé de textes longs | ||
|- | |- | ||
| API || [https:// | | API || [https://api-embedding.ailab.infocepo.com/docs EMBEDDINGS] || Embeddings pour RAG | ||
|- | |- | ||
| API || [https://chromadb.ailab.infocepo.com:wait-2026- | | API || [https://chromadb.ailab.infocepo.com:wait-2026-12 ChromaDB] || Base vecteur | ||
|- | |- | ||
| API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images | | API || [https://api-txt2image.ailab.infocepo.com/docs TXT2IMAGE] || Génération d’images | ||
| Line 102: | Line 104: | ||
| API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs | | API || [https://api-diarization.ailab.infocepo.com/docs diarization] || Segmentation locuteurs | ||
|- | |- | ||
| Observabilité || [https://grafana.ailab.infocepo.com:wait-2026- | | Observabilité || [https://grafana.ailab.infocepo.com:wait-2026-12 monitoring] || Dashboards techniques | ||
|- | |- | ||
| Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026- | | Observabilité || [https://uptime-kuma.ailab.infocepo.com:wait-2026-12/status/ai status] || Disponibilité des services | ||
|- | |- | ||
| Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026- | | Observabilité || [https://web-stat.c1.ailab.infocepo.com:wait-2026-12 web-stat] || Statistiques web | ||
|- | |- | ||
| Observabilité || [https://api.ailab.infocepo.com:wait-2026- | | Observabilité || [https://api.ailab.infocepo.com:wait-2026-09/ui LLM-stat] || Vue API / usage | ||
|- | |- | ||
| Outils || [https://datalab.ailab.infocepo.com:wait-2026- | | Outils || [https://datalab.ailab.infocepo.com:wait-2026-12 dataLab] || Environnement de travail hors-production | ||
|- | |- | ||
| Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction | | Outils || [https://translate-rt.ailab.infocepo.com realtime translation] || Traduction | ||
| Line 118: | Line 120: | ||
---- | ---- | ||
= Sélection AI & architecture par couche = | |||
Le tableau de bord [https://ai.arch.infocepo.com '''Sélection AI'''] présente l'architecture par couche des modèles IA déployés : | |||
{| class="wikitable" | |||
! Couche !! Modèle !! Alias(s) !! Notes | |||
|- | |||
| rowspan="6" style="text-align:center; vertical-align:middle; background:#f0f0f0;"| '''HYBRID-CLOUD''' | |||
| '''Qwen3.X-XXB''' || flash, default, thinking, vision, org || 35B MoE — Option 1 | |||
|- | |||
| '''Qwen3.8-Flash-Next''' || flash, default, thinking, org, max, vision || 125B MoE — Option 2 | |||
|- | |||
| '''MiniMax-H3''' || video || 33B | |||
|- | |||
| '''BGE-M3''' || embedding || 568M | |||
|- | |||
| '''BGE-reranker-v2-m3''' || reranker || 568M | |||
|- | |||
| '''FLUX.2-klein-4B''' || Image || 4B | |||
|- | |||
| rowspan="2" style="text-align:center; vertical-align:middle; background:#f0f0f0;"| '''LOCAL''' | |||
| '''Ornith-1.5-9B''' || flash, default, thinking, vision, org || 9B — Option 1 | |||
|- | |||
| '''Qwen3.8-27B''' || flash, default, thinking, vision, org, max || 27.8B — Option 2 | |||
|} | |||
== Frameworks == | |||
{| class="wikitable" | |||
! Outil !! Usage | |||
|- | |||
| '''Hermes''' || Usage général, raisonnement | |||
|- | |||
| '''OpenCode''' || DevSecOps | |||
|- | |||
| '''Kilo Code''' || Développement pur | |||
|} | |||
== Mémoire == | |||
Pour la couche d'embedding vectoriel (RAG, mémoire sémantique) : | |||
* '''BGE-M3''' — 568M paramètres, architecture XLM-RoBERTa. Multi-fonction (dense + sparse + multi-vector), 100+ langues, licence MIT. Idéal comme moteur de mémoire à échelle. | |||
= Nouveautés = | = Nouveautés = | ||
== Nouveautés | == Nouveautés implémentés 12/08/2026 == | ||
* [https:// | |||
* [https:// | * [https://github.com/ynotopec/api-txt2image '''api-txt2image'''] (2026-08-29) : Text-to-image generation API for AI-powered image creation | ||
* [https://github.com/ynotopec/dind-build '''dind-build'''] (2026-08-29) : Docker-in-Docker build factory on Kubernetes — build, push, pull via K8s DinD pod | |||
* [https:// | * [https://github.com/ynotopec/quality-gate '''quality-gate'''] (2026-08-28) : Quality gate auto - auto-scoring, detection hallucination, verification citations, fix patterns regex | ||
* [https://github.com/ynotopec/agent-saas '''agent-saas'''] (2026-08-27) : SaaS AI agent platform — deploy autonomous AI agents as a service | |||
* [https://github.com/ynotopec/api-convert2md '''api-convert2md'''] (2026-08-26) : Document-to-Markdown conversion API — clean markdown from various formats | |||
* [https:// | * [https://github.com/ynotopec/qwen36-sglang '''qwen36-sglang'''] (2026-08-24) : Qwen 3.6 deployment with SGLang for high-performance inference | ||
* [https://github.com/ | * [https://github.com/ynotopec/trafilatura-local '''trafilatura-local'''] (2026-08-23) : Initial: service extraction trafilatura-local (clean) | ||
* [https:// | * [https://github.com/ynotopec/api-rag '''api-rag'''] (2026-08-19) : RAG API — semantic search over knowledge bases with retrieval-augmented generation | ||
* [https://github.com/ | * [https://github.com/ynotopec/models-todo '''models-todo'''] (2026-08-19) : HuggingFace Model Tracker Dashboard - generate_top100_dow.py + deploy | ||
* [https://github.com/ynotopec/api- | * [https://github.com/ynotopec/minimax-music3 '''minimax-music3'''] (2026-08-18) : Initial: studio generation musique IA MiniMax-Music3 | ||
* [https://github.com/ | * [https://github.com/ynotopec/hermes-img-gen-infocepo '''hermes-img-gen-infocepo'''] (2026-08-15) : Plugin Hermes Image Gen pour API TXT2IMAGE infocepo | ||
* [https://github.com/ynotopec/ | * [https://github.com/ynotopec/api-llm-custom '''api-llm-custom'''] (2026-08-13) : Custom LLM proxy API — route requests to any language model backend | ||
* [https://github.com/ynotopec/infocepo-infra-mcp '''infocepo-infra-mcp'''] (2026-08-12) : Fix wiki cache permission failures (PR #7) | |||
* | * [https://github.com/ynotopec/api-mcp-openai '''api-mcp-openai'''] (2026-08-11) : AI MCP OpenAI Integration — Selection port libre, simplification setup (PR #2) | ||
* | * [https://github.com/ynotopec/api-embedding '''api-embedding'''] (2026-08-07) : Text embedding API — convert text to vector embeddings for semantic search (PR #7) | ||
* | * [https://github.com/ynotopec/api-reranker '''api-reranker'''] (2026-08-06) : Cross-encoder reranking API for improving search retrieval quality (PR #2) | ||
* [https:// | |||
* [https:// | |||
* | |||
---- | ---- | ||
= Priorités = | = Priorités = | ||
== Top tasks == | == Top tasks == | ||
| Line 153: | Line 199: | ||
* Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste. | * Ajouter [https://github.com/vllm-project/guidellm '''GuideLLM'''] : capacity planning / benchmark réaliste. | ||
* Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques. | * Ajouter [https://github.com/NVIDIA-NeMo/Guardrails '''NeMo Guardrails'''] : garde-fous et politiques. | ||
* '''Coût unitaire par tâche''' : chaque API doit exposer son prix/ml/token en temps réel — pas une facture mensuelle. | |||
* '''Qualité auto''' : précision/hallucination rate branchés sur les sorties IA, avec rollback automatique si qualité < seuil. | |||
== Backlog / Veille Technologique == | == Backlog / Veille Technologique == | ||
=== Agents IA & Orchestration === | === Agents IA & Orchestration === | ||
=== Audio & TTS === | === Audio & TTS === | ||
* [https://huggingface.co/Supertone/supertonic-3 ''' | * [https://huggingface.co/Supertone/supertonic-3 '''Superto | ||
* [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image) | * [https://huggingface.co/Qwen/Qwen3-Omni-30B-A3B-Instruct '''Qwen3-Omni-30B-A3B-Instruct'''] — Modèle multimodal Qwen (audio + texte + image) | ||
* '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel | * '''nemotron-3.5-asr-streaming-0.6b''' — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel | ||
| Line 178: | Line 220: | ||
* '''RAG sur PDF avec images''' | * '''RAG sur PDF avec images''' | ||
* [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite | * [https://huggingface.co/ibm-granite/granite-docling-258M '''granite-docling-258M'''] — Parsing structuré de documents IBM Granite | ||
=== APIs à Développer === | === APIs à Développer === | ||
| Line 189: | Line 230: | ||
=== Infrastructure & Backend === | === Infrastructure & Backend === | ||
=== Outils Dev === | === Outils Dev === | ||
* [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol | * [https://modelcontextprotocol.io '''MCP LLM'''] — Modèle de langage via Model Context Protocol | ||
| Line 203: | Line 237: | ||
== Assistants IA == | == Assistants IA == | ||
; '''Assistants IA auto-hébergés''' | ; '''Assistants IA auto-hébergés''' | ||
: Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale. | : Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale. | ||
== Développement, modèles & veille == | == Développement, modèles & veille == | ||
| Line 222: | Line 250: | ||
; '''Outils de développement & fine-tuning''' | ; '''Outils de développement & fine-tuning''' | ||
* [https://grok.com '''News search'''] | * [https://grok.com '''News search'''] | ||
| Line 240: | Line 267: | ||
! Variable !! Valeur | ! Variable !! Valeur | ||
|- | |- | ||
| OPENAI_API_BASE || <code>wss://api-realtime-ai.ailab.infocepo.com:wait-2026- | | OPENAI_API_BASE || <code>wss://api-realtime-ai.ailab.infocepo.com:wait-2026-12/v1</code> | ||
|- | |- | ||
| OPENAI_API_KEY || <code>sk-XXXXX</code> | | OPENAI_API_KEY || <code>sk-XXXXX</code> | ||
| Line 246: | Line 273: | ||
== Dépôt GitHub == | == Dépôt GitHub == | ||
== Page de test == | == Page de test == | ||
| Line 258: | Line 284: | ||
= API LLM (OpenAI compatible) = | = API LLM (OpenAI compatible) = | ||
* URL de base : <code>https://api.ailab.infocepo.com | * URL de base : <code>https://api-nothink.ailab.infocepo.com/v1</code> | ||
* Création du token : [https://llm-token.ailab.infocepo.com:wait-2026- | * Création du token : [https://llm-token.ailab.infocepo.com:wait-2026-12 OPENAI_API_KEY] | ||
* Documentation : [https://api.ailab.infocepo.com | * Documentation : [https://api-nothink.ailab.infocepo.com/docs Documentation API] | ||
== Liste des modèles == | == Liste des modèles == | ||
<pre> | <pre> | ||
curl -X GET \ | curl -X GET \ | ||
'https://api.ailab.infocepo.com | 'https://api-nothink.ailab.infocepo.com/v1/models' \ | ||
-H 'Authorization: Bearer sk-XXXXX' \ | -H 'Authorization: Bearer sk-XXXXX' \ | ||
-H 'accept: application/json' \ | -H 'accept: application/json' \ | ||
| Line 273: | Line 299: | ||
== Modèles ouverts & endpoints internes == | == Modèles ouverts & endpoints internes == | ||
''Dernière mise à jour : 2026- | ''Dernière mise à jour : 2026-06-30'' | ||
Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle. | Les modèles ci-dessous correspondent à des '''endpoints logiques''' exposés derrière une passerelle. | ||
| Line 279: | Line 305: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Endpoint !! Description / usage principal | ! Endpoint !! Description / usage principal | ||
|- | |- | ||
| '''ai-thinking''' || '''qwen3.6 fp8''' – thinking | | '''ai-thinking''' || '''qwen3.6 fp8''' – thinking | ||
|- | |- | ||
| '''ai- | | '''ai-fast''' || '''qwen3.6 fp8''' en mode '''fast''' – vision/OCR/ai-default | ||
|- | |- | ||
| '''ai-embedding''' || '''bge-m3''' – recherche sémantique | | '''ai-embedding''' || '''bge-m3''' – recherche sémantique | ||
| Line 299: | Line 321: | ||
== Exemple bash == | == Exemple bash == | ||
<pre> | <pre> | ||
export OPENAI_API_MODEL="ai- | export OPENAI_API_MODEL="ai-default" | ||
export OPENAI_API_BASE="https://api.ailab.infocepo.com | export OPENAI_API_BASE="https://api-nothink.ailab.infocepo.com/v1" | ||
export OPENAI_API_KEY="sk-XXXXX" | export OPENAI_API_KEY="sk-XXXXX" | ||
| Line 310: | Line 332: | ||
}' | }' | ||
curl | curl ${OPENAI_API_BASE}/chat/completions \ | ||
-H "Content-Type: application/json" \ | -H "Content-Type: application/json" \ | ||
-H "Authorization: Bearer $OPENAI_API_KEY" \ | -H "Authorization: Bearer $OPENAI_API_KEY" \ | ||
| Line 366: | Line 388: | ||
}' > payload.json | }' > payload.json | ||
curl https://api.ailab.infocepo.com | curl https://api-nothink.ailab.infocepo.com/v1/chat/completions \ | ||
-H "Authorization: Bearer $OPENAI_API_KEY" \ | -H "Authorization: Bearer $OPENAI_API_KEY" \ | ||
-H "Content-Type: application/json" \ | -H "Content-Type: application/json" \ | ||
| Line 382: | Line 404: | ||
MODEL = "ai-vision" | MODEL = "ai-vision" | ||
IMG_PATH = "/path/to/image.png" | IMG_PATH = "/path/to/image.png" | ||
API_URL = "https://api.ailab.infocepo.com | API_URL = "https://api-nothink.ailab.infocepo.com/v1/chat/completions" | ||
with open(IMG_PATH, "rb") as f: | with open(IMG_PATH, "rb") as f: | ||
| Line 470: | Line 492: | ||
* URL : <code>https://api-tts-omnivoice.ailab.infocepo.com/v1</code> | * URL : <code>https://api-tts-omnivoice.ailab.infocepo.com/v1</code> | ||
* Clé : <code>OPENAI_API_KEY=sk-XXXXX</code> | * Clé : <code>OPENAI_API_KEY=sk-XXXXX</code> | ||
* Documentation : [https://tts.ailab.infocepo.com | * Documentation : [https://api-tts-omnivoice.ailab.infocepo.com/docs API TTS docs] | ||
== Exemple == | == Exemple == | ||
| Line 529: | Line 551: | ||
= API Summary = | = API Summary = | ||
* Documentation : [https://api-summary.ailab.infocepo.com:wait-2026- | * Documentation : [https://api-summary.ailab.infocepo.com:wait-2026-12/docs API Summary docs] | ||
== Exemple == | == Exemple == | ||
| Line 537: | Line 559: | ||
json_payload=$(jq -nc --arg text "$text" '{"text": $text}') | json_payload=$(jq -nc --arg text "$text" '{"text": $text}') | ||
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026- | curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-12/summary/ \ | ||
-H "Content-Type: application/json" \ | -H "Content-Type: application/json" \ | ||
-d "$json_payload" | -d "$json_payload" | ||
| Line 546: | Line 568: | ||
= API Text Embeddings = | = API Text Embeddings = | ||
* URL : <code>https:// | * URL : <code>https://api-embedding.ailab.infocepo.com/v1</code> | ||
* Documentation : [https:// | * Documentation : [https://api-embedding.ailab.infocepo.com/docs Documentation] | ||
== Exemple == | == Exemple == | ||
<pre> | <pre> | ||
curl | curl https://api-embedding.ailab.infocepo.com/v1/embeddings \ | ||
-X POST \ | -X POST \ | ||
-d '{" | -d '{"model":"bge-m3","input":"What is Deep Learning?"}' \ | ||
-H 'Content-Type: application/json' | -H 'Content-Type: application/json' | ||
</pre> | </pre> | ||
| Line 562: | Line 584: | ||
== Production == | == Production == | ||
* URL : <code>https://chromadb.ailab.infocepo.com:wait-2026- | * URL : <code>https://chromadb.ailab.infocepo.com:wait-2026-12</code> | ||
* Token : <code>XXXXX</code> | * Token : <code>XXXXX</code> | ||
== Lab == | == Lab == | ||
<pre> | <pre> | ||
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026- | export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-12 | ||
export CHROMA_PORT=443 | export CHROMA_PORT=443 | ||
export CHROMA_TOKEN=XXXX | export CHROMA_TOKEN=XXXX | ||
| Line 633: | Line 655: | ||
= Registry = | = Registry = | ||
* URL : [https://registry.ailab.infocepo.com:wait-2026- | * URL : [https://registry.ailab.infocepo.com:wait-2026-09 registry.ailab.infocepo.com:wait-2026-09] | ||
* Login : <code>user</code> | * Login : <code>user</code> | ||
* Password : <code>XXXXX</code> | * Password : <code>XXXXX</code> | ||
| Line 639: | Line 661: | ||
== Exemple == | == Exemple == | ||
<pre> | <pre> | ||
curl -u "user:XXXXX" https://registry.ailab.infocepo.com:wait-2026- | curl -u "user:XXXXX" https://registry.ailab.infocepo.com:wait-2026-09/v2/_catalog | ||
</pre> | </pre> | ||
| Line 648: | Line 670: | ||
kubectl -n ${nameSpace} create secret docker-registry pull-secret \ | kubectl -n ${nameSpace} create secret docker-registry pull-secret \ | ||
--docker-server=registry.ailab.infocepo.com:wait-2026- | --docker-server=registry.ailab.infocepo.com:wait-2026-09 \ | ||
--docker-username=user \ | --docker-username=user \ | ||
--docker-password=XXXXX \ | --docker-password=XXXXX \ | ||
| Line 661: | Line 683: | ||
= Stockage objet externe (S3) = | = Stockage objet externe (S3) = | ||
* Endpoint : <code>https://s3.ailab.infocepo.com:wait-2026- | * Endpoint : <code>https://s3.ailab.infocepo.com:wait-2026-09</code> | ||
* Access key : <code>XXXX</code> | * Access key : <code>XXXX</code> | ||
* Secret key : <code>XXXX</code> | * Secret key : <code>XXXX</code> | ||
| Line 672: | Line 694: | ||
* Embeddings : <code>BAAI/bge-m3</code> | * Embeddings : <code>BAAI/bge-m3</code> | ||
* <code>chunk_size= | * <code>chunk_size=1000</code> | ||
* <code>chunk_overlap=100</code> | * <code>chunk_overlap=100</code> | ||
* LLM : <code>qwen3.6</code> | * LLM : <code>qwen3.6</code> | ||
| Line 679: | Line 701: | ||
---- | ---- | ||
= | = Workflow = | ||
Autoroute directe : code → CI/CD → deploy → monitoring. Pas de comité, pas de responsable désigné — chaque étape se déclenche automatiquement si la précédente passe. Si ça rate, alerte directe sans passer par un humain sauf décision explicite de fallback. | |||
---- | ---- | ||
| Line 704: | Line 710: | ||
== Hors production == | == Hors production == | ||
* Utiliser [https://datalab.ailab.infocepo.com:wait-2026- | * Utiliser [https://datalab.ailab.infocepo.com:wait-2026-12 datalab] | ||
* Support : canal Mattermost Offre IA | * Support : canal Mattermost Offre IA | ||
* Le pseudo utilisateur doit respecter la convention interne | * Le pseudo utilisateur doit respecter la convention interne | ||
| Line 716: | Line 722: | ||
== Limites de l’infrastructure == | == Limites de l’infrastructure == | ||
* Les charges GPU sont intentionnellement limitées en journée. | * Les charges GPU sont intentionnellement limitées en journée. | ||
* Coût unitaire mesuré automatiquement (dashboards temps réel, pas Excel). | |||
---- | ---- | ||
| Line 775: | Line 782: | ||
| Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot | | Extinction / redémarrage simultané de tous les nœuds || Les services repartent correctement après reboot | ||
|} | |} | ||
'''Autonomie testée''' : vérifier que la migration fonctionne seule en tirant le repo et lançant le script, sans personne qui connaît le système de tête. | |||
---- | ---- | ||
| Line 798: | Line 808: | ||
== Références == | == Références == | ||
* [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure] | * [https://wikitech.wikimedia.org/wiki/Wikimedia_infrastructure Wikimedia infrastructure] | ||
---- | ---- | ||
| Line 870: | Line 879: | ||
* [https://www.youtube.com/@lev-selector/videos Top AI News] | * [https://www.youtube.com/@lev-selector/videos Top AI News] | ||
* [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper] | * [https://betterprogramming.pub/color-your-captions-streamlining-live-transcriptions-with-diart-and-openais-whisper-6203350234ef Real-time transcription with Diart + Whisper] | ||
* [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM] | * [https://opensearch.org/docs/latest/search-plugins/conversational-search Opensearch with LLM] | ||
| Line 898: | Line 906: | ||
== Dépôts de code == | == Dépôts de code == | ||
== Base de connaissance == | == Base de connaissance == | ||
* ce wiki | * [https://infocepo.com '''ce wiki'''] | ||
== Messagerie == | == Messagerie == | ||
| Line 907: | Line 914: | ||
== SSO == | == SSO == | ||
* [https://auth-lab.ailab.infocepo.com:wait-2026- | * [https://auth-lab.ailab.infocepo.com:wait-2026-12/auth Keycloak] | ||
---- | ---- | ||
Revision as of 13:12, 7 September 2026
infocepo.com – Cloud, AI & Labs
Bienvenue sur le portail infocepo.com.
Ce wiki documente l’écosystème Cloud, IA, automatisation et lab d’Infocepo. Il s’adresse aux :
- administrateurs systèmes,
- ingénieurs cloud,
- développeurs,
- étudiants,
- curieux qui veulent apprendre en pratiquant.
L’objectif est simple : transformer la théorie en scripts réutilisables, schémas, architectures, APIs et laboratoires concrets.
Accès rapide
Portail principal
Assistant IA
Liste des pages du wiki
Vue d’ensemble
Démarrer rapidement
Parcours recommandés
- 1. Construire un assistant IA privé
- Déployer une stack type Hermes WebUI + Ollama + GPU
- Ajouter un modèle de chat et un modèle de résumé
- Brancher des données internes via RAG + embeddings
- 2. Lancer un lab cloud
- Créer un petit cluster Kubernetes, OpenStack ou bare-metal
- Mettre en place un pipeline de déploiement (Helm, Ansible, Terraform…)
- Ajouter un service IA : transcription, résumé, chatbot, OCR…
- 3. Préparer un audit ou une migration
- Inventorier les serveurs avec ServerDiff.sh
- Concevoir l’architecture cible
- Automatiser la migration avec des scripts reproductibles
Vue d’ensemble du contenu
- Guides IA & outils : assistants, modèles, évaluation, GPU, RAG
- Cloud & infrastructure : Kubernetes, OpenStack, HA, HPC, DevSecOps
- Labs & scripts : audit, migration, automatisation
- Comparatifs : Kubernetes vs OpenStack vs AWS vs bare-metal, etc.
Vision
Le but à long terme est de construire un environnement où :
- les assistants IA privés accélèrent la production,
- les tâches répétitives sont automatisées,
- les déploiements sont industrialisés,
- l’infrastructure reste compréhensible, portable et réutilisable.
Chaque sortie IA est mesurée en temps réel, les modèles faibles sont remplacés automatiquement, et les tâches sans valeur sont coupées. L'autonomie vient de mécanismes techniques qui fonctionnent quand personne ne regarde — pas de règles écrites dans un doc.
Catalogue rapide des services
| Catégorie | Service | Rôle |
|---|---|---|
| API | LLM | Modèles de chat, code, RAG, OCR |
| API | STT | Transcription audio |
| API | TTS | Synthèse vocale |
| API | realtime-ai | Temps réel WebSocket / WebRTC |
| API | IMAGE2TXT | OCR / VLM via endpoint dédié |
| API | summary | Résumé de textes longs |
| API | EMBEDDINGS | Embeddings pour RAG |
| API | ChromaDB | Base vecteur |
| API | TXT2IMAGE | Génération d’images |
| API | diarization | Segmentation locuteurs |
| Observabilité | monitoring | Dashboards techniques |
| Observabilité | status | Disponibilité des services |
| Observabilité | web-stat | Statistiques web |
| Observabilité | LLM-stat | Vue API / usage |
| Outils | dataLab | Environnement de travail hors-production |
| Outils | realtime translation | Traduction |
| Outils | Demos | Démonstrateurs |
Sélection AI & architecture par couche
Le tableau de bord Sélection AI présente l'architecture par couche des modèles IA déployés :
| Couche | Modèle | Alias(s) | Notes |
|---|---|---|---|
| HYBRID-CLOUD | Qwen3.X-XXB | flash, default, thinking, vision, org | 35B MoE — Option 1 |
| Qwen3.8-Flash-Next | flash, default, thinking, org, max, vision | 125B MoE — Option 2 | |
| MiniMax-H3 | video | 33B | |
| BGE-M3 | embedding | 568M | |
| BGE-reranker-v2-m3 | reranker | 568M | |
| FLUX.2-klein-4B | Image | 4B | |
| LOCAL | Ornith-1.5-9B | flash, default, thinking, vision, org | 9B — Option 1 |
| Qwen3.8-27B | flash, default, thinking, vision, org, max | 27.8B — Option 2 |
Frameworks
| Outil | Usage |
|---|---|
| Hermes | Usage général, raisonnement |
| OpenCode | DevSecOps |
| Kilo Code | Développement pur |
Mémoire
Pour la couche d'embedding vectoriel (RAG, mémoire sémantique) :
- BGE-M3 — 568M paramètres, architecture XLM-RoBERTa. Multi-fonction (dense + sparse + multi-vector), 100+ langues, licence MIT. Idéal comme moteur de mémoire à échelle.
Nouveautés
Nouveautés implémentés 12/08/2026
- api-txt2image (2026-08-29) : Text-to-image generation API for AI-powered image creation
- dind-build (2026-08-29) : Docker-in-Docker build factory on Kubernetes — build, push, pull via K8s DinD pod
- quality-gate (2026-08-28) : Quality gate auto - auto-scoring, detection hallucination, verification citations, fix patterns regex
- agent-saas (2026-08-27) : SaaS AI agent platform — deploy autonomous AI agents as a service
- api-convert2md (2026-08-26) : Document-to-Markdown conversion API — clean markdown from various formats
- qwen36-sglang (2026-08-24) : Qwen 3.6 deployment with SGLang for high-performance inference
- trafilatura-local (2026-08-23) : Initial: service extraction trafilatura-local (clean)
- api-rag (2026-08-19) : RAG API — semantic search over knowledge bases with retrieval-augmented generation
- models-todo (2026-08-19) : HuggingFace Model Tracker Dashboard - generate_top100_dow.py + deploy
- minimax-music3 (2026-08-18) : Initial: studio generation musique IA MiniMax-Music3
- hermes-img-gen-infocepo (2026-08-15) : Plugin Hermes Image Gen pour API TXT2IMAGE infocepo
- api-llm-custom (2026-08-13) : Custom LLM proxy API — route requests to any language model backend
- infocepo-infra-mcp (2026-08-12) : Fix wiki cache permission failures (PR #7)
- api-mcp-openai (2026-08-11) : AI MCP OpenAI Integration — Selection port libre, simplification setup (PR #2)
- api-embedding (2026-08-07) : Text embedding API — convert text to vector embeddings for semantic search (PR #7)
- api-reranker (2026-08-06) : Cross-encoder reranking API for improving search retrieval quality (PR #2)
Priorités
Top tasks
- Ajouter Presidio : anonymisation / masquage PII, socle RGPD.
- Ajouter llm-d : blueprints + charts Kubernetes pour industrialiser les déploiements.
- Ajouter Dynamo : orchestration inférence multi-nœuds.
- Ajouter GuideLLM : capacity planning / benchmark réaliste.
- Ajouter NeMo Guardrails : garde-fous et politiques.
- Coût unitaire par tâche : chaque API doit exposer son prix/ml/token en temps réel — pas une facture mensuelle.
- Qualité auto : précision/hallucination rate branchés sur les sorties IA, avec rollback automatique si qualité < seuil.
Backlog / Veille Technologique
Agents IA & Orchestration
Audio & TTS
- [https://huggingface.co/Supertone/supertonic-3 Superto
- Qwen3-Omni-30B-A3B-Instruct — Modèle multimodal Qwen (audio + texte + image)
- nemotron-3.5-asr-streaming-0.6b — Modèle ASR streaming NVIDIA, faible latence pour transcription temps réel
Génération & Édition d'Images
- HiDream-O1-Image — Modèle unifié pixel-level (UiT), sans VAE externe — t2i, édition, personnalisation jusqu'à 2048×2048
RAG & Traitement de Documents
- RAG sur PDF avec images
- granite-docling-258M — Parsing structuré de documents IBM Granite
APIs à Développer
- Classificateur IA — Classification de contenu
- Résumé mutualisé — API de résumé de texte partagée
- NER — Reconnaissance d'entités nommées
- Compressor — Compression de contenu
Infrastructure & Backend
Outils Dev
- MCP LLM — Modèle de langage via Model Context Protocol
Assistants IA & outils cloud
Assistants IA
- Assistants IA auto-hébergés
- Stack typique pour assistant privé, API OpenAI-compatible et expérimentation locale.
Développement, modèles & veille
- Découverte de modèles
- Évaluation & benchmarks
- Outils de développement & fine-tuning
Matériel IA & GPU
- NVIDIA GH200
- DGX Spark
- GROQ LLM accelerator
API Realtime AI (DEV)
Statut : environnement DEV, remplaçante prévue de l’API OpenAI pour les cas temps réel.
Configuration
| Variable | Valeur |
|---|---|
| OPENAI_API_BASE | wss://api-realtime-ai.ailab.infocepo.com:wait-2026-12/v1
|
| OPENAI_API_KEY | sk-XXXXX
|
Dépôt GitHub
Page de test
external-test/half-duplex.html— annulation d’écho + mode half-duplex.
Compatibilité
Remplacer l’URL OpenAI par $OPENAI_API_BASE pour tester compatibilité et performances.
API LLM (OpenAI compatible)
- URL de base :
https://api-nothink.ailab.infocepo.com/v1 - Création du token : OPENAI_API_KEY
- Documentation : Documentation API
Liste des modèles
curl -X GET \ 'https://api-nothink.ailab.infocepo.com/v1/models' \ -H 'Authorization: Bearer sk-XXXXX' \ -H 'accept: application/json' \ | jq | sed -rn 's#^.*id.*: "(.*)".*$#* \1#p' | sort -u
Modèles ouverts & endpoints internes
Dernière mise à jour : 2026-06-30
Les modèles ci-dessous correspondent à des endpoints logiques exposés derrière une passerelle.
| Endpoint | Description / usage principal |
|---|---|
| ai-thinking | qwen3.6 fp8 – thinking |
| ai-fast | qwen3.6 fp8 en mode fast – vision/OCR/ai-default |
| ai-embedding | bge-m3 – recherche sémantique |
| ai-stt | whisper3-turbo – transcription vocale multilingual |
| ai-tts | OmniVoice – TTS multilingual |
| ai-image | OpenDalle – image génération |
Exemple bash
export OPENAI_API_MODEL="ai-default"
export OPENAI_API_BASE="https://api-nothink.ailab.infocepo.com/v1"
export OPENAI_API_KEY="sk-XXXXX"
promptValue="Quel est ton nom ?"
jsonValue='{
"model": "'${OPENAI_API_MODEL}'",
"messages": [{"role": "user", "content": "'${promptValue}'"}],
"temperature": 0
}'
curl ${OPENAI_API_BASE}/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d "${jsonValue}" 2>/dev/null | jq '.choices[0].message.content'
Vue infra LLM
DEV (au choix)
- A.
LiteLLM → vLLM/SgLang: tests perf / compatibilité - B.
LiteLLM → Ollama: simple, rapide à itérer - C.
Ollamadirect : POC ultra-léger
DEV – modèle FR / résumé
LiteLLM → Ollama /v1
PROD
- Standard :
LiteLLM → vLLM/SgLang - Pont DEV→PROD :
LiteLLM (DEV) → LiteLLM (PROD) → vLLM/SgLang
Notes :
- LiteLLM = passerelle unique (clés, quotas, logs)
- vLLM/SgLang = performance / stabilité en charge
- Ollama = simplicité de prototypage
API Image to Text
- Utilise l’API LLM avec un endpoint adapté à l’OCR / VLM.
- Modèle recommandé :
ai-vision
Exemple bash
OPENAI_API_KEY=sk-XXXXX
base64 -w0 "/path/to/image.png" > img.b64
jq -n --rawfile img img.b64 \
'{
model: "ai-vision",
messages: [
{
role: "user",
content: [
{ "type": "text", "text": "Décris cette image." },
{
"type": "image_url",
"image_url": { "url": ("data:image/png;base64," + ($img | rtrimstr("\n"))) }
}
]
}
]
}' > payload.json
curl https://api-nothink.ailab.infocepo.com/v1/chat/completions \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
--data-binary @payload.json
Exemple Python
import base64
import json
import requests
import os
API_KEY = os.getenv("OPENAI_API_KEY")
MODEL = "ai-vision"
IMG_PATH = "/path/to/image.png"
API_URL = "https://api-nothink.ailab.infocepo.com/v1/chat/completions"
with open(IMG_PATH, "rb") as f:
img_b64 = base64.b64encode(f.read()).decode("utf-8")
payload = {
"model": MODEL,
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Décris cette image."},
{
"type": "image_url",
"image_url": {"url": f"data:image/png;base64,{img_b64}"}
}
]
}
]
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(API_URL, headers=headers, data=json.dumps(payload))
if response.ok:
print(json.dumps(response.json(), indent=2, ensure_ascii=False))
else:
print(f"Erreur {response.status_code}: {response.text}")
API STT
- URL :
https://api-audio2txt.ailab.infocepo.com/v1 - Clé :
OPENAI_API_KEY=sk-XXXXX - Modèle :
whisper-1 - Documentation : API STT docs
Exemple Python
import requests
OPENAI_API_KEY = 'sk-XXXXX'
url = 'https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions'
headers = {
'Authorization': f'Bearer {OPENAI_API_KEY}',
}
files = {
'file': ('file.opus', open('/path/to/file.opus', 'rb')),
'model': (None, 'whisper-1')
}
response = requests.post(url, headers=headers, files=files)
print(response.json())
Exemple curl
[ ! -f /tmp/test.ogg ] && wget "https://upload.wikimedia.org/wikipedia/commons/1/17/Fables_de_La_Fontaine_Livre_1_01.ogg" -O /tmp/test.ogg export OPENAI_API_KEY=sk-XXXXX curl https://api-audio2txt.ailab.infocepo.com/v1/audio/transcriptions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -F model="whisper-1" \ -F file="@/tmp/test.ogg"
Notes
- Plusieurs formats audio sont acceptés.
- Le flux final est normalisé en 16 kHz mono.
- Pour une qualité optimale : privilégier OPUS 16 kHz mono.
UI
API TTS
- URL :
https://api-tts-omnivoice.ailab.infocepo.com/v1 - Clé :
OPENAI_API_KEY=sk-XXXXX - Documentation : API TTS docs
Exemple
export OPENAI_API_KEY=sk-XXXXX
curl https://api-tts-omnivoice.ailab.infocepo.com/v1/audio/speech \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o-mini-tts",
"input": "Bonjour, ceci est un test de synthèse vocale.",
"voice": "coral",
"instructions": "Speak in a cheerful and positive tone.",
"response_format": "opus"
}' | ffplay -i -
API Text to Image
- URL :
https://api-txt2image.ailab.infocepo.com/v1 - Clé API :
OPENAI_API_KEY=sk-... - Documentation : API TXT2IMAGE docs
Exemple
export OPENAI_API_KEY=EMPTY
curl https://api-txt2image.ailab.infocepo.com/v1/images/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"prompt": "a photo of a happy corgi puppy sitting and facing forward, studio light, longshot",
"n": 1,
"size": "1024x1024"
}'
API Diarization
- Documentation : API Diarization docs
Exemple
wget "https://upload.wikimedia.org/wikipedia/commons/6/60/Mike_Peters_on_Politics_and_Emotion_%28Interview_1984%29.mp3" -O /tmp/test.mp3 curl -X POST "https://api-diarization.ailab.infocepo.com/upload-audio/" \ -H "Authorization: Bearer token1" \ -F "file=@/tmp/test.mp3"
API Summary
- Documentation : API Summary docs
Exemple
text="The tower is 324 metres tall and is one of the most recognizable monuments in the world."
json_payload=$(jq -nc --arg text "$text" '{"text": $text}')
curl -X POST https://api-summary.ailab.infocepo.com:wait-2026-12/summary/ \
-H "Content-Type: application/json" \
-d "$json_payload"
API Text Embeddings
- URL :
https://api-embedding.ailab.infocepo.com/v1 - Documentation : Documentation
Exemple
curl https://api-embedding.ailab.infocepo.com/v1/embeddings \
-X POST \
-d '{"model":"bge-m3","input":"What is Deep Learning?"}' \
-H 'Content-Type: application/json'
API DB Vectors (ChromaDB)
Production
- URL :
https://chromadb.ailab.infocepo.com:wait-2026-12 - Token :
XXXXX
Lab
export CHROMA_HOST=https://chromadb.c1.ailab.infocepo.com:wait-2026-12 export CHROMA_PORT=443 export CHROMA_TOKEN=XXXX
Exemple curl
curl -v "${CHROMA_HOST}"/api/v1/collections \
-H "Authorization: Bearer ${CHROMA_TOKEN}"
Exemple Python
import chromadb
from chromadb.config import Settings
def chroma_http(host, port=80, token=None):
return chromadb.HttpClient(
host=host,
port=port,
ssl=host.startswith('https') or port == 443,
settings=(
Settings(
chroma_client_auth_provider='chromadb.auth.token.TokenAuthClientProvider',
chroma_client_auth_credentials=token,
) if token else Settings()
)
)
client = chroma_http(CHROMA_HOST, CHROMA_PORT, CHROMA_TOKEN)
collections = client.list_collections()
print(collections)
Déployer sa propre instance
export nameSpace=your_namespace
domainRoot=ailab.infocepo.com
helm repo add chroma https://amikos-tech.github.io/chromadb-chart/
helm repo update
helm upgrade --install chromadb chroma/chromadb -n ${nameSpace} \
--set chromadb.apiVersion="0.4.24" \
--set ingress.enabled=true \
--set ingress.hosts[0].host="${nameSpace}-chromadb.${domainRoot}" \
--set ingress.hosts[0].paths[0].path=/ \
--set ingress.hosts[0].paths[0].pathType=ImplementationSpecific \
--set ingress.annotations."cert-manager\.io/cluster-issuer"=letsencrypt-prod \
--set ingress.tls[0].secretName=${nameSpace}-chromadb.${domainRoot}-tls \
--set ingress.tls[0].hosts[0]="${nameSpace}-chromadb.${domainRoot}"
kubectl -n ${nameSpace} patch ingress/chromadb --type=json \
-p '[{"op":"add","path":"/metadata/annotations/nginx.ingress.kubernetes.io~1proxy-body-size","value":"0"}]'
Récupérer le token
kubectl --namespace ${nameSpace} get secret chromadb-auth \
-o jsonpath="{.data.token}" | base64 --decode && echo
Registry
- URL : registry.ailab.infocepo.com:wait-2026-09
- Login :
user - Password :
XXXXX
Exemple
curl -u "user:XXXXX" https://registry.ailab.infocepo.com:wait-2026-09/v2/_catalog
Exemple K8S
deploymentName=
nameSpace=
kubectl -n ${nameSpace} create secret docker-registry pull-secret \
--docker-server=registry.ailab.infocepo.com:wait-2026-09 \
--docker-username=user \
--docker-password=XXXXX \
--docker-email=contact@example.com
kubectl -n ${nameSpace} patch deployment ${deploymentName} \
-p '{"spec":{"template":{"spec":{"imagePullSecrets":[{"name":"pull-secret"}]}}}}'
Stockage objet externe (S3)
- Endpoint :
https://s3.ailab.infocepo.com:wait-2026-09 - Access key :
XXXX - Secret key :
XXXX
Un bucket nommé ORG a été créé pour stocker des documents de démonstration.
RAG optimisation
- Embeddings :
BAAI/bge-m3 chunk_size=1000chunk_overlap=100- LLM :
qwen3.6 - Pour les PDF mixtes : PDF → image → OCR / VLM peut améliorer les résultats.
Workflow
Autoroute directe : code → CI/CD → deploy → monitoring. Pas de comité, pas de responsable désigné — chaque étape se déclenche automatiquement si la précédente passe. Si ça rate, alerte directe sans passer par un humain sauf décision explicite de fallback.
Environnements
Hors production
- Utiliser datalab
- Support : canal Mattermost Offre IA
- Le pseudo utilisateur doit respecter la convention interne
- Demander si besoin un accès Linux + Kubernetes
Production (best-effort)
- Publier le code applicatif, les secrets (format SOPS), le Dockerfile et le code infra (Helm ou manifests K8S) sur Git
- Demander un namespace
- Lire la documentation de surveillance associée
Limites de l’infrastructure
- Les charges GPU sont intentionnellement limitées en journée.
- Coût unitaire mesuré automatiquement (dashboards temps réel, pas Excel).
Cloud Lab & projets d’audit
Le Cloud Lab fournit des scénarios reproductibles : audit d’infrastructure, migration cloud, automatisation, haute disponibilité.
Projet d’audit
Script Bash d’audit permettant de :
- détecter les dérives de configuration,
- comparer plusieurs environnements,
- préparer un plan de migration ou de remédiation.
Exemple de migration cloud
| Tâche | Description | Durée (jours) |
|---|---|---|
| Audit infrastructure | 82 services, audit automatisé via ServerDiff.sh | 1.5 |
| Diagramme d’architecture | Conception visuelle et documentation | 1.5 |
| Contrôles de conformité | 2 clouds, 6 hyperviseurs, 6 To RAM | 1.5 |
| Installation plateforme cloud | Déploiement des environnements cibles | 1.0 |
| Vérification de stabilité | Premiers tests fonctionnels | 0.5 |
| Étude d’automatisation | Identification des tâches répétitives | 1.5 |
| Développement des templates | 6 templates, 8 environnements, 2 clouds / OS | 1.5 |
| Diagramme de migration | Illustration du processus | 1.0 |
| Écriture du code de migration | 138 lignes (voir MigrationApp.sh) | 1.5 |
| Stabilisation | Validation de la reproductibilité | 1.5 |
| Benchmark cloud | Comparaison vs legacy | 1.5 |
| Réglage des temps d’arrêt | Calcul du downtime | 0.5 |
| Chargement VM | 82 VMs : OS, code, 2 IP par VM | 0.1 |
| Total | 15 jours.homme | |
Vérifications de stabilité (HA minimale)
| Action | Résultat attendu |
|---|---|
| Extinction d’un nœud | Tous les services redémarrent automatiquement sur les autres nœuds |
| Extinction / redémarrage simultané de tous les nœuds | Les services repartent correctement après reboot |
Autonomie testée : vérifier que la migration fonctionne seule en tirant le repo et lançant le script, sans personne qui connaît le système de tête.
Architecture web & bonnes pratiques
Principes de conception :
- privilégier une infrastructure simple, modulaire et flexible,
- rapprocher le contenu du client (GDNS ou équivalent),
- utiliser des load balancers réseau (LVS, IPVS),
- comparer les coûts et éviter le vendor lock-in,
- pour TLS :
- HAProxy pour les frontends rapides,
- Envoy pour les cas avancés (mTLS, HTTP/2/3),
- pour le cache :
- Varnish, Apache Traffic Server,
- favoriser les stacks open-source,
- utiliser files, buffers, queues et quotas pour lisser les pics.
Références
Comparatif des grandes plateformes cloud
| Fonctionnalité | Kubernetes | OpenStack | AWS | Bare-metal | HPC | CRM | oVirt |
|---|---|---|---|---|---|---|---|
| Outils de déploiement | Helm, YAML, ArgoCD, Juju | Ansible, Terraform, Juju | CloudFormation, Terraform, Juju | Ansible, Shell | xCAT, Clush | Ansible, Shell | Ansible, Python |
| Méthode de bootstrap | API | API, PXE | API | PXE, IPMI | PXE, IPMI | PXE, IPMI | PXE, API |
| Contrôle routeur | Kube-router | Router/Subnet API | Route Table / Subnet API | Linux, OVS | xCAT | Linux | API |
| Contrôle firewall | Istio, NetworkPolicy | Security Groups API | Security Group API | Linux firewall | Linux firewall | Linux firewall | API |
| Virtualisation réseau | VLAN, VxLAN | VPC | VPC | OVS, Linux | xCAT | Linux | API |
| DNS | CoreDNS | DNS-Nameserver | Route 53 | GDNS | xCAT | Linux | API |
| Load balancer | Kube-proxy, LVS | LVS | Network Load Balancer | LVS | SLURM | Ldirectord | N/A |
| Stockage | Local, cloud, PVC | Swift, Cinder, Nova | S3, EFS, EBS, FSx | Swift, XFS, EXT4, RAID10 | GPFS | SAN | NFS, SAN |
Cette table sert de point de départ pour choisir la bonne stack selon :
- le niveau de contrôle souhaité,
- le contexte (on-prem, cloud public, HPC…),
- les outils d’automatisation existants.
Haute disponibilité, HPC & DevSecOps
Haute disponibilité avec Corosync & Pacemaker
Principes :
- clusters multi-nœuds ou multi-sites,
- fencing via IPMI,
- provisioning PXE / NTP / DNS / TFTP,
- pour 2 nœuds : attention au split-brain,
- 3 nœuds ou plus recommandés en production.
Ressources fréquentes
- multipath, LUNs, LVM, NFS,
- processus applicatifs,
- IP virtuelles, DNS, listeners réseau.
HPC
- orchestration de jobs (SLURM ou équivalent),
- stockage partagé haute performance,
- intégration possible avec des workloads IA.
DevSecOps
- CI/CD avec contrôles de sécurité intégrés,
- observabilité dès la conception,
- scans de vulnérabilité,
- gestion des secrets,
- policy-as-code.
News & trends
Formation & apprentissage
- Transformers Explained
- Labs, scripts et retours d’expérience concrets dans le projet Cloud Lab
Liens cloud & IT utiles
- Cloud Providers Compared
- Global Internet Topology Map
- CNCF Official Landscape
- Wikimedia Cloud Wiki
- OpenAPM
- Red Hat Package Browser
- Baromètre TJM IT
- Indicateurs salariaux IT
Outils collaboratifs
Dépôts de code
Base de connaissance
Messagerie
- contact interne / support selon les projets
SSO
À propos & contributions
Suggestions de corrections, améliorations de schémas, retours d’expérience ou nouveaux labs bienvenus.
Ce wiki a vocation à rester un laboratoire vivant pour l’IA, le cloud et l’automatisation.


