ช่วย: การจัดส่งแบบต่อเนื่องคืออะไร

เมื่อก่อนเรา บอก เกี่ยวกับบูรณาการอย่างต่อเนื่อง (CI) มาต่อด้วยการส่งมอบอย่างต่อเนื่อง นี่คือชุดวิธีการพัฒนาซอฟต์แวร์ ช่วยให้แน่ใจว่าโค้ดของคุณพร้อมสำหรับการใช้งาน

ช่วย: การจัดส่งแบบต่อเนื่องคืออะไร
/พิกซาเบย์/ บลูบัดกี้ / PL

เรื่องราว

วลีการจัดส่งแบบต่อเนื่องสามารถเห็นได้อีกครั้ง แถลงการณ์เปรียว ตั้งแต่ปี 2001 ในตอนต้นของรายการหลักการพื้นฐาน: “สิ่งสำคัญคือการแก้ปัญหาของลูกค้าผ่านการส่งมอบซอฟต์แวร์ที่ทันสมัยอย่างต่อเนื่อง”

ในปี 2010 Jez Humble และ David Farley ออกฉาย หนังสือ โดยการส่งมอบอย่างต่อเนื่อง ตามที่ผู้เขียนกล่าวไว้ ซีดีช่วยเสริมแนวทางนี้ การบูรณาการอย่างต่อเนื่อง และช่วยให้คุณเตรียมโค้ดสำหรับการปรับใช้ได้ง่ายขึ้น

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

ตอนนี้แนวทางนี้ยังคงเป็นหนึ่งในแนวทางที่ได้รับความนิยมมากที่สุด จากการศึกษาในปี 2018 ที่เกี่ยวข้องกับชุมชนไอที DevOps และ Jenkins Community ใช้ ครึ่งหนึ่งของผู้ตอบแบบสอบถามมากกว่าพันคนที่ตอบแบบสำรวจ

การจัดส่งแบบต่อเนื่องทำงานอย่างไร

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

ตัวอย่างของกระบวนการจัดส่งแบบต่อเนื่องมีลักษณะดังนี้:

ช่วย: การจัดส่งแบบต่อเนื่องคืออะไร

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

ข้อกำหนดต่อไปนี้ถูกกำหนดไว้ในกระบวนการ:

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

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

มีประโยชน์อะไร

การจัดส่งอย่างต่อเนื่องช่วยลดความซับซ้อนในการปรับใช้โค้ด ซึ่งส่งผลเชิงบวกต่อประสิทธิภาพการทำงาน และลดโอกาสที่พนักงานจะเหนื่อยหน่าย ท้ายที่สุดแล้วสิ่งนี้จะช่วยลดต้นทุนการพัฒนาโดยรวม ตัวอย่างเช่น CD ช่วยหนึ่งในทีม HP เพื่อลด ต้นทุนดังกล่าว 40%

นอกจากนี้ จากการศึกษาในปี 2016 (หน้า 28 เอกสาร) - บริษัทที่ใช้ CD แก้ไขปัญหาความปลอดภัยของข้อมูลได้เร็วกว่าบริษัทที่ไม่ใช้วิธีการนี้ถึง 50% ประสิทธิภาพของเครื่องมือกระบวนการอัตโนมัติสามารถอธิบายความแตกต่างนี้ได้ในระดับหนึ่ง

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

ความยากลำบากที่อาจเกิดขึ้น

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

ปัญหาที่อาจเกิดขึ้นประการที่สองคือสาขาโค้ดจำนวนมาก ผลที่ตามมาของ "การแตกแขนง" คือความขัดแย้งที่เกิดขึ้นบ่อยครั้งและการสูญเสียเวลาจำนวนมาก แนวทางแก้ไขที่เป็นไปได้ - แนวทาง ไม่มีสาขา.

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

คุณควรฝึกอบรมพนักงานให้ทำงานกับเครื่องมือใหม่ - โปรแกรมการศึกษาเบื้องต้นจะช่วยประหยัดความพยายามและเวลาของนักพัฒนา

ช่วย: การจัดส่งแบบต่อเนื่องคืออะไร
/flickr/ เอช.เกอร์1969 / CC BY-SA

เครื่องมือ

ต่อไปนี้เป็นเครื่องมือแบบเปิดบางส่วนสำหรับการจัดส่งแบบต่อเนื่อง:

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

สิ่งที่ต้องอ่านในบล็อกบริษัทของเรา:

ที่มา: will.com

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