Kubernetes في العاشرة: إنشاء مساحة تخزينية جيدة للتطبيقات وحماية البيانات
يبلغ عمر Kubernetes 10 سنوات. يشهد منتصف عام 2024 الذكرى العاشرة لميلاد منصة تنسيق الحاويات الرائدة في السوق.
بدأ هذا العقد مع ظهور الحاويات كوسيلة جديدة للتطبيقات الافتراضية، ولكن وظائف التخزين وحماية البيانات كانت معدومة عمليًا. الآن، يقدم Kubernetes منصة حاوية ناضجة للتطبيقات السحابية الأصلية، مع كل ما هو مطلوب تخزين البيانات ذات الحالة.
نحتفل بالعقد الأول من Kubernetes من خلال سلسلة من المقابلات مع المهندسين الذين ساعدوا في تطوير Kubernetes ومعالجة التحديات في التخزين وحماية البيانات – بما في ذلك استخدام مشغلي Kubernetes – بينما نتطلع إلى مستقبل يتميز بـ الذكاء الاصطناعي (AI) أعباء العمل.
هنا، تتحدث ميشيل أو، مهندسة برمجيات في Google تركز على تطوير تخزين Kubernetes، عن المشاركة في العمل مثل إضافة دعم للقطات والمشغلين، مما يضيف وظائف وتعقيدًا يتجاوز جوهر Kubernetes للخدمات المتقدمة كما هو الحال في تخزين وحماية البيانات.
كيف كان السوق عندما تم إطلاق Kubernetes لأول مرة؟
كان Kubernetes من أوائل العاملين في هذا المجال. أصبحت الحاويات شائعة وبدأت الشركات في استكشاف المنطقة. كان هناك العديد من مشاريع تنسيق عبء العمل البديلة مثل Mesosphere وDocker Swarm وCloud Foundry وNomad.
كيف شاركت في التخزين لـ Kubernetes؟
في عام 2017، انضممت إلى فريق Kubernetes في Google وبدأت العمل على مشاريع كجزء من SIG [special interest group] مجتمع التخزين. قبل ذلك، كنت قد سمعت عن Kubernetes فقط من خلال شجرة العنب ولكنني لم أستخدمه مطلقًا. لكنني اعتقدت أنها ستكون فرصة عظيمة أن أتمكن من المشاركة في مشروع مفتوح المصدر يعيد تشكيل الصناعة.
متى أدركت أن Kubernetes كان في موقع الريادة في السوق؟
في البداية لم يكن الأمر كذلك. لكن رؤية النمو الهائل لأعباء العمل عامًا بعد عام، والاستماع إلى كل قصص النجاح، خاصة مع أعباء العمل الكبيرة، هو أمر يجعلني فخورًا جدًا بما قمنا ببنائه.
عندما نظرت إلى Kubernetes، كيف تعاملت مع البيانات والتخزين؟
عندما بدأت التعلم عن Kubernetes، كانت أكبر نقاط القوة التي برزت في ذهني على الفور هي واجهة برمجة التطبيقات التعريفية [application programming interface] ونموذج تصميم المصالحة، وإمكانية نقل عبء العمل عبر البيئات، وتوحيد أفضل ممارسات نشر عبء العمل. كل نقاط القوة هذه في Kubernetes كانت أيضًا أهدافًا أرشدتني عند تصميم ميزات تخزين Kubernetes.
ما هي المشكلات التي ظهرت لأول مرة فيما يتعلق بالبيانات والتخزين في Kubernetes؟
عندما انضممت إلى الفريق، كان تشغيل أعباء العمل ذات الحالة المحددة يقتصر في المقام الأول على عمليات النشر على نطاق صغير في السحابة. لا تزال هناك العديد من نقاط الاحتكاك فيما يتعلق بدعم النظام البيئي للتخزين بالإضافة إلى الجدولة والصيانة وإدارة الأعطال. يتطلب تشغيل أعباء العمل هذه بنجاح العديد من العمليات المصممة خصيصًا خاصة فيما يتعلق بتحديات اليوم الثاني.
كان أحد مشاريعي الأولى هو إضافة دعم للتخزين المحلي. أثناء العمل على ذلك، أدركت أن هناك مشكلة أوسع تتعلق بالوعي بموقع البيانات وقررت معالجة المشكلة على نطاق أوسع من خلال تقديم فكرة طوبولوجيا التخزين إلى برنامج جدولة Kubernetes. وقد أدى ذلك إلى تبسيط عملية توفير أحمال العمل ذات الحالة لتكون متسامحة مع الأخطاء عبر مجالات الفشل سواء كنت تعمل في السحابة أو محليًا.
علاوة على ذلك، بدأنا في الانتقال من مشاكل اليوم الأول إلى مشاكل اليوم الثاني. لقد كان دعم اللقطات بمثابة فجوة كبيرة في Kubernetes ولكنه أمر بالغ الأهمية لأي استراتيجية للتعافي من الكوارث.
ما الذي كان يجب أن يتغير؟
كان تنفيذ اللقطات أمرًا غير تافه بشكل مدهش. يتطلب تعيين عملية حتمية إلى واجهة برمجة التطبيقات التعريفية جولات متعددة من العصف الذهني، وكان لدى بائعي وحدات التخزين دلالات مختلفة قليلاً، وكان هناك أيضًا سؤال حول كيفية التعامل مع اتساق التطبيق. ولكن في النهاية تمكنا من التوصل إلى توافق في الآراء وتقديم هذه القدرة الحيوية التي عززت من جاهزية عبء العمل في Kubernetes.
كيف شاركت في مشغلي Kubernetes؟
كجزء من فريق Google Kubernetes Engine (GKE)، عملت بشكل وثيق مع العملاء والشركاء الذين يتطلعون إلى تشغيل المشغلين على منصتنا. لقد انضممت أيضًا إلى مجتمع Data on Kubernetes كممثل لمشروع Kubernetes وGKE لفهم نقاط الضعف التي يواجهها المستخدمون اليوم بشكل أفضل والمساعدة في نقل هذه المشكلات مرة أخرى إلى مشروع Kubernetes.
ماذا حدث للمشغلين مما جعلهم ناجحين في مجال البيانات والتخزين؟
أدى ظهور الموارد المخصصة إلى تغيير قواعد اللعبة بالنسبة للمشغلين. لقد جعل من الممكن تطوير واجهة برمجة تطبيقات تعريفية على طراز Kubernetes لحالة الاستخدام المحددة الخاصة بك. تحتوي العديد من أعباء العمل ذات الحالة على عدد من العمليات التشغيلية المعقدة والمتضمنة والتي لا يمكن استخلاصها بسهولة في جوهر Kubernetes، مثل تكوين HA [high availability] والنسخ المتماثل وإدارة عمليات التعطيل والترقية. أصبح المشغلون الآن قادرين على تنسيق هذا التعقيد للمستخدمين النهائيين.
كيف دعم هذا المزيد من الأساليب السحابية الأصلية؟ ماذا كانت العواقب؟
يمكن لواجهات برمجة التطبيقات التعريفية تمكين GitOps أو نماذج التكوين كرمز بسهولة. يعمل مشغلو أحمال العمل ذات الحالة على تسهيل أتمتة التزويد والترقيات وعمليات الصيانة الأخرى، مع ميزة إضافية تتمثل في التوافق مع كيفية إدارة المؤسسات لجميع أعباء عمل Kubernetes الأخرى.
يبلغ عمر Kubernetes الآن 10 سنوات. ما رأيك في ذلك اليوم؟
لقد قطع Kubernetes شوطًا طويلاً من “من المستحيل أن أقوم بتشغيل قاعدة بيانات على Kubernetes” إلى “أقوم بتشغيل قواعد البيانات على نطاق بيتابايت مع ترقيات متجددة تلقائية”. لقد أصبح Kubernetes منصة مستقرة لتشغيل بعض أعباء العمل الأكثر تطلبًا، وقد ظهر ذلك عندما حول المشروع التركيز من ميزات تمكين عبء العمل الكبير إلى الجهود التي تعمل على تحسين الموثوقية والاستقرار على مدى السنوات القليلة الماضية.
ما هي المشاكل التي لا تزال موجودة حول Kubernetes عندما يتعلق الأمر بالبيانات والتخزين؟
اكتشاف النظام البيئي يمثل تحديا. هناك العديد من البائعين في هذا المجال، وباعتبارك مستخدمًا نهائيًا، يستغرق تقييم جميع الخيارات وقتًا طويلاً ويصعب تقييمه. أعتقد أن هذا هو المكان الذي بيانات عن مجتمع Kubernetes استطيع المساعدة. لقد استضافوا محادثات ومدونات حول مجموعة واسعة من أعباء العمل التي تتراوح من المواضيع التمهيدية إلى المواضيع المتقدمة.
لقد أدى نمو الذكاء الاصطناعي/التعلم الآلي أيضًا إلى ظهور تحديات جديدة. تحتوي أحمال عمل AI/ML على أنماط ومتطلبات بيانات مختلفة تمامًا عن قواعد البيانات التقليدية، وعادةً ما تستخدم تخزين الكائنات وتخزين الملفات بدلاً من تخزين الكتل.
كما أن البيئات متعددة السحابة أو الهجينة هي حقيقة واقعة، مما يضيف متطلبات إضافية لقابلية النقل عبر البيئات. لقد رأيت تجريدات تخزين Kubernetes الخاصة بنا تستمر في الصمود في وجه حالات الاستخدام الجديدة هذه، على الرغم من أنني أعتقد أنه لا يزال هناك مجال للتحسينات، خاصة فيما يتعلق بدورة حياة البيانات وإدارتها.
هل هناك أي حكايات أو معلومات أخرى للمشاركة؟
نحن نبحث دائمًا عن المزيد من المساهمين والمشاركين تخزين Kubernetes SIG إلى جانب البيانات في Kubernetes. يرجى الانضمام إلى هذه المجتمعات إذا كنت مهتمًا بمشاركة قصصك أو المساهمة في المشروع.