منذ عامين ، بدأنا مدونة على موقع Habr ، بدءًا من
نص المراجعة حول ما نقوم به ، والتكنولوجيات التي نستخدمها وأين نتحرك. منذ عام 2017 ، تغير الكثير ، وسنخبرك اليوم بكيفية اتخاذ قرارنا - منصة الإدارة العالمية للسيارات المتصلة ، والتي يستخدمها العديد من المستخدمين والشركات من مختلف المستويات. يتم تقسيم المواد حسب العملية ، من بيان المشكلة إلى النشر.

المنتج الرائد Bright Box -
Remoto - عبارة عن منصة متطورة تقنيًا وغنية بالميزات لـ Connected Car ، والتي تشمل المعدات والبرامج للتجار وصناع السيارات ، بالإضافة إلى تطبيق للهاتف المحمول للمستخدم. وفقًا لتحليلات Bright Box الأساسية بين مالكي السيارات ، فقد تبين أولاً أنهم يحتاجون إلى التحكم عن بعد في أقفال الأبواب والتحكم في المناخ والبحث عن سيارة بها تنبيهات عن الصدمة أو الإخلاء. هذا الأخير هو بالفعل الكلاسيكية. الآن توفر مجموعة Remoto للمستخدم الخدمات التالية: التحكم عن بعد في وظائف السيارة ، والقدرة على تلقي البيانات من الأجهزة و CAN و GPRS و SMS و Bluetooth والتحكم في طاقة الخرج إلى وحدة الإشعال الإلكترونية. يتلقى المستخدم هذه المعلومات في تطبيق الهاتف المحمول.
ومثل هذا المستخدم يمكن أن يكون ليس فقط صاحب الجهاز. يمكن أن تكون المعلومات المتاحة للتجميع أداة مفيدة للعديد من المشاركين في سوق السيارات. على سبيل المثال ، مشاركة السيارة. تعد شركات مشاركة السيارات اليوم أكثر اللاعبين نشاطًا في سوق السيارات. أصبحت موسكو المدينة الأولى في إجمالي عدد السيارات المشاركة في مشاركة السيارات. بحلول عام 2020 ، يجب أن تصل مشاركة السيارات إلى 40 ألف سيارة في روسيا. تصبح شركات مشاركة السيارات أصحاب البيانات التالية: عدد الكيلومترات وإحداثيات GPS والسرعة وحالة الباب ومستوى الوقود. مفتاح كل هذا هو الهاتف الذكي ، وهو خيار أرخص وأكثر أمانًا.
أندريه كوبريكوف ، المؤسس المشارك ومدير تطوير الأعمال في YouDrive وأحد عملاء Bright Box:"يصعب تصور مشاركة السيارات دون حل عن بعد. تلتزم منصتنا بجمع كل المعلومات الممكنة عن السيارة وماذا وكيف تحدث. خلاف ذلك ، سوف تؤثر على الأعمال. تكنولوجيا المعلومات هي التي توفر معلومات حول تكلفة الإصلاحات وقطع الغيار وتكلفة تعطل سيارة قيد الإصلاح بسبب عطل محب السرعة. مع وجود جهاز التحكم عن بُعد على متن الطائرة ، يمكنك إنشاء برنامج ولاء مستخدم فريد من نوعه. "
منذ بداية هذا العام ، أصبحت Remoto مزود حلول لشركتين كبيرتين لتبادل السيارات ، YouDrive و EasyRide ، مع 1000 سيارة في أسطولها. إن استخدام الحل في مشاركة السيارات ليس مناسبًا فحسب ، بل إنه فعال أيضًا من الناحية الأمنية والجوانب المالية - في شكل تقليل مخاطر الحوادث وفي برنامج الولاء. مع تطور مشاركة السيارات ، يتم تجميع بيانات المستخدم ، والآن أصبحت مشاركة السيارات ، مثل البنوك ، لديها نظام معين لتسجيل العملاء. لقد كتبنا عن منطق تشغيل خوارزميات تسجيل النتائج لمستخدمي مشاركة السيارات ، وقمنا أولاً بتحليل
خوارزمية تسجيل النتائج استنادًا إلى التسارع الحاد والكبح ، ثم
خوارزميات تحليل أسلوب القيادة استنادًا إلى قيم السرعة وسرعة المحرك ومؤشرات التسارع .

لكننا نعمل بنشاط ليس فقط في السوق الروسية ، ولكن هذا تحد إضافي. مع توسع جغرافيا العمل ، أصبح من الواضح أن إعادة الهيكلة الصحيحة والفعالة للرأس الهندسي هي لحظة رئيسية في التطوير.
قل فيتالي باوم ، كبير موظفي المنتجات
وفياتشيسلاف سوكولوف ، الرئيس التنفيذي للهندسة:يتكون نظامنا من مجموعة من المكونات. في الهندسة ، تكون الفرق المخصصة مسؤولة عنهم. في الحقيقة ، تشتمل الهندسة على 3 عمليات تجارية ومجموعة من الخدمات المساندة.
يمكن تمييز العمليات التجارية التالية داخل الوحدات الهندسية:
- تطوير جهاز عن بعد مع برنامج مضمن للتكامل مع السيارات. يتعامل مع قسم هندسة المخلفات الخطرة.
- عملية تصنيع الأجهزة لعميل معين عن طريق وحدة الأعمال. المسؤول عن التصنيع
- تطوير خدمات Remoto Cloud ، المسؤولة عن تفاعل جهاز المستخدم والمستخدم وأجهزة التحكم عن بُعد. إنها مجموعة متنوعة من الخدمات الخلفية مع مجموعة من البوابات لمختلف المستخدمين وتطبيقات الأجهزة المحمولة للعملاء وبحيرة البيانات. تتم معالجة الإنتاج بواسطة قسم إدارة المنتج. تطوير جزء البرنامج بالكامل هو قسم تطوير المنتجات ، مع الإصدارات والدعم ، فريق العمليات في RCS.
تجدر الإشارة إلى أن مهمة تحديد المتطلبات الوظيفية لميزة معينة تقع على عاتق قسم إدارة المنتج ، والذي يضم ، بالإضافة إلى خبراء المنتج ، أيضًا المحللين والمصممين. علاوة على ذلك ، تذهب المتطلبات إلى قسم تطوير المنتج ، الذي يواجه مهمة صعبة تتمثل في تحليل الميزات في مكونات النظام ، بما في ذلك البرامج الثابتة للجهاز. تتم معالجة هذه المهمة بواسطة مهندس تطوير المنتجات ، جنبًا إلى جنب مع فريق من محللي النظم.
كيف يبدو تخطيط المنتج؟ في الآونة الأخيرة ، أصبحت إدارة المنتجات جزءًا من فريق هندسي. وقد انعكس هذا الهيكل التنظيمي في كيفية بدأنا العمل. يحدد فريق PM المنتج الذي يجب أن يكون بشكل عام ، وما هي الوظائف التي يجب أن يكون لديه ، بغض النظر عن مكونات النظام. اتضح موجزًا - وصفًا سطحيًا لما يجب القيام به في المهمة. بعد ذلك ، يتم إعداد المواصفات الوظيفية ، والتي نسميها FSD ، أو مجموعة من قصص الوظائف - على سبيل المثال ، القدرة على إرسال طلب "سجل للصيانة" في المنتج. يتم وصف كل ميزة بمجموعة من قصص الوظائف المشابهة.

وتشارك PMs أيضا في التصميم التقني. يقومون بإجراء تحليل تقني للمواصفات الوظيفية وإنشاء تصميم تقني - TDD (مستند التصميم الفني) ، ومناقشة هذا التصميم الفني مع المطورين ، والهبوط تحت فهمهم. بعد كتابة المتطلبات الوظيفية والتصميم الفني ، نبدأ العمل على الواجهة - هذه هي واجهة تجربة المستخدم.
وبالتالي ، يشكل مهندسو المنتج مجموعة معينة من "وحدات" الأداة المساعدة للعميل (يمكن أن يكون "الاشتراك في الصيانة" وحدة فائدة) ويقوم بنقلها إلى متخصص يصف المنطق في هذه المجموعة. تعني الفائدة في تطبيق للصيانة أنه يمكن للعميل ملء نموذج بالمعلومات اللازمة ، والذي يتزامن مع ما يتوقعه المتعاملون عند تقديم طلب للصيانة. يقوم أخصائي المنتج أيضًا بتحليل السوق ودراسة ما يجب أن يكون في المنتج والقيمة التي يعطيها للعملاء.
يتواصل خبراء منتجاتنا اليوم مع الأعمال التجارية داخل الشركة أو مع العملاء مباشرةً. يتم تشكيل خارطة الطريق من قبل لجنة خارطة الطريق ، والتي تضم كبار المديرين للشركة لتأخذ في الاعتبار جميع مجالات تطوير الشركة. تجتمع اللجنة مرة كل ثلاثة أشهر.
يتم ذلك من أجل تنسيق الفهم المشترك وضمان سلامة المنتج بحيث تتلاءم الميزات بسلاسة مع الرؤية الحالية للمنتج.
هناك خدمة منفصلة - الأمن السيبراني ، والتي تتفاعل مع الأشخاص الذين يعملون مع الأجهزة والمتخصصين من قسم الواجهة الخلفية من أجل تحديد نقاط الضعف وإغلاقها وتقييم المخاطر التي يمكن أن تؤدي إليها هذه المخاطر. اليوم ، تقوم كبير المهندسين ، الذي يرأس فريق المنتج ، بتعيين المهمة لهذا القسم ، وهي بدورها تتواصل مع العميل وتفهم ما هو مطلوب الآن من أجل الامتثال لجميع معايير الأمن السيبراني. يتم تضمين كل هذا في خطة الإصدار ، وأغلقت نقاط الضعف ، ويتم الحصول على الشهادات ، وبشكل عام ، يتم إزالة الفجوة الأمنية.
بعد الانتهاء من إعداد الوظيفة من قبل الهندسة وتقييمها بواسطة قسم الأمان ، تنتقل مواصفاتها إلى فريق تطوير المنتج ، حيث تقوم مجموعة العمل بتحليل الوظائف وفقًا لمكونات النظام - ما يتعلق بالواجهة الخلفية ، وما هو الجهاز ، وما يجب أن يكون تطبيق الهاتف المحمول قادرًا على القيام به. يتفق فريق تطوير المنتج والفريق الهندسي HW على التعاون ، ويأتي كل شيء وفقًا لخطة مشتركة ويختلف حول الفرق.
كيف ننشر
في نهاية التطوير ، تخضع النتيجة التي تم جمعها لاختبار التكامل والبدء في الإصدار على النظام الأساسي السحابي. على النظام الأساسي السحابي حيث نستضيف (Azure) ، بيئات مستضافة للعملاء. البيئة مسؤولة عن فريق التشغيل الذي يعمل فيه المهندسون و DevOps والدعم.
تعليق فلاديمير جلازكوف ، كبير مهندسي DevOps:يتم وصف البنية التحتية بأكملها برمز. نجري جميع التغييرات فقط من خلال الرمز. هذا النهج يقلل من خطر العامل البشري أثناء التحديثات. كما يتيح لك نشر مثيل إضافي للبيئة بسرعة للاحتياجات العاجلة المؤقتة. في حالة تعطل طاقة الحوسبة (VM / VMSS) ، يمكنك نشر مثيل جديد بسرعة.
حول CI / CD - في الوقت الحالي ، نستخدم مجموعة من TeamCity / Octopus Deploy. تعمل TeamCity على تجميع مشاريع .net ، ويتم إطلاق اختبارات الوحدة ، وبعد ذلك يتم إنشاء إصدار في Octopus ونشره على الأهداف المناسبة (VM / VMSS / K8S). بعد النشر الناجح ، يتم إطلاق اختبارات القبول. في حالة تعطل أي من الاختبارات ، سيتم إخطار فريق التطوير.
في البداية ، تم إنشاء مجموعات منفصلة من الموارد لكل مشروع أعمال ، بما في ذلك أدوات CI / CD. بسرعة كافية ، جاء الإدراك أنه مع زيادة عدد المشاريع ، فإن هذا النهج محكوم عليه بالفشل - من المستحيل ببساطة إدارة مثل هذه الحديقة بشكل فعال. قبل عامين ، تم إطلاق مشروع توحيد ، انتهى بعد 4 أشهر. في عمليتها ، تم تخصيص المكونات الأساسية للنظام ، بالنسبة لهم عملية التجميع والنشر هي نفسها لجميع البيئات. كما تم وصف وتنفيذ القدرة على إضافة تجميع / نشر مكونات إضافية خاصة بمشروع أعمال معين. عند إنشاء بيئات جديدة ، لم تعد هناك حاجة إلى مثيلات فردية لـ TeamCity & Octopus. تمت كتابة البرامج النصية ، من خلال واجهة برمجة التطبيقات ، لإنشاء وتكوين كل الأشياء اللازمة للتجميع والنشر.
لقد توصلنا إلى الاستخدام التالي للبيئات: من أجل التطوير ، يستخدم كل فريق بيئتين:
- الأول في الواقع هو تطوير وظائف جديدة ، والتحقق من الميزات من قبل المؤلف ، وما إلى ذلك ؛
- والثاني هو لتحقيق الاستقرار.
يمكن أن يكون هناك العديد من هذه المجموعات من البيئات ؛ خدمتها بسيطة للغاية في ضوء التوحيد المنجز.
هناك أيضًا بيئة لقبول الإفراج عن الفريق المسؤول عن البيئة القتالية. يمر الاختبار النهائي قبل الإصدار في الإنتاج.
لدينا اتفاق مع المطورين حول الجهاز لتحويل ملفات التكوين. في كل مشروع ، يوجد ملف يحتوي على مجموعة من المعلمات التي لها معان مختلفة في بيئات مختلفة. يقوم المطورون بملء الملف بالمعلمات الضرورية (سلاسل اتصال قاعدة البيانات ، مفاتيح الاتصال ، إلخ) ، وقيم هذه المعلمات متغيرات. لكل بيئة ، تكون قيم هذه المتغيرات فردية. مع هذا النهج ، لا يتدخل المطورون في التجميع محليًا والتحقق من أنفسهم. يتم تخزين المتغيرات في الأخطبوط نشر.
للمراقبة ، نستخدم Azure Monitor و Application Insights و Log Analytics. تعيش Zabbix وقتها ، على الأرجح في المستقبل سيتم تكليفها بالدور المشرف للمراجعات الخارجية.
عندما انضممت إلى الشركة ، استغرق إنشاء بيئة جديدة ثلاثة أسابيع. لا توجد تعليمات تقريبًا ، تم إجراء التغييرات يدويًا ولم يتم تسجيلها في أي مكان. بدأت رحلتنا إلى IaaC بأتمتة بسيطة ، مما قلل من العملية إلى أسبوع واحد. الآن إنشاء بيئة جديدة يستغرق 4 ساعات. الآلي حوالي 95 ٪ من الإجراءات.
مكتوب لدينا الخلفية في. صافي (4.6 / 4.7 والأساسية) ، والجبهة هي JS. لاستضافة نستخدم
مجموعات مقياس Virtual Machine و K8S. وفقا لذلك ، فمن السهل جدا التدرج تحت تغييرات الحمل.
كيف يعمل النظام في الداخل
يقول إيفان ستوليت ، رئيس برايت بوكس لتطوير المنصات:
يمكنك دائمًا العثور على رسم تخطيطي للعمارة الحالية
على الموقع .
يتم تخزين جميع البيانات في النظام الموزعة. هناك قواعد بيانات منفصلة لتخزين البيانات الشخصية مع الإشارة إلى المنطقة وتنظيمها وفقا للتشريعات المحلية. هناك قواعد بيانات يتم فيها تجميع جزء المحتوى من خدمات الاحتفاظ بالعملاء وتخزين الأخبار والتطبيقات والبيانات من أنظمة تكامل مختلفة من التجار ومصنعي السيارات. بشكل منفصل ، يتم جمع معلومات القياس عن بعد التي تمت معالجتها ، بالإضافة إلى الإعدادات والبيانات الأخرى الضرورية لضمان قابلية تشغيل خدمات Remoto وأجهزةنا. نقوم بجمع بيانات القياس عن بُعد الباردة بشكل منفصل باستخدام قواعد بيانات مصممة لتخزين كميات هائلة من المعلومات. جانبا ، تم بناء مستودعات منفصلة للبيانات توفر القدرة على تشغيل أنظمة Remoto AI. بمساعدة ما يسمى بالزواحف ، يتم جمع جميع المعلومات الإحصائية اللازمة ؛ على أساسها ، فإن الذكاء الاصطناعي يختار مجموعات المستخدمين ويبني "تنبؤات".
يتم جمع البيانات من الأجهزة باستخدام حل إنترنت الأشياء من Microsoft. يتم توصيل الأجهزة بالنظام الأساسي ، حيث يقوم النظام بجمع كل القياس عن بُعد ووضعه في مركز حدث تخزين بيانات مؤقت وسيط. إن عمالنا متصلون بالفعل بلوحات الأحداث ، ومعالجة القياس عن بعد ، وتسجيل البيانات الباردة والبيانات المعالجة ، مثل المسارات وأحداث المرور ، وتنفيذ الأوامر. يمكن لخدمة منفصلة طلب بيانات تشخيصية من الجهاز ، وتحليل حالة السيارة وإنشاء تقارير مخصصة.
بالنسبة لتطبيقات الأجهزة المحمولة المخصصة ، يتم تطبيق واجهة برمجة التطبيقات ، والتي يمكن للمستخدم من خلالها الوصول إلى القياس عن بُعد المعالج ، بالإضافة إلى القدرة على تنفيذ أوامر للجهاز المثبت في السيارة. يتم استخدام واجهة برمجة التطبيقات (API) نفسها للوصول إلى بيانات خدمة الاحتفاظ بالعملاء ، حيث يتلقى المستخدم الأخبار والعروض الخاصة من التجار ومصنعي السيارات في تطبيقه للهاتف المحمول ، ولديه الفرصة لاستخدام الخدمات ، على سبيل المثال ، ملء طلب اختبار أو قرض. من خلال تطبيق الهاتف المحمول ، يمكن للمستخدم ضبط الإعدادات للجهاز ، وتنشيط الخدمات عن بُعد ، مثل الضغط عن الصدمة أو السرعة أو مغادرة المنطقة ، بالإضافة إلى تكوين بدء تشغيل المحرك التلقائي وفقًا للجدول الزمني أو درجة الحرارة.
لدى التجار ، بدورهم ، الذين يستخدمون البوابات المقدمة الفرصة لتشغيل التشخيصات على جهاز المستخدم ، ومنع تشغيل المحرك عن بُعد ، على سبيل المثال ، للعمل الفني أو خدمة ما بعد البيع ، وتشكيل عرض شخصي خاص ، وكذلك معالجة طلبات المستخدمين. غالبًا ما يتم التواصل مع المستخدم في مثل هذه الحالات باستخدام إشعارات الدفع.
لدى الموزع أيضًا فرصة لتخصيص تطبيق الهاتف المحمول ، ويمكن للتاجر أو صانع السيارات طلاء التطبيق بألوان علامته التجارية ، وتغيير الأيقونات الرئيسية ، وتحديد مجموعة الوظائف المتاحة في التطبيق وبعض وظائف مستحضرات التجميل الأخرى ، وقد تم إنشاء بوابة منفصلة لهذا الغرض.
لتوفير دعم العملاء ، هناك بوابة تقنية يمكنك من خلالها التحقق من صحة الإعدادات الحالية للمستخدمين وأجهزتهم ، وتشخيص قابلية تشغيل الجهاز ، إذا لزم الأمر ، يمكن تعديل البيانات بناءً على طلب العميل ، على سبيل المثال ، إذا اختار المستخدم طراز سيارة آخر أثناء التكوين ، يمكن لأخصائي الدعم إصلاحه. يوفر المدخل أيضًا إمكانية تحديث FOTA (البرامج الثابتة عبر الأثير) للبرامج الثابتة لجهاز أو مجموعة من الأجهزة في حالة وجود إصدار جديد من البرنامج الثابت مع وظائف جديدة أو إصلاحات الأخطاء.
وبضع كلمات عن الأمن
تعليق Artyom Nerob ، CISO:اليوم ، فريق الأمن في الشركة في حوار نشط مع رجال الأعمال.
نحن نسعى جاهدين للامتثال للمتطلبات القانونية: قانون البيانات الشخصية و GDPR. أكثر أهمية من أي وقت مضى ، وإقامة عملية دورة التنمية الآمنة ، أي إضافة بعض نقاط التحكم إلى إجراءات التطوير الحالية في شكل التحقق من الكود قبل إصدار التطبيق ، تحليل إضافي لرمز الجهة الخارجية ، مما يزيد من وعي المطورين فيما يتعلق بكيفية كتابة الكود الآمن في البداية. توصي الممارسات والمعايير العالمية بشدة بالاهتمام بالسلامة أثناء التطوير وليس بعده. لأنه بعد الإصدار ، تكون تكلفة إصلاح الثغرة الأمنية أعلى بنسبة 30٪. نحن نتحقق بشكل دوري من سلامة المنتج من قبل العملاء ، أي اختبارات الاختراق. نظرًا لزيادة أمان المعلومات ، نجتاز هذه الاختبارات الآن بنجاح كبير ، ولا توجد ثغرات أمنية ذات مخاطر حرجة أو عالية في المنتج من الإصدار إلى الإصدار.
اليوم لدينا فريق لإجراء اختبارات الاختراق ، ونعتبره كفريق سيساعدنا في عملية التطوير للقيام ببعض مراجعة أمان الكود الواجب مراعاتها في الإصدارات المستقبلية. لن تكون هذه اختبارات تغلغل كاملة ، ولكن مجرد مراجعة سيتم دمجها في عملية تطوير أعمالنا ، والتي تعد صحيحة تمامًا من وجهة نظر دورة تطوير الكود الآمن.
بالإضافة إلى ذلك ،
أكدنا شهادة ISO 27001 ، معيار إدارة أمن المعلومات وفقًا لتدقيق من BSI.
كيف نعيش وماذا بعد؟
هنا في Bright Box ، نبحث باستمرار عن طرق لتطوير منصة Remoto's Connected Car.
, , , , , . , , Honda, Motor Car, MINI. 2017 Zurich.

, Bright Box « ». , . , , :
: , .«»:
- ( ), , ( );
- ( );
- /, ;
- ;
- (///);
- .
, , , .
?, , .
, . work-life 1- , . .
, , , - .. , .
– .
? , .
, , . , 3 . .
, . :
– , . , «» . , .
– , . , – , , . , – 1-2% .
– , . 1- , .
, – .
– .
, , , .
Bright Box . , , ,
.

, Connected Cars
.
Driving to the future Medium .