ZYLK تحقق خدمات IoT مبسطة مع تحسين APISIX

May 26, 2023

Case Study

نظرة عامة

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

التحديات

  • واجهت الشركة مشاكل تتعلق بتوجيه MQTT، وشبكات K8S، واتصالات HTTP.
  • كانت إدارة وصيانة كل نقطة نهاية وقناة توجيه متاحة أمرًا صعبًا، مما أدى إلى تكاليف كبيرة في الوقت والجهد.
  • كان استيعاب المستخدمين الجدد على الشبكة تحديًا حيث كان عليهم التعرف على الهيكل بأكمله قبل الوصول إلى أي خدمة أو نقطة نهاية.

النتائج

  • قامت ZYLK بحل مشاكل اتصالات HTTP وMQTT من خلال تنفيذ APISIX.
  • استخدمت ZYLK APISIX كوسيط TCP لإنشاء مسار تدفق آمن من Raspberry Pi إلى نظام قوائم الانتظار RabbitMQ في السحابة، مما يضمن سرية وسلامة نقل البيانات.
  • شهدت ZYLK تحسينات كبيرة في البنية التحتية أصبحت أكثر سهولة في الاستخدام، مما أدى إلى توفير كبير في الوقت والجهد وتحسين الإنتاجية.

معلومات أساسية

ZYLK هي شركة استشارات تقنية متخصصة في البيانات الضخمة، ومواقع وبوابات Liferay، والذكاء الاصطناعي لأكثر من 15 عامًا. كانت الشركة رائدة في تحسين الحلول مفتوحة المصدر ودفع التحول الرقمي لعملاء متنوعين، بما في ذلك الشركات الخاصة والإدارات العامة والهيئات الحكومية في إسبانيا وأوروبا منذ عام 2004.

تعتمد ZYLK حصريًا على البرمجيات مفتوحة المصدر لتقديم الحلول، حيث تعتقد أن البرمجيات مفتوحة المصدر توفر العديد من المزايا مقارنة بالبدائل المملوكة، مثل التكلفة الفعالة والمرونة والشفافية ودعم المجتمع. قبل تنفيذ APISIX، كان على الفريق التعامل مع نقاط نهاية الاتصالات بشكل فردي والرجوع إلى كل نقطة نهاية مباشرة من العميل. أدى ذلك إلى تكاليف كبيرة في الوقت والجهد لإدارة وصيانة كل نقطة نهاية وقناة توجيه متاحة.

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

الاختيار التقني

عملت ZYLK بشكل كامل مع البرمجيات مفتوحة المصدر، بما في ذلك العديد من مشاريع Apache. لذلك، كان من الجيد تجربة حل Apache عند البحث عن بوابة API. بعد البحث عن حل لمشاكلهم لمدة ستة أشهر ومقارنته مع Kong Gateway وHAProxy، اختارت ZYLK في النهاية تنفيذ APISIX. الأسباب هي كما يلي:

1. APISIX أبسط ويحتوي على إضافات أمان أكثر شمولاً مع لوحة تحكم سهلة الاستخدام.

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

2. يدعم APISIX بروتوكولات متعددة، وليس فقط HTTP.

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

3. لدى APISIX القدرة على إعادة توجيه رسائل MQTT الواردة مع mTLS بين العميل والخادم.

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

أثبت APISIX أنه إضافة قيمة لحلول ZYLK، حيث وفر طريقة أبسط وأكثر أمانًا لإدارة احتياجات بوابة API الخاصة بهم.

مقدمة عن البنية

1. الأجهزة الصناعية: تسجل أجهزة PLC بيانات آلات التحكم في المناخ (في المباني البعيدة)

أولاً، يتم التركيز على الأجهزة الصناعية مثل أجهزة PLC، والتي تُستخدم لتسجيل البيانات التي تولدها آلات التحكم في المناخ. يقع نظام التحكم في المناخ في مبنى بعيد، والذي يعتبر جزءًا من بنية الحوسبة الطرفية. يجب تخزين البيانات التي تولدها هذه الأجهزة في خوادم السحابة. تتكون السحابة من جزأين يتشاركان البيانات مع بعضهما البعض، وتتصل البيانات عبر بروتوكولات صناعية.

2. البروتوكولات الصناعية: يتم استخدام Modbus وBACnet لقراءة البيانات من أجهزة PLC

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

3. اتصالات MQTT: يتم تحويل TCP وإرسال البيانات إلى خادم سحابي عبر MQTT

تستخدم ZYLK APISIX كحل لها لاتصالات MQTT الآمنة في حالتها الاستخدامية. يتم جمع البيانات التي تولدها آلات التكييف الصناعية بواسطة أجهزة PLC وترجمتها إلى لغة TCP بواسطة بوابة TCP لـ Modbus، ثم إرسالها إلى Raspberry Pi. يجب إرسال البيانات عبر بروتوكول MQTT للوصول إلى نظام قوائم الانتظار، والذي يمكن أن يكون إما Mosquito أو RabbitMQ، وتستخدم ZYLK APISIX لتحقيق ذلك.

بنية الحوسبة الطرفية

الهدف من تخزين هذه البيانات هو الحصول على سجلات تاريخية لعمل الآلات، والتي تُستخدم لبناء نماذج تعلم الآلة في السحابة. تستخدم ZYLK نماذج NTL للتدريب والتغذية على هذه البيانات. تم بناء البنية التحتية الطرفية باستخدام رسم تخطيطي بسيط، حيث تولد آلات التكييف الصناعية البيانات على اليسار ويتم جمعها بواسطة أجهزة PLC.

كان Raspberry Pi يرسل رسائل MQTT بطريقة غير آمنة، مما شكل مشكلة لـ ZYLK حيث كانوا بحاجة إلى أن تكون الرسائل آمنة، على الأقل من APISIX إلى الخارج لأن Raspberry Pi يقع في مبنى بعيد. لم تهتم ZYLK كثيرًا بأمان الرسائل بمجرد وصولها إلى APISIX لأن نظام قوائم الانتظار، RabbitMQ، كان موجودًا على خادمهم الخاص. ومع ذلك، كان تأمين الجزء الأول من الاتصال أمرًا بالغ الأهمية لضمان الأمن السيبراني والرسائل المشفرة.

4. نماذج تعلم الآلة: بمجرد وصول البيانات إلى السحابة، يتم تخزينها واستخدامها لتدريب وتغذية نماذج LSTM

بنية السحابة والحوسبة الطرفية

أخيرًا، في السحابة، هناك مجموعة Kubernetes مع قاعدة بيانات NIFI. يتم تخزين البيانات التي تولدها الأجهزة الصناعية في السحابة واستخدامها لتدريب وتغذية نماذج LSTM.

عملية التنفيذ

الخطوة 1: تمكين الإضافة

تصف ZYLK الخطوات التي اتخذتها لتمكين APISIX للعمل كوسيط TCP وإنشاء مسار تدفق من APISIX إلى نظام قوائم الانتظار RabbitMQ. أولاً، قاموا بتمكين إضافة وكيل MQTT عن طريق إلغاء تعليق بضعة أسطر في ملف التكوين والسماح للبورت المحدد بالعمل كعملية تدفق لرسائل TCP. من المهم ملاحظة أنه من خلال إعداد هذا، يمكنهم الاستمرار في استخدام جميع ميزات APISIX الأخرى والعمل مع REST APIs وبروتوكول HTTP دون أي مشاكل.

تمكين الإضافة

الخطوة 2: إنشاء مسار التدفق

بعد ذلك، قامت ZYLK بإنشاء مسار التدفق باستخدام كائن خاص في APISIX يشبه الطرق ولكنه لا يظهر على لوحة التحكم. استخدموا أمرًا بسيطًا لتحديد الإضافة التي يستخدمونها، واسم بروتوكول MQTT وإصداره، وSNI (إشارة اسم الخادم) لمطابقة شهادتهم للاتصال الآمن. قاموا بتحديد العقدة المنبع التي تستضيف خدمة RabbitMQ أو أي نظام قوائم انتظار آخر يفضلون استخدامه. سمح تمكين APISIX كوسيط TCP وإعداد مسارات المنبع لـ ZYLK بإرسال رسائل MQTT بشكل آمن من Raspberry Pi إلى نظام قوائم الانتظار RabbitMQ في السحابة. هذا يضمن الأمن السيبراني والرسائل المشفرة اللازمة لحالتهم الاستخدامية. القدرة على الاستمرار في استخدام ميزات APISIX الأخرى والعمل مع REST APIs وبروتوكول HTTP جعلت الحل مرنًا وقابلًا للتكيف مع احتياجاتهم. نجحت ZYLK في اختبار حلهم مع Mosquitto Broker ووجدت أنه يعمل بشكل مثالي.

إنشاء مسار التدفق

الخطوة 3: توقيع وتحميل الشهادات

بعد إنشاء مسار التدفق، كانت الخطوة التالية هي إنشاء وتوقيع الشهادات وتحميلها في نسخة APISIX. استخدموا نصًا برمجيًا بلغة Python لإنشاء كائنات SSL مع الشهادة والمفتاح وSNI، مما يضمن أن SNI يتطابق مع المحدد في مسار التدفق.

توقيع وتحميل الشهادات

تؤكد ZYLK على أهمية التأكد من أن SNI صحيح. بمجرد تحميل الشهادات، تم إنشاء TLS متبادل بين العميل والخادم، حيث يعرض كل منهما شهادته. مع هذا الإعداد، كان لدى ZYLK اتصال آمن من APISIX إلى الخارج. يمكنهم أيضًا تشفير الاتصال بين APISIX والمنبع إذا لزم الأمر ولكنهم اختاروا تركه غير مشفر. استخدمت ZYLK APISIX لأغراض أخرى ووجدت أن الإضافة وفرت لهم وظائف إضافية. قاموا بإعادة توجيه حركة المرور الواردة إلى وسطاء MQTT، باستخدام معرف العميل لتقسيم الرسائل إلى مواضيع مختلفة إذا لزم الأمر. وكانت المصادقة على MQTT ممكنة أيضًا.

سمح استخدام APISIX وMQTT لـ ZYLK بحل مشاكل فريدة وتوسيع قدراتهم إلى ما هو أبعد من المشاكل النموذجية المتعلقة بـ HTTP. من خلال إنشاء قناة اتصال آمنة، يمكنهم تخزين وتحليل البيانات التي تولدها المعدات الصناعية واستخدامها لتدريب نماذج تعلم الآلة للصيانة التنبؤية.

الإنجازات بعد استخدام APISIX

تؤيد ZYLK بشدة APISIX وتوصي به بحماس لشركائها التجاريين. عند وصف APISIX لصديق، يقول ألفونسو غونزاليس: "APISIX هي خدمة بوابة API من Apache توفر العديد من الميزات للتوجيه، بما في ذلك المصادقة، والحد من المعدل، وإمكانية التتبع." يعتقد ألفونسو أن APISIX هي أفضل بوابة للواجهات البرمجية (APIs).

تضمنت حالة استخدام ZYLK الأجهزة الصناعية، والبروتوكولات الصناعية، واتصالات MQTT، ونماذج تعلم الآلة. تشمل الفوائد التي حصلت عليها ZYLK من استخدام APISIX:

1. إرسال رسائل MQTT بشكل آمن باستخدام APISIX في البيئات الصناعية

تقوم الأجهزة الصناعية مثل أجهزة PLC بتسجيل بيانات آلات التحكم في المناخ، والتي يتم ترجمتها إلى TCP وإرسالها إلى خوادم السحابة باستخدام MQTT. تم استخدام APISIX لإرسال رسائل MQTT بشكل آمن من Raspberry Pi إلى نظام قوائم الانتظار RabbitMQ في السحابة، مما يضمن الأمن السيبراني والرسائل المشفرة اللازمة لحالتهم الاستخدامية.

2. تمكين الاتصال الآمن مع إضافة وكيل MQTT وTLS المتبادل

قامت ZYLK بتمكين إضافة وكيل MQTT وإنشاء مسار تدفق باستخدام كائن خاص في APISIX. كما قاموا بتوقيع وتحميل الشهادات باستخدام نص برمجي بلغة Python، مما يضمن أن SNI يتطابق مع المحدد في مسار التدفق. من خلال إنشاء TLS متبادل بين العميل والخادم، تمكنت ZYLK من الحصول على اتصال آمن من APISIX إلى الخارج.

3. توسيع القدرات باستخدام APISIX

سمح التنفيذ الناجح لـ APISIX وMQTT لـ ZYLK بحل مشاكل فريدة وتوسيع قدراتهم إلى ما هو أبعد من المشاكل النموذجية المتعلقة بـ HTTP. يمكنهم تخزين وتحليل البيانات التي تولدها المعدات الصناعية واستخدامها لتدريب نماذج تعلم الآلة للصيانة التنبؤية.

تلتزم ZYLK بالبقاء في طليعة صناعتها وتقديم أفضل الحلول الممكنة لعملائها. بينما تواصل مواجهة تحديات المستقبل، ستجد بلا شك طرقًا جديدة ومبتكرة للاستفادة من تقنيات مثل APISIX لتحقيق أهدافها.

ملخص

قبل تنفيذ APISIX، كان على ZYLK إدارة اتصالاتها نقطة بنقطة، مما كان يستغرق وقتًا طويلاً وغير فعال. واجهت عدة مشاكل تتعلق بتوجيه MQTT، وشبكات K8S، واتصالات HTTP.

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

من حيث الأهداف المستقبلية، ترى ZYLK أن الأمن السيبراني، وتقارب تقنية المعلومات والتكنولوجيا التشغيلية (IT وOT)، والتعلم العميق القابل للتفسير هي أكبر التحديات التي تواجه صناعتها. على مدى الأشهر الستة القادمة، تخطط الفريق للاستمرار في العمل على مشاريع البحث والتطوير وتطوير خدمة إنترنت الأشياء الخاصة بهم.

Tags: