CDS عبارة عن منصة توصيل مستمر على مستوى المؤسسة وأتمتة DevOps مكتوبة في GO (LANG).
هذا المشروع تحت التطوير النشط
الوثائق
توفر CDS واجهة مستخدم بديهية تتيح لك إنشاء مهام سير عمل معقدة وتشغيلها وحفرها في السجلات عند الحاجة.
إنشاء وتشغيل سير العمل مع CDS UI.
CDSCTL هو سطر أوامر CDS - يمكنك نص كل شيء معه ، كما يوفر CDSCTL بعض الأوامر الرائعة مثل cdsctl shell لتصفح مشاريعك وسير العمل دون الحاجة إلى فتح متصفح.
انظر جميع أوامر CDSCTL
قم بإنشاء سير العمل كرمز مع سطر أوامر CDS.
Docker-Cormse هو صديقك ، انظر جاهزًا لتشغيل البرامج التعليمية
تلعب معظم أدوات CI/CD مع وظائف داخل خط أنابيب. يقدم CDS مفهومًا جديدًا يسمى CDS Workflows . يتيح لك سير عمل CDS سلسلة خطوط الأنابيب مع المشغلات. يتم تنظيم خط أنابيب في مراحل متتابعة تحتوي على وظيفة أو متعددة من الوظائف المتزامنة.
نعم! يتم استخدام CDS في الإنتاج منذ 2015 @OVH ويطلق أكثر من 7 ملايين عمال CDS في السنة. يمكنك تثبيت الإصدار الرسمي المتاح على https://github.com/ovh/cds/releases
يوفر CDS كل ما هو مطلوب لمراقبة وقياس نشاط الإنتاج (سجلات ، مقاييس ، مراقبة)
يتم تخزين جميع البيانات في قاعدة البيانات - لا شيء على نظام الملفات. فقط النسخ الاحتياطي لقاعدة البيانات الخاصة بك بانتظام وستكون آمنة.
الفريق الأساسي متاح على جيثب
القدرة على تشغيل وظائف متعددة في وقت واحد مع الحفاظ على العزلة بينهما. انظر DOC حول المراحل والوظائف داخل خط أنابيب. يتم بدء خط أنابيب بسياق: 0 أو 1 تطبيق ، 0 أو 1 بيئة.
سير العمل يجعل من الممكن سلسلة خطوط الأنابيب. هذه ميزة رئيسية من الأقراص المدمجة. يمكنك إنشاء مهام سير العمل باستخدام خطوط أنابيب واحدة أو أكثر ، خطوط أنابيب يمكن ربطها مع الوصلات أو الشوك.
يمكنك أن تتخيل وجود منشئ سير عمل واحد فقط ونشر مكدس الخدمات الدقيقة بالكامل. يمكن استخدام نفس خط الأنابيب عدة مرات في سير العمل ، يمكنك ربط تطبيق أو بيئة. لن يكون لديك سوى خط أنابيب نشر واحد وخط أنابيب بناء واحد للحفاظ عليه ، حتى لو كان لديك مئات التطبيقات.
يتيح لك قالب سير العمل مشاركة وإعادة استخدام سير العمل عبر فرق متعددة. يمكن لأي مستخدم إنشاء قالب سير العمل ، والحفاظ عليه كرمز أو من واجهة المستخدم ، وتحديث مجموعة من مهام سير العمل مع إجراء واحد.
كشركة ، يمكنك تقديم كتالوج محدد مسبقًا لسير العمل مما يتيح لك توحيد ممارسات الاختبار والنشر في جميع فرقك.
هذا يقلل أيضًا من جهود الصيانة لأن القوالب تسمح بإدارة مركزية قابلة للتطوير.
يمكنك تكوين كل شيء باستخدام واجهة المستخدم على الويب. حتى إذا كان لديك حالات استخدام معقدة ، فعادة ما يكون من الأسهل إنشاء سير العمل الخاص بك بيانياً.
خط الأنابيب كرمز هو مفهوم معروف لأدوات CI / CD. CDS يذهب خطوة إلى الأمام ويقدم سير العمل كرمز. يتم ذلك عن طريق git-pushing باستخدام ملفات تكوين YAML لسير العمل الخاص بك ( + خط أنابيب ، + تطبيقات ، + بيئة). يعد هذا مفيدًا بشكل خاص حيث يمكنك اختبار سير العمل الجديد على فرع DEV ، قبل دمج التغييرات على الفرع الرئيسي.
يمكنك تعديل سير العمل الخاص بك باستخدام واجهة المستخدم ، يمكنك أيضًا تعديل التكوين عن طريق تحرير ملف YAML مباشرة في واجهة المستخدم إذا كنت ترغب في ذلك. هذه طريقة ممتازة لمعرفة كيفية استخدام ميزة سير العمل ككرز.
القدرة على إطلاق البناء على أساس نمط الفرع. يسمح ذلك ، على سبيل المثال ، بنشر فروع Dev/* على "التدريج" ونشر الفرع الرئيسي إلى "Prod".
لاحظ أن السلوك الافتراضي لـ CDS هو تشغيل سير العمل بالكامل على كل التزام GIT. يمكن تغيير هذا السلوك باستخدام "شروط التشغيل".
التكامل ثنائي الاتجاه مع المنتجات الأكثر شعبية على أساس GIT.
تدعم CDS أصلاً GitHub و Gitlab و Bitbucket Server و Gerrit. يكون الارتباط بين ريبو GIT و CDS عبر تطبيق CDS: 1 مستودع GIT == تطبيق CDS. من خلال هذا التكامل ، ستدفع الأقراص المدمجة إلى حالة بناء الالتزامات الخاصة بك: البناء أو النجاح أو الفشل.
يمنحك CDS إمكانية استنساخ من مستودعات GIT المختلفة داخل سير عمل واحد. يمكن أن يشتمل سير عمل CDS على العديد من التطبيقات المختلفة - أو لا شيء إذا كنت لا ترغب في الحصول على اتصال مع ريبو git.
القدرة على بدء خدمات سريعة الزوال (قاعدة بيانات ، خادم ويب ، إلخ) لدعم وظيفتك. هذا مفيد بشكل خاص أثناء اختبار الكود الخاص بك.
في الأقراص المدمجة ، تسمى هذه الخدمات المتطلبات المسبقة للخدمة. تحتاج فقط إلى تحديد صورة Docker المقابلة وتشغيل params.
خذ مثالًا بسيطًا: لديك خط أنابيب يبني صورة Docker التي تحتوي على تطبيقك. يحتاج طلبك إلى redis و postgresql للعمل. يمكنك ، في وظيفة CDS ، وضع ثلاث خدمات المتطلبات الأساسية: redis ، postgreSQL ، وتطبيقك. سوف تهتم CDS بإنشاء شبكة خاصة بين خدماتها حتى يتمكنوا من التواصل مع بعضهم البعض. وبالتالي ، يمكن لمهمة CDS إجراء اختبارات التكامل على التطبيق الخاص بك بدءًا من قاعدة بيانات حقيقية وذاكرة التخزين المؤقت الحقيقية.
يرجى قراءة: https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
يتم استخدام ذاكرة التخزين المؤقت عن بُعد من قبل فريق من المطورين و/أو نظام التكامل المستمر (CI) لتبادل مخرجات الإنشاء. إذا كان بناءك قابلًا للتكرار ، فيمكن إعادة استخدام المخرجات من جهاز واحد بأمان على جهاز آخر ، مما قد يجعل البناء أسرع بكثير
Doc: https://ovh.github.io/cds/docs/components/worker/cache/
كمنصة على مستوى المؤسسة ، يمكن لـ CDS إرسال مجموعة واسعة من الأحداث الداخلية (على سبيل المثال Build Build) في حافلة حدث. يمكن لتدفق الحدث بعد ذلك إطعام الخدمات الأخرى (الإبلاغ ، الإخطارات ، إلخ ،).
القدرة على إطلاق سير عمل يدويًا أو مع GIT يدفع أو عبر جدولة أو عبر webhook. بالإضافة إلى ما سبق ، يمكن أيضًا تشغيل الأقراص المدمجة باستخدام ناقل حدث (Kafka أو RabbitMQ).
القدرة على إدارة بيئات متعددة (مثل Dev/Prod/التدريج) بطريقة آمنة مع حقوق الوصول المنفصلة. في الممارسة العملية ، تعد البيئة مجموعة من المتغيرات التي يمكنك استخدامها في سير العمل.
باستخدام CDS ، يمكنك استخدام خط أنابيب نشر على بيئة ما قبل الإنتاج واستخدام خط أنابيب النشر نفسه في بيئة الإنتاج الخاصة بك. يمكن أن تقتصر القدرة على النشر على الإنتاج على مجموعة من المستخدمين المسبق مسبقًا.
المستخدمون أحرار في إنشاء مجموعات وإدارة المستخدمين في مجموعاتهم. يمكن للمجموعة أن يكون لها الحق في قراءة مشاريعها وسير عملها وتنفيذها. يمكنك أيضًا تقييد تنفيذ بعض خطوط الأنابيب لبعض المجموعات إذا كنت ترغب في ذلك.
إذا كنت تستخدم CDS كأداة CI / CD ، فمن المحتمل أن تكون قد قمت ببناء القطع الأثرية. يتم عزل وظائف CDS عن بعضها البعض ، ولكن يمكنك تمرير القطع الأثرية من وظيفة إلى أخرى باستخدام إجراء تحميل القطع الأثرية وتنزيل القطع الأثرية. في نهاية وظيفة CDS ، يتم حذف جميع الملفات من العمال. لاستمرار القطع الأثرية ، يمكن للأقراص المدمجة استخدام تخزين سريع أو نظام ملفات معين (غير موصى به).
يعرض CDS بوضوح نتائج اختبارات الوحدة والثغرات الضعيفة التي تم اكتشافها أثناء الإنشاءات.
مشروع CDS يشبه المستأجر. يمكن لجميع المستخدمين إنشاء مشروع CDS ، وسيجمع هذا المشروع التطبيقات والبيئات وخطوط الأنابيب وسير العمل بالطبع.
يتم عزل مشاريع CDS عن بعضها البعض ، ولكن قد يكون للمجموعة نفسها حقوق الوصول إلى مشاريع متعددة إذا كنت ترغب في ذلك.
نموذج العامل هو سياق تنفيذ العمال. دعنا نقول ، تحتاج إلى تشغيل وظيفة تتطلب Golang v1.11.5. في الأقراص المدمجة ، تحتاج فقط إلى إنشاء نموذج عامل GO ، يحتوي على GO في الإصدار 1.11.5. يمكن أن يكون طراز العامل صورة Docker أو صورة OpenStack أو صورة vSphere. على الرغم من أن مسؤولي CDS يمكنهم تقديم نماذج للعاملين المشتركة ، يمكن للمستخدمين إنشاء عمال القالب الخاص بهم إذا كانوا يرغبون.
في مشروع CDS ، يمكنك إضافة عمليات تكامل مثل OpenStack و Kubernetes وما إلى ذلك ... سيوفر لك هذا الميزات داخل سير العمل. على سبيل المثال ، مع تكامل Kubernetes ، يمكنك إضافة مجموعة خاصة بك إلى مشروع CDS الخاص بك ، وبالتالي تكون قادرًا على استخدام إجراء تطبيق النشر لنشر تطبيقك المدمج حديثًا على المجموعة الخاصة بك ، بتنسيق Helm إذا كنت ترغب في ذلك. يمكنك بالطبع تطوير تكاملاتك الخاصة.
بعد قراءة النقاط السابقة ، فهمت: الخدمة الذاتية في كل مكان. يمكن لجميع المستخدمين إنشاء نماذج/نماذج سير العمل/العمال/عملهم/إجراءات سير العمل ... وتشغيل الوظائف في بيئة معزولة تمامًا. مشاريع CDS هي بناة ، والتي يمكنك إضافة عمليات تكامل عليها. كل هذا يتيح لك أن يكون لديك مثيل واحد فقط من الأقراص المدمجة لشركتك بأكملها.
كل ما يمكنك القيام به مع واجهة المستخدم متاح عبر واجهة سطر الأوامر (CLI) ، المسمى "CDSCTL". يتوفر CDSCTL على جميع نظام التشغيل: Darwin و FreeBSD و Linux و OpenBSD ... سيسمح لك CDSCTL بإنشاء وإطلاق وتصدير سير العمل الخاص بك ومراقبة الأقراص المدمجة الخاصة بك والتنقل من خلال مشاريعك وسير العمل. لا حاجة للذهاب إلى واجهة المستخدم للأقراص المدمجة أو مدير المستودع الخاص بك للتحقق من حالة الالتزام ، git push && cdsctl workflow --track -سيعرض TRACK سير العمل في سطر الأوامر الخاص بك.
هل لديك احتياجات أتمتة أكثر تقدماً ، أو الرغبة في تطوير تطبيق يستفسر عن الأقراص المدمجة؟ سيسمح لك API REST و SDK بتطوير برنامجك بسهولة.
كانت CDS مفتوحة المصدر منذ أكتوبر 2016. يمكنك تثبيته بحرية في شركتك أو في المنزل. تتوفر بعض البرامج التعليمية لمساعدتك في بدء تشغيل CDS ، Docker-Corms ، التثبيت مع الثنائيات.
التوافر العالي هو نقطة مهمة للغاية لأداة CI / CD. CDS عديمة الجنسية ، لا يتم تخزين أي شيء على نظام الملفات. هذا يجعل من الممكن إطلاق العديد من واجهات برمجة التطبيقات CDS خلف موازن الحمل. وبالتالي ، يمكنك قياس واجهة برمجة تطبيقات الأقراص المدمجة لتلبية احتياجاتك. كما يتيح ترقيات الأقراص المدمجة في يوم كامل دون تأثير على المستخدمين. في الإنتاج @OVH ، يمكن تحديث الأقراص المدمجة عدة مرات في اليوم ، دون التأثير على المستخدمين أو إيقاف عمال CDS. إن مطالبة المستخدمين بالتوقف عن العمل أثناء تحديث أداة التسليم المستمر سيكونون مفارقة ، أليس كذلك؟ ؛-)
أقراص مضغوطة تعرض بيانات مراقبة. ستتمكن من إطعام مثيلك Prometheus أو Warp10 باستخدام Beamium.
وظيفة CDS تتكون من خطوات. كل خطوة عبارة عن عمل مدمج (البرنامج النصي ، checkoutapplication ، تحميل قطعة أثرية/تنزيل ...). يمكنك إنشاء أفعالك ، أو استخدام الإجراءات الحالية - أو تطوير الإجراء الخاص بك كمكون إضافي. يتم دعم جميع اللغات ، طالما أن اللغة تدعم GRPC.
الأقراص المدمجة لاأدري اللغات والمنصات. يمكن للمستخدمين تشغيل الوظائف على Linux و Windows و FreeBSD و OS X و Raspberry ... في جهاز ظاهري تفرخ عند الطلب ، في حاوية Docker ، على مضيف مخصص.
لذلك ، إذا كانت شركتك تستخدم تقنيات متعددة ، فلن تكون الأقراص المدمجة مانعًا لبناء ونشر برنامجك الداخلي.
أحد الأهداف الأولية للأقراص المدمجة في OVH: بناء ونشر 150 تطبيقًا كحاوية في أقل من 7 دقائق. لقد أصبح هذا حقيقة واقعة منذ عام 2015. ما هو المفتاح السري؟ النطاق التلقائي عند الطلب!
وبالتالي ، يمكن أن يكون لديك مئات نماذج العمال وعند الضرورة ، ستبدأ CDS العمال باستخدام المفرخات.
تشبه المفرخ حاضنة ، فهي تلد عمال CDS والحق في الحياة والموت عليها.
تتوفر عدة أنواع من المفرخ:
لذا نعم ، الكلمات الطنانة أم لا ، يعد onDemand التلقائي متعدد الطبقات حقيقة واقعة مع الأقراص المدمجة :-)
3 طبقة BSD