Author Archives: Grant Slater

تشغيل مستقبل OpenStreetMap: عام من التحسينات من مهندس موثوقية الموقع التابع لمؤسسة OpenStreetMap

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

سأخوض في بعض التفاصيل أدناه حول ما حدث. على مستوى عال، سهلت إدارة نشر النظام الذي يعمل على خوادمنا. قوَّيت البنية التحتية لشبكتنا من خلال تحسين التكرار والمراقبة والوصول والتوثيق؛ نمَّيت استخدامنا للخدمات السحابية لعرض التجانب، والاستفادة من رعاية AWS السخية؛ حسَّنت ممارساتنا الأمنية؛ حدَّثت بيئات المطورين لدينا؛ وأخيرا وليس آخرا، نقلت نهائيًا 16 عاما من المحتوى من منتدياتنا القديمة إلى منتدياتنا الجديدة.

إذا كنت تريد أن تسمع المزيد مني على مدار العمل العام الماضي، تحقق من حديثي في حالة الخريطة 2022  و مقابلتي على بودكاست GeoMob. وأحب أن أسمع منكم، أرسل لي بريدا إلكترونيا على osmfuture@firefishy.com.

2022-2023 تفاصيل موثوقية الموقع

إدارة النظم على خوادمنا

مكونات البنية التحتية الصغيرة الموضوعة في حاويات (إجراءات GitHub للبناء)

لقد عبَّئت العديد من مواقعنا الصغيرة التي تم إنشاؤها مسبقًا باستخدام طرق مخصصة في قاعدة بيانات الشيف (chef) الخاصة بنا كجزء من إعداد “التكوين كرمز”. نقل خطوات الإنشاء إلى إجراءات Github. إعداد قاعدة لأي مشاريع مستقبلية قائمة على الحاويات (“docker”) مستقبلًا. هذه هي أول مشاريعنا القائمة على الحاويات / docker المستضافة على البنية التحتية لـOSMF.

أصبح كود الشيف (chef) القائم لدينا الآن أبسط وأكثر أمانا ويتم نشره بشكل أسرع.

تحسين اختبار الشيف (وثائق إعداد العمليات)

نحن نستخدم   chef.io لإدارة البنية التحتية (التكوين) لجميع خوادمنا والبرامج المستخدمة عليها. على مدار العام الماضي، تم تمديد اختبارات مطبخ اختبار الشيف (chef test) وتعمل الآن أيضا على أجهزة آبل سيليكون Apple Silicon الحديثة. يتم الآن تشغيل الاختبارات بشكل موثوق كجزء من عمليات CI / PR الخاصة بنا. تضيف الاختبارات مراقبة الجودة وضمان التغييرات التي نجريها. كانت إضافة دعم ARM أسهل في الإضافة لأنه يمكننا استخدام مطبخ الاختبار قبل الانتقال إلى أجهزة خادم ARM.

يجب أن يساعد إجراء اختبارات موثوقة في ضم مساهمي الشيف الجدد.

تقوية البنية التحتية لشبكتنا

ترقيات الشبكة على AMS (مفاتيح جديدة، روابط مزدوجة زائدة عن الحاجة، دبلن قريبا)

لم يكن إعداد شبكتنا في أمستردام زائدا عن الحاجة كما ينبغي. لقد تجاوزنا معدات Cisco Small Business التي استخدمناها. كان لدينا انقطاع غير متوقع في التيار الكهربائي بسبب مشاكل في الأجهزة. كانت المعدات تحد أيضا من الترقيات المستقبلية. قررت مجموعة العمليات استبدال الأجهزة بمعدات Juniper التي قمنا بتوحيدها في مركز بيانات دبلن. لقد استبدلت المعدات بأقل وقت تعطل في بيئة حية (<15 دقيقة).

تستخدم كل من مراكز بيانات دبلن وأمستردام الآن تكوينا موحدا وأكثر أمانا. يحتوي كل خادم الآن على روابط مترابطة بالكامل لتحسين التكرار والأداء. قامت المحولات بتحسين الطاقة وتكرار الشبكة. نحن في انتظار تثبيت الوصلات الصاعدة المرنة بالكامل (تم تقديم الطلب) في الشهر المقبل.

الوصول خارج النطاق إلى كلا مركزي البيانات (قائم على 4G)

لقد قمت ببناء وتركيب أجهزة وصول خارج النطاق في كل موقع. يتم توصيل الأجهزة بمعدات الشبكات وإدارة الطاقة باستخدام وحدات التحكم التسلسلية. تحتوي الأجهزة خارج النطاق على رابط 4G مرن بشبكة 4G خاصة (1NCE). أجهزة الوصول خارج النطاق هي Raspberry PIs مصممة خصيصًا مع مصادر طاقة زائدة عن الحاجة وأربعة موصلات تسلسلية.

توثيق البنية التحتية لسهولة الصيانة (رفوف / طاقة)

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

مؤكسد (رؤية معدات الشبكة)

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

تتم مراقبة التكوين باستمرار وأصبح حل أي انحراف في التكوين بين مواقعنا أسهل بكثير.

البنية التحتية Terraform ككود (تحسين الإدارة / التكرار)

Terraform هي أداة للبنية التحتية ككود، نستخدمها الآن لإدارة خدمة المراقبة عن بعد (statuscake) وأنا بصدد تنفيذها لإدارة البنية التحتية AWS و Fastly.

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

نحن ندير جميع المجالات DNS باستخدام كود dnscontrol . تم إجراء تحسينات تدريجية خلال العام الماضي، بما في ذلك إضافة اختبارات CI لتحسين التعاون الخارجي.

نما استخدامنا للخدمات السحابية

AWS قيد الاستخدام لتقديم البنية التحتية. تحسين تكاليف AWS. أمان محسن. تحسين النسخ الاحتياطي. المزيد في طور الإعداد

يعمل فريق Ops ببطء على زيادة استخدامنا لـAWS على مدار بضع سنوات. لقد أنشأت حسابات AWS متعددة الاستخدام باستخدام نموذج مؤسسة AWS لتحسين الفوترة والأمان وفقا لإرشادات أفضل ممارسات AWS. لقد تلقينا رعاية AWS بسخاء لتوسيع البنية التحتية للعرض لدينا. لقد أنشأنا البنية التحتية التجريبية الجديدة للعرض باستخدام بنية ARM باستخدام AWS Graviton2 EC2.
لم نستخدم من قبل الخوادم المستندة إلى ARM. كجزء من التحسينات التي أدخلت على الشيف لدينا (التكوين ككود) ، أضفنا دعم الاختبار المحلي لـARM آبل سيليكون (Apple Silicon)، وكانت هناك حاجة إلى إضافات صغيرة فقط لإضافة التوافق المطلوب لخوادم ARM إلى الشيف.

لقد أعجبنا بأداء مثيلات AWS Graviton2 EC2 لتشغيل مكدس عرض تجانب الـOSM. اختبرنا أيضا التوسع عند الطلب ولقطة المثيل لمزيد من التحسينات المحتملة في مكدس التمزق على AWS.
لقد زدنا استخدامنا لـAWS للنسخ الاحتياطي للبيانات.

تحسين أمننا

وخلال العام الماضي، أدخل عدد من التحسينات الأمنية العامة. على سبيل المثال: الوصول إلى الخادم الآن عبر مفتاح ssh (تم تعطيل الوصول إلى كلمة المرور الآن). لقد انتقلنا أيضا من مدير كلمات مرور مخصص يعتمد على gpg لفريق ops إلى استخدام gopass (إصدار غني بالميزات من https://www.passwordstore.org/ ) ، يعمل GoPass على تحسين إدارة المفاتيح ومشاركة مخزن كلمات المرور.

زيادة على ذلك، قمنا أيضا بتحسين تأمين مثيلات WordPress الخاصة بنا عن طريق تقليل المكونات المثبتة وتعطيل التحديثات المضمنة وتعطيل الوصول إلى XMLRPC. نحن نعمل أيضا على تقليل المستخدمين الذين لديهم حق الوصول وإزالة أذونات الوصول غير المستخدمة.

المجالات الرئيسية الموثقة للضعف التي تتطلب التحسين (التكرار والأمان، إلخ)

وثائق حول الضعف الفني: أعد تقريرَا عن مجالات الضعف الرئيسية التي تتطلب التحسين (التكرار والأمان، إلخ). يمكن استخدام الوثيقة لتركيز الاستثمار في المستقبل لتقليل تعرضنا للمخاطر بشكل أكبر.

تحديث بيئات المطورين لدينا

خادم مطور جديد

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

التخريب المتقاعد

أحلت مستودع تعليماتنا البرمجية القديم للتقاعد   svn.openstreetmap.org في العام الماضي. تم استخدام مستودع التعليمات البرمجية منذ بداية المشروع، والذي يحتوي على تاريخ غني لتطوير التعليمات البرمجية في المشروع. لقد حولت مستودع كود svn إلى git باستخدام تكوين reposurgeon مخصص، وتم الانتباه للحفاظ على سجل المساهمة الكامل وربط المساهمين السابقين بشكل صحيح (350+) ب github والحسابات ذات الصلة. تم الحفاظ على روابط svn القديمة والآن ترتبط بالأرشيف على github https://github.com/openstreetmap/svn-archive

انتقال المنتدى

انتقال المنتدى القديم، قمنا بترحيل 1 مليون مشاركة و 16 عاما من المشاركات إلى الخطاب. تم تحويل جميع المشاركات من fluxbb markdown إلى نكهة الـdiscourse من markdown. تم دمج جميع الحسابات وتحويل المصادقة إلى OpenStreetMap.org ” تسجيل الدخول الأحادي” على أساس المصادقة.

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