شعار زيفيرنت

يتسع نطاق Nextthink ليشمل تريليونات من الأحداث يوميًا باستخدام Amazon MSK | خدمات الويب الأمازون

التاريخ:

يمثل تدفق البيانات ومعالجة الأحداث في الوقت الفعلي تحديات تتعلق بقابلية التوسع والإدارة. تقدم AWS مجموعة واسعة من البرامج المُدارة خدمات تدفق البيانات في الوقت الحقيقي لتشغيل أعباء العمل هذه بسهولة على أي نطاق.

في هذا المنشور، تشارك Nextthink كيف Amazon Managed Streaming لأباتشي كافكا (Amazon MSK) مكنتهم من تحقيق نطاق واسع في معالجة الأحداث. نظرًا للنمو الكبير الذي شهدته الأعمال، انتقلت Nextink إلى AWS للتغلب على قيود التوسع الخاصة بالحلول المحلية. مع Amazon MSK، يقوم Nextthink الآن بمعالجة تريليونات من الأحداث يوميًا بسلاسة، حيث يصل إلى أكثر من 5 جيجابايت في الثانية من الإنتاجية المجمعة.

في الأقسام التالية، تقدم Nextthink منتجها والحاجة إلى قابلية التوسع. ثم يسلطون الضوء على تحديات تطبيقهم المحلي القديم ويعرضون انتقالهم إلى بنية خدمة (SaaS) تركز على السحابة مدعومة من Amazon MSK. وأخيرًا، يعرض Nextthink تفاصيل الفوائد التي تم تحقيقها من خلال اعتماد Amazon MSK.

حاجة Nextthink إلى التوسع

Nextthink هي الشركة الرائدة في مجال تجربة الموظفين الرقمية (DeX). تعمل الشركة على تشكيل مستقبل العمل من خلال تزويد قادة تكنولوجيا المعلومات والمستويات C برؤى حول تجارب التكنولوجيا اليومية للموظفين على مستوى الجهاز والتطبيق. وهذا يسمح لتكنولوجيا المعلومات بالتطور من حل المشكلات التفاعلي إلى التحسين الاستباقي.

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

في غضون 3 سنوات فقط، نمت أعمال Nexthink بمقدار عشرة أضعاف، ومع تقديم المزيد من البيانات في الوقت الفعلي، كان على تطبيقنا أن يتوسع من معالجة 200 ميجابايت في الثانية إلى 5 جيجابايت في الثانية وتريليونات الأحداث يوميًا. لتمكين هذا النمو، قمنا بتحديث تطبيقنا من وحدة متراصة ذات مستأجر واحد محليًا إلى حل SaaS قائم على السحابة وقابل للتطوير ومدعوم من Amazon MSK.

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

الحل الداخلي وتحدياته

فلنستكشف أولاً حلنا المحلي السابق، Nexthink V6، قبل دراسة كيفية تعامل Amazon MSK مع تحدياته. ويوضح الرسم البياني التالي هندسته المعمارية.

التفكير التالي v6

يتكون الإصدار السادس من تطبيقين متجانسين، Java وC++، مقترنين بإحكام. كانت البوابة عبارة عن تطبيق Java للواجهة الخلفية للواجهة الأمامية، وكان المحرك الأساسي عبارة عن تطبيق قاعدة بيانات داخلية في الذاكرة C++ كان يتعامل أيضًا مع اتصالات الأجهزة، واستيعاب البيانات، والتجميع، والاستعلام. ومن خلال تجميع كل هذه الوظائف معًا، أصبح من الصعب إدارة المحرك وتحسينه.

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

علاوة على ذلك، أدى عدم وجود منصة تدفق مثل Kafka إلى إنشاء تبعيات بين الفرق من خلال اقتران HTTP/gRPC المحكم. بالإضافة إلى ذلك، لم تتمكن الفرق من الوصول إلى الأحداث في الوقت الفعلي قبل استيعابها في قاعدة البيانات، مما يحد من تطوير الميزات. كما أننا نفتقر إلى مخزن مؤقت للبيانات، مما يعرضنا لخطر فقدان البيانات المحتمل أثناء انقطاع الخدمة. ومثل هذه القيود تعيق الابتكار وتزيد المخاطر.

باختصار، على الرغم من أن نظام V6 خدم غرضه الأولي، إلا أن إعادة اختراعه باستخدام التقنيات التي تركز على السحابة أصبحت أمرًا ضروريًا لتعزيز قابلية التوسع والموثوقية وتعزيز الابتكار من قبل فرق الهندسة والمنتجات لدينا.

الانتقال إلى بنية تتمحور حول السحابة مع Amazon MSK

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

لقد تم انتقالنا من الحل المحلي v6 إلى النظام الأساسي الذي يركز على السحابة على أربع تكرارات:

  • المرحلة 1 - لقد انتقلنا من الأجهزة المحلية إلى الأجهزة الافتراضية في السحابة وانتقلنا منها، مما أدى إلى تقليل التعقيدات التشغيلية وتسريع إثبات دورات المفهوم مع ترحيل العملاء بشفافية.
  • المرحلة 2 – قمنا بتوسيع البنية السحابية من خلال تنفيذ ميزات المنتج الجديدة مع الخدمات الصغيرة وKafka المُدار ذاتيًا على Kubernetes. ومع ذلك، فقد ثبت أن تشغيل مجموعات كافكا بأنفسنا أمر بالغ الصعوبة، مما أدى بنا إلى المرحلة الثالثة.
  • المرحلة 3 – لقد تحولنا من Kafka المُدار ذاتيًا إلى Amazon MSK، مما أدى إلى تحسين الاستقرار وتقليل تكاليف التشغيل. لقد أدركنا أن إدارة كافكا لم تكن كفاءتنا الأساسية أو ما يميزنا، وكانت النفقات العامة مرتفعة. مكنتنا Amazon MSK من التركيز على تطبيقنا الأساسي، مما حررنا من عبء إدارة كافكا غير المتميزة.
  • المرحلة 4 - أخيرًا، قمنا بإزالة جميع المكونات القديمة، واستكملنا الانتقال إلى نظام SaaS الأساسي الذي يركز على السحابة بالكامل. استغرقت هذه الرحلة المتعددة السنوات من التعلم والتحول 3 سنوات.

اليوم، بعد انتقالنا الناجح، نستخدم Amazon MSK لوظيفتين رئيسيتين:

  • استيعاب البيانات في الوقت الفعلي ومعالجة تريليونات من الأحداث اليومية من أكثر من 15 مليون جهاز حول العالم، كما هو موضح في الشكل التالي.

Nextthink العمارة الابتلاع

  • تمكين نظام يحركه الحدث ويفصل بين منتجي البيانات ومستهلكيها، كما هو موضح في الشكل التالي.

Nextthink العمارة الحدث مدفوعة

لتعزيز قدرتنا على التوسع والمرونة بشكل أكبر، اعتمدنا الهندسة المعمارية القائمة على الخلية باستخدام التوفر الواسع النطاق لخدمة Amazon MSK عبر مناطق AWS. نقوم حاليًا بتشغيل أكثر من 10 خلايا، تمثل كل منها نشرًا إقليميًا مستقلاً لحل SaaS الخاص بنا. يعمل هذا النهج القائم على الخلية على تقليل منطقة التأثير في حالة حدوث مشكلات، ويتناول متطلبات موقع البيانات، ويتيح التوسع الأفقي عبر مناطق AWS، كما هو موضح في الشكل التالي.

Nextthink خلايا العمارة

فوائد أمازون MSK

لقد كان Amazon MSK حاسمًا في تمكين تصميمنا القائم على الأحداث. وفي هذا القسم، نعرض الفوائد الرئيسية التي اكتسبناها من اعتمادها.

تحسين مرونة البيانات

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

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

التحجيم التنظيمي

من خلال اعتماد بنية تعتمد على الأحداث مع Amazon MSK، قمنا بتحليل تطبيقنا المتجانس إلى خدمات صغيرة مترابطة بشكل غير محكم وعديمة الحالة تتواصل بشكل غير متزامن عبر موضوعات كافكا. وقد مكّن هذا النهج مؤسستنا الهندسية من التوسع بسرعة من 4 إلى 5 فرق فقط في عام 2019 إلى أكثر من 40 فريقًا وحوالي 350 مهندسًا اليوم.

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

يوضح الشكل التالي سير العمل السلس لإضافة نطاقات جديدة إلى نظامنا.

إضافة المجالات

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

من خلال استخدام بنية الخدمات الصغيرة المستندة إلى الأحداث على Amazon MSK، حققنا المرونة التنظيمية وقابلية التوسع المحسنة والابتكار المتسارع مع تقليل النفقات التشغيلية.

التوسع السلس في البنية التحتية

نمت أعمال Nextthink عشرة أضعاف خلال 3 سنوات، وتمت إضافة العديد من الإمكانات الجديدة إلى المنتج، مما أدى إلى زيادة كبيرة في حركة المرور من 200 ميجابايت في الثانية إلى 5 جيجابايت في الثانية. تم تمكين هذا النمو المتسارع للبيانات من خلال قابلية التوسع القوية التي يتمتع بها Amazon MSK. كان تحقيق هذا النطاق من خلال حل محلي أمرًا صعبًا ومكلفًا، إن لم يكن غير ممكن.

أدت محاولة إدارة كافكا ذاتيًا إلى فرض نفقات تشغيلية غير ضرورية دون توفير قيمة تجارية. كان تشغيله بنسبة 5% فقط من حركة المرور اليوم أمرًا معقدًا بالفعل ويتطلب مهندسين اثنين. وفي أحجام اليوم، قدّرنا الحاجة إلى ما بين 6 إلى 10 موظفين متخصصين، مما يؤدي إلى زيادة التكاليف وتحويل الموارد بعيدًا عن الأولويات الأساسية.

القدرات في الوقت الحقيقي

من خلال توجيه جميع بياناتنا عبر Amazon MSK، قمنا بتمكين معالجة الأحداث في الوقت الفعلي. أدى هذا إلى فتح إمكانات مثل التنبيهات في الوقت الفعلي والمشغلات المستندة إلى الأحداث وخطافات الويب التي لم يكن من الممكن الوصول إليها في السابق. وعلى هذا النحو، كان لـ Amazon MSK دورًا فعالًا في تسهيل بنيتنا القائمة على الأحداث وتعزيز الابتكارات المؤثرة.

تأمين الوصول إلى البيانات

بالانتقال إلى بنيتنا الجديدة، حققنا أهدافنا المتعلقة بالأمان وسلامة البيانات. مع قوائم Kafka ACL، قمنا بفرض ضوابط وصول صارمة، مما يسمح للمستهلكين والمنتجين بالتفاعل فقط مع الموضوعات المسموح بها. لقد اعتمدنا عناصر التحكم الدقيقة في الوصول إلى البيانات على معايير مثل نوع البيانات والمجال والفريق.

لتوسيع نطاق الإدارة اللامركزية للموضوعات بشكل آمن، قدمنا ​​الملكية تعريفات الموارد المخصصة لـ Kubernetes (CRDs). مكّنت CRDs الفرق من إدارة المواضيع والإعدادات وقوائم ACL الخاصة بهم بشكل مستقل دون المساس بالأمان.

تشفير أمازون MSK تأكد من أن البيانات تظل مشفرة أثناء الراحة وأثناء النقل. لقد قدمنا ​​أيضًا خيار إحضار مفتاحك الخاص (BYOK)، مما يسمح بالتشفير على مستوى التطبيق باستخدام مفاتيح العميل لجميع موضوعات المستأجر الفردي والمستأجرين المتعددين.

تعزيز إمكانية الملاحظة

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

وفي الختام

تم تبسيط رحلة Nexthink من وحدة متراصة محلية إلى سحابة SaaS باستخدام Amazon MSK، وهي خدمة Kafka مُدارة بالكامل. أتاحت لنا Amazon MSK التوسع بسلاسة مع الاستفادة من الموثوقية والأمان على مستوى المؤسسة. من خلال تفريغ إدارة كافكا إلى AWS، يمكننا الاستمرار في التركيز على أعمالنا الأساسية والابتكار بشكل أسرع.

من الآن فصاعدًا، نخطط لتحسين الأداء والتكاليف وقابلية التوسع بشكل أكبر من خلال اعتماد إمكانات Amazon MSK مثل تخزين متدرج و أنواع مثيلات EC2 المستندة إلى AWS Graviton.

نحن نعمل أيضًا بشكل وثيق مع فريق Amazon MSK للتحضير لميزات الخدمة القادمة. إن تبني القدرات الجديدة بسرعة سيساعدنا على البقاء في طليعة الابتكار مع الاستمرار في تنمية أعمالنا.

لمعرفة المزيد حول كيفية استخدام Nextthink لـ AWS لخدمة قاعدة عملائها العالمية، استكشف Nextthink في دراسة حالة AWS. بالإضافة إلى ذلك، اكتشف قصص نجاح العملاء الآخرين مع Amazon MSK من خلال زيارة فئة مدونة أمازون MSK.


حول المؤلف

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة