Kir Shatrov: بدأ Shopify مع Rails وهنا يحبون بإخلاص هذا الإطار.

في مؤتمر RubyRussia ، سيتحدث Kir Shatrov عن هندسة Shopify. كيف يدعم أحد أكبر وأثقل تطبيقات Rails نمو الأعمال لمدة 10 سنوات دون التحول إلى خدمات micros و Elixir وغيرها من البدائل الشائعة؟ في مقابلة تقليدية قبل المؤتمر ، تم طرح الأسئلة على كيرا من قبل أناتولي زايتسيف ، مطور إيفرون.

صورة

قل لي كيف بدأت حياتك المهنية؟

مثل كثيرين ، كنت أبرمج في المدرسة. لقد صنعت مواقع ووردبريس مقابل 200 دولار من النوع المألوف. لقد تعلمت عن Ruby on Rails وأدركت أن تلك المهام التي تستغرق ساعات وأيامًا في PHP يمكن حلها بشكل أسرع. بدا لي أن الأمر يستحق القفز في هذا القطار: لقد اشتريت كتابًا على Rails وبدأت أتعلم خطوة بخطوة. لم تنجح العديد من الخطوات ، وتركت الدروس. عاد بعد عام ، وحاول أن يذهب من خلال الدروس عبر الإنترنت ، وبعد ذلك عملت كل شيء. عندها فقط فهمت المشكلة: أثناء كتابة الكتاب وترجمته وطباعته ونقله إلى المتاجر ، مر عام أو حتى سنة ونصف. لقد تغيرت السكك الحديدية كثيرا خلال هذا الوقت. بطبيعة الحال ، لم تعد التعليمات تعمل. وعندما تمكنت من قراءة المواد على الإنترنت وباللغة الإنجليزية ، دخلت Rails بسهولة وقمت بأول مشاريع الهوايات.

ثم قابلت أوليغ بالبيكوف ، مؤسس مؤتمر RailsClub ، الذي يسمى الآن RubyRussia. لذا ، وصلت إلى إيفرون ، حيث عملت لمدة أربع سنوات تقريبًا وبفضل زملائي الأنيقة والأذكياء ، تمكنت من النمو جيدًا. ساعد Evrone كثيرا للبدء: كانت هناك فرصة لفتح المصدر المفتوح ، للنمو. ثم عملت في Evil Martians ، وقمت بمشاريع على نطاق مختلف - EBay ، Groupon ، Gett. لدى المريخون ثقافة وتجارب مفتوحة المصدر غير عادية ، وهي بعيدة كل البعد عن التواجد في جميع الفرق. في ما بين المشاريع أو مباشرة على المشاريع ، تتوفر للناس الفرصة للمشاركة في المصادر المفتوحة. هذه هي الطريقة التي يتم بها تطوير Autoprefixer و AnyCable وليس فقط. نتيجة لذلك ، هناك شيء يمكن أن نخبره في المؤتمرات. لقد تحدثت في RailsClub في روسيا ، و RailsConf في الولايات المتحدة وفي عدد كبير من الأحداث الكبيرة وغير الكبيرة. ولأنني كنت أؤدي الكثير ، فقد لاحظت ودعيت للعمل في شوبيفي.

أخبرني كيف انتقلت إلى كندا وكيف ساعد شوبيفي في هذه العملية.

لم ينجح هذا على الفور ، كانت هناك صعوبات في الانتقال: في تلك اللحظة في كندا ، نظمت الحكومة إضرابًا ولم يكن هناك من يتقدم بطلب للحصول على تأشيرات أو يعيد توجيهها ، لكن كل شيء كان مسموحًا به. لقد كان 2013-2014 ، تفتقر Shopify حقا للمطورين ، وبدأوا في نقل المهندسين من جميع أنحاء العالم لأنفسهم. هذه العملية مستمرة بنشاط الآن. اليوم ، أصبح المقياس إلى حد كبير ، إلى جانب الحكومة الكندية ، قام برنامج Shopify بتطوير برنامج يتيح لك الحصول على تأشيرة عمل في ثلاثة أسابيع. وفقًا لهذا المخطط ، يتحرك حوالي مائة شخص سنويًا. في الوقت نفسه ، لا يمكن فقط للمتكلمين المعروفين والمفتوحين المصدر العمل. نحتاج للمطورين الذين يتناسبون مع الفريق ويكتبوا رمزًا جيدًا.

اتضح أن الدخول إلى شوبيفي ممكن بدون سجل حافل ، إذا كنت تؤدي وظيفتك بشكل جيد ومهنيا؟

نعم هو كذلك. من المهم أيضًا أن تكون قادرًا على التحدث عن عملك. سيقول شخص ما: "لقد قمت بإصلاح الخلل وتحديث إصدار Ruby ، ​​وأضفت ميزة جديدة". ويمكنك أن تقول الشيء نفسه ، ولكن من وجهة نظر تطوير الأعمال ، حل مشاكلها. حتى أثناء المقابلات مع هذه الشركات ، من المهم أن تكون الابتكارات التي قدمتها في العمل ، وكيف شاركت في المجتمع: ليس فقط كتب الكود ، ولكن على سبيل المثال ، كنت متطوعًا ، ساعد في تنظيم مؤتمر Ruby.

ماذا تفعل بالضبط في Shopify الآن؟

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

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

Shopify هو منصة كبيرة. كم عدد العملاء لديك؟

الرقم الرسمي هو 800000 متجر نشط. هذا ليس مجرد تسجيل (هناك الكثير) ، هذه أعمال حية.

ماذا Shopify كمنصة تعطي العملاء؟

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

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

لبعض الوقت عملت على نقل المشروع إلى النظام الأساسي الخاص بك. هذا المتجر لديه المخزون الخاص به ، السلع ، قاعدة العملاء. كان كل شيء يعمل بشكل ملائم: يوجد تصدير / استيراد ، وحتى مدفوعات الطرف الثالث مرتبطة بنقرتين. لديك بنية تحتية ضخمة. هل أفهم بشكل صحيح أن معظم المكتبات (shopify api ، shopify app ، shopify co) مكتوبة في Ruby و Rails؟

نعم هو كذلك.

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

بدأت الشركة مع رجل يدعى توبي ، كان مولعا بالألواح الثلجية. منذ اثني عشر عامًا ، قرر أن يكتب متجرًا خاصًا لبيع هذه الألواح الثلجية. لم يكن مهتمًا بذلك في PHP و Java و XML. ثم أظهر له صديق ديفيد إطاره الجديد ، والذي سمح لك بإنشاء تطبيقات الويب بسرعة. كان يسمى الإطار روبي أون ريلز ، وقام توبي ببناء متجر خاص به على الجليد. كان يحب توبي اللغة والأفكار في الإطار ، وكان توبي من أوائل المساهمين في القضبان. في ذلك الوقت ، لم يكن لدى Rails مستودع بوابة مركزي! تبادل الناس فقط الإصدارات الجديدة. لذا ، بدأ توبياس لوتك وديفيد هاينماير هانسون العمل في "ريلز". وسرعان ما أدرك توبي أنه كان أكثر برودة بكثير لإطلاق ليس متجرك على الجليد ، ولكن منصة كاملة لمتاجر أخرى.

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

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

كيف يمكنك حل مشاكل التحجيم والأحمال العالية؟

لدينا مكدس نموذجي للغاية: Rails ، MySQL ، Memcache ، Redis. بالتأكيد لقد عملت مع هذا في العديد من المشاريع. في مكان ما في عام 2014 ، عندما كان عمر الشركة 10 سنوات ، أدركنا أن كل ما نحتاجه لا يتلاءم مع قاعدة بيانات واحدة. يمكنك شراء أجهزة أكثر قوة لخادم MySQL والنمو رأسياً ، ولكن هناك حد لكل شيء.

ثم قررنا أن التقسيم سيساعد على النمو أفقياً. مثل SaaS ، حيث لا تتداخل بيانات أحد المتاجر مع بيانات أخرى ، يمكننا تنظيم المشاركة بكل بساطة. لست مضطرًا أبدًا للقيام بربط بين متجرين مختلفين. من خلال نموذج المشاركة ، تعيش آلاف المتاجر ذات الأحجام المختلفة والأحمال المختلفة على نفس القشرة. لا يتضمن Shard جوهر قاعدة البيانات فحسب ، بل يشمل أيضًا Redis ، و Memcache ، وما إلى ذلك. نظرًا للعزلة الكاملة بين القطع ، نقوم بتقسيم برنامج شوبيفي بالكامل إلى مئات شوبيفي الصغيرة. يمكن استضافة الجميع في منطقة منفصلة ، ومركز بيانات ، ومزود ، في ولاية قضائية منفصلة. إذا كان لديك 100 سهم ، ووقع شيء على أحدها ، فسيؤثر ذلك على 1٪ فقط من العملاء. هذا قليل جدًا عند مقارنته بالوضع عندما يسقط كل مورد على الجميع.

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

هل تقوم بترحيل متجر من قشرة إلى أخرى؟

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

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

يوكيهيرو ماتسوموتو يصل إلى المؤتمر. ماذا تريد أن تسأله؟

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

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

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

سنناقش في المؤتمر!

أذكر أنه سيعقد في 28 سبتمبر في موسكو ، كل التفاصيل والتسجيل على الموقع .

نحن مدعومون بـ:

المنظم - إيفرون
الشريك العام - توبتال
الشريك الذهبي - Gett
شركاء الفضة - Valarm ، JetBrains ، Bookmate و Cashwagon
الشريك البرونزي - InSales

Source: https://habr.com/ru/post/ar467479/


All Articles