DevOps بالعربي
مقالات عملية مرتبة حسب المجال والمستوى، اختر المجال المناسب واقرأ من مستوى مبتدئ إلى محترف.
ليه بيطلعلك FATAL: too many clients؟ وحلّها بـ PgBouncer
اتصالات PostgreSQL بتقع بخطأ too many clients تحت الحِمل؟ المشكلة مش في السيرفر. اعرف ليه كل اتصال غالي، وإزاي PgBouncer بوضع transaction يخدم آلاف العملاء بعشرين اتصال خلفي، مع pgbouncer.ini جاهز، أرقام، trade-offs، ومتى لا تستخدمه، مع مصادر رسمية.
صورة Docker بتاعتك 850 ميجا؟ نزّلها لـ 18 ميجا بالـ Multi-Stage Build
لو صورة Docker بتاعتك بتتجاوز مئات الميجابايت، النشر بيبطأ وسطح الهجوم بيكبر. المقال للمتوسط يشرح ليه الصور بتتضخّم بمثال بسيط ثم علميًا، وإزاي الـ Multi-Stage Build وترتيب الطبقات ينزّلوا صورة Go من ~850 لـ ~18 ميجا، بـ Dockerfile قابل للنسخ، أرقام مقاسة، الـ trade-offs، ومتى لا تستخدمه، مع مصادر رسمية.
متوسط زمن الاستجابة بيكذب: قيس p95 وp99 صح بالـ Histogram
المتوسط ممكن يقول إن زمن استجابتك 91 مللي ثانية، بينما 5% من مستخدميك بيستنوا أكتر من 210. المقال يشرح ليه المتوسط بيخبّي أبطأ المستخدمين، وإزاي تقيس p95 وp99 صح بـ Prometheus Histogram وPromQL، بمثال وكود وأرقام ومصادر رسمية.
البنية التحتية ككود بـ Terraform: وقّف ضبط السيرفرات بإيدك
ضبط السيرفرات يدويًا من الكونسول بطيء وبيتكرر بأخطاء. Terraform بيخلّيك تكتب بنيتك في ملف واحد وتعيد إنشاءها بنفس النتيجة في أقل من دقيقتين. شرح للمتوسط بمثال بسيط ثم علميًا، مع كود HCL وأوامر شغّالة، أرقام، الفرق بين plan وapply، الـ state، trade-offs، ومتى لا تستخدمه، مع مصادر رسمية.
مفاتيح التكرار (Idempotency Keys): أعِد المحاولة على الدفع بأمان بلا خصم مزدوج
لو الشبكة قطعت الرد وتطبيقك أعاد إرسال طلب الدفع، ممكن تخصم من العميل مرتين. مفتاح التكرار بيخلّي أي طلب POST يتنفّذ مرة واحدة مهما تكرر، بمثال بسيط ثم شرح علمي، مع كود PostgreSQL شغّال، أرقام، trade-offs، ومتى لا تستخدمه، مع مصادر رسمية.
تحديد معدل الطلبات على API بخوارزمية Token Bucket
عميل واحد يقدر يبعت آلاف الطلبات في الثانية ويخنق الـ API لباقي المستخدمين. خوارزمية دلو الرموز (Token Bucket) بتحد المعدل وبتسمح بموجة قصيرة، بسكربت Redis + Lua ذري قابل للنسخ، بديل NGINX، أرقام، trade-offs، ومتى لا تستخدمها، مع مصادر رسمية.
قاطع الدائرة Circuit Breaker: امنع فشل خدمة واحدة من إسقاط نظامك كله
لو خدمة الدفع بطؤت لـ 8 ثواني وبعد نص دقيقة النظام كله وقع، المشكلة مش في الدفع — دي انهيار متسلسل. قاطع الدائرة بيعزل الخدمة الفاشلة ويرجّع خطأ فوري في أقل من مللي ثانية، بمثال القاطع الكهربائي ثم شرح علمي، كود Python شغّال، أرقام، trade-offs، ومتى لا تستخدمه، مع مصادر.
Blue-Green Deployment: انشر نسخة جديدة بدون ثانية توقف واحدة
مع Blue-Green بتشغّل نسختين متطابقتين وتحوّل الترافيك بينهم بضغطة واحدة: نشر بدون downtime وتراجع في ثوانٍ. شرح بمثال المسرح ثم علميًا، مع تطبيق Kubernetes قابل للنسخ، أرقام حقيقية، الـ trade-off، ومتى لا تستخدمه، مع مصادر.
الإيقاف الآمن: ليه كل نشر بيقطع طلبات المستخدمين وإزاي توقف الخسارة
لو كل مرة بتعمل deploy بتلاقي أخطاء 5xx بتقفز شوية بعدها، المشكلة مش في الكود. الـ pod بيموت وسايب طلبات في نصها. المقال يشرح الإيقاف الآمن (Graceful Shutdown) في Kubernetes بمثال بسيط ثم علميًا، مع ملف YAML وكود Go قابل للنسخ، أرقام قبل وبعد، الـ trade-offs، ومتى لا تحتاجه، مع مصادر رسمية.