بكل بساطة ، تعد BPA شبكة مركزية تجمع بين خدمة التوصيل ، ومستودع ضخم ونظام إدارة الطلبات ، مع التطوير والتكامل مع الشركاء. كل هذا مرتبط بالتقارير والتحليلات. نصمم ونكتب جميع الخدمات للتفاعل بين هذه الأنظمة وتقديم خدمات مماثلة للشركاء.
يلتقي قسم تكنولوجيا المعلومات لدينا مع العالم الحقيقي : من السهل تعيين فترة تسليم مدتها 15 دقيقة في نظام تكنولوجيا المعلومات ، ولكن من الصعب جدًا التأكد من أن آلاف مندوبي المبيعات في موسكو يأتون إلى العنوان بالضبط خلال هذه الفترة. المهمة الرئيسية لقسمنا هي ربط الأعمال والتكنولوجيا. قسم BPA نفسه موجود الآن في ثلاثة مجالات: التسليم والمستودعات والوظيفة التجارية ، والتي تشمل التفاعل مع B2B والسوق. وكل ما نستخدمه بأنفسنا ونبيعه في الخارج رائع حقًا: ميزاتنا تجلب المال وتوفر الوقت وتقدم خدمة عالية الجودة لعملائنا.
5 لغات و 2 مليون سطر من التعليمات البرمجية
BPA عبارة عن مجموعة من الأنظمة التي تتكامل مع بعضها البعض وأنظمة Lamoda الأخرى. لتطويرها ، نستخدم PHP ، و Java ، و Kotlin ، وهناك القليل من Go و Typescript - هناك 5 لغات على الرادار التقني لدينا. نكتب جميع الأنظمة لمهام أعمالنا. أصبح الآن مليوني سطر من التعليمات البرمجية و 25 خدمة وأكثر من مائة مكتبة قابلة لإعادة الاستخدام.
اللغة الرئيسية هي PHP ، والعديد من الخدمات الكبيرة الأخرى مكتوبة بلغة Java و Kotlin. لماذا PHP؟ أولاً ، إنه يطبق نظام معالجة الطلبات - وحدة متراصة ، كنا ننشرها في الخدمات المصغرة لسنوات عديدة ، وثانيًا ، نحن رائعون في العمل مع PHP: نكتب فيها بسرعة ، ونخدمها جيدًا ، وقمنا بتسويتها مع مجموعة من المكتبات... يتيح لنا هذا النهج إطلاق خدمات جديدة مع جميع اتصالات البنية التحتية: مع جميع السجلات والمراقبة ، في غضون أيام قليلة. يمكننا استخدام كل من Go و Kotlin كما في المستودع. نحن لا نستخدم تقنيات مكررة ، وكل شيء آخر غير محظور طالما أنه يعمل.
في العمليات التجارية ، المنطق والتفكير في كل خطوة مهمان. حتى لا يحدث أن ذهب طلبك من المستودع إلى فلاديفوستوك ، وظهرت فجأة لوحة غير متوقعة في النظام ، ولم يتم إعطاؤها لك.
يجب أن نغطي كل خطوة بالاختبارات ، لأن استقرار وصحة تنفيذ منطق النظام أمر بالغ الأهمية. علاوة على ذلك ، يستخدم شركاؤنا أيضًا عملياتنا التجارية. لذلك ، فإن أولوية الشركة هي الاستقرار ، على الرغم من حقيقة أن سرعة إطلاق خدمات جديدة مهمة أيضًا للأعمال. لضمان الاستقرار ، نستثمر الوقت في تصميم الخدمات والاختبارات حولها. يمنحنا هذا الفرصة لتطوير النظام دون المخاطرة بتحطيم كل شيء.
حتى أن هناك حنطة سوداء!
أنا أنتون دميترينكو ، الرئيس التقني لأنظمة إدارة مركز توزيع لامودا WMS أو ، ببساطة أكثر ، المستودع.
تتمثل مهمتي الرئيسية في التحدث باللغة نفسها مع الأعمال التجارية ، وتطوير نموذج المجال ، وإعداد النظام للتغييرات. للقيام بذلك ، عليك أن تفهم أين توجد "النقاط الساخنة" لدينا. هناك عمليات يتم ترتيبها مرة كل ثلاث سنوات ، وهناك عمليات تتغير كل ثلاثة أشهر - هذه "نقاط ساخنة". من المهم أخذها في الاعتبار عند تصميم النظام.
لدي الآن أربعة فرق - 18 شخصًا يشاركون في إنشاء واختبار ودعم النظام. نقوم بتسريع جميع العمليات التشغيلية والتجارية للمستودع: بدوننا مع الأحجام الحالية لأعمال Lamoda ، سيستغرق شحن طلب عميل واحد الكثير من الوقت ، وتقلل مشاركتنا من وقت معالجة أي طلب إلى 4 ساعات.
الحجم ، بالطبع ، كبير جدًا: تبلغ مساحة مستودع لامودا حوالي 40 ألف متر مربع أو عدة ملاعب كرة قدم في 5 طوابق ، حيث يتم تخزين 10 ملايين سلعة. يعمل على مدار الساعة 364 يومًا في السنة ، مع يوم عطلة مرة واحدة في السنة - 1 يناير. وفي كل يوم يغادر أكثر من 500 موظف وردية ، ومن خلال نظامنا يتم شحن واستلام 200 ألف بضاعة. بالإضافة إلى ذلك ، يتم نشر شبكة من الناقلات الآلية والمعدات داخل المستودع ، والتي تم تصميمها لنقل البضائع وتعبئة الطرود وتوحيد طلبات العملاء فعليًا وفرز الطرود حسب الوجهة ، كما نقوم بإدارتها.
تبيع Lamoda للعملاء جميع أنواع البضائع ، من المظلات الكبيرة وحقائب السفر إلى الساعات الصغيرة والمجوهرات. يتم تخزين كل هذا ومعالجته في مستودعاتنا. كل فئة لها خصائصها الخاصة. على سبيل المثال ، لا يمكن معالجة البضائع كبيرة الحجم على معدات آلية ، ويتم تخزين المجوهرات ومعالجتها بإجراءات أمنية إضافية ، وتتطلب مستحضرات التجميل والعطور ، على سبيل المثال ، شروط تخزين درجة حرارة معينة والتحكم في العمر الافتراضي للبضائع.
في الآونة الأخيرة كان لدينا مشروع يسمى "الحنطة السوداء". منذ إدخال نظام العزل الذاتي ، أضاف لامودا الأطعمة الشعبية طويلة العمر إلى مجموعته. بالمناسبة ، قمنا بتنفيذ هذه الميزة في غضون أيام قليلة. بطبيعة الحال ، فإن التشكيلة الرئيسية هي الملابس والأحذية ، والعمل به أيضًا بعض الفروق الدقيقة: لبيع البضائع ، من الضروري التحضير والتحقق من جودتها: سيكون الأمر سيئًا إذا قمنا ، على سبيل المثال ، بإحضار قميص بدون أزرار إلى العميل.
Lamoda ليس مجرد متجر على الإنترنت ، ولكنه منصة تجارة إلكترونية كاملة توفر بنيتها التحتية وخدماتها (بما في ذلك المستودع) للشركاء الخارجيين. على سبيل المثال ، تخزن ماركات الأزياء العالمية الكبيرة بضائعها معنا. ما الفرق الذي يحدثه؟ الفساتين والمعاطف والأحذية من الشركاء مماثلة لتلك الموجودة بالفعل في مستودعاتنا. لكن لدينا جميعًا متطلبات فردية للعمليات التي نلتزم بالامتثال لها بموجب العقود ، على سبيل المثال ، يتم تخزين بعض سلع العملاء الكبار في مناطق منفصلة ، والأشياء من السوق موجودة في جميع أنحاء المخزون. يجب أيضًا مراعاة هذه الميزات.
نقوم بفحص كل منتج ومعالجته في كل مرحلة من مراحل العملية مع مراعاة المواصفات ليس فقط في العالم المادي ، ولكن أيضًا في نظام تكنولوجيا المعلومات. علاوة على ذلك ، فإن نظام تكنولوجيا المعلومات نفسه يحث موظف المستودع على كيفية التعامل مع منتج معين ، حيث لا يستطيع المشغل معرفة جميع الميزات أو الاتفاقيات: المنتج لا يقول لمن ينتمي: شركة دولية كبيرة أو شريك سوق صغير.
الميزة الرئيسية للنظام هي التفاعل من خلال الماسحات الضوئية والرموز الشريطية: لكل منتج رمز شريطي فريد يمكن قراءته للحصول على جميع المعلومات الضرورية حول المنتج. يقلل هذا الأسلوب من الأخطاء ويسمح لك بتنفيذ جميع الإجراءات مع المنتج بشكل أسرع ، مما يقلل من عدد الموظفين. إذا قمنا بشحن 200 ألف سلعة يوميًا ، فإن توفير ثانية واحدة على منتج واحد هو 55 ساعة من وقت العمل. بالنسبة للأعمال التجارية ، فهي ملموسة.
تحت غطاء المستودع
تقنياتنا:
Java 8 و
PostgreSQL و
Wildfly و
Spring و Redis
و
ActiveMQ و
Hibernate.
لقد بدأنا بحل جاهز في Java ، ولكن منذ ذلك الحين توسعت وظائف النظام بشكل كبير وتم بالفعل إعادة بناء الكود بالكامل وإعادة كتابته عدة مرات.
الآن لدينا 350 ألف سطر من التعليمات البرمجية - وهذه ليست سوى الواجهة الخلفية للتطبيق الرئيسي ، وهناك أيضًا 5 خدمات ثانوية وواجهتي مستخدم: عميل ويب رفيع وتطبيق أصلي للهاتف المحمول. نحن نقوم بتطوير مكدس كامل.
يستخدم موظفو المستودع العميل المتنقل. يتنقلون في جميع أنحاء المستودع باستخدام تطبيق Android الخاص بنا ، وهذه تقنية أكثر حداثة وملاءمة تسمح لك باستخدام ميزات الجهاز نفسه: الاهتزاز ، والأصوات للأخطاء ، ويتم إنفاق البطارية بشكل أقل إذا كان التطبيق أصليًا ، وليس قائمًا على المتصفح. التطبيق نفسه مكتوب بلغة Kotlin ، ولدينا خبرة جيدة في استخدامه. حتى أننا بدأنا في كتابة خلفية عليها: حتى الآن هذه خدمة واحدة فقط ، لكننا نحب أن الشفرة أبسط وأكثر تعبيراً من Java ، والأداء هو نفسه. ليس لدينا هدف لإعادة كتابة كل شيء في Kotlin ، لكننا سنواصل استخدامه في المهام المناسبة.
تم إنشاء التفاعل مع أنظمة Lamoda الأخرى من خلال ناقل بيانات مكتوب بلغة Apache Camel باستخدام وسيط الرسائل ActiveMQ. يوفر هذا النهج تسليمًا مضمونًا وتحويلًا بسيطًا نسبيًا للرسائل لمختلف الأشكال ، والقدرة على توزيع الرسائل على العديد من المستهلكين. كنا أول من استخدم Apache Camel في عام 2014 ، ثم تم اعتماد طريقة التكامل هذه من قبل فرق أخرى في قسمنا.
مبادئ بناء أنظمة المستودعات:
· الموثوقية والجودة
· المرونة والمرونة
· البساطة
يقع المستودع في قلب عمليات لامودا اللوجيستية ، والأخطاء وتعطل النظام لها تأثير كبير على الأعمال. لذلك ، فإننا نولي اهتماما كبيرا لاستقرار النظام والتسامح مع الخطأ. تتحقق الموثوقية من خلال تكرار عناصر النظام والبنية التحتية الهامة. لدينا خادمان مستقلان مقسمان إلى أجهزة افتراضية. يتم نشر كل تطبيق على مثيلين ، كل مثيل على الجهاز الظاهري الخاص به. يتفاعل العميل مع الخادم من خلال موازن على شكل Haproxy ، والذي يوجه الطلبات إلى إحدى الطبعات. يتم أيضًا نسخ قاعدة البيانات احتياطيًا باستخدام نظام النسخ المتماثل Master-Slave.
جميع خوادمنا موجودة فعليًا في المستودع ، مما يزيد أيضًا من موثوقية وسرعة العمل بسبب تفاعل جميع عناصر النظام عبر الشبكة المحلية. حتى في حالة انقطاع الإنترنت الخارجي ، سنواصل العمل ، وفي حالة انقطاع التيار الكهربائي ، لدينا إمدادات طاقة غير منقطعة ومولدات بنزين في المستودع مباشرة.
لتقليل عدد الأخطاء في الكود ، نكتب اختبارات آلية: الوحدة والتكامل والقبول والحمل ، ويقوم فريق الاختبار بفحص كل شيء يدويًا. كل هذا هو ممارسة إلزامية وهو مدمج في دورة حياة المهمة ، وفي بعض الأحيان ، بالطبع ، تظهر الأخطاء ، لكن لم يكن لدينا استرجاع كامل للإصدارات لعدة سنوات.
قابلية التوسع والمرونة - بالنسبة لنا ، يتعلق الأمر في المقام الأول بمدى الجهد والوقت الذي سنمضيه لتغيير النظام لتلبية المتطلبات الجديدة للعمليات التجارية. لذلك ، يوفر التطوير القدرة على تغيير الكود بسرعة وسهولة في المستقبل. على سبيل المثال ، يمكن تكوين أي فئة من البضائع لموقع تخزين مادي معين ، وهذا يسمح لك بربط فئات جديدة من البضائع للبيع بسرعة. لكل طلب ، يتم تهيئته في المادة التي سيتم تعبئتها والمستندات المصاحبة لها التي ستتم طباعتها. وهذا ليس سوى جزء صغير من الوظائف.
لدينا مجال موضوع معقد مع عدد كبير من العمليات التجارية ونموذج مجال متفرع. كلما كانت الشفرة أبسط ، كان ذلك أفضل ، لأنها تزيد من قابليتها للقراءة وفهمها وتقليل احتمالية الأخطاء. ويسمح لك بالتركيز أكثر على الوظيفة التي تؤديها الكود للأعمال.
تأمين ضد الأخطاء
اسمي دينيس بليسكو وأنا قائد التطوير لخدمات التوصيل في BPA.
لقد قمنا بإنشاء وتطوير وصيانة نظام LM Express IT. إنه يعمل على أتمتة عمل مستودعات العبور وممثلي المبيعات ونقاط إصدار الطلبات. يعرف نظامنا كل شيء عن وصول الشحنات ومغادرتها ، ويتعامل مع معالجتها ، ويبيعها ويصدر أوامر مدفوعة بالفعل ، ويقبل المرتجعات والعديد من العمليات التجارية الأخرى ذات الصلة. أيضًا ، نسجل ونحلل الإجراءات المادية لمندوبي المبيعات وعمال المستودعات لدينا - نتتبع كل ما يحدث على "الميل الأخير" قبل تسليم البضائع إلى المشتري. تعكس معظم العمليات الفنية الموجودة في نموذج المعلومات في نظام Express الإجراءات المادية لموظف خدمة التوصيل.
كيف تبدو؟ على سبيل المثال ، يقبل الموظف التسليم ، ويخرج منه منصة نقالة - صندوق يحتوي على عبوات بها بضائع ، ويخرج الطرود ، ويصنفها في رفوف: كل إجراء يقوم به يكون مصحوبًا بعملية في نظامنا. وهذا هو المكان الذي يمكن أن تظهر فيه الأخطاء: لا يمكنك أبدًا التأكد من أنه حتى لو "نقر" موظف التوصيل على كل شيء بشكل صحيح ، فهو كذلك. ونتيجة لذلك ، فإن أحد أكبر أجزاء منطق العملية لدينا هو التحذير وتصحيح الأخطاء: في بعض الأحيان يمكن القيام بذلك تلقائيًا ، وأحيانًا من خلال الشخص نفسه ، وأحيانًا من خلال مكتب المساعدة أو المستخدمين الذين لديهم حقوق أكثر تقدمًا. لولا هذه الميزات ، ستكون أنظمتنا أصغر بخمس مرات.
مبادئ بناء أنظمة التوصيل:
· استقرار الأنظمة وتوافرها
· تناسق البيانات
· الاستقلال عن الأنظمة والخدمات الخارجية
وتتمثل المهمة في ضمان التشغيل الأكثر استقرارًا للأنظمة ، نظرًا لأنه يعتمد بشكل مباشر على ما إذا كان الأشخاص يتلقون مشترياتهم في الوقت المحدد أم لا. عند تنفيذ أي وظيفة ، نحاول أن نكون مستقلين عن الخدمات والأنظمة الخارجية ، ولهذا يتم تكرار العديد من التفاعلات. لنفترض أن التسليم قد وصل ، ولا توجد بيانات طلب له ، فسنطلب هذه المعلومات بأنفسنا حتى لا نتوقف عن العمل. من المهم أيضًا جعل العديد من العمليات عاطلة عن العمل من أجل الحفاظ على تناسق البيانات اللازمة ، خاصة في عمليات التبادل مع الخدمات الأخرى.
علاوة على ذلك ، نحن نسعى جاهدين للحصول على جميع البيانات اللازمة في أقرب وقت ممكن ، حتى لا يتضح أن شخصًا قد أتى لمنتج ولا يمكنه استلامه بسبب فشل النظام. نحن نسعى جاهدين لجعل الأجزاء الداخلية من النظام موثوقة للغاية بحيث يعتمد تفاعل المستخدم معها فقط على خدماتنا الخاصة. وبالتالي ، حتى إذا أصبحت جميع أنظمة Lamoda غير متاحة مؤقتًا ، فلن يتوقف عمل المستودعات ونقاط الالتقاط وستستمر العمليات الرئيسية.
في الشوارع سعاة ، سعاة
بالإضافة إلى التسليم الخاص بها ، تتعاون Lamoda مع خدمات البريد السريع التابعة لجهات خارجية ، على سبيل المثال ، Russian Post و Pony Express و DPD وغيرها. يحدث هذا عندما تكون في مدينة أو منطقة أو بلد (على سبيل المثال ، في أوكرانيا) ، يكون التسليم لدينا ممكنًا فقط من خلال الشركاء. نحن نقدم تبادل المعلومات من خلال التفاعل مع أنظمة تكنولوجيا المعلومات الخاصة بهم.
يعد توصيل كل ساعي جديد مغامرة مثيرة ، نظرًا لأن واجهات برمجة التطبيقات مختلفة جدًا بالنسبة للجميع ولا يتم تكييفها دائمًا للتكامل. هذا لأن بعض خدمات البريد السريع كانت تاريخيًا شركات غير متصلة بالإنترنت. لقد تم الشحن منذ أيام الأعمال الورقية ، وكتابة واجهة برمجة تطبيقات جيدة ليست مهمة سهلة.
نستخدم نظامًا خاصًا يعتمد على إطار عمل ESB Apache Camel لتنفيذ التكامل مع الشريك الجديد. يجعل استخدام Camel من السهل إجراء مجموعة متنوعة من تحويلات البيانات والتفاعلات عبر بروتوكولات التبادل المختلفة. عادةً ما يستغرق إعداد التكامل مع خدمة البريد السريع الجديدة من أسبوعين إلى شهر.
التسليم هو أحد الخدمات التي نبيعها لشركائنا جنبًا إلى جنب مع المستودع. عند طلب منتج من متجر عبر الإنترنت لعلامة تجارية شهيرة للملابس لا يبدو أن لها أي علاقة بـ Lamoda ، سيتم تسليم عملية الشراء بواسطة مندوب مبيعات في شكل LM express. نحن نعمل على هذه المشاريع مع فريق الوظيفة التجارية.
لتنفيذ مشاريع أعمالنا ، أقوم أنا والرواد الفنيون لدينا من فريقين (الثالث هو الآن توظيف المطورين والمختبرين) بتحديد أفضل السبل لملاءمة جميع التغييرات في بنيتنا الحالية.
نحن نعمل على أساس الأعمال المتراكمة من قائمة المشاريع. تقوم الأعمال بتقييم كل مشروع من حيث التأثير المالي والتسويقي. نحن نقدر تكاليف العمالة ونفكر في نهج تقني: هل من الممكن إنشاء ميزة جديدة بسرعة وكفاءة ، أو على العكس من ذلك ، ستكون باهظة الثمن وصعبة لدرجة أنها ستمنع تأثير الأعمال بالكامل. بناءً على هذه التقديرات ، نقوم بتعديل الأعمال المتراكمة وإنشاء مشاريع في أعلى القائمة. يتم تخصيص حوالي 30٪ من وقت التطوير لدينا للتراكم الفني ، لذلك ليست هناك حاجة لإيجاد وقت لإعادة بناء الأنظمة وتحسينها من وجهة نظر فنية ، فكل شيء يسير وفقًا للخطة.
عالم التسليم الداخلي
:
· PHP,
· Java,
· Kotlin,
· TypeScript,
· MySQL,
· PostgreSQL,
· RabbitMQ,
· ActiveMQ,
· Apache Kafka,
· Apache Camel,
· Docker, K8S.
معظم خدماتنا مبنية على PHP. تاريخيًا ، تمت كتابة الأنظمة التي تم إنشاء لامودا عليها بهذه اللغة. تم إنشاء أحد الإصدارات الأولى من الموقع في Magento ، ثم تم استخدام أنظمة Rocket Internet كأساس لتسليم الطلبات ومعالجتها. لقد مروا بالعديد من عمليات التطوير وإعادة العمل ، لكن PHP لا تزال تشكل أساس جميع الخدمات تقريبًا ، بما في ذلك الخدمات الجديدة. لقد كتبنا بالفعل حوالي 200 ألف سطر من التعليمات البرمجية ، والعديد من مطوري PHP ذوي الخبرة (اتجاه التسليم مع مهندسي ضمان الجودة يبلغ عددهم 20 شخصًا ويتوسعون بنشاط) - لكنهم لا يقتصرون على تقنية واحدة ، فهم مهندسون ممتازون يختارون الأداة المناسبة للمهمة.
لن نتخلى عن PHP في الواجهة الخلفية ، نظرًا لأن لدينا ثقافة تطوير مطورة جيدًا: نستخدم إصدارات جديدة من اللغة والأطر ، ونغطي جميع الكود تقريبًا مع الاختبارات ، ونجري مراجعة شاملة للكود ، ولدينا CI مبني جيدًا والعديد من المكتبات الشائعة التي تسرع عمليات التطوير.
على عكس المتجر عبر الإنترنت ، ليس لدينا أحمال كبيرة مرتبطة بـ RPS. بادئ ذي بدء ، نحتاج إلى بنية تطبيق معقدة ومرنة ، مع عدد كبير من مستويات التجريد (نحاول الالتزام بـ DDD) لمنطق الأعمال المعقد والمربك أحيانًا. لدينا أيضًا عدد كبير من التبادلات المتزامنة (JSON-RPC ، SOAP) والتبادلات غير المتزامنة (RabbitMQ ، Apache Kafka) مع أنظمة أخرى.
في المجموع ، حوالي 80-85٪ من الأنظمة مكتوبة بلغة PHP ، على الرغم من أننا نستخدم Java أحيانًا. يحتوي على خدمة للتفاعل مع خدمات التوصيل الخارجية ، والتي نقوم بتغييرها باستمرار.
يتم تمثيل الواجهة الأمامية بحزمة VueJS + TypeScript. لا تتطلب لوحات الإدارة الخاصة بنا للمستخدمين الداخليين تخطيطًا فائقًا أو تصميمًا معقدًا.
لدينا أيضًا تطبيق أصلي للهاتف المحمول لمندوبي المبيعات ، وهو مكتوب بلغة Kotlin لنظام Android. تم تطويره من قبل من قبل مطوري الهواتف المحمولة ، لكننا الآن نقوم بتطويره بأنفسنا بنجاح.
بالنسبة للموظفين الذين يعملون في مستودعات الترانزيت ، حيث يتم إرسال الطلبات إلى جميع المستودعات ونقاط الاستلام في روسيا ، لدينا تطبيق ويب. مع هذا النهج ، هناك خطر عدم توفر تطبيقنا بسبب انقطاع الاتصال بالإنترنت في نقطة التقاط معينة أو في مستودع ، لكننا نقوم بتقليله باستخدام قنوات الاتصال المحجوزة.
بالإضافة إلى أنظمة التسليم هذه (السريع وتطبيق الهاتف ، حافلة للتكامل مع خدمات البريد السريع الخارجية) ، لدينا خدمتان أخريان يدعمهما فريقنا حاليًا: خدمة لطباعة الإيصالات الإلكترونية و Datamatrix... ويهدف هذا الأخير إلى ضمان تمييز البضائع برموز فريدة وفقًا للمتطلبات الجديدة للقوانين. لا يرتبط هذان المشروعان مباشرة بالتسليم ، ولكن من خلال خدماتنا يتم تبادل البيانات اللازمة لهما.
تقوم خدمة التوصيل بطباعة الإيصالات: لدى كل مندوب مبيعات مكتب نقدي ، بالإضافة إلى وجود مكاتب نقدية في كل نقطة من نقاط الاستلام الخاصة بنا. لذلك ، تتفاعل خدمة المالية العامة باستمرار مع نظامنا. تؤثر Datamatrix على جميع أنظمة BPA تقريبًا (المستودعات والشحن والشراكات وأنظمة المحاسبة). كما أن قسمنا يتفاعل معه بنشاط كبير ، لذلك قمنا بدور نشط في تطويره. نقوم حاليًا بتطوير نظام جديد لسياسات الحوافز لمندوبي المبيعات.
الوظيفة التجارية لـ BPA: ما نبيعه
الشركة لديها هدف طموح - أن تكون أفضل منصة أزياء في رابطة الدول المستقلة. للقيام بذلك ، استثمر Lamoda كثيرًا في جودة الخدمة ورفع العمليات التشغيلية من نقطة الصفر: التسليم ، والمستودعات ، واستوديو الصور ، وعمل مشغلي مراكز الاتصال. تم اختبار واختبار جميع عمليات التشغيل على عملائنا. لقد جربنا ، وراقبنا ملاحظات العملاء ، وارتكبنا أخطاء ، وأصلحنا الأخطاء ، وحسنا باستمرار كل ما يمكن تحسينه في تجربة التسوق عبر الإنترنت في العام الخامس من عمر الشركة ، اتخذنا قرارًا بأننا على استعداد لمشاركة مواردنا وخبراتنا مع لاعبين آخرين في السوق.
لذلك لدينا أول اتجاه B2B ، والذي يوفر للشركاء الكبار خدمات استوديو التصوير وتخزين وتسليم البضائع ومكالمات العملاء. وسرعان ما ظهر سوق داخل الشركة للشركات المتوسطة والصغيرة يقدم عرض لامودا كخدمة إضافية للقائمة السابقة. عمل كلا الاتجاهين وتطورا عمليا بالتوازي ، واللحاق بالركب وتجاوز بعضهما البعض في نطاق الخدمات.
بعد 3 سنوات أخرى وبعد تقييم النتائج ، تقرر دمج B2B و Marketplace في وظيفة تجارية ، والتي تشارك في إنشاء وتطوير ودعم الخدمات للشركاء الخارجيين ، بناءً على خدمات Lamoda الداخلية الحالية.
الآن نتعاون مع حوالي 20 علامة تجارية كبيرة - هذه كلها شركات عالمية لها سمعة عالمية ولديها عمليات تجارية معقدة خاصة بها. هناك 1000 عميل آخر من عملائنا من الشركات المتوسطة والصغيرة ، والتي غالبًا لا تمتلك بنية تحتية متطورة لتكنولوجيا المعلومات بالنسبة لجميع الشركاء ، نحافظ من جانبنا على طبقة تكامل منفصلة ، وهي مصممة للتطوير السريع والمرن للوظائف التي تحول العمليات الخارجية إلى عملياتنا.
أنا Alexey Felde ، مهندس حلول ، وأنا مسؤول عن التطوير التقني وتطوير المنتجات للوظيفة التجارية في Lamoda.
أنا منخرط في تطوير ودعم الخدمات في طبقة التكامل ، ولهذا يجب أن أفهم تمامًا العمليات التجارية للشركة وشركائنا من أجل تصميم أي تغييرات في أنظمة Lamoda.
كما ذكرت أعلاه ، نقوم بتطوير مجالين رئيسيين للتفاعل مع العلامات التجارية: سوق للعلامات التجارية الصغيرة ، نقدم له حل SAAS في شكل تطبيق WEB منفصل ، و B2B - مشاريع كبيرة منفصلة للعلامات التجارية العالمية الكبيرة ، والتي إما نوفر لها قدراتنا التشغيلية بالكامل ، أو نحن نساعد على التكامل مع بلدنا.
يعد اتجاه B2B أحد أكثر الاتجاهات إثارة للاهتمام في الشركة ، ولكنه في نفس الوقت يعد من أكثر الاتجاهات صعوبة. يحدث أن يأتي إلينا عمالقة الموضة العالمية بمتطلبات أو قيود تكامل جديدة تمامًا. في مثل هذه الحالات ، يتفاعل فريقي مع فرق Lamoda الأخرى ونقوم بتصميم التغييرات على أي خدمة مطلوبة للشركة. لربط أحد رواد صناعة الأزياء العالمية ، احتجنا إلى الانغماس في جميع عمليات الأعمال ، بما في ذلك المحاسبة والتشغيل. في إطار المشروع ، تطرقنا إلى 15 من عملياتنا الداخلية: من وصف البضائع في الموقع إلى المحاسبة والتسليم. يتمتع فريقي بأكبر قدر من الخبرة في تشغيل أنظمة تكنولوجيا المعلومات والعمليات التجارية في Lamoda. وهذا يتطلب تنظيمًا دقيقًا وتوثيقًا لمعرفتنا.
بالنسبة إلى صغار الشركات المصنعة للملابس والأحذية والإكسسوارات ، والتي غالبًا ما لا يكون لديها حتى قسم تكنولوجيا المعلومات الخاص بها ، فإننا نقدم حل السوق المعبأ الذي يتيح لك تتبع المبيعات وحركة البضائع والمرتجعات. يعمل بشكل كامل في مرافق أنظمتنا: يتم التقاط صور البضائع بواسطة الاستوديو الخاص بنا ويتم تخزينها معنا ، والبضائع ليست في مكان العميل فعليًا ، ولكن في مستودعاتنا ، ويتم تسليمها بواسطة خدمة التوصيل Lamoda.
أحد منتجاتنا المعبأة مع كود المصدر هو استوديو الصور. تم شراؤها من قبل بائع تجزئة كبير لبيع السلع الفاخرة قبل بضع سنوات. كانت لديهم صور مختلفة جدًا على موقع الويب الخاص بهم ، وقد أثر ذلك بشكل كبير على تحويل المبيعات. أجرى الاستوديو الخاص بنا عددًا كبيرًا من الاختبارات بالصور: أي منها يباع بشكل أفضل (صور رجال بدون رأس أو رأس ، زوايا أرجل صحيحة ، إلخ). لقد أحب العميل حقًا نتائج هذه الاختبارات ، وأراد تطبيق تجربتنا في متجره عبر الإنترنت. للقيام بذلك ، كان بحاجة إلى بناء استوديو مشابه لاستوديونا ، حيث سيعمل الناس ، وتنظيم عملية التصوير ، وتثبيت نظام تكنولوجيا المعلومات لدينا.
لامودا في صورة مصغرة
على عكس فرق الخدمة ، لدينا مهمة مختلفة - تطوير طبقة تكامل تخفي وراءها مؤسسة لشركة كبيرة. المنتج الرئيسي هو منصة B2B ، والتي ، على مستوى الكود ، مقسمة داخليًا إلى وحدات: وحدة للعمل مع مستودع ، وحدة للعمل مع التسليم ، وما إلى ذلك. إنه نظام كبير يمكنه على مستوى هذه الوحدات الصغيرة إدارة خدمات معينة. اتضح أن منصتنا هي مصغرة لامودا. في الوقت نفسه ، يرى الشركاء واجهة برمجة تطبيقات واحدة فقط - عالمية وبسيطة للغاية ، يخفي وراءها كل تعقيد Lamoda. في الوقت نفسه ، يجب أن نتحلى بالبساطة قدر الإمكان من أجل التكامل - مبدأنا الأول في التنمية ، ثم يأتي الاستقرار والموثوقية. نحن ندعم اتفاقيات مستوى الخدمة المختلفة ، على سبيل المثال ، أحدها هو 4 ساعات كحد أقصى لوقت تعطل النظام في السنة. مثل الزملاء ،نحن نولي الكثير من الاهتمام لمهام تحمل الخطأ ، وعمليات التحرير ، وجودة الكود ، والتغطية بالاختبارات الوظيفية. تعد منصة B2B الخاصة بنا أول نظام في القائمة تقريبًا من حيث عدد الاختبارات ، ولدينا أكثر من 2000 اختبار وظيفي و 3000 اختبار وحدة.
B2B :
·
·
·
·
:
· PHP,
· Java,
· JavaScript,
· GO,
· Symfony,
· Camel,
· PostgreSQL,
· AngularJS,
· Apache Kafka,
· RabbitMQ.
قبل ربط العلامة التجارية ، نتفق مع الشريك على جميع تفاصيل العلاقة: النطاق والكمية المتوقعة للسلع ، جغرافية التسليم ، مجموعة الخدمات المتصلة. بعد ذلك ، يتم تشغيل مكون تكنولوجيا المعلومات: تتم مناقشة تفاصيل التكامل مع العلامة التجارية ونساعد في الاتصال بواجهة برمجة التطبيقات الخاصة بنا. إذا كان هناك شيء يختلف عن مخطط التكامل القياسي ، فإننا نرفع أيضًا الخدمات التي تعد برامج وسيطة بين الأنظمة الشريكة ومنصة B2B الخاصة بنا.
90٪ من الوقت نقوم بترقية منصتنا وتنفيذ عمليات تجارية جديدة. آخر عمليات الأعمال التي تم تنفيذها هي العمل باستخدام أكواد Datamatrix ، والتي تمت مناقشتها بالفعل في مقال آخر ، وزملاء العمل المذكورين أعلاه.
الشيء الرئيسي في عملنا هو الحفاظ على توازن التقنيات واختيار الأدوات للمهام التي يتم حلها. نحن بصراحة لا نطارد الموضة في الصناعة. مكدسنا هو PHP و Java و Javascript وبعض Go.
كما هو مذكور في المقال ، فقد كتبت الشركة تاريخيًا العديد من الأنظمة بلغة PHP. من الملائم والسريع برمجة العمليات التجارية عليه. تمت كتابة أساس منصة B2B الخاصة بنا - التفويض وإدارة الأدوار وجميع العمليات التجارية الرئيسية. يعتمد على الهندسة المعمارية السداسية والاستخدام النشط لتصميم DDD و API الأول. نحن ندعم تطبيق الصفحة الواحدة المكتوب في Angular 1.5. إنها تتواصل مع منصة B2B الخاصة بنا عبر واجهة برمجة التطبيقات وهي مسؤولة بشكل أساسي عن تقديم واجهة المستخدم لموظفينا وموظفينا الشركاء.
نستخدم أيضًا Java ، ولا سيما إطار عمل التكامل Camel. العلامات التجارية ليست مستعدة دائمًا لاستخدام واجهة برمجة التطبيقات الخاصة بنا ، وبالنسبة للاعبين الكبار جدًا نكتب برمجيات وسيطة تحول مجال العلامة التجارية إلى مجال لامودا. يوفر Camel الوقت في تطوير حلول تكامل الأنظمة ، ويغير عقلية الناس نحو ممارسات هندسية جيدة باستخدام أنماط تكامل المؤسسة (EIP). نخطط لتطوير الجمل في الأماكن التي يكون فيها استخدام أنماط التكامل أكثر ملاءمة من كتابة خدمة منفصلة.
نحن نستخدم كافكا بنشاط لتبادل البيانات بين الأنظمة الداخلية. هذا يقلل بشكل كبير من الاتصال بين الأنظمة ، لأنه في تفاصيل عملنا نحتاج إلى تخزين لقطات من البيانات من جميع الأنظمة التي تم شحذها للشركاء. لكل ما يجب القيام به بسرعة ولمهام المكتب ، نكتب Go. تحسب إحدى خدماتنا المقاييس كل دقيقة بناءً على البيانات المخزنة. في السابق ، كان هذا الحل مدمجًا في منصة B2B وكُتب بلغة PHP ، لكننا أعدنا كتابته لذكاء Go ، نظرًا لأنه يتمتع بأداء أعلى ودعم أسهل ويتوسع بشكل أفضل ويمكن نشره خارج دورة إصدار منصة B2B.
يسعدني بصدق عندما أرى نتيجة عمل منصتنا على أكثر من 30 موقعًا لجهات خارجية لعلامات تجارية كبيرة ومشهورة في مجال الأزياء. أرى كيف تتم معالجة الطلب ، الذي يتم وضعه في أنظمتنا من موقع شخص آخر ، بواسطة مشغل مركز الاتصال الخاص بنا ، ثم يتم نقله عن طريق التسليم لدينا. لا أحد يعلم أن كل هذه العمليات يتم إنشاؤها وأتمتتها في Lamoda ، لكننا نقوم بذلك بشكل رائع لدرجة أن عملياتنا تشتريها العلامات التجارية العالمية.