8 คะแนน โดย ironlung 2024-08-27 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  1. การใช้เครื่องมือ CI/CD ช่วยเพิ่มผลิตภาพของนักพัฒนา
    • ผลสำรวจจากรายงาน ‘State Of Continuous Integration & Continuous Delivery Report’ ที่เผยแพร่เมื่อเดือนเมษายนปีนี้โดย SlashData บริษัทวิเคราะห์นักพัฒนาในสหราชอาณาจักร และ Continuous Delivery Foundation(CDF) ชุมชนโอเพนซอร์สระดับโลก
    • นักพัฒนาที่ใช้เครื่องมือ CI/CD (แบบ managed หรือ self-hosted) มีแนวโน้มทำผลงานได้ดีกว่านักพัฒนาที่ไม่ใช้ ในด้าน lead time ของการเปลี่ยนแปลงโค้ด, เวลาในการกู้คืนบริการ และความถี่ในการ deploy
      • ทั้งสามอย่างนี้เป็นส่วนหนึ่งของตัวชี้วัดหลัก DORA ที่ใช้ประเมินผลิตภาพของนักพัฒนา
    • นักพัฒนาที่ไม่ใช้เครื่องมือ CI/CD มีแนวโน้มทำผลงานต่ำกว่านักพัฒนาที่ใช้
    • นักพัฒนาที่ใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted มีผลงานดีที่สุดในด้าน lead time ของการเปลี่ยนแปลงโค้ด, เวลาในการกู้คืนบริการ และความถี่ในการ deploy
    • ตามข้อมูลจาก SlashData และ CDF นักพัฒนาที่มี lead time ของการเปลี่ยนแปลงโค้ดต่ำกว่า 1 วัน พบมากที่สุดในกลุ่มที่ใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted (24%)
      • รองลงมาคือ นักพัฒนาที่ใช้เฉพาะเครื่องมือ CI/CD แบบ managed (22%), ใช้เฉพาะเครื่องมือ CI/CD แบบ self-hosted (17%) และไม่ใช้เครื่องมือ CI/CD (13%)
    • นักพัฒนาที่มี lead time ของการเปลี่ยนแปลงโค้ดตั้งแต่ 1 เดือนขึ้นไป พบมากที่สุดในกลุ่มที่ไม่ใช้เครื่องมือ CI/CD (40%) ตามด้วยผู้ที่ใช้เฉพาะเครื่องมือ CI/CD แบบ self-hosted (33%), ใช้เฉพาะเครื่องมือ CI/CD แบบ managed (30%) และใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted (19%)
    • นักพัฒนาที่ใช้เวลาในการกู้คืนบริการต่ำกว่า 1 ชั่วโมง พบมากที่สุดในกลุ่มที่ใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted (25%)
      • รองลงมาคือ นักพัฒนาที่ใช้เฉพาะเครื่องมือ CI/CD แบบ self-hosted (17%), ใช้เฉพาะเครื่องมือ CI/CD แบบ managed (15%) และไม่ใช้เครื่องมือ CI/CD (11%)
    • นักพัฒนาที่ใช้เวลาในการกู้คืนบริการตั้งแต่ 1 สัปดาห์ขึ้นไป พบมากที่สุดในกลุ่มที่ไม่ใช้เครื่องมือ CI/CD (32%) ตามด้วยผู้ที่ใช้เฉพาะเครื่องมือ CI/CD แบบ self-hosted (29%), ใช้เฉพาะเครื่องมือ CI/CD แบบ managed (25%) และใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted (17%)
    • SlashData และ CDF ระบุว่า “การใช้ทั้งเครื่องมือ CI/CD แบบ managed และ self-hosted ร่วมกัน สามารถเพิ่มประสิทธิภาพได้ด้วยการผสานความสะดวกและฟังก์ชันที่มีมาให้ของเครื่องมือแบบ managed เข้ากับความสามารถในการปรับแต่งของเครื่องมือแบบ self-hosted”
    • ในการสำรวจนี้ เครื่องมือ CI/CD แบบ managed หมายถึง Azure Pipelines, AWS CodePipeline และเครื่องมือ CI/CD แบบ self-hosted หมายถึง Jenkins, TeamCity
  2. การใช้เครื่องมือ CI/CD แบบ self-hosted หลายตัวทำให้ประสิทธิภาพลดลง
    • การใช้เครื่องมือ CI/CD หลายตัวในประเภทเดียวกันอาจทำให้ประสิทธิภาพการ deploy ลดลง
      • ปรากฏการณ์นี้เด่นชัดเป็นพิเศษเมื่อใช้เครื่องมือ CI/CD แบบ self-hosted หลายตัว
    • ผลสำรวจของ SlashData และ CDF ระบุว่า เมื่อจำนวนเครื่องมือ CI/CD แบบ self-hosted เพิ่มขึ้น สัดส่วนของผู้มีผลงานต่ำที่มี lead time ของการเปลี่ยนแปลงโค้ด, ความถี่ในการ deploy และเวลาในการกู้คืนบริการตั้งแต่ 1 เดือนขึ้นไปจะเพิ่มสูงขึ้นอย่างมาก
    • ตามข้อมูลของทั้งสององค์กร นักพัฒนาที่มี lead time ของการเปลี่ยนแปลงโค้ดตั้งแต่ 1 เดือนขึ้นไป พบมากที่สุดในกลุ่มที่ใช้เครื่องมือ CI/CD แบบ self-hosted 4 ตัว
    • นักพัฒนาที่มีความถี่ในการ deploy และเวลาในการกู้คืนบริการตั้งแต่ 1 เดือนขึ้นไป พบมากที่สุดในกลุ่มที่ใช้เครื่องมือ CI/CD แบบ self-hosted 5 ตัวขึ้นไป
    • ในทางกลับกัน นักพัฒนาที่มี lead time ของการเปลี่ยนแปลงโค้ดและเวลาในการกู้คืนบริการต่ำกว่า 1 วัน พบมากที่สุดในกลุ่มที่ใช้เครื่องมือ CI/CD แบบ managed 1 ตัว
    • SlashData และ CDF ชี้ว่าปัญหา ‘interoperability’ เป็นสาเหตุสำคัญที่ทำให้จำนวนเครื่องมือ CI/CD แบบ self-hosted ที่เพิ่มขึ้นส่งผลลบต่อเวลาในการกู้คืนบริการ
      • เมื่อใช้เครื่องมือ CI/CD หลายตัว การผสานทุกเครื่องมือเข้าด้วยกันอย่างสมบูรณ์ทำได้ยาก
      • จึงอาจทำให้แยกปัญหาที่ส่งผลกระทบต่อบริการได้ยาก
  3. การผสาน AI และแมชชีนเลิร์นนิงเข้ากับ CI/CD มากขึ้น
    • AI และแมชชีนเลิร์นนิงถูกผสานเข้ากับ CI/CD pipeline มากขึ้น
    • CI/CD pipeline ที่ขับเคลื่อนด้วย AI ช่วยให้ตรวจจับปัญหาได้เร็วขึ้น
      • สิ่งนี้ช่วยให้ทีมพัฒนาและทีมทดสอบลดเวลาการ troubleshoot และ debugging ได้อย่างมาก
    • AI ช่วยทำงานตั้งค่าสภาพแวดล้อมการทดสอบ CI ให้เป็นอัตโนมัติ และเร่งการทดสอบ
    • สิ่งนี้นำไปสู่ระบบอัตโนมัติอัจฉริยะใน CD pipeline รวมถึงการทำ code review และการทดสอบแบบอัตโนมัติ
    • มีการใช้ AI และแมชชีนเลิร์นนิงเพื่อตรวจหาช่องโหว่ของโค้ด
    • คาดว่าการวิเคราะห์เชิงคาดการณ์จะถูกใช้อย่างแพร่หลายเพื่อคาดการณ์ปัญหาและความล้มเหลวที่อาจเกิดขึ้นใน CI/CD pipeline
      • เทคโนโลยีนี้ใช้ข้อมูล, อัลกอริทึมทางสถิติ และแมชชีนเลิร์นนิง
      • ช่วยให้ทีมวิเคราะห์รูปแบบความล้มเหลวของการ build ในอดีต เพื่อตรวจพบและแก้ไขปัญหาล่วงหน้าก่อนจะส่งผลต่อ deployment pipeline
      • ผลลัพธ์คือ deploy ได้เร็วขึ้นและเสถียรมากขึ้น
    • ในอนาคต AI และแมชชีนเลิร์นนิงจะถูกนำมาใช้กับ CI/CD อย่างกว้างขวางและแนบแน่นยิ่งขึ้น
  4. GitOps มีอิทธิพลต่อ CI/CD มากขึ้น
    • GitOps มีอิทธิพลต่อ CI/CD pipeline มากขึ้นเรื่อย ๆ
    • นี่คือเฟรมเวิร์กการดำเนินงานที่นำแนวปฏิบัติ DevOps ที่ดี เช่น version control, การทำงานร่วมกัน, compliance และ CI/CD ซึ่งใช้ในการพัฒนาแอปพลิเคชัน มาประยุกต์ใช้กับระบบอัตโนมัติของโครงสร้างพื้นฐาน
    • หลายองค์กรกำลังนำ GitOps มาใช้เป็นส่วนหนึ่งของกระบวนการ CI/CD
    • นักพัฒนาสามารถใช้ Git repository ผ่าน GitOps เป็นแหล่งข้อมูลจริงเพียงหนึ่งเดียว (SSOT) สำหรับโค้ดและการตั้งค่า
      • ทำการเปลี่ยนแปลงโค้ดหรือการตั้งค่าใน Git repository
    • GitOps ส่งเสริมการเปลี่ยนแปลงที่อยู่ภายใต้ version control ครอบคลุมทั้งโครงสร้างพื้นฐานและการ deploy แอปพลิเคชัน ช่วยให้การทำงานร่วมกันง่ายขึ้นและเพิ่มการมองเห็น
      • GitOps รวมศูนย์การตั้งค่าทั้งหมดและ deployment manifest ไว้ใน Git repository
    • GitOps รองรับการปล่อย incremental update อัตโนมัติผ่าน workflow ที่ยึด Git เป็นศูนย์กลาง ช่วยให้นักพัฒนาจัดการคลัสเตอร์และส่งมอบแอปพลิเคชันได้อย่างมีประสิทธิภาพและปลอดภัยโดยไม่มีข้อผิดพลาดด้านการตั้งค่า
    • ด้วยความเร็ว ประสิทธิภาพ และความสะดวก ประกอบกับองค์กรต่าง ๆ กำลังปรับ workflow ของ DevOps ให้เรียบง่ายขึ้นและนำแนวปฏิบัติ IaC ที่ดีมาใช้ GitOps จึงมีแนวโน้มถูกใช้อย่างแพร่หลายใน CI/CD
  5. ความจำเป็นในการรองรับ edge computing เพิ่มขึ้น
    • ความจำเป็นในการรองรับ edge computing ใน CI/CD pipeline เพิ่มสูงขึ้น
    • edge computing คือการประมวลผลข้อมูลแบบเรียลไทม์และการทำงานของอุปกรณ์ ณ จุดที่ข้อมูลถูกสร้างขึ้นหรือใกล้กับจุดนั้น
    • สิ่งนี้ช่วยลด latency สำหรับการประมวลผลและวิเคราะห์ข้อมูลแบบเรียลไทม์ ทำให้แอปพลิเคชันทำงานได้มีประสิทธิภาพและรวดเร็วยิ่งขึ้น
    • มีการเสนอว่า CI/CD pipeline ควรปรับตัวเพื่อรองรับการ deploy ไปยัง edge
      • ตัวอย่างเช่น สร้าง deployment แบบ lightweight หรือใช้ containerization เพื่อให้ deploy ไปยัง edge device ได้ง่ายขึ้น
    • การที่ทีมพัฒนาจะส่งมอบโปรแกรมและบริการเวอร์ชันล่าสุดไปยัง edge device ได้อย่างเสถียร กลายเป็นเรื่องสำคัญกว่าที่เคย
    • การเชื่อม CI/CD pipeline เข้ากับ edge จะช่วยมอบประสบการณ์นักพัฒนาที่สม่ำเสมอและมีประสิทธิภาพสำหรับ edge application และเพิ่มประสิทธิภาพการดำเนินงาน
    • การ deploy และทดสอบแอปพลิเคชันไปยัง edge แบบอัตโนมัติพร้อมรับ feedback ตั้งแต่เนิ่น ๆ จะช่วยให้ส่งมอบผลิตภัณฑ์ที่ดีกว่าได้เร็วขึ้น
    • แม้บางบริการจะรองรับ edge deployment แล้ว แต่ก็มีความเป็นไปได้สูงที่จะมีเครื่องมือและปลั๊กอินใหม่ ๆ สำหรับ pipeline เดิม รวมถึง CI/CD pipeline ปรากฏขึ้น

1 ความคิดเห็น

 
aer0700 2024-08-30

จริง ๆ แล้วผมยังไม่ค่อยเข้าใจว่า CI/CD ที่ใช้ AI เป็นฐานต่างจาก CI/CD ปกติยังไง...