อ้างอิง: วิธีการทำงานของกระบวนการบูรณาการอย่างต่อเนื่อง

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

อ้างอิง: วิธีการทำงานของกระบวนการบูรณาการอย่างต่อเนื่อง
/flickr/ อัลตุก คารากอค / CC BY / แก้ไขรูปภาพแล้ว

เทอม

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

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

คำว่า การบูรณาการอย่างต่อเนื่อง ปรากฏครั้งแรกในปี พ.ศ. 1991 ได้รับการแนะนำโดยผู้สร้างภาษา UML เกรดี้ บุทช์ (เกรดี้ บูช). วิศวกรได้แนะนำแนวคิดของ CI ซึ่งเป็นส่วนหนึ่งของแนวทางการพัฒนาของเขาเอง - วิธีบูช. มันบ่งบอกถึงการปรับปรุงสถาปัตยกรรมที่เพิ่มขึ้นเมื่อออกแบบระบบเชิงวัตถุ Gradi ไม่ได้อธิบายข้อกำหนดใดๆ สำหรับการบูรณาการอย่างต่อเนื่อง แต่ต่อมาในหนังสือของเขา”การวิเคราะห์และการออกแบบเชิงวัตถุพร้อมแอปพลิเคชัน“เขากล่าวว่าเป้าหมายของวิธีการนี้คือการเร่งการเผยแพร่ “การเผยแพร่ภายใน”

เรื่องราว

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

ในช่วงต้นทศวรรษ 2000 หนึ่งในผู้ก่อตั้ง Agile Alliance เริ่มส่งเสริมวิธีการบูรณาการอย่างต่อเนื่อง มาร์ติน ฟาวเลอร์ (มาร์ติน ฟาวเลอร์). การทดลองของเขากับ CI นำไปสู่เครื่องมือซอฟต์แวร์ตัวแรกในด้านนี้ - CruiseControl ยูทิลิตี้นี้สร้างขึ้นโดย Matthew Foemmel เพื่อนร่วมงานของ Martin

วงจรการสร้างในเครื่องมือถูกนำมาใช้เป็น daemon ซึ่งจะตรวจสอบระบบควบคุมเวอร์ชันเป็นระยะๆ เพื่อดูการเปลี่ยนแปลงในฐานโค้ด สามารถดาวน์โหลดวิธีแก้ปัญหาได้แล้ววันนี้-มัน จัดจำหน่ายโดย ภายใต้ใบอนุญาตแบบ BSD

ด้วยการถือกำเนิดของซอฟต์แวร์สำหรับ CI บริษัทต่างๆ ก็เริ่มนำแนวปฏิบัตินี้มาใช้มากขึ้นเรื่อยๆ จากการวิจัยของ Forrester [หน้า 5 รายงาน] ในปี 2009 86% ของบริษัทเทคโนโลยีห้าสิบแห่งที่สำรวจใช้หรือนำวิธี CI ไปใช้

ปัจจุบัน องค์กรจากหลากหลายอุตสาหกรรมใช้แนวปฏิบัติของการรวมอย่างต่อเนื่อง ในปี 2018 ผู้ให้บริการคลาวด์รายใหญ่ได้ทำการสำรวจในหมู่ผู้เชี่ยวชาญด้านไอทีจากบริษัทต่างๆ ในภาคบริการ การศึกษา และการเงิน จากผู้ตอบแบบสอบถามหกพันคน 58% กล่าวว่าพวกเขาใช้เครื่องมือและหลักการ CI ในการทำงาน

Какэтоработает

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

แผนภาพกระบวนการทั่วไปสามารถแสดงได้ดังนี้:

อ้างอิง: วิธีการทำงานของกระบวนการบูรณาการอย่างต่อเนื่อง

วิธีการ CI กำหนดข้อกำหนดหลายประการสำหรับนักพัฒนา:

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

ปัญหาในการดำเนินการ

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

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

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

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

อ้างอิง: วิธีการทำงานของกระบวนการบูรณาการอย่างต่อเนื่อง
/flickr/ พวกเขา / CC BY-SA

ใครใช้.

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

การบูรณาการอย่างต่อเนื่องยังช่วยบริษัทขนาดเล็กอีกด้วย และเครื่องมือ CI ก็ถูกใช้โดยองค์กรทางการเงินและการดูแลสุขภาพด้วยเช่นกัน ตัวอย่างเช่น ที่ Morningstar บริการบูรณาการอย่างต่อเนื่องช่วยแก้ไขช่องโหว่ได้เร็วขึ้น 70% และแพลตฟอร์มทางการแพทย์ของ Philips Healthcare ก็สามารถเพิ่มความเร็วการทดสอบการอัปเดตได้เป็นสองเท่า

เครื่องมือ

นี่คือเครื่องมือยอดนิยมบางส่วนสำหรับ CI:

  • เจนกิ้นส์ เป็นหนึ่งในระบบ CI ที่ได้รับความนิยมมากที่สุด รองรับปลั๊กอินมากกว่าหนึ่งพันปลั๊กอินสำหรับการทำงานร่วมกับ VCS แพลตฟอร์มคลาวด์และบริการอื่น ๆ เรายังใช้ Jenkins ที่ 1cloud: tool รวมอยู่ในระบบ DevOps ของเรา. เขาตรวจสอบสาขา Git ที่มีไว้สำหรับการทดสอบเป็นประจำ
  • บิลด์บอท — กรอบงาน Python สำหรับเขียนกระบวนการบูรณาการอย่างต่อเนื่องของคุณเอง การตั้งค่าเริ่มต้นของเครื่องมือค่อนข้างซับซ้อน แต่ได้รับการชดเชยด้วยตัวเลือกการปรับแต่งที่หลากหลาย ในบรรดาข้อดีของกรอบงาน ผู้ใช้เน้นย้ำถึงความเข้มข้นของทรัพยากรที่ต่ำ
  • ฝูงชน CI เป็นเซิร์ฟเวอร์จาก Pivotal ที่ใช้คอนเทนเนอร์ Docker Concourse CI ผสานรวมกับเครื่องมือและระบบควบคุมเวอร์ชัน นักพัฒนาทราบว่าระบบนี้เหมาะสำหรับงานในบริษัททุกขนาด
  • Gitlab CI เป็นเครื่องมือที่สร้างไว้ในระบบควบคุมเวอร์ชัน GitLab บริการทำงานบนคลาวด์และใช้ไฟล์ YAML ในการกำหนดค่า เช่นเดียวกับ Concourse, Gitlab CI ใช้ คอนเทนเนอร์นักเทียบท่าที่ช่วยแยกกระบวนการที่แตกต่างกันออกจากกัน
  • รหัส เป็นเซิร์ฟเวอร์ CI คลาวด์ที่ทำงานร่วมกับ GitHub, GitLab และ BitBucket แพลตฟอร์มนี้ไม่ต้องการการตั้งค่าเริ่มต้นที่ใช้เวลานาน - กระบวนการ CI ที่ติดตั้งไว้ล่วงหน้าแบบมาตรฐานมีอยู่ใน Codeship สำหรับโปรเจ็กต์ขนาดเล็ก (สูงสุด 100 บิวด์ต่อเดือน) และโปรเจ็กต์โอเพ่นซอร์ส Codeship มีให้บริการฟรี

เนื้อหาจากบล็อกองค์กรของเรา:

ที่มา: will.com

เพิ่มความคิดเห็น