บูรณาการอย่างต่อเนื่องกับการจัดส่งอย่างต่อเนื่องเทียบกับการปรับใช้อย่างต่อเนื่อง


366

คำสามคำนี้แตกต่างกันอย่างไร มหาวิทยาลัยของฉันมีคำจำกัดความต่อไปนี้:

การรวมกันอย่างต่อเนื่องโดยทั่วไปหมายถึงว่าสำเนาการทำงานของนักพัฒนาจะซิงโครไนซ์กับการฉีดที่ใช้ร่วมกันหลายครั้งต่อวัน

การจัดส่งอย่างต่อเนื่องอธิบายว่าเป็นวิวัฒนาการเชิงตรรกะของการรวมอย่างต่อเนื่อง: สามารถนำผลิตภัณฑ์ไปสู่การผลิตได้เสมอ!

การปรับใช้อย่างต่อเนื่องอธิบายว่าเป็นขั้นตอนต่อไปแบบลอจิคัลหลังจากการส่งมอบอย่างต่อเนื่อง: ปรับใช้ผลิตภัณฑ์โดยอัตโนมัติในการผลิตเมื่อใดก็ตามที่ผ่านการควบคุมคุณภาพ!

พวกเขายังให้คำเตือน: บางครั้งคำว่า "การปรับใช้อย่างต่อเนื่อง" ก็จะถูกใช้หากคุณสามารถปรับใช้กับระบบทดสอบอย่างต่อเนื่อง

ทั้งหมดนี้ทำให้ฉันสับสน คำอธิบายใด ๆ ที่มีรายละเอียดเล็กน้อย (หรือมาพร้อมกับตัวอย่าง) จะได้รับการชื่นชม!


1
ฉันคิดว่าเหตุผลทางธุรกิจภายในโดเมนธุรกิจบางแห่งสามารถป้องกัน บริษัท จากการใช้รูปแบบการปรับใช้อย่างต่อเนื่อง ด้วยวิธีนี้จึงไม่ใช่ "ขั้นตอนต่อไปที่เป็นตรรกะ"
Jordan Stewart

2
@lambdarookie - คำอธิบายที่ดีที่สุดตลอดกาล !!! สั้นและตรงประเด็น :)
AlikElzin-kilaka

referenc ดีที่สุดสำหรับฉันatlassian.com/continuous-delivery/ci-vs-ci-vs-cd
ชารีฟ

แหล่งข้อมูลล่าสุดของฉันkatalon.com/resources-center/blog/ci-cd-introduction
Chris Smith

คำตอบ:


353

บูรณาการอย่างต่อเนื่อง

ฉันเห็นด้วยกับนิยามมหาวิทยาลัยของคุณ การรวมอย่างต่อเนื่องเป็นกลยุทธ์สำหรับวิธีที่นักพัฒนาสามารถรวมรหัสเข้ากับการฉีดอย่างต่อเนื่อง - ซึ่งแตกต่างจากบ่อยครั้ง

คุณอาจอ้างว่ามันเป็นเพียงกลยุทธ์การแยกสาขาในระบบควบคุมเวอร์ชันของคุณ

มันเกี่ยวกับขนาดของงานที่คุณมอบหมายให้นักพัฒนา หากงานประมาณว่าจะใช้เวลา 4-5 วันผู้พัฒนาก็จะไม่มีการกระตุ้นให้ส่งมอบอะไรเลยในอีก 4-5 วันข้างหน้าเพราะเขายังไม่ได้ทำอะไรเลย

เรื่องขนาด:

small task = continuous integration
big task   = frequent integration

ขนาดของงานในอุดมคติไม่ใหญ่กว่างานหนึ่งวัน วิธีนี้นักพัฒนาซอฟต์แวร์จะมีการรวมอย่างน้อยหนึ่งครั้งต่อวัน

จัดส่งอย่างต่อเนื่อง

มีสามโรงเรียนภายในการจัดส่งแบบต่อเนื่อง:

การส่งมอบอย่างต่อเนื่องเป็นส่วนขยายตามธรรมชาติของการรวมอย่างต่อเนื่อง

โรงเรียนนี้ดูชุดลายเซ็นของ Addison-Wesley "Martin Fowler"และทำให้สันนิษฐานว่าตั้งแต่รุ่น 2007 ถูกเรียกว่า"Integration Integration"และหนึ่งที่ตามมาในปี 2011 ถูกเรียกว่า"Delivery Delivery"พวกเขาอาจเป็นเล่ม 1 + 2 ความคิดแนวความคิดเดียวกันกับที่มีการทำอย่างต่อเนื่องบางสิ่งบางอย่าง

การส่งมอบอย่างต่อเนื่องเกี่ยวข้องกับการพัฒนาซอฟต์แวร์ Agile

โรงเรียนนี้มีแนวคิดที่ว่าการจัดส่งแบบต่อเนื่องเป็นเรื่องเกี่ยวกับความสามารถในการสนับสนุนหลักการในการเคลื่อนไหวที่คล่องตัวไม่เพียง แต่เป็นแนวคิดความคิดหรือจดหมายแสดงเจตจำนงแต่เพื่อความเป็นจริงในชีวิตจริง

การชดเชยในหลักการแรกในประกาศ Agileที่คำว่า "การจัดส่งอย่างต่อเนื่อง" ถูกใช้จริงเป็นครั้งแรก:

ลำดับความสำคัญสูงสุดของเราคือการสร้างความพึงพอใจให้กับลูกค้าผ่านการส่งมอบซอฟต์แวร์ที่มีคุณค่าก่อนและต่อเนื่อง

โรงเรียนนี้อ้างว่า "การจัดส่งต่อเนื่อง" เป็นกระบวนทัศน์ที่รวบรวมทุกสิ่งที่จำเป็นในการใช้การยืนยันอัตโนมัติของ"คำจำกัดความของการทำ" ของคุณ

โรงเรียนนี้ยอมรับว่า "การจัดส่งต่อเนื่อง" และคำพูดพึมพำหรือ megatrend "DevOps"เป็นด้านพลิกของเหรียญเดียวกันในแง่ที่ว่าพวกเขาทั้งสองพยายามที่จะโอบกอดหรือแค็บกระบวนทัศน์หรือแนวทางใหม่นี้ไม่ใช่แค่เทคนิค

การส่งมอบอย่างต่อเนื่องเป็นคำพ้องกับการปรับใช้อย่างต่อเนื่อง

โรงเรียนที่สามสนับสนุนว่าการปรับใช้อย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่องสามารถนำมาใช้แทนกันเพื่อหมายถึงสิ่งเดียวกัน

เมื่อสิ่งที่พร้อมอยู่ในมือของนักพัฒนาซอฟต์แวร์จะถูกส่งไปยังผู้ใช้ปลายทางทันทีซึ่งในกรณีส่วนใหญ่จะหมายความว่าควรปรับใช้กับสภาพแวดล้อมการผลิต ดังนั้น "การปรับใช้" และ "ส่ง" หมายถึงสิ่งเดียวกัน

โรงเรียนไหนให้เข้าร่วม

มหาวิทยาลัยของคุณเข้าร่วมโรงเรียนแห่งแรกอย่างชัดเจนและอ้างว่าเราอ้างถึงเล่ม 1 + 2 ของหนังสือชุดเดียวกัน ความคิดเห็นของฉันคือว่านี่เป็นการนำไปใช้ในทางที่ผิดของการจัดส่งอย่างต่อเนื่อง

ฉันเป็นการส่วนตัวเพื่อสนับสนุนความเข้าใจว่าการจัดส่งแบบต่อเนื่องเกี่ยวข้องกับการใช้งานการสนับสนุนในชีวิตจริงสำหรับแนวคิดและแนวคิดที่ระบุโดยขบวนการเปรียว ดังนั้นฉันจึงเข้าร่วมโรงเรียนที่กล่าวว่าคำนี้รวบรวมกระบวนทัศน์ทั้งหมด - เหมือน "DevOps"

โรงเรียนที่ใช้การส่งมอบเป็นคำพ้องกับการปรับใช้เป็นส่วนใหญ่สนับสนุนโดยเครื่องมือที่ผู้ขายที่สร้างการใช้งานคอนโซล, พยายามที่จะได้รับบิตของ hype จากการใช้อย่างแพร่หลายมากขึ้นของระยะการจัดส่งสินค้าอย่างต่อเนื่อง

การปรับใช้อย่างต่อเนื่อง

การมุ่งเน้นไปที่การปรับใช้อย่างต่อเนื่องนั้นส่วนใหญ่จะเกี่ยวข้องในโดเมนที่การเข้าถึงของผู้ใช้ปลายทางในการอัพเดตซอฟต์แวร์อาศัยการอัพเดทของแหล่งข้อมูลส่วนกลางบางแหล่งสำหรับข้อมูลนี้และแหล่งที่รวมส่วนกลางนี้ไม่ง่ายต่อการอัพเดทเสมอ โดยธรรมชาติ (เว็บ, SOA, ฐานข้อมูลเป็นต้น)

สำหรับโดเมนจำนวนมากที่ผลิตซอฟต์แวร์ที่ไม่มีแหล่งข้อมูลส่วนกลาง (อุปกรณ์ผลิตภัณฑ์เพื่อผู้บริโภคการติดตั้งไคลเอนต์ ฯลฯ ) หรือแหล่งข้อมูลส่วนกลางที่ง่ายต่อการอัพเดท (แอพเก็บระบบการจัดการสิ่งประดิษฐ์คลังโอเพ่นซอร์ส ฯลฯ ) ) แทบจะไม่มีโฆษณาใด ๆ เกี่ยวกับคำว่า Deployment อย่างต่อเนื่องเลย พวกเขาเพียงแค่ปรับใช้ มันไม่ใช่เรื่องใหญ่ - มันไม่ใช่ความเจ็บปวดที่ต้องมีสมาธิเป็นพิเศษ

ความจริงที่ว่าการปรับใช้อย่างต่อเนื่องไม่ใช่สิ่งที่น่าสนใจสำหรับทุกคนนอกจากนี้ยังเป็นข้อโต้แย้งว่าโรงเรียนที่อ้างว่า "การส่งมอบ" และ "นำไปใช้" เป็นคำพ้องความหมายที่ทำให้เกิดความผิดพลาด เนื่องจากการจัดส่งอย่างต่อเนื่องทำให้รู้สึกดีอย่างสมบูรณ์แบบสำหรับทุกคน - แม้ว่าคุณจะทำซอฟต์แวร์ฝังตัวในอุปกรณ์หรือปล่อยปลั๊กอินโอเพ่นซอร์สสำหรับกรอบงาน

คำจำกัดความของมหาวิทยาลัยของคุณว่าการปรับใช้อย่างต่อเนื่องเป็นขั้นตอนต่อไปโดยธรรมชาติของการจัดส่งแบบต่อเนื่องโดยนัยถือว่าทุกการจัดส่งที่มีการประกันคุณภาพควรจะมีให้สำหรับผู้ใช้ปลายทางทันทีใกล้กับคำจำกัดความที่ การเปิดตัว "ซึ่งในที่สุดก็เป็นอีกแนวคิดหนึ่งที่ไม่ได้มีเหตุผลสำหรับทุกคน

การเปิดตัวอาจเป็นเรื่องเชิงกลยุทธ์หรือการเมืองและไม่มีเหตุผลที่จะคิดว่าทุกคนต้องการทำเช่นนี้ตลอดเวลา (นอกเสียจากว่าพวกเขาจะเป็นร้านหนังสือออนไลน์ประเภท บริษัท ที่ให้บริการสตรีมมิ่ง) อย่างไรก็ตาม บริษัท ที่ไม่ได้สุ่มสี่สุ่มห้าปล่อยทุกอย่างตลอดเวลาอาจจะมีจำนวนเหตุผลใด ๆ ทำไมพวกเขาจะต้องการที่จะเป็นเจ้านายของการใช้งานอยู่แล้วดังนั้นพวกเขาก็ทำการปรับใช้อย่างต่อเนื่อง ไม่ออกสู่การผลิต แต่เป็นการปล่อยผู้สมัครเข้าสู่สภาพแวดล้อมที่คล้ายการผลิต

อีกครั้งฉันเชื่อว่ามหาวิทยาลัยของคุณผิดพลาด พวกเขาเข้าใจผิดว่า "การปรับใช้อย่างต่อเนื่อง" สำหรับ "การเปิดตัวต่อเนื่อง"

การปรับใช้อย่างต่อเนื่องเป็นเพียงวินัยอย่างต่อเนื่องที่จะสามารถย้ายผลลัพธ์ของกระบวนการพัฒนาไปสู่สภาพแวดล้อมที่เหมือนการผลิตซึ่งการทดสอบการทำงานสามารถดำเนินการได้อย่างเต็มที่

เรื่องราวการจัดส่งอย่างต่อเนื่อง

ในภาพมันมีชีวิตทั้งหมด:

ป้อนคำอธิบายรูปภาพที่นี่

กระบวนการบูรณาการอย่างต่อเนื่องเป็นสองการกระทำแรกในแผนภาพการเปลี่ยนสถานะ ซึ่ง - ถ้าประสบความสำเร็จ - kicks ปิดท่อการจัดส่งสินค้าอย่างต่อเนื่องที่ใช้ความหมายของการทำ การปรับใช้เป็นเพียงหนึ่งในหลาย ๆ การกระทำที่จะต้องทำอย่างต่อเนื่องในขั้นตอนนี้ เป็นการดีที่กระบวนการจะเป็นไปโดยอัตโนมัติจากจุดที่นักพัฒนามุ่งมั่นที่จะ VCS ไปยังจุดที่ท่อส่งได้รับการยืนยันว่าเรามีผู้สมัครที่ถูกต้องปล่อย


3
ถ้าคนคนหนึ่งเข้าใจว่าการทดสอบซอฟต์แวร์นั้นเกี่ยวกับอะไรความแตกต่างของ "เสมือนจริง" ทั้งหมดระหว่างการผสานรวม / การส่งมอบ / การใช้งาน / การวางจำหน่าย / การเผยแพร่อย่างต่อเนื่องไม่สมเหตุสมผลอีกต่อไป
CuongHuy ถึง

6
รูปภาพแตกคุณมีที่อื่นไหม
weston

คือนี้ภาพที่หายไป? ฉันพบที่อื่นด้วยชื่อไฟล์เดียวกัน
c24w

4
ฉันไม่เข้าใจว่าทำไมคนจำนวนมากโหวตคำตอบนี้ที่เริ่มต้นด้วย "ฉันเห็นด้วยกับคำจำกัดความของมหาวิทยาลัย" แล้วพูดว่า "ฉันเชื่อว่ามหาวิทยาลัยของคุณผิดพลาด" ฉันพบคำตอบนี้แม้ว่าจะใช้เวลานานและละเอียดกว่าทำให้สับสนและ overanalyzing เพียงแค่ค้นหาคำจำกัดความของ amazon และสิ่งที่ NoIce พูดในหัวข้อนี้ด้านล่าง นอกจากนี้โปรดหยุดการกำหนดกระบวนทัศน์หรือกลยุทธ์ด้วยคำว่า "นึกคิด" เช่นเดียวกับใน "อุดมคติของแต่ละงาน dev ควรมีความยาว 1 วัน" นี่ไม่ใช่กรณีในทางปฏิบัติหลายครั้งดังนั้นประเด็นคืออะไร ลองกำหนดกลยุทธ์และกระบวนทัศน์ที่ทำงานในชีวิตจริง
Ovi

3
@ Ovi-WanKenobi ส่วนที่เขาบอกว่าเขาเห็นด้วยกับมหาวิทยาลัยที่เขาพูดถึงคำจำกัดความของ Integration Integration และส่วนที่เขาบอกว่ามหาวิทยาลัยผิดที่เขาพูดเกี่ยวกับการใช้งานอย่างต่อเนื่องดังนั้นสิ่งหนึ่งที่ไม่เป็นโมฆะ ไม่ร่วมกัน แต่เพียงผู้เดียว นอกจากนี้คำตอบของ Nolce นั้นค่อนข้างสับสนและรูปแบบของคำตอบนั้นไม่ดึงดูดผู้คนให้อ่านแม้ว่ามันจะมีข้อมูลที่ดี (คนที่นี่มักจะตัดสินคำตอบตามรูปแบบก่อนที่จะอ่าน)
Alisson

84

ทั้งคำถามและคำตอบไม่เหมาะกับวิธีคิดที่เรียบง่ายของฉัน ฉันเป็นที่ปรึกษาและประสานคำจำกัดความเหล่านี้กับทีม Dev และคน DevOps หลายคน แต่อยากรู้ว่ามันตรงกับอุตสาหกรรมขนาดใหญ่อย่างไร:

โดยพื้นฐานแล้วฉันนึกถึงการฝึกที่คล่องแคล่วว่องไวในการส่งมอบอย่างต่อเนื่องเหมือนการต่อเนื่อง:

ไม่ต่อเนื่อง (ทุกอย่างด้วยตนเอง) 0% ----> การส่งมอบคุณค่าอย่างต่อเนื่อง 100% (ทุกอย่างอัตโนมัติ)

ขั้นตอนต่อการจัดส่งอย่างต่อเนื่อง:

ศูนย์. ไม่มีอะไรอัตโนมัติเมื่อ devs เช็คอินโค้ดคุณโชคดีที่คอมไพล์รันหรือทำการทดสอบใด ๆ ก่อนเช็คอิน

  1. สร้างอย่างต่อเนื่อง:สร้างโดยอัตโนมัติในทุกการเช็คอินซึ่งเป็นขั้นตอนแรก แต่ไม่ทำอะไรเลยเพื่อพิสูจน์การรวมการทำงานของรหัสใหม่

  2. การรวมอย่างต่อเนื่อง (CI):การสร้างและดำเนินการโดยอัตโนมัติสำหรับการทดสอบหน่วยอย่างน้อยที่สุดเพื่อพิสูจน์การรวมรหัสใหม่กับรหัสที่มีอยู่ แต่ควรทำการทดสอบการรวมเข้าด้วยกัน

  3. การปรับใช้อย่างต่อเนื่อง (CD):การปรับใช้อัตโนมัติเมื่อรหัสผ่าน CI อย่างน้อยในสภาพแวดล้อมการทดสอบโดยเฉพาะอย่างยิ่งในสภาพแวดล้อมที่สูงขึ้นเมื่อมีการพิสูจน์คุณภาพผ่านทาง CI หรือโดยการทำเครื่องหมายสภาพแวดล้อมที่ต่ำกว่าเป็นผ่านหลังจากการทดสอบด้วยตนเอง IE การทดสอบอาจเป็นคู่มือในบางกรณี แต่การส่งเสริมสภาพแวดล้อมต่อไปเป็นไปโดยอัตโนมัติ

  4. การส่งมอบอย่างต่อเนื่อง:การเผยแพร่อัตโนมัติและการเปิดตัวระบบในการผลิต นี่คือ CD สู่การผลิตรวมถึงการเปลี่ยนแปลงการกำหนดค่าอื่น ๆ เช่นการตั้งค่าสำหรับการทดสอบ A / B การแจ้งเตือนผู้ใช้คุณสมบัติใหม่การแจ้งเตือนการสนับสนุนเวอร์ชันใหม่และบันทึกการเปลี่ยนแปลง ฯลฯ

แก้ไข: ฉันต้องการจะชี้ให้เห็นว่ามีความแตกต่างระหว่างแนวคิดของ "การจัดส่งอย่างต่อเนื่อง" ตามที่อ้างถึงในหลักการแรกของ Agile Manifesto ( http://agilemanifesto.org/principles.html ) และการปฏิบัติของการจัดส่งต่อเนื่อง ดูเหมือนจะอ้างอิงตามบริบทของคำถาม หลักการของการจัดส่งอย่างต่อเนื่องคือการมุ่งมั่นที่จะลดปริมาณขยะในคลังสินค้าตามที่อธิบายไว้ในการคิดแบบลีน ( http://www.miconleansixsigma.com/8-wastes.html ) การฝึกการจัดส่งต่อเนื่อง (CD) โดยทีมเปรียวได้เกิดขึ้นในหลายปีนับตั้งแต่มีการประกาศ Agile Manicesto ในปีพ. ศ. 2544 การฝึกที่คล่องแคล่วนี้เน้นที่หลักการโดยตรงแม้ว่าจะแตกต่างกันและสับสนง่าย


5
สุดยอดที่ปรึกษา - ตอบ ฉันอยู่ในเรือลำเดียวกันกับคุณและฉันเห็นด้วยว่าควรมีคำตอบในโลกแห่งความเป็นจริงมากขึ้น แทนที่จะตอบวิทยาลัยหรือองค์กรที่ต้องการคำตอบทั่วไป
Suamere

62

ฉันคิดว่าคำนิยาม amazonตรงและเข้าใจง่าย

" การส่งมอบอย่างต่อเนื่องเป็นวิธีการพัฒนาซอฟต์แวร์ที่กระบวนการปล่อยเป็นแบบอัตโนมัติการเปลี่ยนแปลงซอฟต์แวร์ทั้งหมดจะถูกสร้างทดสอบและปรับใช้กับการผลิตโดยอัตโนมัติก่อนที่จะมีการผลักดันการผลิตขั้นสุดท้ายบุคคลการทดสอบอัตโนมัติหรือกฏทางธุรกิจจะตัดสินเมื่อ การผลักดันครั้งสุดท้ายควรเกิดขึ้นแม้ว่าการเปลี่ยนแปลงซอฟต์แวร์ที่ประสบความสำเร็จทุกครั้งจะถูกปล่อยสู่การผลิตทันทีพร้อมการส่งมอบอย่างต่อเนื่อง

การบูรณาการอย่างต่อเนื่องเป็นการฝึกการพัฒนาซอฟต์แวร์ที่สมาชิกของทีมใช้ระบบควบคุมเวอร์ชันและรวมการทำงานของพวกเขาเข้ากับสถานที่เดียวกันบ่อยครั้งเช่นสาขาหลัก การเปลี่ยนแปลงแต่ละครั้งจะถูกสร้างและตรวจสอบโดยการทดสอบและการตรวจสอบอื่น ๆ เพื่อตรวจหาข้อผิดพลาดในการรวมใด ๆ โดยเร็วที่สุด การรวมอย่างต่อเนื่องจะเน้นไปที่การสร้างและการทดสอบรหัสโดยอัตโนมัติเมื่อเทียบกับการส่งมอบอย่างต่อเนื่องซึ่งจะทำให้กระบวนการเปิดตัวซอฟต์แวร์ทั้งหมดอัตโนมัติไปสู่การผลิต "

กรุณาตรวจสอบhttp://docs.aws.amazon.com/codepipeline/latest/userguide/concepts.html


3
ฉันคิดว่าคำตอบนี้ต้องเป็นคำตอบที่ถูกต้องสำหรับคำถามนี้!
V. Kovpak

1
ใช่คำตอบนี้ง่ายที่สุดที่จะเข้าใจ
Aman Gupta - ShOoTeR

46

Atlassian โพสต์คำอธิบายที่ดีเกี่ยวกับการบูรณาการอย่างต่อเนื่องเมื่อเทียบกับการส่งมอบอย่างต่อเนื่องเมื่อเทียบกับการใช้งานอย่างต่อเนื่อง

CI-VS-CI-VS-cd

โดยสังเขป:

บูรณาการอย่างต่อเนื่อง - เป็นระบบอัตโนมัติในการสร้างและทดสอบแอปพลิเคชันเมื่อใดก็ตามที่มีการส่งมอบคอมมิทใหม่เข้าสู่สาขา

การส่งมอบอย่างต่อเนื่อง - เป็นการรวมอย่างต่อเนื่อง + นำแอปพลิเคชั่นไปใช้ในการผลิตโดย "คลิกที่ปุ่ม" (ปล่อยให้กับลูกค้าบ่อยครั้ง แต่ตามความต้องการ)

การปรับใช้อย่างต่อเนื่อง - เป็นการ จัดส่งอย่างต่อเนื่องแต่ไม่มีการแทรกแซงของมนุษย์ (ปล่อยให้ลูกค้ากำลังดำเนินการอยู่)


35

การรวมกันอย่างต่อเนื่องโดยทั่วไปหมายถึงว่าสำเนาการทำงานของนักพัฒนาจะซิงโครไนซ์กับการฉีดที่ใช้ร่วมกันหลายครั้งต่อวัน

หรือมากกว่าวันละหลายครั้ง บ่อยครั้งเท่าที่งานที่ไม่ต่อเนื่องใด ๆ ให้เสร็จสมบูรณ์โดยทั่วไป พิจารณาตัวอย่างทีมนักพัฒนาซอฟต์แวร์ที่ทำงานในแอปพลิเคชันธุรกิจเดียว ในหลายสภาวะแวดล้อมสิ่งต่อไปนี้อาจเกิดขึ้น:

  • นักพัฒนาซอฟต์แวร์หนึ่งหรือสองคนเก็บการเปลี่ยนแปลงในเครื่องไว้สองสามวันเพราะ "ยังไม่พร้อม"
  • ผู้พัฒนาหนึ่งหรือสองคนสร้างสาขาในตัวควบคุมแหล่งที่มาเพื่อให้พวกเขาสามารถทำงานกับคุณลักษณะ "โดยไม่ต้องกังวลกับการเปลี่ยนแปลงของผู้อื่น"

สิ่งเหล่านี้สามารถนำไปสู่ปัญหา รหัส / องค์กรงานที่ไม่ดีนำไปสู่การแตกแขนงการแตกแขนงนำไปสู่การผสานรวมเข้าด้วยกัน ... นำไปสู่ความทุกข์ การบูรณาการอย่างต่อเนื่องในฐานะที่เป็นแบบฝึกหัดนี้จะช่วยให้ทุกคนทำงานจากแหล่งข้อมูลเดียวกัน ไอเท็มงานแต่ละรายการควรแยกจากกันมากพอที่จะทำให้เสร็จในเวลาอันสั้น (มากที่สุดในชั่วโมง)

โดยทั่วไปแนวคิดทั่วไปคือการบูรณาการการเปลี่ยนแปลงเล็กน้อยในการทำงานจำนวนเล็กน้อย การบูรณาการการเปลี่ยนแปลงครั้งใหญ่เป็นงานที่มีขนาดใหญ่เกินควร ผลรวมของการรวมระบบมีขนาดเล็กลงหากทำในขั้นตอนเล็ก ๆ คงที่ สิ่งนี้ช่วยให้นักพัฒนาใช้เวลาในการทำงานกับคุณลักษณะที่มองเห็นได้ทางธุรกิจมากกว่าค่าใช้จ่ายในกระบวนการพัฒนา

การจัดส่งอย่างต่อเนื่องได้รับการอธิบายว่าเป็นวิวัฒนาการเชิงตรรกะของการรวมอย่างต่อเนื่อง: สามารถนำผลิตภัณฑ์ไปสู่การผลิตได้เสมอ!

สิ่งนี้เป็นไปตามแนวคิดเดียวกันของไอเท็มงานที่ไม่ต่อเนื่องที่กำหนดไว้อย่างดี หากมี codebase หลักเดียวซึ่งเคยปรับเพิ่มทีละน้อยโดยคุณสมบัติการทำงานที่สมบูรณ์และผ่านการทดสอบแล้วที่รู้จักกันนั้น codebase นั้นจะมีเสถียรภาพเสมอ การทดสอบอัตโนมัติเป็นกุญแจสำคัญที่นี่เพื่อให้สามารถพิสูจน์เสถียรภาพที่กดปุ่ม

งานที่มีความเสถียรน้อยกว่าที่ต้องทำ (ซึ่งอีกครั้งคือค่าใช้จ่ายในกระบวนการพัฒนาและควรถูกกำจัด) ยิ่งรหัสฐานสามารถถูกผลักไปยังสภาพแวดล้อมใดก็ตาม ในหลาย ๆ บริษัท การปรับใช้อาจเป็นกระบวนการที่ค่อนข้างทรหด แม้แต่การใช้งานบนดาดฟ้านานหนึ่งสัปดาห์ สิ่งนี้มีราคาแพงและไม่สร้างมูลค่าทางธุรกิจ ด้วยการใช้คำจำกัดความของรายการงานที่ดีการทดสอบอัตโนมัติที่มีประสิทธิภาพและการรวมอย่างต่อเนื่องทีมสามารถอยู่ในตำแหน่งที่จะทำให้การจัดส่งของ codebase อัตโนมัติไปยังสภาพแวดล้อมที่กำหนด

การปรับใช้อย่างต่อเนื่องอธิบายว่าเป็นขั้นตอนต่อไปแบบลอจิคัลหลังจากการส่งมอบอย่างต่อเนื่อง: ปรับใช้ผลิตภัณฑ์โดยอัตโนมัติในการผลิตเมื่อใดก็ตามที่ผ่านการควบคุมคุณภาพ!

คุณจะไม่ค่อยเห็นสิ่งนี้เกิดขึ้นในสภาพแวดล้อมทางธุรกิจและเป็นเรื่องที่น่ายินดีเมื่อพบ หาก codebase สามารถทดสอบได้โดยอัตโนมัติและปรับใช้กับสภาพแวดล้อมที่กำหนดโดยอัตโนมัติการผลิตคือสภาพแวดล้อมที่เหมือนกัน ดังนั้นหากทีมได้สร้างจนถึงจุดนี้แล้วมีความเป็นไปได้ที่จะสร้างมูลค่าที่สำคัญให้กับธุรกิจโดยสามารถปรับใช้การอัปเดตเพื่อการผลิตได้เสมอ

การแก้ไขข้อบกพร่องจะถูกส่งไปยังลูกค้าได้เร็วขึ้นคุณลักษณะใหม่ ๆ เข้าสู่ตลาดได้เร็วขึ้นความคิดใหม่ ๆ จะถูกทดสอบกับตลาดโดยเพิ่มขึ้นทีละน้อยเพื่อให้สามารถเปลี่ยนทิศทางของลำดับความสำคัญเป็นต้น

ตัวอย่างเช่นสมมติว่า บริษัท มีแนวคิดที่ยอดเยี่ยมสำหรับคุณลักษณะใหม่ในผลิตภัณฑ์หรือบริการที่ใช้ซอฟต์แวร์ พวกเขาได้ทำการวิจัยบางอย่างพวกเขารู้ว่าตลาดและพวกเขาเชื่อว่าความคิดนี้จะส่งผลให้มีรายได้ขึ้นบรรทัดใหม่ ตอนนี้ให้พิจารณาสองตัวเลือกสำหรับการส่งมอบคุณสมบัตินั้น:

  1. ใช้เวลาหลายเดือนในการพัฒนาสิ่งทั้งหมดในสาขาเดียว ใช้เวลาหลายสัปดาห์ในการรวมมันกลับเข้าไปใน codebase หลัก ใช้วันทดสอบ ใช้เวลาหนึ่งวันในการปรับใช้ และจากนั้นก็เริ่มติดตามรายรับจริงในระบบการผลิต
  2. ใช้คุณลักษณะส่วนเล็ก ๆ ทีละรายการ ในแต่ละสัปดาห์จะปล่อยชิ้นส่วนใหม่ของมัน ในแต่ละสัปดาห์จะได้รับข้อมูลเพิ่มเติมเกี่ยวกับรายได้ตามจริง

ในสถานการณ์แรกหากคุณสมบัติไม่มีผลกระทบต่อตลาดที่ต้องการเงินจำนวนมากสูญเปล่าไปกับสิ่งที่ลูกค้าไม่ต้องการ ในสถานการณ์ที่สองความจริงที่ว่าลูกค้าไม่ต้องการมีการกำหนดมากก่อนหน้านี้มากและส่วนที่เหลือของงานจะถูกจัดลำดับความสำคัญ


ในที่สุด "สิ่งต่อเนื่อง" เหล่านี้ล้วนเกี่ยวกับการขจัดค่าใช้จ่ายในกระบวนการพัฒนา หากรายรับของ บริษัท เป็นบริการที่เฉพาะเจาะจงดังนั้นค่าใช้จ่ายทั้งหมดควรเป็นไปตามข้อเสนอนั้น ค่าใช้จ่ายในกระบวนการพัฒนา (การรวมรหัสการทดสอบคุณสมบัติเดียวกันอีกครั้งหลังจากการผสานงานการปรับใช้ด้วยตนเองและอื่น ๆ ) ไม่ได้มีส่วนร่วมกับคุณค่าของบริการดังนั้นแนวคิดเหล่านี้จึงพยายามที่จะลบต้นทุนเหล่านั้นออกจากกระบวนการ


2
คำตอบนี้ใช้เมื่อคุณมีนักพัฒนาโหลหรือมากกว่านั้นและมีการใช้งาน stand-agile ที่ดีและงานจะถูกส่งผ่านเป็นชิ้นงานในแง่ของเวลา การบอกว่าฉันยังไม่ได้ทำงานในสภาพแวดล้อมที่งานไม่ใหญ่ขึ้นเสมอทำให้นิยามในอุดมคติและไม่เคยประสบความสำเร็จ ฉันอยากจะรู้จริงๆว่าทีมใดที่มีความคล่องตัวมาถึงขั้นนี้จริง ๆ โดยไม่มีการร้องเรียนที่ยอดเยี่ยมว่าเวลาที่คาดหวังสำหรับงานที่ได้รับมอบหมายนั้นสั้นอย่างไม่มีเหตุผล
MagicLAMP

22

หนึ่งกราฟสามารถแทนที่คำได้หลายคำ:

ป้อนคำอธิบายรูปภาพที่นี่

สนุก! :-)

# ฉันได้อัปเดตภาพที่ถูกต้อง ...


5
รูปภาพผิดไปเล็กน้อย ... การจัดส่งอย่างต่อเนื่องเป็นสิ่งที่ผู้ใช้ต้องเริ่มต้นด้วยการผลิต การปรับใช้อย่างต่อเนื่องเป็นสิ่งที่มีการกระตุ้นการผลิตโดยอัตโนมัติ
gharper

1
@amirouche ใช่ฉันได้ :)
simhumileco

2
ตกลงฉันอ่านรูปภาพผิด ที่จริงแล้วความแตกต่างระหว่างการจัดส่งอย่างต่อเนื่องและการปรับใช้ต่อเนื่องเป็นเพียงสีลูกศร ... IMO จะเห็นได้ชัดว่าแตกต่างกันมากขึ้นระหว่างทั้งสองถ้าวงกลมการผลิตอยู่นอกกรอบในการจัดส่งอย่างต่อเนื่อง
amirouche

1
ความแตกต่างระหว่างการทดสอบการยอมรับและการทดสอบการรวมในภาพเหล่านี้คืออะไร?
Jonah

6

ความแตกต่างระหว่างการรวมอย่างต่อเนื่องการจัดส่งอย่างต่อเนื่องและการปรับใช้อย่างต่อเนื่อง

ป้อนคำอธิบายรูปภาพที่นี่


4

ฉันคิดว่าเรากำลังวิเคราะห์และอาจทำให้คำศัพท์ "ต่อเนื่อง" มีความซับซ้อน ในบริบทนี้หมายถึงระบบอัตโนมัติอย่างต่อเนื่อง สำหรับคำอื่น ๆ ที่แนบมากับ "ต่อเนื่อง" ให้ใช้ภาษาอังกฤษเป็นคู่มือการแปลของคุณและอย่าพยายามทำให้สิ่งต่าง ๆ ซับซ้อนขึ้น! ใน "build อย่างต่อเนื่อง" เราจะสร้างโดยอัตโนมัติ (เขียน / คอมไพล์ / ลิงค์ / ฯลฯ ) แอปพลิเคชันของเราเป็นสิ่งที่สามารถใช้งานได้สำหรับแพลตฟอร์ม / คอนเทนเนอร์ / รันไทม์ / ฯลฯ "การรวมอย่างต่อเนื่อง" หมายความว่าการทำงานใหม่ของคุณทดสอบและดำเนินการตามที่ตั้งใจเมื่อมีปฏิสัมพันธ์กับหน่วยงานอื่น เห็นได้ชัดว่าก่อนการรวมจะเกิดขึ้นการสร้างจะต้องเกิดขึ้นและการทดสอบอย่างละเอียดก็จะถูกใช้เพื่อตรวจสอบการรวมตัว ดังนั้นใน "การรวมอย่างต่อเนื่อง" เราใช้ระบบอัตโนมัติเพื่อเพิ่มมูลค่าให้กับฟังก์ชั่นที่มีอยู่ในวิธีที่ไม่รบกวนการทำงานที่มีอยู่ในทางลบ แต่รวมเข้ากับมันได้อย่างดี แต่เป็นการเพิ่มคุณค่าให้กับการรับรู้ทั้งหมด การรวมหมายถึงตามคำจำกัดความภาษาอังกฤษของมันเท่านั้นสิ่งต่าง ๆ ที่พูดกันอย่างกลมกลืนดังนั้นในโค้ด - พูดถึงการคอมไพล์การเชื่อมโยงการทดสอบและการทำงานของฉันอย่างสมบูรณ์ภายในทั้งหมด คุณจะไม่เรียกบางสิ่งบางอย่างแบบบูรณาการถ้ามันล้มเหลวในผลิตภัณฑ์สุดท้ายคุณจะ! ในบริบทของเรา "การปรับใช้อย่างต่อเนื่อง" มีความหมายเหมือนกันกับ "การส่งมอบอย่างต่อเนื่อง" ตั้งแต่สิ้นวันเราได้มอบฟังก์ชันการทำงานให้กับลูกค้าของเรา อย่างไรก็ตามโดยการวิเคราะห์สิ่งนี้ฉันสามารถยืนยันว่าการปรับใช้เป็นส่วนย่อยของการจัดส่งเพราะการใช้งานบางอย่างไม่ได้แปลว่าเรานำส่ง เราปรับใช้รหัส แต่เนื่องจากเราไม่ได้ ไม่สื่อสารกับผู้มีส่วนได้ส่วนเสียอย่างมีประสิทธิภาพเราล้มเหลวในการส่งมอบจากมุมมองทางธุรกิจ! เราส่งกองทหาร แต่เราไม่ได้ส่งน้ำและอาหารตามสัญญาไปยังเมืองใกล้เคียง ถ้าฉันต้องเพิ่มคำว่า "การเปลี่ยนแปลงอย่างต่อเนื่อง" จะมีบุญของตัวเองหรือไม่ ท้ายที่สุดอาจเป็นการดีกว่าที่จะอธิบายการเคลื่อนที่ของรหัสผ่านสภาพแวดล้อมเนื่องจากมีความหมายของ "จาก / ถึง" มากกว่าการใช้งานหรือการจัดส่งซึ่งอาจบ่งบอกถึงสถานที่เดียวเท่านั้นในความเป็นอมตะ! นี่คือสิ่งที่เราได้รับหากเราไม่ใช้สามัญสำนึก มันจะมีข้อดีของตัวเองหรือไม่ ท้ายที่สุดอาจเป็นการดีกว่าที่จะอธิบายการเคลื่อนที่ของรหัสผ่านสภาพแวดล้อมเนื่องจากมีความหมายของ "จาก / ถึง" มากกว่าการใช้งานหรือการจัดส่งซึ่งอาจบ่งบอกถึงสถานที่เดียวเท่านั้นในความเป็นอมตะ! นี่คือสิ่งที่เราได้รับหากเราไม่ใช้สามัญสำนึก มันจะมีข้อดีของตัวเองหรือไม่ ท้ายที่สุดอาจเป็นการดีกว่าที่จะอธิบายการเคลื่อนที่ของรหัสผ่านสภาพแวดล้อมเนื่องจากมีความหมายของ "จาก / ถึง" มากกว่าการใช้งานหรือการจัดส่งซึ่งอาจบ่งบอกถึงสถานที่เดียวเท่านั้นในความเป็นอมตะ! นี่คือสิ่งที่เราได้รับหากเราไม่ใช้สามัญสำนึก

โดยสรุปนี่เป็นสิ่งง่าย ๆ ที่จะอธิบาย (การทำมันซับซ้อนกว่าเล็กน้อย ... ซับซ้อน!) เพียงใช้สามัญสำนึกภาษาอังกฤษและคุณก็สบายดี


3
โปรดดูที่วิธีการตอบ
xenteros

3

การบูรณาการอย่างต่อเนื่อง:การฝึกการผสานการพัฒนากับสาขาหลักอย่างต่อเนื่องเพื่อให้รหัสได้รับการทดสอบบ่อยที่สุดเท่าที่จะทำได้เพื่อตรวจจับปัญหาก่อน

การส่งมอบอย่างต่อเนื่อง:การส่งมอบรหัสอย่างต่อเนื่องไปยังสภาพแวดล้อมเมื่อรหัสพร้อมที่จะจัดส่ง นี่อาจเป็นการแสดงละครหรือการผลิต แนวคิดคือผลิตภัณฑ์ถูกส่งไปยังฐานผู้ใช้ซึ่งสามารถเป็น QA หรือลูกค้าเพื่อตรวจสอบและตรวจสอบ

การทดสอบหน่วยในระหว่างเฟสการรวมอย่างต่อเนื่องไม่สามารถจับข้อบกพร่องและตรรกะทางธุรกิจทั้งหมดโดยเฉพาะอย่างยิ่งปัญหาการออกแบบนั่นคือเหตุผลที่เราต้องใช้ QA หรือสภาพแวดล้อมในการจัดเตรียมสำหรับการทดสอบ

การปรับใช้อย่างต่อเนื่อง:การปรับใช้หรือปล่อยรหัสทันทีที่พร้อม การปรับใช้อย่างต่อเนื่องต้องการการรวมอย่างต่อเนื่องและการจัดส่งอย่างต่อเนื่องมิฉะนั้นคุณภาพของรหัสจะไม่รับประกันในการเปิดตัว

การปรับใช้อย่างต่อเนื่อง ~~ บูรณาการอย่างต่อเนื่อง + การส่งมอบอย่างต่อเนื่อง


2

ไดอะแกรม CI / CD

บูรณาการอย่างต่อเนื่อง

  • อัตโนมัติ (การสร้างเช็คอิน + การทดสอบหน่วย)

จัดส่งอย่างต่อเนื่อง

  • บูรณาการอย่างต่อเนื่อง
  • อัตโนมัติ (ปรับใช้เพื่อทดสอบสภาพแวดล้อม + ทดสอบโหลด + ทดสอบบูรณาการ)
  • คู่มือ (ปรับใช้กับการผลิต)

การปรับใช้อย่างต่อเนื่อง

  • การส่งมอบอย่างต่อเนื่องแต่อัตโนมัติ (การปรับใช้กับการผลิต)

CI / CD คือการเดินทาง ไม่ใช่ปลายทาง

ขั้นตอนเหล่านี้เป็นคำแนะนำ คุณสามารถปรับขั้นตอนตามความต้องการทางธุรกิจของคุณ บางขั้นตอนสามารถทำซ้ำได้สำหรับการทดสอบความปลอดภัยและประสิทธิภาพหลายประเภท ขึ้นอยู่กับความซับซ้อนของโครงการและโครงสร้างทีมของคุณบางขั้นตอนสามารถทำซ้ำได้หลายครั้งในระดับที่แตกต่างกัน ตัวอย่างเช่นผลิตภัณฑ์สุดท้ายของทีมหนึ่งสามารถพึ่งพาในโครงการของทีมต่อไป ซึ่งหมายความว่าผลิตภัณฑ์สุดท้ายของทีมแรกจะถูกจัดฉากเป็นสิ่งประดิษฐ์ในโครงการของทีมต่อไป

เชิงอรรถ:

ฝึกการบูรณาการอย่างต่อเนื่องและการส่งมอบอย่างต่อเนื่องใน AWS


2

ที่มา: https://thenucleargeeks.com/2020/01/21/continuous-integration-vs-continuous-delivery-vs-continuous-deployment/

อะไรคือการผสมผสานอย่างต่อเนื่องการรวม อย่างต่อเนื่องคือกระบวนการหรือการฝึกฝนการพัฒนาของการสร้างอัตโนมัติและการทดสอบอัตโนมัติเช่นผู้พัฒนาจำเป็นต้องยอมรับรหัสของเขาหลาย ๆ ครั้งในที่เก็บข้อมูลที่ใช้ร่วมกัน

หากบิลด์ล้มเหลว / สำเร็จจะแจ้งให้ผู้พัฒนาทราบและจากนั้นเขาสามารถดำเนินการที่เกี่ยวข้องได้

การส่งมอบอย่างต่อเนื่องคืออะไรการจัดส่ง อย่างต่อเนื่องคือวิธีปฏิบัติที่เราให้โค้ดของเราสามารถนำไปใช้ได้ทุกจุดที่ผ่านการทดสอบทั้งหมดและมีการกำหนดค่าที่จำเป็นทั้งหมดเพื่อส่งรหัสไปยังการผลิต แต่ยังไม่ได้ปรับใช้

การปรับใช้อย่างต่อเนื่องคืออะไร ด้วยความช่วยเหลือของ CI เราได้สร้างบิลด์สำหรับแอปพลิเคชันของเราและพร้อมที่จะผลักดันการผลิต ในขั้นตอนนี้งานสร้างของเราพร้อมแล้วและด้วยซีดีเราสามารถปรับใช้แอปพลิเคชันของเราโดยตรงกับสภาพแวดล้อม QA และหากทุกอย่างเป็นไปด้วยดีเราสามารถปรับใช้งานบิลด์เดียวกันกับการผลิตได้

ดังนั้นโดยทั่วไปการปรับใช้อย่างต่อเนื่องเป็นขั้นตอนเดียวที่ไกลกว่าการส่งมอบอย่างต่อเนื่อง ด้วยวิธีนี้การเปลี่ยนแปลงทุกอย่างที่ผ่านขั้นตอนการผลิตทั้งหมดของคุณจะถูกปล่อยให้กับลูกค้าของคุณ

การปรับใช้อย่างต่อเนื่องเป็นการรวมกันของการจัดการการกำหนดค่าและการบรรจุ

การจัดการการกำหนดค่า: CM คือทั้งหมดที่เกี่ยวกับการบำรุงรักษาการกำหนดค่าเซิร์ฟเวอร์ซึ่งจะเข้ากันได้กับความต้องการของแอปพลิเคชัน

การวางตู้คอนเทนเนอร์ : การวางตู้คอนเทนเนอร์เป็นชุดเก็บค่าผ่านทางซึ่งจะรักษาความสม่ำเสมอของสภาพแวดล้อม

Img source: https://www.atlassian.com/

แหล่งที่มาของภาพ: https://www.atlassian.com/


1

DevOps คือการรวมกันของ 3C ของ - อย่างต่อเนื่อง , การสื่อสาร , การทำงานร่วมกันและนำไปสู่นี้เพื่อเน้นเฉพาะในอุตสาหกรรมต่างๆ

ในโลกของอุปกรณ์ที่เชื่อมต่อ IoT คุณสมบัติการต่อสู้หลายอย่างเช่นเจ้าของผลิตภัณฑ์เว็บมือถือและระบบประกันคุณภาพทำงานอย่างคล่องแคล่วในการต่อสู้รอบการต่อสู้เพื่อส่งมอบผลิตภัณฑ์ให้กับลูกค้า

บูรณาการอย่างต่อเนื่อง:คุณสมบัติการต่อสู้หลายอย่างทำงานพร้อมกันหลายจุดปลาย

การส่งมอบอย่างต่อเนื่อง:ด้วยการรวมและการปรับใช้การส่งมอบผลิตภัณฑ์ไปยังลูกค้าหลายรายที่ต้องจัดการในเวลาเดียวกัน

การปรับใช้อย่างต่อเนื่อง:ผลิตภัณฑ์หลายตัวถูกปรับใช้กับลูกค้าหลายรายที่หลายแพลตฟอร์ม

รับชมสิ่งนี้เพื่อทราบว่า DevOps ทำให้ IoT เชื่อมต่อโลกได้อย่างไร: https://youtu.be/nAfZt2t4HqA


0

จากสิ่งที่ฉันได้เรียนรู้กับ Alex Cowan ในหลักสูตรContinuous Delivery & DevOps CI และ CD เป็นส่วนหนึ่งของขั้นตอนการผลิตผลิตภัณฑ์ซึ่งประกอบไปด้วยเวลาที่มันเริ่มจากการสังเกตการณ์ไปยังผลิตภัณฑ์ที่วางจำหน่าย

ท่อส่งผลิตภัณฑ์ของ Alex Cowan, 2018

จากการสังเกตไปจนถึงการออกแบบเป้าหมายคือเพื่อให้ได้แนวคิดที่ทดสอบได้คุณภาพสูง ส่วนหนึ่งของกระบวนการนี้ถือว่าได้รับการออกแบบอย่างต่อเนื่อง

จะเกิดอะไรขึ้นเมื่อเราไปจากจรรยาบรรณต่อไปนี้ถือว่าเป็นความสามารถในการจัดส่งอย่างต่อเนื่องโดยมีจุดประสงค์เพื่อดำเนินการความคิดและเผยแพร่ให้กับลูกค้าอย่างรวดเร็ว (คุณสามารถอ่านหนังสือ Jez Humble การจัดส่งอย่างต่อเนื่อง: เผยแพร่ซอฟต์แวร์ที่เชื่อถือได้ และการปรับใช้อัตโนมัติสำหรับรายละเอียดเพิ่มเติม) ขั้นตอนต่อไปนี้จะอธิบายว่าขั้นตอนการรวมอย่างต่อเนื่อง (CI) และการจัดส่งต่อเนื่อง (CD) ประกอบด้วยอะไรบ้าง

Alex Cowan CI / CD

อย่างต่อเนื่องบูรณาการเป็นแม็ทเทีย Petter Johansson อธิบาย ,

คือเมื่อทีมซอฟต์แวร์มีพฤติกรรมการรวมหลายครั้งต่อวันและพวกเขามีระบบการตรวจสอบอัตโนมัติเพื่อตรวจสอบการรวมเข้าด้วยกันเพื่อหาปัญหา

(คุณสามารถรับชมวิดีโอสองรายการต่อไปนี้เพื่อดูภาพรวมที่ละเอียดยิ่งขึ้นโดยใช้ CircleCI - เริ่มต้นใช้งาน CircleCI - การผสานรวมอย่างต่อเนื่อง P2และการเรียกใช้ CircleCI ตามคำขอดึง )

หนึ่งสามารถระบุไปป์ไลน์ CI / CD ดังต่อไปนี้ซึ่งเปลี่ยนจากรหัสใหม่ไปยังผลิตภัณฑ์ที่วางจำหน่าย

ท่อส่งต่อเนื่องของ Alex Cowan, 2018

สามขั้นตอนแรกนั้นเกี่ยวกับการทดสอบเพื่อขยายขอบเขตของสิ่งที่ทดสอบ

ในทางตรงกันข้ามการปรับใช้อย่างต่อเนื่องคือการจัดการการปรับใช้โดยอัตโนมัติ ดังนั้นรหัสใด ๆ ที่ส่งผ่านขั้นตอนการทดสอบอัตโนมัติจะถูกปล่อยออกไปสู่การผลิตโดยอัตโนมัติ

หมายเหตุ : นี่ไม่จำเป็นว่าท่อของคุณควรมีลักษณะอย่างไร แต่สามารถใช้เป็นข้อมูลอ้างอิงได้


0

ปล่อยให้มันสั้น:

CI: การพัฒนาซอฟต์แวร์ที่สมาชิกของทีมรวมงานอย่างน้อยทุกวัน การรวมแต่ละครั้งจะถูกตรวจสอบโดยการสร้างอัตโนมัติ (รวมการทดสอบ) เพื่อตรวจหาข้อผิดพลาดโดยเร็วที่สุด CD: CD Builds บน CI ที่ซึ่งคุณสร้างซอฟต์แวร์ในลักษณะที่ซอฟท์แวร์สามารถเผยแพร่เพื่อผลิตได้ตลอดเวลา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.