العديد من الشركات تختار التحول إلى AWS MSK لتجنب المتاعب التشغيلية المرتبطة بإدارة تجمعات Apache Kafka.
في هذا البرنامج التعليمي، سوف نكتشف ميزات وفوائد AWS MSK وأفضل الممارسات. كما سنتناول الخطوات الأساسية لإعداد AWS MSK ونرى كيف يقارن بخدمات شهيرة أخرى مثل Kinesis وConfluent.
ما هو AWS MSK؟
أولاً، دعنا نفهم Apache Kafka ولماذا هو مفيد جداً لتدفق البيانات.
Apache Kafka هو منصة تدفق موزعة مفتوحة المصدر تتعامل مع تدفقات البيانات في الوقت الحقيقي ويمكنها بناء تطبيقات تعتمد على الأحداث. يمكنها استيعاب البيانات التدفقية ومعالجتها وقت حدوثها.
وفقًا لموقع Kafka، يثق أكثر من 80% من شركات Fortune 100 في Kafka ويستخدمونه.
الأمر الأهم، أن كافكا يمكن توسيعه وسريع جدًا. هذا يعني أنه يمكنه التعامل مع كميات كبيرة من البيانات أكثر مما يمكن أن تتناسب مع جهاز واحد فقط وبتأخير منخفض جدًا.
إذا كنت ترغب في معرفة كيفية إنشاء وإدارة وحل المشاكل في كافكا لبث البيانات، فكر في حضور دورة مقدمة عن كافكا.
متى هو أفضل وقت لاستخدام أباتشي كافكا؟
- عندما تحتاج إلى التعامل مع كميات هائلة من البيانات في الوقت الحقيقي، مثل التعامل مع تيارات بيانات أجهزة الإنترنت من الأشياء.
- عندما تحتاج إلى معالجة بيانات وتحليلها فورًا، مثل تتبع نشاط المستخدمين مباشرةً أو أنظمة اكتشاف الاحتيال.
- في سيناريوهات إنشاء الأحداث حيث تحتاج إلى سجلات تدقيق تتوافق مع متطلبات الامتثال والتنظيمات.
ومع ذلك، يمكن أن يأتي إدارة حالات كافكا مع الكثير من الصداع. وهنا تأتي خدمة AWS MSK.
صورة من قبل الكاتب
خدمة AWS MSK (Managed Streaming for Kafka) هي خدمة مُدارة بالكامل تتعامل مع توفير الموارد، التكوين، التوسيع، وصيانة مجموعات Kafka. يمكنك استخدامها لبناء تطبيقات تتفاعل مع تيارات البيانات على الفور.
غالبًا ما يُستخدم Kafka كجزء من إعداد معالجة البيانات الأكبر، وتجعل خدمة AWS MSK الأمر أسهل حتى في إنشاء خطوط أنابيب البيانات في الوقت الحقيقي التي تنقل البيانات بين أنظمة مختلفة.
كيفية عمل خدمة Amazon MSK. مصدر الصورة: AWS
إذا كنت جديدًا على خدمات AWS، فكر في الالتحاق بدورتنا “مقدمة إلى خدمات AWS” لتتعرف على الأساسيات. عندما تكون جاهزًا، يمكنك المضي قدمًا في دورتنا “تقنية السحابة وخدمات AWS” لاستكشاف مجموعة الخدمات الكاملة التي تعتمد عليها الشركات.
ميزات AWS MSK
تتميز AWS MSK عن المنافسة لأنها خدمة تدير بالكامل. لا داعي للقلق بشأن إعداد الخوادم أو التعامل مع التحديثات.
ومع ذلك، هناك المزيد من الأمور. هذه الخمس ميزات الرئيسية لخدمة AWS MSK تجعلها استثمارًا جديرًا:
- تتوفر MSK بشكل عالي الإتاحة، وتضمن AWS أن يتم تحقيق SLAs الصارمة. يقوم تلقائيًا بإستبدال العناصر التالفة دون توقف لتطبيقاتك.
- يتوفر لدى MSK خيار التوسيع التلقائي للتخزين، حيث ينمو تلقائيًا مع احتياجاتك. يمكنك أيضًا توسيع التخزين بسرعة أو تقليصه أو إضافة وسطاء إضافيين حسب الحاجة.
- من حيث الأمان، يعتبر MSK حلا شاملا يوفر التشفير في وضع الراحة وأثناء النقل. كما أنه يتكامل مع AWS IAM لمراقبة الوصول.
- إذا كنت تستخدم بالفعل Kafka، يمكنك الانتقال إلى MSK دون تغيير الشفرة الخاصة بك لأن MSK يدعم جميع واجهات برمجة التطبيقات وأدوات Kafka العادية.
- MSK هو خيار فعال من حيث التكلفة لا يتطلب توظيف فريق هندسي كامل لمراقبة وإدارة العنقودات. حتى تفخر AWS بأنه يمكن أن يكون أرخص بنسبة تصل إلى 40% من Kafka المُدارة ذاتيًا.
فوائد استخدام AWS MSK
كما رأينا بالفعل، يقدم خدمة AWS MSK قيمة فورية بفضل توافرها وقابليتها للتوسع وأمانها وسهولة التكامل. لقد جعلت هذه المزايا الأساسية منه الخيار المفضل للشركات التي تقوم بتشغيل أعباء عمل Kafka في السحابة.
تحل خدمة AWS MSK أربعة تحديات حرجة تواجه كل مشروع لتدفق البيانات:
- تعتبر MSK خدمة مُدارة بالكامل، مما يتيح لك التركيز على بناء التطبيقات بدلاً من إدارة البنية التحتية.
- يتوفر MSK بشكل كبير وموثوق به، وهو أمر يصبح أكثر أهمية في الوقت الحالي، حيث يتوقع المستخدمون الوصول إلى الخدمات والتطبيقات على مدار الساعة طوال أيام الأسبوع.
- تتمتع MSK بقدرات أمان شاملة وحيوية.
- تتمتع MSK بالتكامل الأصلي مع خدمة AWS، مما يجعل من السهل بناء حلول كاملة لبيانات البث داخل نظام AWS البيئي.
إعداد AWS MSK
للبدء مع AWS MSK، أنشئ أولاً حساب AWS الخاص بك. إذا كانت هذه أول مرة تستخدم فيها خدمة AWS، تعلم كيفية إعداد وتكوين حساب AWS الخاص بك باستخدام البرنامج التعليمي الشامل لدينا.
قم بتسجيل الدخول إلى واجهة تحكم إدارة AWS وافتح واجهة تحكم MSK. انقر على “إنشاء مجموعة” لبدء عملية الإعداد.
البدء مع AWS MSK. مصدر الصورة: AWS
حدد “الإنشاء السريع” للإعدادات الافتراضية، ثم أدخل اسمًا وصفيًا للمجموعة.
من هنا، لديك العديد من الخيارات الإضافية لتحديدها، والتي تعتمد جميعًا على متطلباتك الخاصة لعقدك. إليك نظرة سريعة على الخيارات:
- نوع العقد: “تخصيص” أو “خادم غير مُدار”
- إصدار Apache Kafka
- نوع الوسيط: “قياسي” أو “سريع”
- حجم الوسيط
- حجم تخزين EBS
خيارات تكوين AWS MSK
يتم إنشاء العنقود دائمًا داخل VPC الخاص بأمازون. يمكنك اختيار استخدام VPC الافتراضي أو تكوين وتحديد VPC مخصص.
الآن، عليك فقط انتظار تنشيط العنقود الخاص بك، والذي قد يستغرق من 15 إلى 30 دقيقة. يمكنك مراقبة حالة عنقودك من صفحة ملخص العنقود، حيث سترى تغيير الحالة من “جارٍ الإنشاء” إلى “نشط”.
استيعاب ومعالجة البيانات مع خدمة AWS MSK
بمجرد إعداد عنقود MSK الخاص بك، ستحتاج إلى إنشاء جهاز عميل لإنتاج البيانات واستهلاكها عبر مواضيع واحدة أو أكثر. نظرًا لأن Apache Kafka يتكامل بشكل جيد مع العديد من منتجي البيانات (مثل المواقع الإلكترونية، أجهزة IoT، حالات Amazon EC2، إلخ)، فإن MSK يشترك أيضًا في هذه الفائدة.
تنظم أباتشي كافكا البيانات في هياكل تُسمى مواضيع. يتكون كل موضوع من جزء واحد أو أكثر. الأقسام هي درجة التوازن في أباتشي كافكا. يتم توزيع البيانات عبر الوسطاء باستخدام التقسيم.
مصطلحات رئيسية لمعرفتها عند التعامل مع تجمعات أباتشي كافكا:
- المواضيع هي الطريقة الأساسية لتنظيم البيانات في كافكا.
- المنتجون هم التطبيقات التي تقوم بنشر البيانات إلى المواضيع – ينشئون ويكتبون البيانات في كافكا. يكتبون البيانات على مواضيع وأقسام محددة.
- المستهلكون هي التطبيقات التي تقرأ وتعالج البيانات من المواضيع. إنهم يستخرجون البيانات من المواضيع التي يكونون مشتركين فيها.
عند بناء بنية معمارية مدفوعة بالأحداث باستخدام AWS MSK، تحتاج إلى تكوين عدة طبقات، حيث تعتبر MSK المكون الرئيسي لاستيعاب البيانات. إليك نظرة عامة على الطبقات التي قد تكون مطلوبة:
- إعداد استيعاب البيانات
- طبقة المعالجة
- طبقة التخزين
- طبقة التحليل
مثال على البنية المعمارية المدفوعة بالأحداث مع Amazon MSK و Amazon EventBridge.مصدر الصورة: AWS
إذا كنت مهتمًا بالاستفادة من لغة Python في سير العمل الخاص بأنابيب البيانات الخاصة بك ، تحقق من دورتنا مقدمة إلى AWS Boto في Python.
أفضل الممارسات لاستخدام AWS MSK
يُعتبر AWS MSK نسبيًا سهلًا للإعداد والبدء في استخدامه على الفور. ومع ذلك ، ستحسن بعض الممارسات الأساسية الأداء لعناقيدك وتوفر لك الوقت لاحقًا.
ضبط حجم العنقود الخاص بك
سيتعين عليك اختيار العدد الصحيح من الأقسام لكل وسيط والعدد الصحيح من الوسطاء لكل عنقود.
عدد من العوامل يمكن أن تؤثر على قراراتك هنا؛ ومع ذلك، قدمت خدمة AWS بعض التوصيات والموارد المفيدة لتوجيهك خلال هذه العملية.
بالإضافة إلى ذلك، توفر خدمة AWS جدول تحديد الحجم والتسعير بسهولة لمساعدتك في تقدير الحجم الصحيح لعنقودتك والتكاليف المرتبطة باستخدام AWS MSK مقابل عنقود Kafka EC2 الذاتي المُدار بنفسك.
بناء عناقيد متاحة بشكل عالي
توصي خدمة AWS بإعداد عناقيدك لتكون متاحة بشكل عالي. هذا أمر مهم بشكل خاص عند أداء تحديث (مثل تحديث إصدار Apache Kafka) أو عندما تقوم AWS باستبدال وسيط.
لضمان أن عناقيدك متاحة بشكل عالي، يجب عليك القيام بثلاثة أشياء:
- قم بإعداد عناقيدك عبر ثلاث مناطق توافر (معروفة أيضًا باسم عنقود ثلاثي المناطق).
- قم بتعيين عامل التكرار إلى 3 أو أكثر.
- قم بتعيين الحد الأدنى لعدد النسخ المتزامنة إلى RF-1.
الشيء الرائع حول خدمة AWS هو أنهم يلتزمون بSLAs صارمة لنشر متعدد المناطق؛ خلاف ذلك، ستحصل على رصيدك مرة أخرى.
راقب استخدام القرص ووحدة المعالجة المركزية
المقاييس الرئيسية للرصد من خلال خدمة AWS CloudWatch هي استخدام القرص ووحدة المعالجة المركزية. فعل ذلك لن يضمن فقط سلسة تشغيل النظام الخاص بك ولكن سيساعد أيضًا في خفض التكاليف.
أفضل طريقة لإدارة استخدام القرص والتكاليف المرتبطة بالتخزين هي إعداد إنذار في CloudWatch ينبهك عندما يتجاوز استخدام القرص قيمة معينة، مثل 85%، وضبط سياسات الاحتفاظ الخاصة بك. إن تعيين وقت الاحتفاظ للرسائل في سجلك يمكن أن يساعد بشكل كبير في تحرير مساحة القرص تلقائيًا.
بالإضافة إلى ذلك، للحفاظ على أداء الكلستر الخاص بك وتجنب الاختناقات، توصي AWS بالحفاظ على إجمالي استخدام وحدة المعالجة المركزية للوسطاء تحت 60%. يمكنك مراقبة ذلك باستخدام AWS CloudWatch ثم اتخاذ إجراءات تصحيحية عن طريق تحديث حجم الوسيط، على سبيل المثال.
احمِ بياناتك باستخدام التشفير أثناء النقل
بشكل افتراضي، تقوم AWS بتشفير البيانات أثناء النقل بين الوسطاء في كلستر MSK الخاص بك. يمكنك تعطيل ذلك إذا كان نظامك يعاني من ارتفاع في استخدام وحدة المعالجة المركزية أو الكمون. ومع ذلك، يُوصى بشدة بالاحتفاظ بتشفير البيانات أثناء النقل مفعلًا في جميع الأوقات وإيجاد طرق أخرى لتحسين الأداء إذا كانت تلك مشكلة بالنسبة لك.
تحقق من دورتنا إدارة أمان AWS والتكاليف لمعرفة المزيد حول كيفية تأمين وتحسين بيئة AWS السحابية الخاصة بك وإدارة التكاليف والموارد في AWS.
مقارنة AWS MSK بأدوات البث الأخرى
عند اتخاذ قرار بشأن أداة مثالية لمشروع ما، غالبًا ما نحتاج إلى تقييم العديد من الخيارات. فيما يلي البدائل الأكثر شيوعًا لـ AWS MSK وكيف تقارن ببعضها البعض.
AWS MSK مقابل Apache Kafka على EC2
الصراع الرئيسي بين MSK والخيار الذي يستضيف بنفسه باستخدام EC2 هو بين الراحة والتحكم: يمنحك MSK أقل ما يجب إدارته ولكن أقل مرونة، بينما يمنحك EC2 تحكمًا كاملاً ولكن يتطلب المزيد من العمل.
يتولى AWS MSK جميع المهام التشغيلية المعقدة، مع التوفير التلقائي والتكوين. الجانب الإيجابي في ذلك هو عدم وجود تكاليف تحتية مقدمة. كما يتمتع بتكامل سلس مع خدمات AWS الأخرى وميزات أمان قوية.
استخدام Kafka على EC2، من ناحية أخرى، يتضمن إعداد وتكوين يدوي أكثر، وتحتاج أيضًا إلى التعامل مع جميع أعمال الصيانة والتحديث بنفسك. هذا يوفر مرونة أكبر ولكن قد يترتب عليه تعقيد وتكاليف تشغيلية أكثر وقد يتطلب وجود فرق ذات مهارات عالية أكثر.
AWS MSK vs. Kinesis
استخدم Kinesis للبساطة والتكامل العميق مع AWS و MSK لتوافق Kafka أو للحصول على مزيد من التحكم في إعداد البث المباشر الخاص بك.
Kinesis هو بنية معمارية خالية تمامًا من الخوادم تستخدم شظايا لبث البيانات. تدير AWS كل شيء بالنسبة لك. ومع ذلك، هناك حدود للاحتفاظ بالبيانات يجب أن تكون على علم بها. Kinesis هو حلاً رائعًا لمتطلبات بث البيانات البسيطة.
يعتمد AWS MSK على نموذج الموضوع والتقسيم في Kafka، مع إمكانية احتفاظ بالبيانات تقريبًا بشكل غير محدود، اعتمادًا على تخزينك. إنها حلاً أكثر مرونة وقابلية للتخصيص يمكنك الانتقال بعيدًا عن AWS إذا لزم الأمر.
إذا لم تكن ملمًا بـ Kinesis، لدينا دورة تدريبية ترشدك خلال العمل مع بيانات البث الحي باستخدام AWS Kinesis و Lambda.
AWS MSK مقابل Confluent
اختر Confluent إذا كنت بحاجة إلى ميزات شاملة ودعم، واختر MSK إذا كنت مستثمرًا بشكل كبير في AWS وتمتلك خبرة في Kafka داخل الشركة.
Confluent يحتوي على مجموعة ميزات غنية بالموصلات المدمجة. إنها خيار أكثر تكلفة بشكل عام ولكنه يوفر طبقة مجانية بميزات محدودة. Confluent يعمل بشكل جيد مع الأعباء المتقطعة ويتمتع بعملية نشر أسهل.
بالمقارنة، تعمل AWS بشكل أكثر تنقيصًا وتركز على وظائف Kafka الأساسية. للوصول إلى مجموعة ميزات أكثر توسعًا، يجب دمج AWS MSK مع خدمات AWS أخرى. لحسن الحظ، هذا التكامل يتم بشكل سلس. AWS MSK لديه تكلفة أساسية أقل ويمكن أن يكون خيارًا جيدًا للأعباء العملية المتسقة.
الجدول التالي يقدم مقارنة بين AWS MSK وبديلها:
الميزة |
AWS MSK |
Apache Kafka على EC2 |
Kinesis |
Confluent |
النشر |
مدارة بالكامل |
مدارة ذاتيًا على EC2 |
مدارة بالكامل |
مدارة بالكامل أو مدارة ذاتيًا |
سهولة الاستخدام |
سهل الإعداد والإدارة |
يتطلب إعدادًا يدويًا وتوسيعًا |
إعداد بسيط؛ متوافق مع AWS |
واجهة مستخدم سهلة وأدوات متقدمة |
قابلية التوسع |
التوسيع التلقائي مع التعديلات اليدوية |
التوسيع اليدوي |
التوسيع السلس |
التوسيع التلقائي مع المرونة |
التأخير |
التأخير المنخفض |
التأخير المنخفض |
تأخير أقل للحمولات الصغيرة |
قابل للمقارنة مع MSK |
دعم البروتوكول |
متوافق مع واجهة برمجة التطبيقات لـ Kafka |
متوافق مع واجهة برمجة التطبيقات لـ Kafka |
بروتوكول Kinesis الخاص |
واجهة برمجة التطبيقات لـ Kafka وبروتوكولات إضافية |
احتفاظ بالبيانات |
قابل للتكوين (تصل إلى 7 أيام افتراضيًا) |
قابل للتكوين |
قابل للتكوين (حد أقصى 365 يومًا) |
قابل للتكوين بشكل كبير |
الرصد والمقاييس |
متكامل مع CloudWatch |
يتطلب إعدادًا مخصصًا |
متكامل مع CloudWatch |
أدوات الرصد المتقدمة |
التكلفة |
الدفع حسب الاستخدام |
بناءً على تسعير حالة EC2 |
الدفع حسب الاستخدام |
الاشتراكية |
الأمان |
ميزات الأمان المدمجة في AWS |
يجب تكوين الأمان يدويًا |
متكامل مع AWS IAM |
ميزات الأمان الشاملة |
ملاءمة حالة الاستخدام |
الأفضل لمستخدمي Kafka في نظام AWS |
مرن، لكن يتطلب صيانة عالية |
الأفضل لتطبيقات AWS الأصلية |
مستخدمو Kafka المتقدمون والشركات |
أفكار الختام
يُعد Apache Kafka الخيار المفضل في الحالات التي تتطلب حلاً موثوقًا بمقياس كبير ولا يمكن تحمل فقدان البيانات، وتتطلب ربط مصادر البيانات المتعددة أو بناء أنابيب بيانات معقدة. يمنع خدمة AWS MSK العديد من المشاكل الناجمة عن إعداد وتكوين مجموعات Kafka، مما يتيح للمطورين التركيز أكثر على بناء التطبيقات وتحسينها بدلاً من التركيز على البنية التحتية.
الحصول على شهادة AWS هو وسيلة ممتازة لبدء حياتك المهنية في AWS. يمكنك بناء مهاراتك في AWS من خلال الاطلاع على كتالوج الدورات والحصول على تجربة عملية من خلال المشاريع!