إدارة الإعدادات والأسرار أثناء النشر
تعلّم فصل الإعدادات وحقن الأسرار مثل مفاتيح API بأمان في تطبيقات LLM المنشورة باستخدام متغيرات البيئة وخرائط الإعدادات ومديري الأسرار.
إدارة الإعدادات والأسرار أثناء النشر درس مجاني في LLM Apps in Production (RAG + Vector DB + Caching) على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في LLM Apps in Production (RAG + Vector DB + Caching)، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة LLM Apps in Production (RAG + Vector DB + Caching) 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Config Belongs Outside Code
The same LLM app image runs in dev, staging, and production. The only difference should be configuration, not the code. Hard-coding endpoints or keys forces a rebuild for every environment.
This is the core idea of config externalization.
Config vs Secrets
Two related but distinct concepts:
- Config — non-sensitive settings: model name, temperature, log level
- Secrets — sensitive values: API keys, DB passwords, tokens
Secrets need stricter handling and must never be logged.
Environment Variables
The simplest portable mechanism is environment variables.
import os
model = os.environ.get('LLM_MODEL', 'gpt-mini')
temp = float(os.environ.get('LLM_TEMPERATURE', '0.2'))
print('Using', model, 'at temp', temp)The Twelve-Factor Approach
The twelve-factor methodology says store config in the environment. This keeps the build artifact identical across environments and avoids accidentally committing secrets into version control.
Kubernetes ConfigMaps
In Kubernetes, non-sensitive config lives in a ConfigMap and is injected as env vars or files.
apiVersion: v1
kind: ConfigMap
metadata:
name: llm-config
data:
LLM_MODEL: 'gpt-mini'
LLM_TEMPERATURE: '0.2'Kubernetes Secrets
Sensitive values go in a Secret object, kept separate from ConfigMaps and mounted with tighter access controls. Base64 encoding is not encryption, so enable encryption at rest.
apiVersion: v1
kind: Secret
metadata:
name: llm-secrets
type: Opaque
stringData:
OPENAI_API_KEY: 'set-via-pipeline'Dedicated Secret Managers
For production, use a dedicated secret manager:
- HashiCorp Vault
- AWS Secrets Manager
- GCP Secret Manager
They offer rotation, audit logs, and fine-grained access far beyond plain env vars.
Fetching Secrets at Runtime
Apps can pull secrets at startup from a manager instead of baking them in. This centralizes rotation.
def load_secret(name):
store = {'OPENAI_API_KEY': 'sk-demo'}
if name not in store:
raise KeyError('missing secret: ' + name)
return store[name]
print(load_secret('OPENAI_API_KEY')[:7])Validating Config at Startup
Fail fast: validate that all required config and secrets are present when the app boots, not when the first request arrives. A clear startup error beats a confusing 500 in production.
Avoiding Secret Leaks
Common leak vectors to guard against:
- Logging full request objects that include keys
- Echoing env vars in debug endpoints
- Committing .env files
- Exposing secrets in error stack traces
Rotation and Per-Environment Keys
Use separate keys per environment and rotate them on a schedule. With a secret manager, rotation updates one place and all instances pick it up without a redeploy.
Quick Check
Test your understanding of Kubernetes config.
Recap
You learned to externalize config from code and separate it from secrets. Use environment variables and ConfigMaps for settings, Secrets and dedicated managers for sensitive values, validate everything at startup, and rotate keys per environment without leaking them in logs.
الأسئلة الشائعة
هل درس «إدارة الإعدادات والأسرار أثناء النشر» مجاني؟
نعم — نص درس «إدارة الإعدادات والأسرار أثناء النشر» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة LLM Apps in Production (RAG + Vector DB + Caching)، انتقل إلى CoddyKit PRO. تتضمن دورة LLM Apps in Production (RAG + Vector DB + Caching) 4 دروس في المجموع.
ماذا ستتعلم في «إدارة الإعدادات والأسرار أثناء النشر»؟
تعلّم فصل الإعدادات وحقن الأسرار مثل مفاتيح API بأمان في تطبيقات LLM المنشورة باستخدام متغيرات البيئة وخرائط الإعدادات ومديري الأسرار. تتمرن على LLM Apps in Production (RAG + Vector DB + Caching) مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ LLM Apps in Production (RAG + Vector DB + Caching)؟
لا تُشترط خبرة سابقة. LLM Apps in Production (RAG + Vector DB + Caching) على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إدارة الإعدادات والأسرار أثناء النشر»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس LLM Apps in Production (RAG + Vector DB + Caching) هذا؟
نعم. كل درس في LLM Apps in Production (RAG + Vector DB + Caching) يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تحويل تطبيقات نماذج اللغة الكبيرة إلى حاويات باستخدام Docker
- التنسيق باستخدام Kubernetes لتحقيق قابلية التوسع
- التكامل المستمر والنشر المستمر لتطبيقات نماذج اللغة الكبيرة
- إدارة الإعدادات والأسرار أثناء النشر