معمارية التطبيقات والأنظمة
المعمارية قرارات يصعب تغييرها لاحقًا: كيف يُقسَّم النظام، وأين تُحفظ البيانات، وكيف تتحدث الأجزاء مع بعضها. القرار الخاطئ لا يظهر في الأسبوع الأول، بل حين يتضاعف المستخدمون أو يُضاف فرع أو يُطلب ربط جديد. نشرح لك الخيارات بلغة صاحب القرار، ونكتب سبب كل اختيار.
متى تحتاج إلى قرار معماري مدروس؟
مشروع كبير قبل بدء التطويروأكثر من فريق سيعمل عليه.
منصة ستخدم عدة شركات أو فروعوقرار عزل البيانات يحدد مستقبلها.
نظام قائم يتباطأ مع النمووكل ميزة جديدة تكسر شيئًا آخر.
متطلبات استضافة داخلية أو هجينةبسبب سياسات البيانات أو الجهة.
نية للانتقال إلى الخدمات المصغرةوتريد معرفة إن كان ذلك مبررًا فعلًا.
لجنة تقنية تطلب وثيقة معماريةضمن متطلبات منافسة أو مراجعة أمنية.
ما تتضمنه أعمال المعمارية
التقسيم
- حدود الوحدات ومسؤولية كل منها
- ما يُفصل وما يبقى معًا
- طريقة تواصل الوحدات
- المشترك بين الوحدات
البيانات
- نموذج البيانات
- قاعدة واحدة أم متعددة
- العزل بين المستأجرين
- النسخ والأرشفة
التكامل
- نهج API-First
- الأحداث والطوابير
- الربط مع الأنظمة الخارجية
- إصدارات الواجهات
الاستضافة
- سحابة، أو داخلية، أو هجينة
- البيئات
- التوسع والتوافر
- التعافي من الكوارث
الجوانب العابرة
- الأمن والهوية
- التسجيل والمراقبة
- التخزين المؤقت
- الإعدادات والأسرار
الحوكمة
- سجل القرارات المعمارية
- معايير الكود
- مراجعة التغييرات الكبيرة
- خارطة تطور المعمارية
أنماط المعمارية بلغة صاحب القرار
لا يوجد نمط أفضل مطلقًا. هذا متى يناسب كل نمط:
| النمط | ما هو | متى يناسب | ما ثمنه |
|---|---|---|---|
| معمارية موحدة Monolith | تطبيق واحد يُنشر دفعة واحدة | المشاريع الصغيرة والنسخ الأولى | يصعب تقسيمه لاحقًا إن لم يُنظم |
| موحدة مقسمة إلى وحدات | تطبيق واحد بوحدات منفصلة داخليًا بحدود واضحة | أغلب المشاريع، وهو اختيارنا الافتراضي | يحتاج إلى انضباط في احترام الحدود |
| خدمات مصغرة Microservices | خدمات مستقلة تُنشر كل منها وحدها | فرق متعددة مستقلة، أو أجزاء بأحمال متباينة جدًا | تشغيل ومراقبة أعقد، وتكلفة أعلى |
| Serverless | دوال تعمل عند الطلب دون خوادم دائمة | مهام متقطعة أو أحمال غير منتظمة | ارتباط بمزود سحابي، وصعوبة الاختبار المحلي |
| معمارية الأحداث | الأجزاء تتواصل بأحداث عبر طوابير | عمليات لا يجب أن تنتظر بعضها، وتكاملات كثيرة | تتبع مسار العملية أصعب |
| متعددة المستأجرين | نظام واحد يخدم عدة منشآت ببيانات معزولة | منصات SaaS | قرار العزل مبكر ومكلف تغييره |
ما تستلمه
- وثيقة المعماريةالمخططات والقرارات وأسبابها وبدائلها.
- سجل القرارات المعماريةقرار لكل صفحة، يُحدَّث مع تطور النظام.
- نموذج البياناتالكيانات والعلاقات وحدود الوحدات.
- مخطط الاستضافةالبيئات والشبكة والتوسع والتعافي.
- تحليل المخاطرما قد يفشل، وكيف نخفف أثره.
- خارطة التطورما يتغير في المعمارية مع النمو.
ما يمكن ربطه بالخدمة
تُبنى عليها
لأنظمة قائمة
قرارات معمارية تتكرر
نبدأ بمعمارية موحدة مقسمة إلى وحدات بحدود واضحة، فيسهل فصل أي وحدة لاحقًا حين يبرر الحجم ذلك.
فصل القراءة التحليلية عن التشغيلية، بنسخة قراءة أو مخزن بيانات.
نقلها إلى طابور ومعالجة في الخلفية، مع إشعار عند الانتهاء.
نموذج هجين يبقي البيانات الحساسة داخليًا ويستخدم السحابة لما يسمح به التصنيف.
نمط الاستبدال التدريجي: طبقة أمام النظام القديم تنقل الوظائف إلى الجديد واحدة تلو الأخرى.
مراحل التنفيذ
- قائمة المتطلبات
فهم المتطلبات غير الوظيفية
الحجم، والتوافر، والأمن، وموقع البيانات.
- مقارنة مكتوبة
الخيارات والمقارنة
خياران أو ثلاثة بمزاياها ومخاطرها.
- قرار معتمد
القرار
مع أصحاب القرار والفريق التقني.
- وثيقة المعمارية
التصميم التفصيلي
الوحدات والبيانات والتكاملات والاستضافة.
- نتيجة الإثبات
إثبات المفهوم
للأجزاء الأعلى مخاطرة قبل الالتزام.
- سجل القرارات
المتابعة
مراجعة المعمارية مع تقدم التطوير.
ما نحتاجه منك للبدء
لا يلزم أن يكون كل ذلك جاهزًا. ما ينقص نستكمله معك في جلسة التحليل.
- وصف النظام وأطرافه: من يستخدمه وماذا يفعل.
- الحجم المتوقع: المستخدمون والعمليات والبيانات اليوم وبعد سنتين.
- متطلبات الاستضافة والأمن: وسياسات الجهة.
- الفريق الذي سيشغّل النظام: وخبراته التقنية.
أسئلة تحسمها قبل التنفيذ
نساعدك على الإجابة عنها، لأن كل إجابة تغير النطاق والتكلفة.
مشكلات نمنعها من البداية
الجودة والأمن والتشغيل
الجودة
وثيقة معمارية تُراجع وتُعتمد قبل التطوير.
الأمن
الأمن جزء من التصميم: الهوية، والعزل، والتشفير، وتدفق البيانات.
قابلية التوسع
مسار توسع مخطط لكل جزء.
الاختبارات
إثبات مفهوم واختبار أحمال للأجزاء الحرجة.
التوثيق
المخططات، وسجل القرارات، وخارطة التطور.
الدعم
مراجعة معمارية دورية مع نمو النظام.
أسئلة شائعة
لا. هي مناسبة حين تتعدد الفرق المستقلة أو تتباين الأحمال بشدة. لأغلب المشاريع، المعمارية الموحدة المقسمة إلى وحدات أسرع وأرخص وأسهل تشغيلًا.
بعض القرارات يسهل تغييرها وبعضها مكلف، كعزل البيانات. لذلك نميز بينها في الوثيقة.
نعم، ونسلّم الوثيقة لفريقك أو لجهة التنفيذ التي تختارها.
نعم، أو بالإنجليزية، أو بالاثنتين، بحسب من سيقرؤها.
تصميم واجهات الربط قبل بناء التطبيقات، فتعمل كل الواجهات والأنظمة على العقد نفسه.
خدمات مرتبطة
صف لنا النظام وحجمه المتوقع
ونقترح المعمارية المناسبة مع أسبابها وبدائلها.