เมื่อก่อนเรา เกี่ยวกับบูรณาการอย่างต่อเนื่อง (CI) มาต่อด้วยการส่งมอบอย่างต่อเนื่อง นี่คือชุดวิธีการพัฒนาซอฟต์แวร์ ช่วยให้แน่ใจว่าโค้ดของคุณพร้อมสำหรับการใช้งาน
/พิกซาเบย์/ /
เรื่องราว
วลีการจัดส่งแบบต่อเนื่องสามารถเห็นได้อีกครั้ง ตั้งแต่ปี 2001 ในตอนต้นของรายการหลักการพื้นฐาน: “สิ่งสำคัญคือการแก้ปัญหาของลูกค้าผ่านการส่งมอบซอฟต์แวร์ที่ทันสมัยอย่างต่อเนื่อง”
ในปี 2010 Jez Humble และ David Farley ออกฉาย โดยการส่งมอบอย่างต่อเนื่อง ตามที่ผู้เขียนกล่าวไว้ ซีดีช่วยเสริมแนวทางนี้ และช่วยให้คุณเตรียมโค้ดสำหรับการปรับใช้ได้ง่ายขึ้น
หลังจากการตีพิมพ์หนังสือเล่มนี้ แนวทางนี้เริ่มได้รับความนิยมและในเวลาเพียงไม่กี่ปีก็เกือบจะเป็นที่ยอมรับในระดับสากล ตาม ซึ่งดำเนินการในหมู่นักพัฒนาและผู้จัดการฝ่ายไอทีมากกว่า 600 รายในปี 2014 โดย 97% ของผู้จัดการด้านเทคนิคและ 84% ของโปรแกรมเมอร์คุ้นเคยกับการใช้งานแบบต่อเนื่อง
ตอนนี้แนวทางนี้ยังคงเป็นหนึ่งในแนวทางที่ได้รับความนิยมมากที่สุด จากการศึกษาในปี 2018 ที่เกี่ยวข้องกับชุมชนไอที DevOps และ Jenkins Community ครึ่งหนึ่งของผู้ตอบแบบสอบถามมากกว่าพันคนที่ตอบแบบสำรวจ
การจัดส่งแบบต่อเนื่องทำงานอย่างไร
พื้นฐานซีดีคือความพร้อมของโค้ดสำหรับการปรับใช้ เพื่อให้งานนี้สำเร็จ จะใช้กระบวนการอัตโนมัติในการเตรียมซอฟต์แวร์สำหรับการเปิดตัว ควรเป็นมาตรฐานในสภาพแวดล้อมการพัฒนาที่แตกต่างกัน ซึ่งจะช่วยค้นหาจุดอ่อนและเพิ่มประสิทธิภาพได้อย่างรวดเร็ว เช่น เร่งการทดสอบ
ตัวอย่างของกระบวนการจัดส่งแบบต่อเนื่องมีลักษณะดังนี้:

หากแนวทางการรวมแบบต่อเนื่องมีหน้าที่รับผิดชอบในการทำให้สองขั้นตอนแรกเป็นอัตโนมัติ การจัดส่งแบบต่อเนื่องจะรับผิดชอบในสองขั้นตอนถัดไป ระบบรับประกันความเสถียรของกระบวนการ เหนือสิ่งอื่นใด . พวกเขาติดตามการเปลี่ยนแปลงในโครงสร้างพื้นฐาน ฐานข้อมูล และการขึ้นต่อกัน การปรับใช้นั้นอาจเป็นแบบอัตโนมัติหรือดำเนินการด้วยตนเองก็ได้
ข้อกำหนดต่อไปนี้ถูกกำหนดไว้ในกระบวนการ:
- ความพร้อมใช้งานของข้อมูลเกี่ยวกับความพร้อมในการเข้าสู่สภาพแวดล้อมการผลิตและความพร้อมสำหรับการเผยแพร่ทันที (เครื่องมือซีดีทดสอบโค้ดและทำให้สามารถประเมินผลกระทบของการเปลี่ยนแปลงในการเผยแพร่)
- ความรับผิดชอบโดยรวมสำหรับผลิตภัณฑ์ขั้นสุดท้าย ทีมผลิตภัณฑ์ - ผู้จัดการ นักพัฒนา ผู้ทดสอบ - คิดถึงผลลัพธ์ ไม่ใช่แค่เกี่ยวกับขอบเขตความรับผิดชอบของพวกเขาเท่านั้น (ผลลัพธ์คือเวอร์ชันที่ใช้งานได้สำหรับผู้ใช้ผลิตภัณฑ์)
ในซีดีมักจะใช้ และเพื่อรวบรวมความคิดเห็นของลูกค้า-หลักการ . คุณลักษณะใหม่เปิดตัวครั้งแรกสำหรับผู้ใช้กลุ่มเล็กๆ - ประสบการณ์ในการโต้ตอบกับผลิตภัณฑ์ช่วยค้นหาข้อบกพร่องและจุดบกพร่องที่ไม่ได้สังเกตเห็นในระหว่างการทดสอบภายใน
มีประโยชน์อะไร
การจัดส่งอย่างต่อเนื่องช่วยลดความซับซ้อนในการปรับใช้โค้ด ซึ่งส่งผลเชิงบวกต่อประสิทธิภาพการทำงาน และลดโอกาสที่พนักงานจะเหนื่อยหน่าย ท้ายที่สุดแล้วสิ่งนี้จะช่วยลดต้นทุนการพัฒนาโดยรวม ตัวอย่างเช่น CD ช่วยหนึ่งในทีม HP ต้นทุนดังกล่าว 40%
นอกจากนี้ จากการศึกษาในปี 2016 (หน้า 28 ) - บริษัทที่ใช้ CD แก้ไขปัญหาความปลอดภัยของข้อมูลได้เร็วกว่าบริษัทที่ไม่ใช้วิธีการนี้ถึง 50% ประสิทธิภาพของเครื่องมือกระบวนการอัตโนมัติสามารถอธิบายความแตกต่างนี้ได้ในระดับหนึ่ง
ข้อดีอีกประการหนึ่งคือการเร่งการเผยแพร่ จัดส่งอย่างต่อเนื่องที่สตูดิโอพัฒนาฟินแลนด์ เพิ่มความเร็วในการประกอบโค้ด 25%
ความยากลำบากที่อาจเกิดขึ้น
ปัญหาแรกและหลักคือความจำเป็นในการสร้างกระบวนการที่คุ้นเคยขึ้นมาใหม่ เพื่อแสดงประโยชน์ของแนวทางใหม่ ควรค่อยๆ เปลี่ยนไปใช้ซีดี โดยเริ่มจากแอปพลิเคชันที่ใช้แรงงานมากที่สุด
ปัญหาที่อาจเกิดขึ้นประการที่สองคือสาขาโค้ดจำนวนมาก ผลที่ตามมาของ "การแตกแขนง" คือความขัดแย้งที่เกิดขึ้นบ่อยครั้งและการสูญเสียเวลาจำนวนมาก แนวทางแก้ไขที่เป็นไปได้ - แนวทาง .
โดยเฉพาะอย่างยิ่งในบางบริษัท ความยากลำบากหลักเกิดขึ้นกับการทดสอบ ซึ่งใช้เวลานานเกินไป มักจะต้องวิเคราะห์ผลการทดสอบด้วยตนเอง แต่วิธีแก้ปัญหาที่เป็นไปได้อาจเป็นการทำการทดสอบแบบขนานในระยะแรกของการนำซีดีไปใช้
คุณควรฝึกอบรมพนักงานให้ทำงานกับเครื่องมือใหม่ - โปรแกรมการศึกษาเบื้องต้นจะช่วยประหยัดความพยายามและเวลาของนักพัฒนา

/flickr/ /
เครื่องมือ
ต่อไปนี้เป็นเครื่องมือแบบเปิดบางส่วนสำหรับการจัดส่งแบบต่อเนื่อง:
- — เซิร์ฟเวอร์สำหรับการจัดส่งอย่างต่อเนื่องใน Java และ JRuby on Rails ช่วยให้คุณควบคุมกระบวนการจัดส่งแอปพลิเคชันทั้งหมด: สร้าง—ทดสอบ—เผยแพร่ เครื่องมือนี้เผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 คุณสามารถค้นหาได้จากเว็บไซต์อย่างเป็นทางการ .
- — เฟรมเวิร์กสำหรับการสร้างสคริปต์ที่ทำให้การใช้งานแอปพลิเคชันใน Ruby, Java หรือ PHP เป็นแบบอัตโนมัติ Capistrano สามารถรันคำสั่งบนเครื่องระยะไกลได้โดยเชื่อมต่อผ่าน SSH ทำงานร่วมกับเครื่องมือบูรณาการและส่งมอบอย่างต่อเนื่องอื่นๆ เช่น เซิร์ฟเวอร์ Integrity CI
- เป็นเครื่องมือหลายแพลตฟอร์มที่ทำให้วงจรการพัฒนาแอปพลิเคชันทั้งหมดเป็นแบบอัตโนมัติ Gradle ทำงานร่วมกับ Java, Python, C/C++, Scala ฯลฯ มีการทำงานร่วมกับ Eclipse, IntelliJ และ Jenkins
- - แพลตฟอร์มซีดีในภาษา Go โดรนสามารถใช้งานได้ทั้งในสถานที่หรือบนคลาวด์ เครื่องมือนี้สร้างขึ้นบนคอนเทนเนอร์และใช้ไฟล์ YAML ในการจัดการ
- — แพลตฟอร์มสำหรับการส่งมอบโค้ดอย่างต่อเนื่องในระบบมัลติคลาวด์ พัฒนาโดย Netflix วิศวกรของ Google มีบทบาทสำคัญในการพัฒนาเครื่องมือนี้ คำแนะนำในการติดตั้ง .
สิ่งที่ต้องอ่านในบล็อกบริษัทของเรา:
ที่มา: will.com
