تقريبا. العابرة. : التقينا بهواة Kubernetes من مشروع Garden في حدث KubeCon Europe 2019 الأخير ، حيث تركوا انطباعًا جيدًا علينا. هذه المادة ، المكتوبة حول موضوع فني ذي صلة وبروح مرحة من الدعابة ، هي تأكيد واضح لهذا ، وبالتالي قررنا ترجمته.
يتحدث عن المنتج الرئيسي (المسمى) للشركة ، والذي تتمثل فكرته في أتمتة مهام سير العمل وتبسيط تطوير التطبيقات في Kubernetes. للقيام بذلك ، تسمح لك الأداة المساعدة بسهولة (حرفيًا باستخدام أمر واحد) بنشر التغييرات الجديدة التي تم إجراؤها على الكود في مجموعة dev ، كما توفر موارد / ذاكرة تخزين مؤقت مشتركة لتسريع عملية التجميع واختبار الرمز بواسطة الفريق. قبل أسبوعين ، استضافت Garden الإصدار 0.10.0 ، والذي أصبح من الممكن استخدامه ليس فقط في مجموعة Kubernetes المحلية ، ولكن أيضًا عن بعد: هذه المقالة مخصصة لهذا الحدث.أقل ما أحب العمل مع Kubernetes على جهاز الكمبيوتر المحمول. يمتص "الطيار" معالجه وبطاريته ، ويجعل المبردات تدور دون توقف ويصعب صيانتها.
الأسهم صور في موضوع لتعزيز التأثير Minikube ، kind ، k3s ، Docker Desktop ، microk8s ، إلخ. - أدوات رائعة مصممة لجعل Kubernetes مريحة قدر الإمكان ، ونشكرهم على ذلك. على محمل الجد. ولكن من أي جانب نظرتم ، هناك شيء واحد واضح: Kubernetes غير مهيأة للعمل على جهاز الكمبيوتر المحمول. والكمبيوتر المحمول نفسه غير مصمم للعمل مع مجموعة من الحاويات المنتشرة عبر طبقات من الأجهزة الافتراضية. الشيء السيئ يبذل قصارى جهدها ، لكنها من الواضح أنها لا تحب هذا الاحتلال ، حيث أبدت استياءها من عواء المبردات والسعي لحرق الوركين عندما وضعته بتهور على ركبتي.
دعنا نقول: الكمبيوتر المحمول هو كمبيوتر محمول.Garden عبارة عن أداة مطور في نفس مكان Skaffold و Draft. يبسط ويسرع تطوير واختبار تطبيقات Kubernetes.
منذ بداية العمل في الحديقة ، قبل حوالي 18 شهرًا ، علمنا أن التطوير
المحلي للأنظمة الموزعة كان حلاً مؤقتًا ، لذلك وضعنا مرونة كبيرة وأساسًا قويًا في الحديقة.
نحن الآن على استعداد لدعم كل من بيئات Kubernetes المحلية والبعيدة. أصبح العمل أكثر بساطة: يمكن الآن إجراء التجميع والنشر والاختبار في كتلة بعيدة.
باختصار:
باستخدام Garden v0.10 ، يمكنك نسيان مجموعة Kubernetes المحلية تمامًا ولا تزال تحصل على استجابة سريعة للتغييرات في التعليمات البرمجية. كل هذا مجاني ومفتوح المصدر.
استمتع بنفس الراحة عند العمل مع البيئات المحلية والبعيدةهل لفت انتباهك؟
وأنا سعيد بذلك ، حيث لا يزال لدينا الكثير من الرقائق المثيرة للاهتمام! الاستخدام العام لمجموعات ديف له آثار أوسع ، وخاصة بالنسبة للفرق التعاونية وخطوط أنابيب CI.
كيف ذلك؟بادئ ذي بدء ، فإن المجمع داخل
المجموعة - سواء كان هو Docker القياسي أو Kaniko الخفي - وكذلك السجل داخل
المجموعة شائع
في المجموعة بأكملها . يمكن لفريقك استخدام مجموعة dev معًا ، مع توفير ذاكرة التخزين المؤقتة للتجميع والصور لجميع المطورين. نظرًا لأن علامات علامات الحديقة تعتمد على تجزئة المصدر ، يتم تعريف العلامات والطبقات بشكل لا لبس فيه ومتسق.
هذا يعني أنه بمجرد قيام المطور بإنشاء صورة ، يصبح
متاحًا للفريق بأكمله . يوما بعد يوم ، نقوم بتنزيل نفس الصور الأساسية وننشئ نفس التصميمات على أجهزة الكمبيوتر. فضولي كم تضيع حركة المرور والكهرباء؟
يمكن قول الشيء نفسه عن الاختبارات: نتائجها متاحة للمجموعة بأكملها ولجميع أعضاء الفريق. إذا قام أحد المطورين باختبار إصدار معين من التعليمات البرمجية ، فليست هناك حاجة لتكرار نفس الاختبار.
وبعبارة أخرى ، فإن النقطة ليست فقط أنك لا تحتاج إلى تشغيل minikube. تفتح هذه القفزة الباب لفريقك أمام
العديد من فرص التحسين - لا مزيد من عمليات الإنشاء والتجربة!
ماذا عن CI؟
اعتاد معظمنا على حقيقة أن CI و dev المحلي هما عالمان منفصلان يجب تكوينهما بشكل منفصل (ولا يستخدمان ذاكرة تخزين مؤقت مشتركة). الآن يمكن دمجها والتخلص من الفائض:
يمكنك تنفيذ نفس الأوامر في CI وفي عملية التطوير ، وكذلك استخدام بيئة واحدة وذاكرة التخزين المؤقت ونتائج الاختبار.في الأساس ، يصبح CI مطور برامج الروبوت الذي يعمل في نفس البيئة التي تعمل بها.
عناصر النظام ؛ تطوير واختبار بلا عوائقيمكنك تبسيط تكوينات خطوط الأنابيب CI بشكل كبير. للقيام بذلك ، ما عليك سوى تشغيل Garden من CI للبنيات والاختبارات وعمليات النشر. نظرًا لأنك أنت و CI تستخدمان نفس البيئة ، فإن احتمالية مواجهة مشكلات CI أقل بكثير.
التنقيب في عدد لا يحصى من الأسطر من التكوينات والبرامج النصية ، ثم دفع ، والانتظار ، والأمل والتكرار الذي لا نهاية له ... كل هذا في الماضي.
أنت فقط تفعل التنمية. لا حركات لا لزوم لها.
ولتوضيح الموقف أخيرًا:
عندما تقوم أنت أو ممثل آخر للفريق بجمع أو اختبار شيء باستخدام Garden ، حدث نفس الشيء بالنسبة إلى CI . إذا لم تقم بتغيير أي شيء بعد تشغيل الاختبار ، فلن تحتاج إلى إجراء اختبارات (أو حتى التجميعات) لـ CI. تقوم Garden بكل شيء بمفردها ، ثم تنتقل إلى المهام الأخرى ، مثل تنظيم بيئة ما قبل الإطلاق ، ودفع القطع الأثرية ، إلخ.
يبدو مغريا. كيف تجرب؟
مرحبًا بكم في
مستودع جيثب الخاص بنا ! تثبيت حديقة واللعب مع أمثلة. بالنسبة لأولئك الذين يستخدمون Garden بالفعل أو يريدون التعرف عليهم بشكل أفضل ، فإننا نقدم
دليل Remote Kubernetes . انضم إلينا على قناة
# garden في Kubernetes Slack إذا كانت لديك أسئلة أو مخاوف أو تريد فقط الدردشة. نحن مستعدون دائمًا للمساعدة ونرحب بتعليقات المستخدمين.
PS من المترجم
قريباً سننشر أيضًا نظرة عامة على الأدوات المساعدة المفيدة لمطوري التطبيقات الذين يعملون في Kubernetes ، والتي ، بالإضافة إلى Garden ، لديها مشاريع أخرى مثيرة للاهتمام ... وفي الوقت نفسه ، اقرأ أيضًا في مدونتنا: