هل تستخدم جنكينز؟ على الأرجح نعم ، لأن هذا هو المشروع الأكثر شعبية من هذه الفئة حتى الآن. كنت مهتمًا دائمًا بالتحدث مع أحد المطورين وطرح بعض الأسئلة الصعبة. هنا ، ليس لدينا مطور فحسب ، بل خالق جنكينز نفسه - Kohsuke Kawaguchi .
كما تعلم ، Jenkins هو مشروع مفتوح المصدر برخصة MIT. في الآونة الأخيرة ، عُقد مؤتمر FOSDEM - وهو أكبر مؤتمر في العالم مخصص للبرامج المجانية. مجاني ، مفتوح ، مع عشرات المتكلمين من جميع أنحاء العالم. هذا يعني أنه يمكنك مقابلة أي شخص هناك - حتى خالق جينكينز. مع مجموعة صغيرة من الأصدقاء والزملاء في مجموعة JUG.ru ، حققنا مفاجأة في الهبوط وتمكنا من تسجيل مقابلة جيدة مع خالق جينكينز.
لذلك ، في الاستوديو الافتراضي الخاص بنا ، Koske Kawaguchi (الذي سيقدم نفسه ويشرح كل شيء بالتفصيل أدناه) ، رسلان أخميزيانوف ARG89 من مجموعة JUG.ru و Kirill Tolkachev tolkkv من CIAN ، متحدثنا الثابت ، guru Groovy ، Gradle ، Spring ، ومكدس التكنولوجيا Netflix يمكنك أن تعرف من البودكاست استخلاص المعلومات.

رسلان: مرحبا. أولاً ، أخبرنا قليلاً عن نفسك وعن جنكينز؟
Kosuke : اسمي Koske ، والمعروف في الغالب باسم خالق جينكينز ومدير قسم التسويق في CloudBees. Jenkins هي أداة يقوم بها المطورون بأتمتة مراحل مختلفة من عملية تسليم البرامج. أنا شخصياً أعرف العديد من المبرمجين من روسيا الذين يستخدمون جنكينز ، وسأكون سعيدًا بمقابلة الآخرين.
كيريل: سوف أعرض نفسي أيضًا - أنا مطور وأقوم أيضًا بتنظيم اجتماع منطقة موسكو جينكينز (JAM). لدي خبرة واسعة في استخدام جنكينز ، وخاصة خط الأنابيب النصي / التعريفي. هل يمكن أن تخبرني ما الذي تفعله شركة CTO للشركة التي تطور جنكينز؟
كوسوكي: تتمثل إحدى مهام فريقي في التفاعل مع المجتمع. يعتمد نجاح شركتنا إلى حد كبير على نجاح مشروع مفتوح المصدر. مهمة أخرى مهمة هي تثقيف بقية الناس في الشركة حول كيفية عمل المصدر المفتوح. بشكل عام ، لدينا علاقة مثيرة جدًا بين الشركة والمجتمع: الجميع يتعلمون شيئًا من بعضهم البعض ، ونحن نولي اهتمامًا كبيرًا لهذا التفاعل.
لقد سألت أيضًا عن الوظيفة التي يؤديها المدير الفني. والحقيقة هي أن هذه الوظيفة قد تطورت مع نمو الشركة. في البداية ، كنت أشبه بمبرمج رئيسي وقمت بالكثير من العمل التقني. ولكن مع تطور الشركة ، بدأ أشخاص آخرون في القيام بهذا العمل تدريجياً. على سبيل المثال ، بدأ فريق منفصل للتعامل مع Pipeline. أتواصل معهم بشكل دوري من أجل الحصول على فكرة عما يقومون به ، وأحيانًا أقدم النصيحة. لكنهم يتخذون جميع القرارات المتعلقة بالتصميم والتطوير بمفردهم. بشكل عام ، كان هذا التطور لدوري مثيرًا للاهتمام ، ولدي باستمرار القدرة على التكيف.
كيريل: إذا فهمتك بشكل صحيح ، فانتقل تركيزك من المشكلات الفنية إلى العمل مع المجتمع؟
كوسوكي: نعم ، الكثير مما أقوم به يتعلق بهذا. هناك أشياء لا يستطيع سوى مؤسس الشركة قولها. لذلك ، جزءًا من نشاطي هو ، من الناحية النسبية ، التلويح بالعلم ودعوة المجتمع في اتجاه معين عندما يكون تغيير المسار ضروريًا ، كما كان ، على سبيل المثال ، في العام الماضي. بالإضافة إلى ذلك ، نحن والفريق منخرطون في الترويج لـ Jenkins: نوضح أهدافنا ، والصعوبات التي نحاول التغلب عليها. بالإضافة إلى ذلك ، عندما أحتاج إلى تقديم عرض تقديمي عن الحالة العامة ، فإنني ألهم المزيد من الثقة. هذا ما يشبه نشاطي باختصار.
كيريل: وكم سنة مضت بدأ هذا الخروج من العمل الفني نحو العمل التنظيمي؟ هل يمكنك أن تروي قصة جنكينز وكيف تغير دورك مع نمو المشروع؟
كوسوكي: ظهر المشروع في عام 2004 ، وفي البداية عملت عليه في المساء وفي عطلات نهاية الأسبوع ، أي كان نوعًا من الهواية. ولكن تدريجيا نما المشروع. لقد قضيت وقتًا طويلاً في إنشاء هذا النظام الأساسي الذي يمكن لأشخاص آخرين كتابة تطبيقاتهم عليه. بمرور الوقت ، ظهر نظام بيئي ومجموعة من المطورين ، بعضهم من روسيا - على سبيل المثال ، Oleg Nenashev (Twitter: oleg_nenashev ) ، الذي كتب نظامًا فرعيًا مثيرًا للاهتمام على قمة جنكينز. مع اكتساب المشروع شعبية ، أصبحت الحاجة إلى تفاعل أفضل مع المستخدمين وتدريبهم أكثر حدة. لذلك ، بدأت في فعل المزيد مع هذه الأشياء. أخيرًا ، حوالي عام 2010 ، أصبح جنكينز يتمتع بشعبية كبيرة لدرجة أنني قررت تكريس كل وقتي له وتأسيس شركة. من هذه اللحظة ، تمت إضافة العمل على تنظيم الشركة للعمل مع المجتمع. كانت الشركة تنمو ، وبدأت أسأل نفسي السؤال - ما نوع النشاط الذي لا يمكن لأحد القيام به إلا أنا؟ يوجد في الشركة وفي المجتمع الكثير من الأشخاص المؤهلين الذين يسعدون بالاستعداد لتحمل مسؤولية إضافية. تدريجيا ، بدأوا في فعل الكثير مما اعتدت أن أفعله بنفسي. إلى حد كبير ، بدا طريقنا مثل.
كيريل: شكرا لك. اليوم ، جنكينز هو نظام CI الأكثر شعبية. وما مدى شيوع النسخة التجارية من جنكينز مقارنة بأنظمة CI التجارية الأخرى؟ على سبيل المثال ، مع Travis Enterprise أو مع الأنظمة التي يمكن أن تعمل محليا؟
Kosuke: مفتوح المصدر جنكينز هو مشروع كبير ، لديه الكثير من المستخدمين. CloudBees لديها نطاق أصغر بكثير. لذلك ، إذا تمكنا من تحويل واحد بالمائة من قاعدة مستخدمي Jenkins إلى مستخدمي CloudBees ، فستكون هذه نتيجة كبيرة جدًا. جميع الشركات القائمة على المنتجات مفتوحة المصدر تعمل على هذا المبدأ. سؤال مهم آخر هو إلى أي مدى نجحنا في مساعدة الأشخاص الذين ينبغي أن يحل منتجنا مشاكلهم. نحسب مدى فعالية دعمنا التقني ، وإذا كنت أتذكر الإحصاءات بشكل صحيح ، بشكل عام ، فإن خدماتنا ترضيهم.
كيريل: هل تقصد أولئك الذين يستخدمون النسخة المدفوعة؟ أو أولئك الذين لديهم حرية أيضا؟
كوسوكي: كلاهما. أي إذا اشترى شخص منتجًا ، فسيتم توفير الدعم له ، ولكن يمكن الحصول عليه أيضًا دون استخدام برنامج خاص.
كيريل: هذا يعني أنك تتصرف كوسيط بين المطورين والمستخدمين ، المصدر المفتوح والتجاري. هل أفهم بشكل صحيح أن لديك أيضًا مهام رؤية المنتج؟
كوسوكي: هذا ليس صحيحًا تمامًا ، لدينا فريق منتج منفصل. أنا لست ممثلاً للمستخدم ، لكنني دائمًا ما أقابل اجتماعات مع العديد من الأشخاص والمستخدمين وليس فقط ، أي أنني أبقى على اتصال مع المجتمع. على سبيل المثال ، لدي عمود "الملخص مع المتقدم" لموظفي الشركة الآخرين. في هذه المنشورات ، أتحدث عن كيفية قيام المستخدمين بكتابة البرامج وما يعنيه بالنسبة لجينكينز. لذلك أحاول التأثير على القرارات التي يتخذها فريق المنتج.
كيريل: يبدو أنك تلعب دورًا مهمًا في الشركة. دعنا ننتقل إلى المزيد من القضايا الشخصية. ما هي ميزة جنكينز المفضلة التي يمكنك التحدث عنها من الصباح إلى الليل؟
كوسوكي: حسنا ، الحديث من الصباح إلى الليل سيكون صعباً. أنا الآن مهتم أكثر بكيفية عمل المنظمة - أعتقد أن هذا بسبب وظيفتي فيها. عندما عملت وحدي ، كان انتباهي أكثر تركيزًا على الميزات الفردية. الآن لا أعتقد ذلك ، لذا يصعب علي الإجابة على سؤالك.
كيريل: إذن ، ربما تتذكر بعض الميزات التي تم تنفيذها منذ سنوات والتي كانت فخورة جدًا؟
كوسوكي: يمكنني التحدث عن واحدة من الميزات المهمة الأخيرة التي عملنا عليها - أعتقد أنها ستكون أكثر إثارة للاهتمام للمستخدمين. هذا مشروع من العام الماضي ، Jenkins Configuration as Code . لقد رأينا أن مستخدمينا ينتقلون تدريجياً من إدارة Jenkins بنقرة من الفأرة في واجهة المستخدم الرسومية إلى التكوين من خلال ملف التكوين في مستودع git. تم الإحساس بالحاجة إلى تكوين كمشروع رمز لفترة طويلة ، وتم كتابة العديد من العكازات المؤقتة لأداء هذه الوظيفة. ولكن لم تكن واحدة من هذه التعهدات كبيرة بما فيه الكفاية. أخيرًا ، تمكنا من الجمع بين هؤلاء الأشخاص من المجتمع الذين كانوا مهتمين بهذا المشروع الجديد وخلق أداة كبيرة ومدروسة إلى حد ما. تحولت جوانب كثيرة من هذا المشروع بشكل جيد للغاية ، واكتسب شعبية واسعة للغاية ، والتي لا يمكن إلا أن نفرح.
يمكنك تذكر مشروع آخر ، Jenkins X ، وهو تطور في اتجاه مختلف تمامًا. تم إنشاؤه خصيصا للعمل مع Kubernetes. بفضل هذا التخصص ، يمكننا تحقيق التكامل السلس وإخفاء التعقيد الذي ينشأ بسبب التكامل وبسبب اتصال عمليات التسليم المستمر. نتيجة لذلك ، نجعل من السهل تنفيذ أفضل الممارسات ، في رأينا ،. أعتقد أنه بفضل هذا المشروع ، ستصبح جنكينز متاحة لعدد كبير من الأشخاص الذين يقومون بأفعال قياسية تمامًا ولا يرغبون في قضاء الكثير من الوقت في التكوين ، وهو ما يحتاج إلى كل شيء للعمل.
رسلان: هل تستخدم جنكينز عند كتابة جنكينز؟
كوسوكي: نعم ، مشروع جنكينز له جنكينز. في الواقع ، لدينا مثيل كبير يعمل على مراجعة السحب على كل مكون إضافي ونواة. بالإضافة إلى ذلك ، توجد نسخة للأعمال المهمة بشكل خاص والمتعلقة بالأمان ونقاط الضعف ، حيث يتم تطوير ميزات الأمان في مستودع منفصل خاص. أخيرًا ، هناك مثيل ثالث للمهام الأكثر أهمية مثل توقيع المفاتيح والأشياء المتعلقة بالإصدارات. بالإضافة إلى هؤلاء الثلاثة ، تعمل نسخة منفصلة في منزلي على مدار الساعة.
كيريل: لقد ذكرت أن جينكينز إكس. جينكينز نفسه يشبه السكين السويسري ، مع الإضافات يمكنه أن يفعل أي شيء. لكن Jenkins X ، على العكس من ذلك ، متخصص للغاية ، وهو موجود لخطوط الأنابيب والعمل مع Kubernetes. ما نوع الإستراتيجية التقنية التي تلتزم بها أنت وشركتك؟ هل تؤيد فقط جنكينز وجينكينز X؟ أو إلى جانب ذلك ، سيكون هناك أيضًا Jenkins XX لمجموعات Mesos و Jenkins XXX for Cloud Foundry وما إلى ذلك؟
كوسوكي: أعتقد أن الكثير يعتمد على رد فعل المجتمع. إن وجود منصة عالمية أمر مهم للغاية بالطبع. والسؤال هو من الذي ينفذ هذه المرونة بالضبط. اليوم ، عادة ما يكون للمستخدمين الوصول المباشر إليها. هذا مناسب إذا كنت شركة كبيرة وتفعل شيئًا غير عادي. لكن في الوقت نفسه ، أعرف الكثير من الناس الذين لا يحتاجون إلى مثل هذه المرونة. تخيل أنك أتيت إلى غرفة الطعام وطلبت منك أن تصنع شطيرة. يتم تقديم خيار من سبعة أنواع من الخبز ، وخمسة أنواع من الزبدة ، وأربعة أنواع من الجبن ، وتحتاج إلى اتخاذ قرار بشأن جميع المكونات. لكنك لست بحاجة إلى كل هذا الاختيار ، فأنت بحاجة فقط إلى شطيرة لذيذة ، ولا ترغب في معرفة كيفية تصحيحها. أعلم أن الكثير من الناس لديهم هذا الموقف تجاه جنكينز ويريدون كل المرونة في البقاء إلى جانبنا. جنكينز X هي أول خطوة جادة في هذا الاتجاه. إذا ظل هذا المشروع ناجحًا ، فأنا أحب أن أفعل شيئًا مماثلاً للبرامج الثابتة و IoT أو المنصات المحمولة أو تعلم الآلة. أعتقد أن هناك العديد من الأسواق الرأسية حيث يحتاج الناس فقط إلى أداة تسمح لهم بإنتاج المنتج بسرعة. أنت من روسيا ، لذلك على الأرجح تعرف عن JetBrains؟
كيريل: بالطبع.
كوسوكي: أعتقد أنهم يتبعون استراتيجية مماثلة. لديهم أساس مرن للغاية ، وفي مقدمته العديد من الإضافات المتخصصة ، والتي في جوهرها ، يتم تجميع العناصر نفسها بطرق مختلفة. يعرب المستخدمون عن امتنانهم لذلك ، وأنا معجب حقًا بهم.
كيريل: منذ سنوات عديدة كنت أراقب نفس الصورة في العديد من المجتمعات عندما أنصحك باستخدام مكون إضافي أو واحد - بالمناسبة ، الآن https://plugins.jenkins.io يساعدني كثيرًا ، كل الإضافات المعتمدة موجودة. المشكلة هي أن الناس يحاولون استخدام جميع الحالات أداة عالمية واحدة ، والتي غالباً ما لا تكون مناسبة لحالة معينة. لذلك ، الآن أوصي عادةً بأداة واحدة فقط - Pipeline ، وهي أداة مثالية مناسبة في جميع الحالات. لكن مشكلة جديدة تنشأ. يحاول الأشخاص استخدام خط الأنابيب النصي أو خط الأنابيب التعريفي دون فهم كيفية ترتيبها داخليًا. هناك مشاكل في البنية التحتية ، مع إنشاء المراسلات بين العقد ، ومشاركة البيانات ، وحركة المرور غير العادية التي تظهر بين الوكيل والسيد ، أو مشاكل في القياس على الرئيسي. ما الأداة ، من وجهة نظرك ، الأفضل: الأداة التي تشير إلى الطريقة الصحيحة الوحيدة لحل المشكلة ، مثل Jenkins X؟ أو أداة مثل Scripted Pipeline تسألك عما كنت تفكر فيه بالضبط؟
كوسوكي: لست متأكدًا من أنني فهمتك بشكل صحيح ، لكنني سأحاول الإجابة. في اليابانية ، هناك كلمة "كاتا" ، وأنا لا أعرف كيفية ترجمتها بدقة. يتم استخدامه ، من بين أمور أخرى ، في الجودو. نحن نتحدث عن حركات محددة بدقة يتعلمها الطلاب: على سبيل المثال ، رفع يد بطريقة معينة من أجل صرف ضربة معينة. فعلت القليل من هذا ، لذلك أنا أعرف أبسط منهم. يكمن التحدي في حفظ مجموعة من الحركات البسيطة أو نوع من الأنماط أو أفضل الممارسات. ولكن هذه ليست سوى البداية. معرفة هذه القاعدة ، يمكنك الاستمرار في تركها بشكل صحيح إذا كان الوضع يتطلب ذلك ، مع عدم انتهاك الحركات الأساسية نفسها. أنت تدرس مساحتك الخاصة ، إقليمك ، ولكن في نفس الوقت ، فإن معرفة القاعدة المشتركة تساعدك على أي حال. إذا كنت لا تعرفها ، فسوف تسأل نفسك دائمًا - هل أفعل الشيء الصحيح؟ حتى لو كان ما كتبته يعمل ، لا يزال لديك شكوك.
بشكل عام ، ذكرني سؤالك كاتا. أعتقد أن لدينا وضعا مماثلا مع جنكينز. يوفر Jenkins X قاعدة ، وعندما تبدأ في فهمها بشكل أعمق ، يمكنك تركها إذا لزم الأمر بمساعدة الإضافات وأشياء أخرى. بالطبع ، يتعين على Jenkins X التضحية بالمرونة من أجل توفير تجربة أفضل مع Kubernetes. لكن حقيقة أن Jenkins X تدفعك نحو أفضل الممارسات لا تعني أنك محروم من الاختيار. بشكل عام ، هذا صحيح بالنسبة إلى أي برنامج. إنه فقط مع Jenkins X كان لدينا تغيير مهم في العقلية. في السابق ، أنشأنا فقط العناصر الأساسية للنظام - النظام الأساسي والإضافات ، كان الأمر متروكًا للمستخدم لتجميعها. مع Jenkins X ، انتقل المجتمع إلى نهج جديد ، وفي رأيي ، هذه خطوة مهمة للغاية.
كيريل: إذا كنت لا تمانع ، سوف يكون لدي سؤالين آخرين. ما الميزة التي جلبت لك أكبر مشكلة في العام الماضي؟ كل مشروع له فترات صعبة - هل يمكن أن تخبرنا كيف كان شكلك؟
كوسوكي: لقد دمرنا حياتنا بجدية عدة مرات. المشكلة هي أنه مع نمو جنكينز ، بدأ مشروعنا في جذب المزيد والمزيد من الاهتمام من الشركات الأخرى وفرق الأمن التي بدأت في البحث عن الثقوب في جنكينز. لذلك ، بدأ عدد تقارير الضعف الواردة إلينا من الخارج في النمو بشكل كبير. في بعض الأحيان ، أصبح الأمر مخيفًا بعض الشيء من هذا ، خاصةً عندما تفكر في أن بعض هذه الطلبات يأتي مع موعد نهائي ، نحتاج إليه لإغلاق الثغرة الأمنية. كان هذا صعباً بشكل خاص عندما يتعلق الأمر بالميزات التي أنشأها المجتمع. بالإضافة إلى ذلك ، عند تثبيت التحديثات ذات الثغرات الثابتة ، يتعطل المستخدمون أحيانًا. نحن نعمل بجد لمنع حدوث ذلك ، لأن المستخدمين خائفون من تثبيت تحديثات الأمان ، وهو أمر غير مرغوب فيه للغاية.
كيريل: هل لديك بعض الهيئات الإدارية التي تقرر الميزات التي سيتم تضمينها في الإصدار؟ الرجاء إخبارنا بكيفية اتخاذ مثل هذه القرارات وهل يمكن للمستخدمين طلب إدراج بعض الميزات في الإصدار؟ إذا كان بإمكانهم ذلك ، فمن سيُعطى الأولوية - لمستخدمي CouldBees أو Jenkins مفتوحة المصدر؟ أخيرًا ، إذا أمكن ، أخبرنا عن خططك للأشهر الستة القادمة إلى عام.
كوسكي: هناك نقطة مهمة هنا: كلاود بايز لا تملك جنكينز ، فهذان مشروعان منفصلان ، ولكل منهما هيكله الخاص لصنع القرار. CloudBees هي ببساطة أكبر مساهم في جنكينز ، مع العديد من CloudBees في نفس الوقت يعملون في المجتمع. على مدار السنوات القليلة الماضية ، حاولنا إنشاء هياكل تحكم أكثر وضوحًا في جنكينز تعمل بالضبط ما طلبته للتو. تحقيقًا لهذه الغاية ، أنشأنا عملية تحسين جنكينز ...
سيريل: آسف للمقاطعة - هل هو اختصار كـ JEP ، مثلما هو الحال في Java؟
كوسوكي: بالتأكيد. من الواضح ، أننا لم نخترع هذا المفهوم ، لكننا استعارناه من بيثون وجافا وبعض المجتمعات الأخرى ، لأنه قد أقام نفسه بالفعل. الفكرة الرئيسية هنا هي أن المجتمع يجب أن يكون قادرًا على التعبير عن آرائه والتوصل إلى إجماع قبل أن يبدأ العمل الرئيسي على إحدى الميزات. هذا هو بالضبط ما نفعله عندما تقوم CloudBees بإنشاء ميزة جديدة ، لذلك لدينا الفرصة لتغيير الدورة التدريبية وفقًا للاستجابة المستلمة. هذا هو عنصر التخطيط الذي تمكنا من تنفيذه في عملنا. نظرًا لأننا مشروع مفتوح المصدر ، لا يمكننا إخبار المشاركين الآخرين في المشروع بما يجب فعله. في بعض الأحيان يستمعون إلى صوتنا ، وأحيانا لا.
بالنسبة لخططنا للأشهر الستة المقبلة ، فعلى الأرجح سنواصل العمل على العديد من مساعينا الحالية ، بما في ذلك Jenkins X. يعمل بعض موظفي CloudBees والعديد من المساهمين الخارجيين على ذلك. آمل أن تصبح Configuration as Code أكثر شيوعًا بين مطوري البرنامج المساعد. إلى حد كبير ، لقد أنشأنا بالفعل الأساس لذلك ، لذلك نحن الآن بحاجة إلى تكوين بعض المكونات الإضافية بحيث يمكن توصيلها بشكل صحيح من خلال هذا النظام. أخيرًا ، إذا ظهرت JEPs جديدة ، فسنعمل عليها.
كيريل: حسنًا ، دعونا نأمل ألا تكون براءة JEP :) سؤال لك كمؤلف لـ Jenkins - الذي كانت فكرته هي Scripted Pipeline؟
كوسوكي: هذا سؤال مثير للاهتمام. الحقيقة هي أن العديد من المبادرات في المجتمع لا تصل في كثير من الأحيان إلى كتلة حرجة وتبقى على المستوى التجريبي. قبل أن نبدأ العمل على Pipeline ، حاول الناس بالفعل في نفس المكان القيام بشيء مماثل ، وأتيحت لنا الفرصة للتعرف على هذه المحاولات. لذلك لم نكن ، في الواقع ، مخترعي خطوط الأنابيب. أحد هذه البرامج السابقة كان مكون Build Flow ، الذي كتبه أحد موظفي CloudBees قبل الانضمام إلى الشركة. أعتقد أن مصطلح "النظام الإيكولوجي" ناجح للغاية - كل شيء يحدث فعلاً كما هو الحال في النظام البيئي الحقيقي ، وهي تقنية أنشأها شخص ما تتطور وتتغير باستمرار.
رسلان: هل أثرت في تنفيذ خط الأنابيب النصي؟
كوسوكي: نعم ، في نسخته الأصلية.
كيريل: كما نعلم ، هناك طريقتان لتنفيذ أي DSL - ثابتًا وديناميكيًا. لماذا تم اختيار النهج الديناميكي لخط الأنابيب النصي؟
كوسوكي: أخشى أنني لا أفهم تمامًا ما تعنيه بالضبط بالنُهج الثابتة والديناميكية.
كيريل: مع DSL ثابت ، لدينا بعض الثقة في التعليمات البرمجية لدينا قبل التنفيذ. على سبيل المثال ، مع DSL في Java ، تحتاج إلى معرفة جميع واجهات برمجة التطبيقات والواجهات مقدمًا. مع اتباع نهج ديناميكي ، نقوم بإجراء التحقق مباشرة عند التنفيذ. حتى إذا كانت الشفرة غير صالحة ، فإن الجهاز سيظل يحاول تنفيذها ، بل يلقي خطأً إذا لزم الأمر. يسمح لك الإصدار التعريفي لخط الأنابيب بإزالة العديد من الأخطاء عن طريق تضييق التباين في البرنامج النصي للبناء.
كوسوكي: أن نكون صادقين ، لا يهمني بالضبط عندما يحدث التجميع. ولكن يمكنني التحدث عن الإعدادات العامة التي اتبعناها عند تصميم Scripted Pipeline. في مرحلة معينة ، أعاق عدد كبير من مستخدمي جينكينز تعقيدًا كبيرًا بسبب تعقيد الأتمتة. كان من الضروري ضمان التفاعل الصحيح للعديد من المكونات. يتم ترجمة الرمز ، ويتم تشغيل الاختبارات ، ثم تحتاج إلى الانتظار حتى يتم تأكيد النشر وما إلى ذلك. , — Infrastructure as Code. , . Scripted Pipeline. , Pipeline , , Scripted Pipeline, . , , . Declarative Pipeline.
: , -, Jenkins, API . -, Scripted Pipeline, DSL. Declarative Pipeline , . — Pipeline Jenkins? , Jenkins.
: , , . , Pipeline, , , . Freestyle Job, Jenkins, . - , , Freestyle Job . , , . , Pipeline . - — , Shared Libraries. , . . , .
: Jenkins. Jenkins 2. API . Jenkins , , , , . , , ?
: , . , . Jenkins. , 800 , 1600 — , , . , . , . « » , , , , , . , , .
: , Java? 15-, 20- . Python 2 Python 3, ? ?
: , , , Java Python. , . , Jenkins , . , . , , . , , , . , , , Jenkins X. , , .
: , !
5-6 JPoint «Superpowers coming to your Jenkins» . , . JPoint ( , ).