PmaControl logo PmaControl
  • مرحباً
  • PmaControl
    • وكلاء الذكاء الاصطناعي 13 وكلاء محليين
    • عروضنا المجتمع، السحابة، محليًا، المميز
    • التوثيق أدلة، API، الهندسة المعمارية
    • السوق المكونات الإضافية للمجتمع
    • عملاء أكثر من 28 شركة
    • الأسئلة الشائعة 25 سؤالا / 7 فئات
    قواعد البيانات
    • ماريا دي بي 31 مادة
    • ماي إس كيو إل 11 مادة
    • مجموعة جاليرا 6 عناصر
    • ماكس سكيل 3 عناصر
    • ProxySQL 2 عناصر
    • أمازون أورورا ماي إس كيو إل 0 العناصر
    • قاعدة بيانات أزور 0 العناصر
    • انقر البيت 0 العناصر
    • GCP CloudSQL 0 العناصر
    • بيركوناسيرفر 0 العناصر
    • متجر واحد 0 العناصر
    • تي دي بي 0 العناصر
    • سرعة 0 العناصر
    الحلول
    • دعم 24 × 7 حالات الطوارئ MariaDB وMySQL
    • Observabilité SQL المراقبة والتنبيهات والطوبولوجيا
    • Haute disponibilité النسخ المتماثل، تجاوز الفشل، جاليرا
    • Disaster Recovery النسخ الاحتياطي والاستعادة، RPO/RTO
    • Sécurité & conformité التدقيق، اللائحة العامة لحماية البيانات، SOC2
    • Migration & upgrade صفر توقف عن العمل، pt-osc، gh-ost
  • عروضنا
  • موارد
    • التوثيق الأدلة الفنية وواجهات برمجة التطبيقات
    • مركز تحسين MySQL مؤشر تخفيض السعر والمقاييس والإعدادات والحوادث
    • الأسئلة الشائعة 25 سؤالا متكررا
    • الشهادات ملاحظات العملاء وحالات الاستخدام
    • مدونة مقالات ورؤى
    • خريطة الطريق الميزات القادمة
    مجالات الخبرة
    • Observabilité SQL المراقبة والتنبيهات وطوبولوجيا Dot3
    • Haute disponibilité النسخ المتماثل، تجاوز الفشل، جاليرا
    • Sécurité & conformité التدقيق، اللائحة العامة لحماية البيانات، SOC2، ISO 27001
    • Disaster Recovery النسخ الاحتياطي والاستعادة، RPO/RTO
    • Performance & optimisation ملخصات، شرح، ضبط
    • Migration & upgrade صفر توقف عن العمل، pt-osc
    روابط سريعة
    • جيثب ويكي 26 صفحة - التثبيت والمحرك والمكونات الإضافية
    • كود المصدر مستودع جيثب الرسمي
    • دعم 24 × 7 حالات الطوارئ MariaDB وMySQL
    • احجز عرضًا توضيحيًا 30 دقيقة - هندسة معمارية حقيقية
  • دعم 24 × 7
  • احجز عرضًا توضيحيًا
احجز عرضًا توضيحيًا
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文 🇸🇦 AR العربية
← العودة إلى بلوق

احتضان البساطة

تم النشر بتاريخ 9 يناير 2025 بواسطة Sylvain ARBAUDIE
architecture simplicity opinion devops
يشارك X LinkedIn Facebook Email PDF
احتضان البساطة

وباء التعقيد

صناعة البرمجيات لديها مشكلة التعقيد. وليس التعقيد المتأصل في المشاكل التي نحلها، فهذا أمر لا مفر منه. لا، أنا أتحدث عن التعقيد الذي نفرضه على أنفسنا: التعقيد العرضي.

مشروع CRUD يضم 10000 مستخدم منتشرون على Kubernetes مع Istio، Prometheus، Grafana، ArgoCD، ناقل أحداث Kafka، 12 خدمة صغيرة، 3 قواعد بيانات مختلفة وشبكة خدمة. لماذا ؟ لأن هذا ما تفعله Netflix. لأن هذا هو ما هو "رائع" في عام 2025.

النتيجة: فريق من 5 مطورين يقضون وقتًا أطول في إدارة البنية التحتية بدلاً من تطوير الميزات.

تطور العمارة

التراجع. إن تاريخ بنيات البرمجيات هو قصة ذات تعقيد متزايد:

متراصة → تطبيق واحد، نشر واحد، قاعدة بيانات واحدة. بسيطة وفعالة ومناسبة تمامًا لغالبية المشاريع.

SOA (البنية الموجهة نحو الخدمة) → تتواصل الخدمات عبر ESB (ناقل خدمة المؤسسة). أكثر مرونة من متراصة، ولكن ESB يصبح نقطة واحدة من الفشل وعنق الزجاجة.

الخدمات المصغرة → خدمات مستقلة تتواصل عبر واجهات برمجة التطبيقات. ومن الناحية النظرية، يمكن تطوير كل خدمة ونشرها وتوسيع نطاقها بشكل مستقل. ومن الناحية العملية، فإن التعقيد التشغيلي هائل.

EDA (الهندسة المبنية على الأحداث) → تتواصل الخدمات عبر أحداث غير متزامنة. أقصى قدر من الفصل، ولكن تصحيح مجموعة من الأحداث عبر 15 خدمة يعد بمثابة كابوس.

كل خطوة أضافت التعقيد. وفي كل مرحلة، قدمت الصناعة البنية الجديدة باعتبارها الحل الشامل. المفسد: لا توجد بنية عالمية.

مبدأ القبلة

KISS — أبقِ الأمر بسيطًا أيها الغبي — هو مبدأ ينبغي نشره على جدار كل مكتب لمهندس برمجيات.

المبدأ لا يقول "ابق الأمر بسيطًا لأنك سيئ". فهو يقول: للتعقيد تكلفة، وهذه التكلفة يجب تبريرها.

كل مكون يضاف إلى بنيتك هو:

  • عنصر آخر للمحافظة عليه
  • نقطة إضافية للفشل
  • مهارة إضافية مطلوبة في الفريق
  • تكلفة البنية التحتية الإضافية
  • تمديد وقت التصحيح

Kubernetes: المثال المثالي

Kubernetes هي أداة غير عادية. من الضروري تنسيق مئات الحاويات على نطاق Google أو Netflix أو Spotify.

لنشر تطبيق MariaDB / MySQL + PHP/Node.js مع 5000 مستخدم؟ إنه مدفع لقتل ذبابة.

خادم مخصص (أو VPS) مع Docker Compose ينجز المهمة مقابل جزء بسيط من التكلفة والتعقيد:

# docker-compose.yml — c'est tout ce dont vous avez besoin
services:
  app:
    image: myapp:latest
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mariadb:11.4
    volumes:
      - db_data:/var/lib/mysql
    environment:
      MARIADB_ROOT_PASSWORD_FILE: /run/secrets/db_password
volumes:
  db_data:

لا توجد مجموعة Kubernetes. لا توجد مخططات هيلم. لا توجد خدمة شبكية. لا توجد مراقبة موزعة. حاويتان فقط تقومان بعملهما.

الشركات التي تتراجع

هناك حركة عكسية جارية. تترك الشركات البنى المعقدة لتعود إلى أساليب أبسط:

  • أعادت Basecamp/37signals أحمال عملها من السحابة إلى خوادم مخصصة، مما أدى إلى توفير ملايين الدولارات سنويًا
  • Amazon Prime Video قامت بترحيل خدمة الخدمات الصغيرة إلى وحدة متراصة، مما أدى إلى خفض التكاليف بنسبة 90%
  • DHH (منشئ Ruby on Rails) يقوم بحملات نشطة من أجل "الخروج من السحابة"

هذه الشركات ليست ماهرة في مجال التكنولوجيا. لقد قاموا ببساطة بإجراء الحسابات: التعقيد يكلف أكثر من البساطة، بالنسبة للوظائف المكافئة.

السؤال الجوهري

قبل اختيار التكنولوجيا، اسأل نفسك: ما هي المشكلة التي أقوم بحلها؟

ليس "ما هي التكنولوجيا الساخنة". وليس "ما الذي سيثير الإعجاب في سيرتي الذاتية". ليس "ماذا يستخدم GAFA". والسؤال هو: ما هي المشكلة الملموسة، وما هو الحل الأبسط الذي يحلها؟

إذا كان الجواب على "لماذا Kubernetes؟" "لأن هذا ما سنفعله في عام 2025"، فإن لديك مشكلة في القرار، وليست مشكلة فنية.

عندما يكون التعقيد له ما يبرره

لنكن واضحين: التعقيد ضروري في بعض الأحيان.

إذا كنت تدير 10 ملايين مستخدم بحمل يصل إلى 50x، فإن Kubernetes له ما يبرره. إذا كان لديك 200 مطور على نفس المنتج، فإن الخدمات الصغيرة تسمح باستقلالية الفريق. إذا كنت بحاجة إلى معالجة 100000 حدث في الثانية، فإن كافكا هو الإجابة الصحيحة.

لكن هذه الحالات هي الاستثناء وليست القاعدة. 90% من تطبيقات الويب ليس لديها هذه القيود. وبالنسبة لنسبة الـ 90% هذه، فإن الوحدة المتماسكة جيدة البناء بقاعدة MariaDB / MySQL، والتي يتم نشرها على خادم (أو خادمين للتكرار)، ليست كافية فحسب - بل إنها مثالية.

بياني من أجل البساطة

  1. ابدأ بوحدة متراصة. اقتحم الخدمات عندما (وفقط عندما) يفوق ألم الوحدة المتجانسة ألم التوزيع.

  2. استخدم ما تعرفه. تعتبر المكدسة المتقنة أكثر كفاءة من المكدسة "الرائعة" التي يتم إتقانها بشكل سيئ.

  3. احسب مكوناتك. إذا كانت البنية الخاصة بك تحتوي على مكونات أكثر من تلك التي يضمها المطورون في الفريق، فهذه علامة حمراء.

  4. قياس التكلفة الإجمالية. البنية التحتية + وقت التطوير + وقت التصحيح + وقت التدريب. نادراً ما يكون التعقيد مجانياً.

  5. اسأل "لماذا؟". بالنسبة لكل مكون من مكونات البنية الأساسية، اسأل "لماذا يوجد؟" إذا كانت الإجابة "فقط في حالة"، فاحذفها.

الخلاصة

أفضل معمارية هي الأبسط التي تحل المشكلة. ليست الأكثر إثارة للإعجاب، وليس الأكثر عصرية، وليس الأكثر اكتمالا. أبسط.

احتضان البساطة. سوف يشكرك فريقك وميزانيتك ومستخدميك.


تم نشر هذه المقالة في الأصل على متوسط.

يشارك X LinkedIn Facebook Email PDF
← العودة إلى بلوق

تعليقات (0)

لا توجد تعليقات حتى الآن.

اترك تعليقا

PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
إشعارات قانونية GitHub اتصال
لا تنتظر وقوع الحادث حتى تفهم هندستك المعمارية. © 2014-2026 PmaControl — 68Koncept