رحلة Dunelm إلى الواجهة الأمامية الصغيرة
تغطي هندسة البرمجيات جميع مجالات أعمال Dunelm. على مدى السنوات القليلة الماضية، قام بائع التجزئة بتحديث البنية التحتية لتكنولوجيا المعلومات الخاصة به بدءًا من تشغيل التجارة الإلكترونية الجاهزة عبر IBM WebSphere على Rackspace وحتى بناء كل شيء داخليًا.
يقول بول كريسون، مدير الهندسة والهندسة المعمارية في شركة Dunelm: “مثل العديد من الشركات، يبدأ التحول الرقمي بالموقع الإلكتروني ويتعمق أكثر فأكثر بعد ذلك”. “وهذه هي المرحلة التي نحن فيها الآن – لدينا عروضنا الرقمية على هذه المنصة الرائدة.”
وفي مناقشة الانتقال إلى بنية أكثر حداثة، يقول كيريسون: “عندما ابتعدنا عن شراء حزم التجارة الإلكترونية الكبيرة الجاهزة، قررنا بناء قدرتنا الهندسية وموقعنا الإلكتروني الخاص، وأردنا القيام بذلك في المستقبل”. أفكر في طريقة ممكنة.”
يقول جان كلايسنس، نائب المهندس الرئيسي في شركة Dunelm، إن هذا النهج التقدمي يعني أن الشركة قررت عدم نشر أعباء العمل على Kubernetes. وبدلاً من ذلك، قامت بنشر أنظمة بدون خادم و بناء قدرة DevSecOps.
في ذلك الوقت، بينما كانت تقوم ببناء منصة التجارة الإلكترونية، يقول كيريسون إن شركة Dunelm قررت وضع واجهة أمامية مخصصة لنظام إدارة المحتوى الخاص بها وتوفير مجموعة من الخدمات الصغيرة. وفقًا لكيريسون، في ذلك الوقت، كانت نتيجة هذا الجهد أن تمتلك شركة Dunelm أكبر تطبيق Lambda بدون خادم في أوروبا.
بمساعدة لوكا ميزاليرا، المتخصص الرئيسي بدون خادم في AWS، يقول كيريسون إن الفريق في شركة Dunelm قام بتقسيم موقع الويب إلى نهايات أمامية صغيرةلأنها أصبحت كبيرة جدًا ومنتفخة. ويقول إن هذا مفهوم جديد تمامًا: «لا توجد طريقة واحدة للقيام بذلك. لقد تلقينا الكثير من المساعدة من AWS ومن رجل هناك يُدعى Luca والذي حرفيًا كتب الكتاب على الواجهات الأمامية الصغيرة“.
ويقول إن المرحلة التالية من تواجد الشركة على شبكة الإنترنت هي يجري بناؤها من قطع أصغر التي يمكن نشرها وتوسيع نطاقها بشكل مستقل، والتي يملكها فريق معين. بالنسبة لكيريسون، ستساعد هذه البنية في المرحلة التالية من النمو في دنيلم.
وبالنظر إلى كيفية تطوير الشركة لبنيتها الشاملة لتكنولوجيا المعلومات، يقول: “نحن في المرحلة في اللحظة التي نتعمق فيها بشكل أعمق وأوسع. نريد الابتعاد أكثر عن أنظمتنا الداخلية والتوجه بنسبة 100% إلى السحابة.”
لكن كريسون يعترف بأن الشركة ستحتاج إلى تقييم ما يصفه بـ “القدرات السلعية”، التي لا تحتاج إلى أن يتم بناؤها داخل الشركة. وبدلاً من ذلك، يقول: “سوف نشتري برامج SaaS جاهزة للاستخدام [software-as-a-service] التطبيقات وتركيز قدراتنا في البناء على ما يحدث فرقًا حقيقيًا للعملاء أو الزملاء.
يقول Claeyssens إن شركة Dunelm استخدمت في البداية خادم التشغيل الآلي Jenkins مفتوح المصدر لتشغيل خط تطوير البرامج الخاص بها. يقول إنه عندما يتعلق الأمر باختيار منصة جديدة اختار Dunelm GitLab. على الرغم من أنه ليس أسرع منتج متاح، إلا أنه يقول إنه قدم لشركة Dunelm مجموعة الميزات والوظائف الأكثر شمولاً، بما في ذلك الأمان.
على أعلى مستوى، يقول Claeyssens إن GitLab يعمل كمستودع لشفرة المصدر، مضيفًا: “إنه يبقي كل كود المصدر الخاص بنا آمنًا وتحت السيطرة”. على سبيل المثال، يقول كلايسنس إن الفريق قدم “طريقة رائعة لارتكاب التعليمات البرمجية”، والتي تدعم مراجعة التعليمات البرمجية من قبل النظراء، مما يتيح دمج التعليمات البرمجية بطريقة معقولة، والتي تخضع بعد ذلك أيضًا لمراجعة النظراء. ويضيف: “لدينا هذه الخطوة الإضافية للتأكد من أننا لا نقدم أي شيء به أخطاء”.
في السابق، يقول Claeyssens إن جميع تحديثات موقع الويب كانت ملتزمة بمستودع واحد، الأمر الذي أصبح مرهقًا. تعمل فكرة الواجهات الأمامية الصغيرة على تبسيط ذلك. ويقول: “من خلال تقسيم هذا النوع من شبكة الويب الكبيرة إلى مناطق منفصلة، يمكن تجميع كل قطعة معًا من خلال الواجهة الأمامية وتجميعها في صفحة منطقية من وجهة نظر الخبرة”.
خلف الكواليس، تستطيع الفرق الفردية العمل على أجزاء فردية في مستودعات GitLab الخاصة بهم. ويضيف كلايسنس: “لدى كل منهم مسارات خاصة به، مما يقلل من خطر تغيير شيء ما هنا والتأثير على شيء آخر هناك”. طريقة العمل هذه، المنظمة حول أجزاء أصغر من التعليمات البرمجية، تعني أيضًا أن Dunelm قادر على نشر وظائف جديدة بشكل متكرر وآمن.
يقول كريسون: “أريد أن أرى عمليات نشر أكثر أمانًا وفترات زمنية أقصر”. ويضيف وهو يناقش كيف يمكن أن يساعد ذلك الشركة: “مع ريح جيدة، يمكن أن يكون لديك فكرة في يوم من الأيام، وتدفعها عبر خط أنابيب كمهمة عاجلة حتى تتمكن من المضي قدمًا في الطريق إلى الإنتاج بسرعة كبيرة جدًا. ”
ولكن ليس كل شيء يحتاج إلى خط أنابيب للإنتاج. ونظرًا لتكلفة هندسة البرمجيات، يقول كيريسون إن شركة دونيلم حققت نجاحًا في إجراء تجارب صغيرة ومنخفضة الدقة لإثبات قيمة فكرة جديدة، قبل الالتزام بالجهد الهندسي المطلوب لوضع الفكرة في مرحلة الإنتاج. بالنسبة إلى Kerrison، فإن القدرة على النشر بسرعة باستخدام أجزاء صغيرة من التعليمات البرمجية تعني أن فرق هندسة البرمجيات في Dunelm يمكنها إجراء التجارب بشكل أكثر أمانًا.