تمر الشركات بشكل متزايد برحلة تحول رقمي لتلبية احتياجات المستهلكين المتطورة. كما يزداد احتمال استخدام العملاء للشبكات الاجتماعية وتطبيقات المحمول والتقنيات الرقمية. بسبب هذا التغيير، أصبحت الإستراتيجية الرقمية الآن جزءًا لا يتجزأ من إستراتيجية العمل الشاملة.
تحصل العديد من الشركات على قوة الحوسبة من خلال منصات الخدمات السحابية عبر الإنترنت وتتبنى إستراتيجية السحابة أولاً في معظم عمليات تطوير التطبيقات. وقد أدى هذا إلى تعزيز التغيير في تصميم التطبيقات—في السابق، كانت الأولوية للوظائف والحالة، ولكن الآن تنتقل معظم التطبيقات التي تواجه المستهلك إلى البرمجيات كخدمة (SaaS) والمنصات الرقمية. يركز تصميم التطبيق الآن بشكل أكبر على تجربة المستخدم، وانعدام الحالة، والمرونة.
يعتمد اختيار بنية التطبيق الصحيحة على متطلبات عملك. في هذا المنشور، سندرس أربعة خيارات معمارية لتمكين التحول الرقمي، اعتمادًا على الاحتياجات العامة للأعمال.
النشرة الإخبارية الخاصة بالمجال
ابقَ على اطلاع دائم على أبرز الاتجاهات في مجالات الذكاء الاصطناعي، والأتمتة، والبيانات، وغيرها الكثير من خلال رسالة Think الإخبارية. راجع بيان الخصوصية لشركة IBM.
سيصلك محتوى الاشتراك باللغة الإنجليزية. ستجد رابط إلغاء الاشتراك في كل رسالة إخبارية. يمكنك إدارة اشتراكاتك أو إلغاء اشتراكك من هنا. لمزيد من المعلومات، راجع بيان خصوصية IBM.
نعلم جميعًا أن بنية التطبيقات ثلاثية الطبقات—فهي بنية العميل/الخادم، مع بنية نموذجية تتكون من طبقة العرض التقديمي وطبقة التطبيق وطبقة قاعدة البيانات.
يحتوي على واجهة مستخدم، ومنطق الوصول إلى الأعمال/البيانات، والوصول إلى البيانات. تم إنشاء العديد من تطبيقات المؤسسة باستخدام بنية التطبيقات البسيطة المكونة من 3 مستويات.
بكل بساطة، أصبح نموذج التطبيق ثلاثي المستويات قديمًا. لقد تم تصميمه لتطوير التطبيقات قبل انتشار السحابة العامة وتطبيقات الهاتف المحمول وواجه صعوبة في التكيف مع السحابة.
وبمرور الوقت، قد يصبح التطبيق كبيرًا ومعقدًا للغاية بحيث لا يمكن إجراء تغييرات متكررة عليه. ليس هذا فحسب، بل إنه يتطلب أيضًا صيانة ثلاث طبقات على الأقل من الأجهزة والبرامج، وهو ما قد يكون غير فعال بالنسبة إلى الشركة.
يُطلق على نموذج التطبيق ثلاثي الطبقات أيضًا اسم البنية المتجانسة. في هذه الأيام، لدينا العديد من نماذج البنية الجديدة، وسنتناول فيما يلي بعض النماذج المتاحة الآن في عصر السحابة.
في نموذج السحابة، يتم فصل التطبيقات المعقدة المصممة كمجموعة من الخدمات والبيانات بشكل كامل عن التطبيق. الخدمات المصغرة هي أسلوب معماري يقوم بتنظيم التطبيق كمجموعة من الخدمات. يمكن كتابة كل خدمة بلغة برمجة مختلفة واختبارها بشكل منفصل. وهي قابلة للنشر بشكل مستقل ويتم تنظيمها وفقًا لقدرات العمل.
خذ مثالاً على تطبيق التجارة الإلكترونية الذي تم تطويره باستخدام بنية الخدمات المصغرة. يمكن أن تركز كل خدمة مصغرة على قدرة عمل واحدة (على سبيل المثال، عربة التسوق، والبحث، وتقييمات العملاء). يمكن أن تكون كل منها خدمة منفصلة مكتوبة بلغات برمجة مختلفة، ويتم نشرها في بنية تحتية مختلفة، وتديرها فرق مختلفة.
تتواصل كل خدمة مع الخدمات الأخرى باستخدام بروتوكول خفيف الوزن. في التطبيقات ثلاثية الطبقات، نعلم جميعًا إطار عمل وحدة التحكم في عرض النموذج (MVC). Sidecar وAmbassador وAdapter هي بعض الإطارات التي تدعم بنيات الخدمات المصغرة.
في البنية المتجانسة، تتعايش كل هذه العناصر كوحدة واحدة تدار (في الغالب) من قبل فريق واحد—حيث يتم تجميع كل شيء معًا. إذا كنت بحاجة إلى التحديث، فيجب عليك نشر التطبيق بأكمله، وهذا يؤدي إلى إبطاء التغييرات للتطبيقات الأكبر حجمًا والمعقدة. بالنسبة إلى التطبيقات الأصغر، غالبًا ما تكون البنية المتجانسة هي الحل الأفضل.
أحد أفضل الخيارات لإنشاء وتشغيل بنيات تطبيقات الخدمات المصغرة هو استخدام الحاويات. تحتوي الحاويات على بيئة تشغيل افتراضية خفيفة الوزن لتطبيقك وتسمح لك بنقل التطبيق من سطح مكتب المطور إلى نشر الإنتاج. بإمكانك تشغيل الحاويات على أجهزة افتراضية أو أجهزة مادية في غالبية أنظمة التشغيل المتاحة. تقدم الحاويات بيئة برمجية متسقة، ويمكنك تغليف جميع تبعيات تطبيقك كوحدة قابلة للنشر. يمكن تشغيل الحاويات على كمبيوتر محمول أو Bare Metal Serverأو في سحابة عامة.
تستخدم العديد من المجموعاتKubernetes لإدارة الحاويات والتأكد من عدم وجود أي فترات تعطل. يوفر Kubernetes تنسيق الحاويات في مضيفين متعددين ويُستخدم لإدارة دورة حياة الحاوية. يمكنك أتمتة عملية النشر وتوسيع نطاق تطبيقك تلقائيًا والبناء السريع والشحن السريع باستخدام Kubernetes.
للتعمق أكثر في Kubernetes، شاهد الفيديو "شرح Kubernetes":
Red Hat OpenShift أحد أكثر منصات الحاويات المؤسسية شيوعًا في بيئات السحابية الهجينة. يقدم العديد من مزودي الخدمات السحابية الرائدين الحاويات كخدمة (CaaS). بعض محركات Kubernetes الأخرى المتاحة هي IBM Cloud Kubernetes Service، وKubernetes مفتوح المصدر، وAWS (EKS، وECS، وFargate)، وGoogle GKS، وAzure AKS.
عادةً ما يتم بناء كل خدمة مصغرة من قبل فريق صغير مختلف، ويختارون لغة البرمجة الخاصة بهم وجدول النشر. تستخدم المؤسسات شبكة الخدمات مثل Istio للتحكم في الاتصالات بين الخدمات المصغرة والإدارة. في شبكة الخدمة، يتم توجيه الطلبات من خلال الوكلاء (مثل Sidecar) بين الخدمات المصغرة.
تم تصميم السحابة الأصلية خصيصًا للتطبيقات التي تخطط للنشر في السحابة، وتعد الخدمات المصغرة جزءًا حساسًا.
السحابة الأصلية هي نهج لبناء وتشغيل التطبيقات التي تستغل مزايا نموذج تسليم الحوسبة السحابية . السحابة الأصلية هو مصطلح يُستخدم لوصف البيئات القائمة على الحاويات، وهو يتعلق بكيفية إنشاء التطبيقات ونشرها، وليس مكانها.
تمكننا التقنيات السحابية الأصلية من تشغيل التطبيقات في السحابة العامة والخاصة والسحابة الهجينة. يعد تطوير السحابة الأصلية أمرًا ضروريًا لتوصيل التطبيق إلى السوق بسرعة؛ فهو يساعد الأشخاص والعمليات والتقنية على إنشاء ونشر وإدارة التطبيق الجاهز للسحابة.
يستخدم نموذج بنية السحابة الأصلية عمليات التطوير، والتكامل المستمر (CI)، والتسليم المستمر (CD)، والخدمات المصغرة، والحاويات. تستخدم معظم الشركات منهجية العوامل الاثني عشر لتصميم تطبيقات السحابة الأصلية القوية والقابلة للتوسع.
في السحابة، يجب أن تكون التطبيقات قادرة على العمل بشكل متزامن عبر عدة عقد، ومشاركة حالة التهيئة/الجلسة، وامتلاك آلية تسجيل مركزية، وأن تكون قادرة على النشر باستخدام عمليات التطوير وعملية CI/CD. يقدم العديد من مزودي السحابة إرشادات لتطوير التطبيقات الأصلية للسحابة—تمتلك Amazon Web Services (AWS) إطار العمل المصمم جيدًا ولدى Google عدة أدلة حول كيفية بناء تطبيقات أصلية للسحابة، بينما تمتلك Microsoft Azure دليل أنماط السحابة.
عادةً ما تكون تطبيقات السحابة الأصلية بلا حالة بطبيعتها. تتواصل الخدمات مع بعضها باستخدام البروتوكولات المستندة إلى REST أو المراسلة. يمكن أن تكون API Gateway، وContainer Registry، والبرامج الوسيطة الموجهة نحو الرسائل (MOM: نشر/اشترك أو طلب/استجابة)، وشبكة الخدمة، والتنسيقات جزءًا من بنية السحابة الأصلية.
تعتمد البنية المستندة إلى الأحداث (EDA) على أنظمة منفصلة تعمل استجابةً للأحداث. تستخدم البنية المستندة إلى الأحداث أحداثًا لتشغيل الخدمات المنفصلة والتواصل بينها. لقد كانت بنية EDA موجودة منذ فترة طويلة، ولكنها الآن تتمتع بأهمية أكبر في السحابة.
إذًا ما الجديد؟ إذا تم استخدامه بشكل صحيح، فإنه يمكن أن يوفر زيادة كبيرة في المرونة وتوفير التكاليف والفوائد التشغيلية. يمكن لبنية EDA الموزعة بدون خادم تنفيذ الكود المعروف باسم الوظائف التي تتوسع تلقائيًا استجابةً لواجهة برمجة التطبيقات REST API أو مشغل حدث.
بالنسبة إلى النموذج الخالي من الخادم، ليست هناك حاجة لإدارة الخادم. كما أن النموذج الخالي من الخادم هو أيضًا قابل للتوسع بسرعة (لذا من الممكن إجراء تحديثات سريعة وعمليات نشر) وهو عديم الحالة.
فيما يلي بعض الخدمات السحابية بدون خادم المتاحة حاليًا من مزودي السحابة المختلفين:
كيف يمكننا جعل التطبيقات الأحادية تعمل بشكل جيد في بيئة سحابية؟ البنية القائمة على السحابة هي الأنسب لبناء تطبيق ويب حديث (مواقع ويب ثابتة/ديناميكية)، ينشر التطبيق، والاتصال بقاعدة بيانات، وتحليل سلوك المستخدم.
تتضمن بنية التطبيقات التقليدية القائمة على السحابة موازنات التحميلوخوادم الويب وخوادم التطبيقات وقواعد البيانات. يمكن أن تستفيد من ميزات السحابة مثل مرونة الموارد، والشبكات المعرفة بالبرمجيات، والتوفير التلقائي، والتوافر العالي، وقابلية التوسع.
يعد هذا النوع من البنية مثاليًا للمجموعات التي لا تحتاج للقلق بشأن صيانة الخوادم. تدعم الوظائف بدون خوادم لغات برمجة مختلفة، مثل PHP وJava و.NET وNode.js، Python, Ruby, Docker, Go.
API Gateway هي خدمة مهمة تسهل على المطورين إنشاء واجهات برمجة تطبيقات آمنة ونشرها. ستكون واجهات برمجة التطبيقات بمثابة الباب الأمامي للتطبيقات للوصول إلى البيانات ومنطق الأعمال. كما أنه يهتم بالتراخيص والتحكم في الوصول. يستخدم المطورون API Gateway لاستدعاء وظائف مختلفة بلا خادم لاستدعاءات واجهة برمجة التطبيقات المختلفة.
يمكن أن يؤثر القرار الذي تتخذه عند اختيار نموذج البنية في نجاح مشروعك أو فشله. يجب عليك تحديد اختيارك بناء على تطبيقك وعلى المتطلبات غير الوظيفية. على سبيل المثال، لا تختار النقل بالطائرة عندما تريد السفر لمسافة بضعة أميال فقط.
ضع في اعتبارك ما يلي قبل اختيار بنية لمشروع التطبيق الخاص بك:
تتطور بنية تطبيقات الويب باستمرار لتلبية متطلبات الأعمال الرقمية وبيئة البنية التحتية لتكنولوجيا المعلومات المتغيرة. تعمل التقنيات مثل الذكاء الاصطناعي والتحليلات والأتمتة والتشغيل الآلي Advanced حوسبة الحافة وسلسلة التكتل إنترنت الأشياء وواجهات برمجة التطبيقات على إعادة تعريف ما هو ممكن في العديد من الصناعات. تتطلب زيادة التعقيد في البنية التحتية والتطبيقات وحجم البيانات أساليب بنية جديدة. تتبنى معظم المؤسسات نهج السحابة المتعددة من خلال استخدام مزود سحابة واحد أو أكثر. تستهلك المؤسسات الخدمات السحابية إما من خلال استخدام نماذج SaaS أو PaaS أو IaaS الخاصة أو العامة أو الهجينة.
في الأيام السابقة، كان نشر التطبيقات عملية صعبة ولا يمكن القيام بها خلال ساعات العمل العادية. ومع ذلك، فإن طرق النشر المختلفة (مثل النشر الأزرق والأخضر والنشر الكناري) جنبًا إلى جنب مع عمليات التطوير وCI/CD (التكامل المستمر والتسليم المستمر) تسمح الآن بالنشر في أي وقت دون أي انقطاع في التطبيق.
لا تزال البنى المتجانسة صالحة للعديد من التطبيقات، ولكن يجب استخدام البنية المناسبة لحالتك الرقمية لتحقيق المرونة وسرعة الوصول إلى السوق. للحصول على تطبيق بسيط، فكر في اختيار نهج تقليدي أحادي. تعمل أنماط السحابة الأصلية أو الخدمات المصغرة بشكل جيد للتطبيقات المتطورة ذات التعقيدات. من المنطقي استخدام بنية الخدمات المصغرة عندما يكون لديك العديد من الفرق ذات الخبرة التي تستخدم لغات متعددة وجداول زمنية للنشر. فيما يلي مقارنة للرجوع إليها بين التطبيقات التقليدية ثلاثية/متعددة الطبقات (3/N-Tier) ونماذج البنية القائمة على السحابة.
للبدء في البناء، قم بالتسجيل في IBMid وإنشاء حساب IBM Cloud الخاص بك.
خدمة مُدارة بالكامل ومستأجر واحد لتطوير تطبيقات Java وتسليمها.
استخدم أدوات وبرمجيات عمليات التطوير لإنشاء تطبيقات السحابة الأصلية ونشرها وإدارتها عبر أجهزة وبيئات متعددة.
إن تطوير تطبيقات السحابة يعني البناء مرة واحدة، والتكرار بسرعة، والنشر في أي مكان.