CDS เป็นแพลตฟอร์มการจัดส่งอย่างต่อเนื่องระดับองค์กรและแพลตฟอร์มระบบอัตโนมัติ DevOps ที่เขียนใน GO (Lang)
โครงการนี้อยู่ระหว่างการพัฒนาที่ใช้งานอยู่
เอกสาร
CDS ให้ UI ที่ใช้งานง่ายที่ช่วยให้คุณสร้างเวิร์กโฟลว์ที่ซับซ้อนเรียกใช้และขุดลงในบันทึกเมื่อจำเป็น
สร้างและเรียกใช้เวิร์กโฟลว์ด้วย CDS UI
CDSCTL เป็นบรรทัดคำสั่ง CDS - คุณสามารถสคริปต์ทุกอย่างด้วย CDSCTL ยังมีคำสั่งเจ๋ง ๆ เช่น cdsctl shell เพื่อเรียกดูโครงการและเวิร์กโฟลว์ของคุณโดยไม่จำเป็นต้องเปิดเบราว์เซอร์
ดูคำสั่ง cdsctl ทั้งหมด
สร้างเวิร์กโฟลว์เป็นรหัสด้วยบรรทัดคำสั่ง CDS
Docker-compose เป็นเพื่อนของคุณดูพร้อมใช้งานบทเรียน
เครื่องมือ CI/CD ส่วนใหญ่เล่นกับงานภายในท่อ CDS แนะนำแนวคิดใหม่ที่ชื่อว่า CDS Workflows เวิร์กโฟลว์ซีดีช่วยให้คุณสามารถใช้ท่อส่งท่อด้วยทริกเกอร์ ไปป์ไลน์มีโครงสร้างในขั้นตอนต่อเนื่องที่มีหนึ่งหรือหลายงานพร้อมกัน
ใช่! CDS ใช้ในการผลิตตั้งแต่ปี 2558 @OVH และเปิดตัวพนักงานซีดีมากกว่า 7 ล้านคนต่อปี คุณสามารถติดตั้งรีลีสอย่างเป็นทางการได้ที่ https://github.com/ovh/cds/releases
CDS จัดเตรียมทุกอย่างที่จำเป็นในการตรวจสอบและวัดกิจกรรมการผลิต (บันทึกตัวชี้วัดการตรวจสอบ)
ข้อมูลทั้งหมดจะถูกเก็บไว้ในฐานข้อมูล - ไม่มีอะไรในระบบไฟล์ เพียงสำรองฐานข้อมูลของคุณเป็นประจำและคุณจะปลอดภัย
ทีมหลักมีให้บริการใน GitHub
ความสามารถในการทำงานหลายงานพร้อมกันในขณะที่ยังคงแยกระหว่างพวกเขา ดูเอกสารเกี่ยวกับขั้นตอนและงานภายในท่อ ท่อเริ่มต้นด้วยบริบท: 0 หรือ 1 แอปพลิเคชัน, 0 หรือ 1 สภาพแวดล้อม
เวิร์กโฟลว์ทำให้เป็นไปได้ที่จะห่วงโซ่ท่อ นี่คือคุณสมบัติสำคัญของซีดี คุณสามารถสร้างเวิร์กโฟลว์โดยใช้หนึ่งท่อขึ้นไปท่อที่สามารถเชื่อมโยงร่วมกับการรวมหรือส้อม
คุณสามารถจินตนาการได้ว่ามีผู้สร้างเวิร์กโฟลว์เพียงคนเดียวและปรับใช้สแต็ก Microservice ทั้งหมดของคุณ ท่อเดียวกันสามารถใช้งานได้หลายครั้งในเวิร์กโฟลว์คุณสามารถเชื่อมโยงแอปพลิเคชันหรือสภาพแวดล้อม คุณจะมีไปป์ไลน์การปรับใช้เพียงครั้งเดียวและหนึ่งไปป์ไลน์เพื่อรักษาแม้ว่าคุณจะมีแอปพลิเคชันหลายร้อยรายการก็ตาม
เทมเพลตเวิร์กโฟลว์ช่วยให้คุณสามารถแบ่งปันและนำเวิร์กโฟลว์กลับมาใช้ใหม่ในหลายทีม ผู้ใช้ใด ๆ สามารถสร้างเทมเพลตเวิร์กโฟลว์รักษาเป็นรหัสหรือจาก UI และอัปเดตชุดเวิร์กโฟลว์จำนวนมากด้วยการกระทำเดียว
ในฐานะ บริษัท คุณสามารถเสนอแคตตาล็อกของเวิร์กโฟลว์ที่กำหนดไว้ล่วงหน้าเพื่อให้คุณสามารถสร้างมาตรฐานการทดสอบและการปรับใช้ในทุกทีมของคุณ
นอกจากนี้ยังช่วยลดความพยายามในการบำรุงรักษาเนื่องจากเทมเพลตช่วยให้การจัดการส่วนกลางที่ปรับขนาดได้
คุณสามารถกำหนดค่าทุกอย่างด้วยเว็บ UI แม้ว่าคุณจะมีกรณีการใช้งานที่ซับซ้อน แต่ก็มักจะสร้างเวิร์กโฟลว์ของคุณได้ง่ายขึ้น
Pipeline เป็นรหัสเป็นแนวคิดที่รู้จักกันดีของเครื่องมือ CI / CD ซีดีก้าวไปอีกขั้นและเสนอเวิร์กโฟลว์เป็นรหัส สิ่งนี้ทำได้โดยการใช้ Git-Pushing โดยใช้ไฟล์การกำหนดค่า YAML ของเวิร์กโฟลว์ของคุณ ( + ไปป์ไลน์, + แอปพลิเคชัน, + สภาพแวดล้อม) สิ่งนี้มีประโยชน์อย่างยิ่งเนื่องจากคุณสามารถทดสอบเวิร์กโฟลว์ใหม่ของคุณในสาขา dev ก่อนที่จะรวมการเปลี่ยนแปลงในสาขาหลัก
คุณสามารถแก้ไขเวิร์กโฟลว์ของคุณด้วย UI คุณสามารถแก้ไขการกำหนดค่าได้โดยการแก้ไขไฟล์ YAML โดยตรงใน UI หากคุณต้องการ นี่เป็นวิธีที่ยอดเยี่ยมในการเรียนรู้วิธีการใช้คุณลักษณะเวิร์กโฟลว์-ตามรหัส
ความสามารถในการเปิดตัวสร้างตามรูปแบบสาขา ตัวอย่างเช่นการอนุญาตให้ปรับใช้สาขา dev/* เพื่อ "จัดเตรียม" และปรับใช้สาขาหลักเป็น "prod"
โปรดทราบว่าพฤติกรรมเริ่มต้นของซีดีคือการเปิดเวิร์กโฟลว์ทั้งหมดในทุก GIT ที่กระทำ พฤติกรรมนี้สามารถเปลี่ยนแปลงได้โดยใช้ "เงื่อนไขการทำงาน"
การรวม 2 ทางกับผลิตภัณฑ์ที่ได้รับความนิยมมากที่สุด
CDS สนับสนุน GitHub, Gitlab, BitBucket Server และ Gerrit การเชื่อมโยงระหว่าง GIT repo และ CDS ของคุณคือผ่านแอปพลิเคชัน CDS: 1 GIT repository == แอปพลิเคชัน CDS ด้วยการรวมนี้ซีดีจะผลักดันสถานะการสร้างของการกระทำของคุณ: การสร้างความสำเร็จหรือล้มเหลว
ซีดีช่วยให้คุณมีความเป็นไปได้ที่จะโคลนจากที่เก็บ Git ที่แตกต่างกันภายในเวิร์กโฟลว์เดียว เวิร์กโฟลว์ซีดีอาจเกี่ยวข้องกับแอปพลิเคชันที่แตกต่างกันหลายอย่าง - หรือไม่มีเลยหากคุณไม่ต้องการเชื่อมต่อกับ repo Git
ความสามารถในการเริ่มต้นบริการชั่วคราว (ฐานข้อมูลเว็บเซิร์ฟเวอร์ ฯลฯ ) เพื่อสนับสนุนงานของคุณ สิ่งนี้มีประโยชน์อย่างยิ่งในขณะที่ทดสอบรหัสของคุณ
ในซีดีบริการเหล่านี้เรียกว่าข้อกำหนดเบื้องต้นของบริการ คุณเพียงแค่ต้องระบุอิมเมจนักเทียบท่าที่เกี่ยวข้องและเรียกใช้พารามิเตอร์
ทำตัวอย่างง่ายๆ: คุณมีท่อส่งภาพที่สร้างอิมเมจนักเทียบท่าที่มีแอปพลิเคชันของคุณ แอปพลิเคชันของคุณต้องการ Redis และ PostgreSQL ในการทำงาน ในงานซีดีคุณสามารถให้บริการที่จำเป็นสามประการ ได้แก่ Redis, PostgreSQL และแอปพลิเคชันของคุณ ซีดีจะดูแลการสร้างเครือข่ายส่วนตัวระหว่างบริการเพื่อให้พวกเขาสามารถสื่อสารกันได้ งาน CDS ของคุณสามารถทำการทดสอบการรวมในแอปพลิเคชันของคุณเริ่มต้นด้วยฐานข้อมูลจริงและแคชจริง
โปรดอ่าน: https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
ทีมนักพัฒนาและ/หรือระบบการรวม (CI) อย่างต่อเนื่องใช้โดยทีมงาน หากการสร้างของคุณสามารถทำซ้ำได้เอาต์พุตจากเครื่องหนึ่งสามารถนำกลับมาใช้ใหม่ได้อย่างปลอดภัยในเครื่องอื่นซึ่งสามารถสร้างได้เร็วขึ้นอย่างมาก
เอกสาร: https://ovh.github.io/cds/docs/components/worker/cache/
ในฐานะที่เป็นแพลตฟอร์มระดับองค์กรซีดีสามารถส่งกิจกรรมภายในที่หลากหลาย (เช่นการสร้างเสร็จแล้ว) ในบัสเหตุการณ์ การไหลของเหตุการณ์นี้สามารถป้อนบริการอื่น ๆ (การรายงานการแจ้งเตือน ฯลฯ )
ความสามารถในการเปิดตัวเวิร์กโฟลว์ด้วยตนเองหรือด้วยการผลักดัน GIT หรือผ่านตัวกำหนดตารางเวลาหรือผ่าน webhook นอกเหนือจากด้านบนซีดียังสามารถเรียกใช้โดยใช้บัสกิจกรรม (Kafka หรือ RabbitMQ)
ความสามารถในการจัดการสภาพแวดล้อมที่หลากหลาย (เช่น dev/prod/staging) ในวิธีที่ปลอดภัยด้วยสิทธิ์การเข้าถึงแยก ในทางปฏิบัติสภาพแวดล้อมเป็นชุดของตัวแปรที่คุณสามารถใช้ภายในเวิร์กโฟลว์ของคุณ
ด้วย CDS คุณสามารถใช้ไปป์ไลน์การปรับใช้ในสภาพแวดล้อมการเตรียมการล่วงหน้าของคุณและใช้ไปป์ไลน์การปรับใช้เดียวกันกับสภาพแวดล้อมการผลิตของคุณ ความสามารถในการปรับใช้กับการผลิตสามารถ จำกัด เฉพาะกลุ่มผู้ใช้ที่จัดตั้งขึ้นล่วงหน้า
ผู้ใช้มีอิสระที่จะสร้างกลุ่มและจัดการผู้ใช้ในกลุ่มของพวกเขา กลุ่มสามารถมีสิทธิ์อ่านเขียนและดำเนินการโครงการและเวิร์กโฟลว์ของพวกเขา นอกจากนี้คุณยังสามารถ จำกัด การดำเนินการของท่อบางส่วนในบางกลุ่มหากคุณต้องการ
หากคุณใช้ซีดีเป็นเครื่องมือ CI / CD คุณอาจจะสร้างสิ่งประดิษฐ์ งานซีดีถูกแยกออกจากกัน แต่คุณสามารถส่งสิ่งประดิษฐ์จากงานหนึ่งไปยังอีกงานหนึ่งโดยใช้การอัพโหลดและการดาวน์โหลดสิ่งประดิษฐ์ ในตอนท้ายของงาน CDS ไฟล์ทั้งหมดจะถูกลบออกจากคนงาน เพื่อคงอยู่สิ่งประดิษฐ์ซีดีสามารถใช้ที่เก็บข้อมูลอย่างรวดเร็วหรือระบบไฟล์ที่กำหนด (ไม่แนะนำ)
ซีดีแสดงผลลัพธ์ของการทดสอบหน่วยและช่องโหว่ที่ตรวจพบอย่างชัดเจนระหว่างการสร้าง
โครงการซีดีเป็นเหมือนผู้เช่า ผู้ใช้ทุกคนสามารถสร้างโครงการ CDS โครงการนี้จะรวบรวมแอปพลิเคชันสภาพแวดล้อมท่อและเวิร์กโฟลว์แน่นอน
โครงการ CDS ถูกแยกออกจากกัน แต่กลุ่มเดียวกันอาจมีสิทธิ์ในการเข้าถึงหลายโครงการหากคุณต้องการ
โมเดลคนงานเป็นบริบทการปฏิบัติงานของคนงาน สมมติว่าคุณต้องทำงานที่ต้องใช้ Golang v1.11.5 ในซีดีคุณเพียงแค่ต้องสร้างโมเดล GO Worker ซึ่งมี GO ในเวอร์ชัน 1.11.5 โมเดลคนงานอาจเป็นภาพนักเทียบท่าภาพ OpenStack หรือภาพ vSphere แม้ว่าผู้ดูแลระบบซีดีสามารถเสนอรุ่นผู้ปฏิบัติงานที่ใช้ร่วมกัน แต่ผู้ใช้สามารถสร้างพนักงานแม่แบบของตัวเองได้หากพวกเขาต้องการ
ในโครงการ CDS คุณสามารถเพิ่มการรวมเข้าด้วยกันเช่น OpenStack, Kubernetes ฯลฯ ... สิ่งนี้จะนำเสนอคุณสมบัติภายในเวิร์กโฟลว์ของคุณ ตัวอย่างเช่นด้วยการรวม Kubernetes คุณสามารถเพิ่มคลัสเตอร์ของคุณเองลงในโครงการ CDS ของคุณและสามารถใช้แอปพลิเคชันแอปพลิเคชันปรับใช้เพื่อปรับใช้แอปพลิเคชันที่สร้างขึ้นใหม่ในคลัสเตอร์ของคุณในรูปแบบ HELM หากคุณต้องการ แน่นอนคุณสามารถพัฒนาการบูรณาการของคุณเอง
หลังจากอ่านคะแนนก่อนหน้านี้คุณเข้าใจ: การบริการตนเองมีอยู่ทุกที่ ผู้ใช้ทุกคนสามารถสร้างโครงการ/เวิร์กโฟลว์/คนงานโมเดล/แม่แบบเวิร์กโฟลว์/การกระทำ ... และทำงานในสภาพแวดล้อมที่แยกได้ทั้งหมด โครงการซีดีเป็นผู้สร้างซึ่งคุณสามารถเพิ่มการรวมเข้าด้วยกัน ทั้งหมดนี้ช่วยให้คุณมีซีดีหนึ่งอินสแตนซ์สำหรับ บริษัท ทั้งหมดของคุณ
สิ่งที่คุณสามารถทำได้กับ UI นั้นมีให้ผ่านอินเตอร์เฟสบรรทัดคำสั่ง (CLI) ชื่อ "CDSCTL" CDSCTL มีให้บริการในระบบปฏิบัติการทั้งหมด: Darwin, FreeBSD, Linux, OpenBSD ... CDSCTL จะช่วยให้คุณสร้างเปิดใช้งานส่งออกนำเข้าเวิร์กโฟลว์ของคุณตรวจสอบซีดีของคุณและนำทางผ่านโครงการและเวิร์กโฟลว์ของคุณ ไม่จำเป็นต้องไปที่ UI ของซีดีหรือผู้จัดการที่เก็บของคุณเพื่อตรวจสอบสถานะของการกระทำของคุณ, git push && cdsctl workflow --track จะแสดงเวิร์กโฟลว์ของคุณในบรรทัดคำสั่งของคุณ
คุณมีความต้องการระบบอัตโนมัติขั้นสูงมากขึ้นหรือความปรารถนาที่จะพัฒนาแอปพลิเคชันที่สอบถามซีดีหรือไม่? REST API และ SDK จะช่วยให้คุณพัฒนาซอฟต์แวร์ของคุณได้อย่างง่ายดาย
ซีดีได้รับการเปิดโอเพ่นซอร์สมาตั้งแต่เดือนตุลาคม 2559 คุณสามารถติดตั้งได้อย่างอิสระใน บริษัท ของคุณหรือที่บ้าน มีบทเรียนบางอย่างเพื่อช่วยให้คุณเริ่มต้นซีดีนักเทียบท่าติดตั้งติดตั้งด้วยไบนารี
ความพร้อมใช้งานสูงเป็นจุดสำคัญสำหรับเครื่องมือ CI / CD ซีดีไม่มีสัญชาติไม่มีอะไรถูกเก็บไว้ในระบบไฟล์ สิ่งนี้ทำให้เป็นไปได้ที่จะเปิดตัว APIs CDS หลายตัวที่อยู่เบื้องหลัง Load Balancer ดังนั้นคุณสามารถปรับขนาด API ของซีดีตามความต้องการของคุณ นอกจากนี้ยังช่วยให้การอัพเกรดซีดีในวันเต็มโดยไม่มีผลกระทบต่อผู้ใช้ ในการผลิต @OVH สามารถอัปเดตซีดีหลายครั้งต่อวันโดยไม่ส่งผลกระทบต่อผู้ใช้หรือหยุดพนักงานซีดี การขอให้ผู้ใช้ของคุณหยุดทำงานในขณะที่การอัปเดตเครื่องมือจัดส่งอย่างต่อเนื่องอาจเป็นเรื่องน่าขันใช่มั้ย -
CDS แสดงให้เห็นถึงข้อมูลการตรวจสอบ คุณจะสามารถป้อนอินสแตนซ์ของคุณ Prometheus หรือ Warp10 โดยใช้ Beamium
งานซีดีประกอบด้วยขั้นตอน แต่ละขั้นตอนคือการกระทำประเภทในตัว (สคริปต์, checkoutapplication, artifact upload/download ... ) คุณสามารถสร้างการกระทำของคุณโดยใช้การกระทำที่มีอยู่ - หรือพัฒนาการกระทำของคุณเป็นปลั๊กอิน ทุกภาษาได้รับการสนับสนุนตราบใดที่ภาษารองรับ GRPC
ซีดีเป็นผู้ไม่เชื่อเรื่องพระเจ้าและแพลตฟอร์ม ผู้ใช้สามารถเปิดงานบน Linux, Windows, FreeBSD, OS X, Raspberry ... ในเครื่องเสมือนวางวางไข่ตามความต้องการในคอนเทนเนอร์ Docker บนโฮสต์เฉพาะ
ดังนั้นหาก บริษัท ของคุณใช้เทคโนโลยีหลายอย่างซีดีจะไม่เป็นตัวบล็อกสำหรับการสร้างและปรับใช้ซอฟต์แวร์ภายในของคุณ
หนึ่งในวัตถุประสงค์เริ่มต้นของ CDS ที่ OVH: สร้างและปรับใช้แอปพลิเคชัน 150 เป็นคอนเทนเนอร์ในเวลาน้อยกว่า 7 นาที สิ่งนี้กลายเป็นความจริงมาตั้งแต่ปี 2558 คีย์ลับคืออะไร? ตามความต้องการอัตโนมัติ!
ดังนั้นคุณสามารถมีโมเดลคนงานหลายร้อยคนและเมื่อจำเป็นซีดีจะเริ่มต้นคนงานโดยใช้โรงเพาะฟัก
โรงเพาะฟักเป็นเหมือนศูนย์บ่มเพาะมันให้กำเนิดคนงานซีดีและสิทธิในการมีชีวิตและความตายเหนือพวกเขา
มีโรงเพาะฟักหลายประเภท:
ใช่แล้ว buzzwords หรือไม่ ondemand ขนาดอัตโนมัติหลายคลาวด์เป็นความจริงกับซีดี :-)
BSD 3 ประโยค