فهم عمليات النشر التلقائية ل IoT Edge للأجهزة الفردية أو على نطاق واسع

ينطبق على:yes icon IoT Edge 1.1 IoT Edge 1.2 yes icon

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

يوفر Azure IoT Edge طريقتين لتكوين الوحدات النمطية لتشغيلها على أجهزة IoT Edge. الطريقة الأولى هي نشر الوحدات النمطية على أساس كل جهاز. إنشاء بيان نشر ثم قم بتطبيقه على جهاز معين بالاسم. الطريقة الثانية هي نشر الوحدات النمطية تلقائيا على أي جهاز مسجل يلبي مجموعة من الشروط المحددة. يمكنك إنشاء بيان نشر ثم تحديد الأجهزة التي ينطبق عليها استنادا إلى العلامات الموجودة في توأم الجهاز.

تركز هذه المقالة على تكوين ومراقبة أساطيل الأجهزة، والتي يشار إليها مجتمعة باسم عمليات النشر التلقائية ل IoT Edge. خطوات النشر الأساسية هي كما يلي:

  1. عامل تشغيل بتعريف توزيع يصف مجموعة من الوحدات النمطية والأجهزة الهدف. كل توزيع له بيان توزيع يعكس هذه المعلومات.
  2. تتواصل خدمة IoT Hub مع جميع الأجهزة المستهدفة لتكوينها باستخدام الوحدات النمطية المعلنة.
  3. تسترد خدمة IoT Hub الحالة من أجهزة IoT Edge وتجعلها متاحة للمشغل.  على سبيل المثال، يمكن للمشغل معرفة متى لم يتم تكوين جهاز Edge بنجاح أو إذا فشلت الوحدة النمطية أثناء وقت التشغيل.
  4. في أي وقت، يتم تكوين أجهزة IoT Edge الجديدة التي تفي بشروط الاستهداف للتوزيع.

توضح هذه المقالة كل مكون متضمن في تكوين عملية نشر ومراقبتها. للحصول على إرشادات حول إنشاء عملية نشر وتحديثها، راجع نشر وحدات IoT Edge النمطية ومراقبتها على نطاق واسع.

توزيع

يعين التوزيع التلقائي لـ IoT Edge صور وحدة IoT Edge لتشغيلها كمثيلات على مجموعة مستهدفة من أجهزة IoT Edge. وهو يعمل عن طريق تكوين بيان توزيع IoT Edge لتضمين قائمة من الوحدات النمطية مع معلمات التهيئة المقابلة. يمكن تعيين توزيع إلى جهاز واحد (استنادا إلى معرف الجهاز) أو إلى مجموعة من الأجهزة (استنادا إلى العلامات). بمجرد أن يتلقى جهاز IoT Edge بيان توزيع، يقوم بتنزيل وتثبيت صور الحاوية من مستودعات الحاويات المعنية، وتكوينها وفقا لذلك. بمجرد إنشاء التوزيع يمكن لمشغل مراقبة حالة التوزيع لمعرفة ما إذا كان يتم تكوين الأجهزة المستهدفة بشكل صحيح.

يمكن تكوين أجهزة IoT Edge فقط مع التوزيع. يجب أن تكون المتطلبات الأساسية التالية على الجهاز قبل أن يتلقى التوزيع:

  • نظام التشغيل الأساسي
  • نظام إدارة الحاويات، مثل Moby أو Docker
  • توفير وقت تشغيل IoT Edge

بيان التوزيع

بيان التوزيع هو مستند JSON يصف الوحدات النمطية التي سيتم تكوينها على أجهزة IoT Edge المستهدفة. يحتوي على بيانات تعريف التكوين لجميع الوحدات، بما في ذلك وحدات النظام المطلوبة (على وجه التحديد عامل IoT Edge ومحور IoT Edge). 

تتضمن البيانات التعريفية للتكوين لكل وحدة ما يلي:

  • إصدار
  • النوع
  • الحالة (على سبيل المثال، قيد التشغيل أو التوقف)
  • نهج إعادة تشغيل
  • سجل الصور والحاويات
  • مسارات إدخال البيانات وإخراجها

إذا تم تخزين نسخة الوحدة النمطية في سجل حاوية خاص، فإن عامل IoT Edge يحتفظ ببيانات اعتماد التسجيل.

شرط الهدف

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

على سبيل المثال، لديك نشر مع علامات حالة الهدف.البيئة = 'prod'. عند بدء التوزيع هناك 10 أجهزة إنتاج. تم تثبيت الوحدات بنجاح في هذه الأجهزة 10. تعرض حالة عامل IoT Edge إجمالي 10 أجهزة و 10 استجابات ناجحة و 0 استجابات فشل و 0 استجابات معلقة. يمكنك الآن إضافة خمسة أجهزة أخرى بعلامات. البيئة = 'prod'. تكتشف الخدمة التغيير وتصبح حالة وكيل IoT Edge 15 جهازا إجماليا و 10 استجابات ناجحة و 0 استجابات فشل و 5 استجابات معلقة أثناء نشرها على الأجهزة الخمسة الجديدة.

إذا لم يكن للنشر أي شرط مستهدف ، تطبيقه على أي أجهزة.

استخدم أي شرط منطقي على العلامات المزدوجة للجهاز أو الخصائص التي تم الإبلاغ عنها بتوأم الجهاز أو deviceId لتحديد الأجهزة المستهدفة. إذا كنت تريد استخدام الشرط مع العلامات، فأنت بحاجة إلى إضافة "العلامات": قسم {} في توأم الجهاز تحت نفس مستوى الخصائص. مزيد من المعلومات حول العلامات في الجهاز المزدوج

أمثلة على الحالات المستهدفة:

  • معرف الجهاز = 'linuxprod1'
  • العلامات. البيئة = 'prod'
  • العلامات.البيئة = 'prod' وعلامات.location = 'westus'
  • العلامات. البيئة = 'prod' أو tags.location = 'westus'
  • العلامات. عامل التشغيل = 'John' AND tags.environment = 'prod' AND NOT deviceId = 'linuxprod1'
  • Properties.reported.devicemodel = 4000x'
  • [لا شيء]

ضع في اعتبارك هذه القيود عند إنشاء شرط مستهدف:

  • في الجهاز المزدوج، يمكنك فقط إنشاء حالة هدف باستخدام العلامات أو الخصائص المبلغ عنها أو معرف الجهاز.
  • لا يسمح بعلامات الاقتباس المزدوجة في أي جزء من شرط الهدف. استخدم علامات الاقتباس المفردة.
  • علامات الاقتباس المفردة تمثل قيم الشرط الهدف. لذلك، يجب أن تهرب من الاقتباس الفردي باقتباس واحد آخر إذا كان جزءا من اسم الجهاز. على سبيل المثال ، لاستهداف جهاز يسمى operator'sDevice، اكتب deviceId='operator''sDevice'.
  • يسمح بالأرقام والحروف والأحرف التالية في قيم الشرط الهدف: "()<>@,;:\\"/?={} \t\n\r.
  • الأحرف التالية غير مسموح بها في مفاتيح الشرط الهدف:/;.

أولوية

تحدد الأولوية ما إذا كان يجب تطبيق التوزيع على جهاز مستهدف نسبة إلى عمليات التوزيع الأخرى. أولوية التوزيع هي عدد صحيح موجب، مع وجود أعداد أكبر تشير إلى أولوية أعلى. إذا تم استهداف جهاز IoT Edge بواسطة أكثر من عملية التوزيع، يتم تطبيق التوزيع ذو الأولوية العليا.  لا يتم تطبيق عمليات التوزيع ذات الأولويات الأقل، كما لا يتم دمجها.  إذا تم استهداف جهاز مع اثنين أو أكثر من عمليات التوزيع ذات الأولوية المتساوية، يتم تطبيق أحدث توزيع تم إنشاؤه (يحدده الطابع الزمني الإنشاء).

تسميات/ ملصقات

التسميات عبارة عن أزواج من المفاتيح/القيم السلسلة، يمكنك استخدامها لتصفية عمليات النشر وتجميعها. قد يكون للتوزيع تسميات متعددة. التصنيفات اختيارية ولا تؤثر على التكوين الفعلي لأجهزة IoT Edge.

المقاييس

افتراضيا، كل عمليات التوزيع تقرير على أربعة مقاييس:

  • يعرض المستهدف أجهزة IoT Edge التي تطابق شرط استهداف النشر.
  • يعرض Applied أجهزة IoT Edge المستهدفة التي لا يتم استهدافها بواسطة عملية نشر أخرى ذات أولوية أعلى.
  • يظهر نجاح التقارير أجهزة IoT Edge التي أبلغت عن نشر الوحدات بنجاح.
  • يظهر فشل الإبلاغ أجهزة IoT Edge التي أبلغت عن عدم نشر وحدة نمطية واحدة أو أكثر بنجاح. للمزيد من التحقيق في الخطأ، اتصل عن بعد بهذه الأجهزة واعرض ملفات السجل.

بالإضافة إلى ذلك، يمكنك تعريف المقاييس المخصصة الخاصة بك للمساعدة في مراقبة وإدارة التوزيع.

توفر المقاييس تعدادات موجزة لمختلف الحالات التي قد تقوم الأجهزة بالإبلاغ عنها كنتيجة لتطبيق تكوين التوزيع. يمكن للمقاييس الاستعلام عن الخصائص المزدوجة التي تم الإبلاغ عنها لوحدة edgeHub، مثل lastDesiredStatus أو lastConnectTime. على سبيل المثال:

SELECT deviceId FROM devices
  WHERE properties.reported.lastDesiredStatus.code = 200

تعد إضافة المقاييس الخاصة بك اختيارية، ولا تؤثر على التكوين الفعلي لأجهزة IoT Edge.

التوزيع ذو الطبقات

عمليات التوزيع ذات الطبقات هي عمليات توزيع تلقائية يمكن دمجها معا لتقليل عدد عمليات التوزيع الفريدة التي تحتاج إلى إنشاء. عمليات التوزيع ذات الطبقات مفيدة في السيناريوهات حيث يتم إعادة استخدام نفس الوحدات النمطية في مجموعات مختلفة في العديد من عمليات التوزيع التلقائي.

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

لم يتم تكوين وحدات وقت تشغيل النظام، و edgeAgent و edgeHub، كجزء من توزيع متعدد الطبقات. يحتاج أي جهاز IoT Edge مستهدف من قبل توزيع الطبقات إلى توزيع تلقائي قياسي يتم تطبيقه عليه أولا. يزود التوزيع التلقائي القاعدة التي يمكن إضافة عمليات التوزيع ذات الطبقات عليها.

يمكن لجهاز IoT Edge تطبيق توزيع تلقائي قياسي واحد فقط، ولكن يمكنه تطبيق عمليات توزيع تلقائية متعددة الطبقات. يجب أن يكون لأي عمليات توزيع ذات طبقات تستهدف جهاز أولوية أعلى من التوزيع التلقائي لهذا الجهاز.

على سبيل المثال، ضع في اعتبارك السيناريو التالي لشركة تدير المباني. لقد طوروا وحدات IoT Edge لجمع البيانات من الكاميرات الأمنية وأجهزة استشعار الحركة والمصاعد. ومع ذلك، لا يمكن لجميع مبانيهم استخدام الوحدات الثلاث. مع التوزيع التلقائي القياسي، تحتاج الشركة إلى إنشاء عمليات توزيع فردية لجميع مجموعات الوحدات النمطية التي تحتاجها مبانيها.

Standard automatic deployments need to accommodate every module combination

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

Layered automatic deployments simplify scenarios where the same modules are combined in different ways

تكوين الوحدة النمطية المزدوجة

عندما تعمل مع عمليات نشر متعددة الطبقات، قد يكون لديك، عن قصد أو غير ذلك، عمليتي نشر بنفس الوحدة النمطية تستهدفان جهازا. في هذه الحالات، يمكنك تحديد ما إذا كان يجب على النشر ذي الأولوية الأعلى الكتابة فوق توأم الوحدة النمطية أو إلحاقه بها. على سبيل المثال، قد يكون لديك نشر يطبق نفس الوحدة النمطية على 100 جهاز مختلف. ومع ذلك ، فإن 10 من هذه الأجهزة في مرافق آمنة وتحتاج إلى تكوين إضافي من أجل التواصل من خلال خوادم وكيلة. يمكنك استخدام نشر متعدد الطبقات لإضافة خصائص توأم الوحدة النمطية التي تمكن هذه الأجهزة ال 10 من الاتصال بأمان دون الكتابة فوق معلومات توأم الوحدة النمطية الموجودة من النشر الأساسي.

يمكنك إلحاق الخصائص التوأم المطلوبة للوحدة النمطية في بيان النشر. حيث يمكنك في النشر القياسي إضافة خصائص في قسم properties.desired من توأم الوحدة النمطية ، في نشر الطبقات يمكنك الإعلان عن مجموعة فرعية جديدة من الخصائص المطلوبة.

على سبيل المثال، في عملية نشر قياسية، يمكنك إضافة وحدة مستشعر درجة الحرارة المحاكية مع الخصائص المطلوبة التالية التي تخبرها بإرسال البيانات على فترات زمنية مدتها 5 ثوان:

"SimulatedTemperatureSensor": {
  "properties.desired": {
    "SendData": true,
    "SendInterval": 5
  }
}

في نشر متعدد الطبقات يستهدف بعض أو كل الأجهزة نفسها، يمكنك إضافة خاصية تخبر المستشعر المحاكي بإرسال 1000 رسالة ثم التوقف. لا تريد الكتابة فوق الخصائص الموجودة، لذلك يمكنك إنشاء مقطع جديد ضمن الخصائص المطلوبة يسمى layeredProperties، والذي يحتوي على الخاصية الجديدة:

"SimulatedTemperatureSensor": {
  "properties.desired.layeredProperties": {
    "StopAfterCount": 1000
  }
}

سيعكس الجهاز الذي تم تطبيق كلا عمليتي النشر خصائصه التالية في الوحدة النمطية المزدوجة لمستشعر درجة الحرارة المحاكاة:

"properties": {
  "desired": {
    "SendData": true,
    "SendInterval": 5,
    "layeredProperties": {
      "StopAfterCount": 1000
    }
  }
}

إذا قمت بتعيين properties.desired حقل الوحدة النمطية التوأم في نشر متعدد الطبقات، الكتابة فوق الخصائص المطلوبة لتلك الوحدة النمطية في أي عمليات نشر ذات أولوية أقل.

طرح مرحلي

الطرح المرحلي هو عملية شاملة يقوم المشغل بموجبها بتوزيع التغييرات على مجموعة موسعة من أجهزة IoT Edge. الهدف هو إجراء تغييرات تدريجية لتقليل مخاطر إجراء تغييرات واسعة النطاق. تساعد عمليات النشر التلقائية في إدارة عمليات النشر المرحلية عبر أسطول من أجهزة IoT Edge.

يتم تنفيذ الطرح المرحلي في المراحل والخطوات التالية:

  1. أنشئ "بيئة اختبار لأجهزة IoT Edge" من خلال تزويدها وتعيين علامة مزدوجة للجهاز مثل tag.environment='test'. يجب أن تعكس بيئة الاختبار بيئة الإنتاج التي سيستهدفها التوزيع في النهاية.
  2. إنشاء التوزيع بما في ذلك الوحدات النمطية والتكوينات المطلوبة. يجب أن تستهدف حالة الاستهداف بيئة جهاز IoT Edge الاختبارية.
  3. تحقق من صحة تكوين الوحدة الجديدة في بيئة الاختبار.
  4. تحديث التوزيع لتضمين مجموعة فرعية من أجهزة IoT Edge الإنتاج عن طريق إضافة علامة جديدة إلى شرط الاستهداف. تأكد أيضا من أن أولوية النشر أعلى من عمليات النشر الأخرى التي تستهدف حاليا تلك الأجهزة
  5. تحقق من نجاح عملية التوزيع على أجهزة IoT المستهدفة من خلال عرض حالة التوزيع.
  6. تحديث التوزيع لاستهداف كافة أجهزة IoT Edge الإنتاج المتبقية.

العودة إلى الحالة السابقة

يمكن التراجع عن عمليات التوزيع إذا تلقيت أخطاء أو تكوينات خاطئة. نظرًا لأن التوزيع يحدد التكوين المطلق للوحدة النمطية لجهاز IoT Edge، يجب أيضا أن يستهدف التوزيع الإضافي نفس الجهاز بأولوية أقل حتى إذا كان الهدف هو إزالة جميع الوحدات. 

لا يؤدي حذف التوزيع إلى إزالة الوحدات النمطية من الأجهزة المستهدفة. يجب أن يكون هناك توزيع آخر يعرف تكوين جديد للأجهزة، حتى لو كان التوزيع فارغ.

قم بإجراء عمليات التراجع بالتسلسل التالي:

  1. تأكد من أن التوزيع الثاني مستهدف أيضًا في نفس مجموعة الجهاز. إذا كان الهدف من الاستعادة هو إزالة كافة الوحدات النمطية، يجب أن لا يتضمن التوزيع الثاني أية وحدات نمطية.
  2. تعديل أو إزالة تعبير الشرط الهدف للتوزيع الذي ترغب في التراجع عنه بحيث لا تفي الأجهزة بشرط الاستهداف.
  3. تحقق من نجاح الاستعادة بعرض حالة التوزيع.
    • يجب أن لا يظهر التوزيع التراجع حالة الأجهزة التي تم التراجع عنها.
    • يجب أن يتضمن التوزيع الثاني الآن حالة التوزيع للأجهزة التي تم التراجع عنها.

الخطوات التالية