คำถามติดแท็ก continuous-integration

Continuous-Integration (CI) เป็นกระบวนการรวมสำเนาโค้ดการทำงานของนักพัฒนากับโค้ดเบสที่ใช้ร่วมกันบ่อยๆเพื่อป้องกันหรือลดปัญหาการรวม สำหรับคำถามเกี่ยวกับระบบ CI เฉพาะเช่น [Jenkins] หรือ [Travis-CI] ให้ใช้แท็กเหล่านั้นแทน

7
ความแตกต่างระหว่าง DevOps และระบบอัตโนมัติคืออะไร
ฉันเห็นว่าเมื่อใดก็ตามที่มีคนทำ DevOps ส่วนใหญ่เกี่ยวกับการทำสิ่งต่าง ๆ โดยอัตโนมัติเช่นการปรับใช้ ฯลฯ แต่ระบบอัตโนมัติสิ้นสุดลงและ DevOps เริ่มต้นที่ใด

4
วิธีการปรับขนาดเจนกินส์อย่างถูกต้อง?
ในโครงการของฉันเรามีเซิร์ฟเวอร์ AWS หนึ่งเครื่องที่ใช้ Jenkins Master + 1 Jenkins slave (ผู้ปฏิบัติการ 2 คน) ... และเราต้องการมากขึ้น เพื่อเพิ่มพลังการสร้างของเราเรามีสามตัวเลือก: ขยายขนาด : ทำให้อินสแตนซ์ AWS ใหญ่ขึ้นและเพิ่มตัวจัดการเพิ่มเติม ขยายขนาด : ทำให้ AWS อินสแตนซ์ใหญ่ขึ้นและเพิ่มอีกกระบวนการทาสเจนกินส์ ลดขนาด : สร้างอินสแตนซ์ AWS ใหม่ด้วยทาสเจนกินส์และเชื่อมต่อกับต้นแบบ เราต้องการทำ 2. เนื่องจากเราอยู่ในองค์กรขนาดใหญ่และอาจารย์ Jenkins ปัจจุบันของเราสามารถเข้าถึงทุกที่ที่เขาต้องการ ตัวเลือกที่ 3 "เซิร์ฟเวอร์ใหม่" มีความซับซ้อนเนื่องจากต้องได้รับการอนุมัติจากทางราชการมากขึ้นซึ่งจะใช้เวลาหลายสัปดาห์ ดังนั้นคำถามของฉันคือ: มีปัญหาทางเทคนิคในตัวเลือก 2 หรือไม่? . บางทีผู้บริหารของทาสเจนกินส์แต่ละคนอาจไม่รู้จักผู้คุมทาสคนอื่น ๆ ? โดยทั่วไปแล้ววิธีที่ดีที่สุดในการเพิ่มขนาด Jenkins คืออะไร …

4
การรวมอย่างต่อเนื่องเกี่ยวข้องกับการจัดส่ง / การปรับใช้อย่างต่อเนื่องอย่างไร
นี่คือคำพูดจากเนื้อหาปัจจุบันของการรวมกลุ่มอย่างต่อเนื่อง : ... กระบวนการรวมสำเนารหัสการทำงานของนักพัฒนาซอฟต์แวร์ไปยังรหัสฐานที่ใช้ร่วมกันบ่อยครั้งเพื่อป้องกันหรือลดปัญหาการรวม ตกลงฉันเข้าใจแล้ว แต่จากนั้นยังมีการจัดส่งอย่างต่อเนื่องและ การปรับใช้อย่างต่อเนื่องและนั่นคือสิ่งที่ฉันทำหายไปอย่างต่อเนื่อง : วิธีการที่ไม่บูรณาการอย่างต่อเนื่องที่เกี่ยวข้องกับการส่งมอบอย่างต่อเนื่องและ / หรือการใช้งานอย่างต่อเนื่องสมมติว่าบางที่ตามเส้น (s) ผ่านทางintegrationคุณจะจบลงในสภาพแวดล้อมเป้าหมายที่ทุกอย่างจะเป็นdeliveringdeployed อะไรคือความแตกต่างระหว่างการส่งมอบอย่างต่อเนื่องและการใช้งานอย่างต่อเนื่อง ? ย้อนกลับไปในวันก่อนที่ DevOps จะถูกเรียกว่า DevOps เราใช้คำศัพท์ซึ่งอาจช่วยให้เข้าใจข้อกำหนด DevOps ใหม่เหล่านี้เช่น: เลื่อนระดับไปยัง (หรือลดระดับจาก) เป้าหมายก่อนการผลิตบางรายการรวมกับกระบวนการฟื้นฟูบางประเภท (คอมไพล์, ผูก, ฯลฯ ) เพื่อรวมส่วนประกอบทั้งหมดที่เกี่ยวข้องเข้าด้วยกันในสิ่งที่คล้ายปฏิบัติการ นั่นคือสิ่งที่ควรจะคล้าย / ใกล้เคียงกับการรวมกลุ่มอย่างต่อเนื่องหรือไม่? แจกจ่ายไปยังสภาพแวดล้อมเป้าหมายโดยใช้บางอย่างเช่น FTP (หากสำเนามาตรฐานไม่สามารถเชื่อมช่องว่าง) แต่ยังไม่เปิดใช้งานในเป้าหมาย นั่นคือสิ่งที่ควรจะคล้าย / ใกล้เคียงกับการจัดส่งอย่างต่อเนื่องหรือไม่? ติดตั้ง (หรือเปิดใช้งาน ) ในบางสภาพแวดล้อมเป้าหมายรวมกับสิ่งต่าง ๆ เช่นการผูกการหยุด / เริ่มการทำงานเป็นต้นนั่นคือสิ่งที่ควรจะคล้าย / ใกล้เคียงกับการปรับใช้อย่างต่อเนื่องหรือไม่?

5
วิธีหลีกเลี่ยงความไม่แน่นอนที่เกิดจากการรวมอย่างต่อเนื่องในสภาพแวดล้อมการทดสอบ
สมมติว่าคุณกำลังใช้กระบวนการรวมอย่างต่อเนื่องซึ่งมักจะปรับปรุงสภาพแวดล้อมเป้าหมายบางอย่างเพื่อให้ทุกครั้งที่มีการเปลี่ยนแปลง "คุณ" สามารถทดสอบการเปลี่ยนแปลงได้ทันที นั่นเป็นส่วนหนึ่งของเป้าหมายของ CI ใช่ไหม แต่สมมติว่าคุณมีบุคคลอื่นที่เกี่ยวข้องในรอบการทดสอบของคุณเช่นผู้จัดการหรือลูกค้า เหมาะสมที่จะให้คนอื่นมีส่วนร่วมในการลองตรวจสอบ (แตกหัก) การเปลี่ยนแปลงที่กำลังจะเกิดขึ้นไม่ใช่หรือ? แต่ถ้าคุณอย่างต่อเนื่องให้การส่งมอบการเปลี่ยนแปลงในสภาพแวดล้อมที่คนอื่น ๆ เหล่านั้นอย่างจริงจังพยายามที่จะทดสอบพวกเขาแล้วหลายประเด็นที่อาจเกิดขึ้นเช่น: they อาจเสียเวลาในการรายงานปัญหาซึ่งเมื่อถึงเวลาบันทึกรายงาน (เชิงลึก) พวกเขาไม่สามารถทำซ้ำปัญหาได้อีก (เช่นเนื่องจากคุณบังเอิญพบปัญหาเดียวกันและแก้ไขในสภาพแวดล้อมของพวกเขาแล้ว) you อาจไม่สามารถทำซ้ำปัญหาที่พวกเขารายงานเนื่องจากสภาพแวดล้อมที่พวกเขาพบปัญหาบางอย่างไม่เหมือนกันอีกต่อไป (คุณ (!!!) อาจทำให้สภาพแวดล้อมของพวกเขาซ้อนทับ) ดังนั้นคุณจะทำอย่างไร (จะกำหนดค่าสิ่งต่าง ๆ ได้อย่างไร) เพื่อหลีกเลี่ยงสถานการณ์ (ที่น่าผิดหวัง)?

4
วิธีการเปลี่ยนจากความเป็นจริงของการแตกแขนงที่ซับซ้อนไปเป็นรูปแบบสาขาเดียว?
ในองค์กรขนาดใหญ่การใช้วิธีการน้ำตกมักจะส่งผลให้เกิดโครงสร้างการแตกแขนงที่ซับซ้อนมาก (aka spagetti สาขา ) กลยุทธ์การแยกสาขาใดบ้างที่สามารถใช้ในการเปลี่ยนจากความเป็นจริงของการแตกแขนงที่ซับซ้อนไปเป็นโมเดลสาขาเดียวเช่นการพัฒนาแบบอิงลำตัว? ปรับปรุง: เพื่อชี้แจงคำถามที่เกี่ยวกับการโยกย้าย / การเปลี่ยนแปลงตัวเองไม่เกี่ยวกับวิธีการก่อนและหลังซึ่งค่อนข้างชัดเจน ไม่น่าจะเป็น "ที่ EOB วันนี้เรายังคงเป็นน้ำตกที่มีสาขากว่าพันล้านแห่ง แต่พรุ่งนี้สิ่งแรกที่เราจะเปลี่ยนไปใช้ CI แบบสาขาเดียว"

3
Simple CI / CD container ใน AWS
ฉันกำลังใช้ AWS Code Pipeline, Code Build เพื่อสร้างคอนเทนเนอร์ Docker ใหม่และผลักดันมันไปยัง ECR แอปพลิเคชันของฉันเป็นแบบเรียบง่ายแบบ Single-Forward สิ่งที่จะลดความเสียดทานให้น้อยลงเพื่อดึง Container ที่ใช้อยู่ในปัจจุบันออกมาและเรียกใช้ Container ใหม่จากรีจีสทรี ECS (เอาท์พุตของ Code Build ผ่าน Code Pipeline) ฉันลอง CloudFormation ด้วยข้อมูลผู้ใช้ EC2, สคริปต์ที่กำหนดเองในด้านหนึ่งและ CloudFormation กับ ECS พร้อมคำจำกัดความของงานในอีกด้านหนึ่ง (ยังไม่สำเร็จ) ฉันรู้สึกว่าจะต้องมีวิธีที่ชัดเจนและเรียบง่ายกว่า

2
ฉันจะติดตามการใช้ทรัพยากรคลาวด์ได้อย่างไร
ฉันกำลังพยายามทำให้การปรับใช้แอปพลิเคชัน AWS ของฉันเป็นแบบอัตโนมัติด้วยเจนกินส์ ตอนนี้ถ้าเราต้องการอัปเดตแอปพลิเคชันในสภาพแวดล้อมใด ๆ พูด UAT เราสร้างภาพนักเทียบท่าของเราค้นหางาน ECS ปัจจุบันและอัปเดตด้วยภาพใหม่ค้นหากลุ่ม ECS ที่กำลังทำงานอยู่และอัปเดตงาน วิธีปฏิบัติที่ดีที่สุดในการติดตาม Id ทรัพยากรคลาวด์ (รหัสคลัสเตอร์ ECS, รหัสงานของ ECS, รหัสงาน EC2, ฯลฯ ) ในสภาพแวดล้อมการรวมอย่างต่อเนื่องของคุณคืออะไร

2
โครงสร้างพื้นฐานการรวมอย่างต่อเนื่องสำหรับโครงการ iOS หลายโครงการ
ในฐานะนักพัฒนา iOS ฉันต้องการสร้างโครงสร้างพื้นฐาน CI และ CCQ (= คุณภาพรหัสต่อเนื่อง) สำหรับโครงการ iOS ที่เรามีในการพัฒนา เราใช้ Jenkins และ SonarQube สำหรับโครงการบนเว็บและ Android เกือบทั้งหมดแล้ว (โดยใช้โครงการ VM foreach การติดตั้งและกำหนดค่า CI และ CCQ เป็นไปโดยอัตโนมัติ) และใช้งานได้ดี แต่สำหรับโครงการ iOS เจนกินส์จำเป็นต้องสร้างบนคอมพิวเตอร์ที่ใช้ macOS ดังนั้นฉันไม่แน่ใจว่าฉันมีโซลูชันที่สมบูรณ์แบบสำหรับสิ่งนั้น ฉันกำลังมองหาวิธีแก้ปัญหาการจำลองเสมือน macOS สำหรับแต่ละโครงการเพื่อสร้าง macOS เสมือนและติดตั้ง Jenkins เป็นทาสที่นั่นเพื่อจัดการงานสร้าง โซลูชันดูสมบูรณ์แบบ แต่ดูเหมือนว่าผิดกฎหมายที่จะมี VM มากกว่า 2 เครื่องที่ทำงานกับ macOS (และแน่นอนว่าเฉพาะในคอมพิวเตอร์ Mac เท่านั้น) http://images.apple.com/legal/sla/docs/macOS1012.pdf …

1
“ Push on Green” คืออะไร
ภายใน Google และองค์กร DevOps อื่น ๆ พวกเขาพูดคุยเกี่ยวกับ "Push on Green" ซึ่งฉันเชื่อว่าเป็นวิธีการส่งมอบอย่างต่อเนื่องตามการทดสอบอัตโนมัติที่ประสบความสำเร็จและการปรับใช้กับสภาพแวดล้อมก่อนเกิดเหตุการณ์ "Push on Green" คืออะไรและเกี่ยวข้องกับการนำไปใช้อย่างไร

1
ปัญหาในการบูรณาการ Travis-CI กับโครงการ PHP หลัก [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ DevOps Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา ฉันกำลังพยายามรวมโครงการของฉันเป็นรหัสหลักในPHPกับTravis-CIแต่มันล้มเหลวเสมอ Travis รายงานความล้มเหลวแม้ว่าฉันจะมีเพียงไฟล์เดียวในโครงการของฉัน รหัสไฟล์ PHP: <?php phpinfo(); ?> .travis.yml รหัสไฟล์ language: php php: - '5.4' - '5.5' - '5.6' - '7.0' - '7.1' - hhvm - nightly

1
Elastic Beanstalk เหมาะสำหรับซีดีระดับองค์กรหรือไม่
ฉันทำงานกับโครงการที่ใช้ Jenkins เพื่อสร้างและปรับใช้ microservices กับ Elastic Beanstalk เราปรับใช้สาขาการรวมเข้ากับสภาพแวดล้อมการทดสอบ, ปล่อยสาขาไปยังสภาพแวดล้อมการจัดเตรียมและจากนั้นสร้างต้นแบบขั้นสุดท้ายเพื่อการผลิต ฉันมีข้อกังวลสองสามข้อเกี่ยวกับการทำเช่นนี้ก่อนอื่นหมายความว่าเราต้องจบลงด้วยเมทริกซ์หนึ่งบิวด์ต่อหนึ่งโครงการต่อสภาพแวดล้อม และสองหมายความว่าเราไม่ได้ปรับใช้โครงสร้างบิลด์เดียวกันกับการผลิตที่ได้รับการตรวจสอบความถูกต้องในการจัดเตรียม ฉันอยากละทิ้ง Beanstalk และย้ายไปที่ ASG ธรรมดาโดยใช้สิ่งต่าง ๆ เช่น Chef สำหรับการปรับใช้ นั่นจะทำให้เรามีหนึ่งบิลด์ต่อโครงการการผลิตสิ่งประดิษฐ์บิลด์และเราสามารถปรับใช้สิ่งประดิษฐ์เดียวกันกับการผลิตที่ได้รับอนุมัติในการจัดเตรียม การเปลี่ยนภาพมีค่าใช้จ่ายล่วงหน้าไม่สำคัญ มีวิธีใช้ Beanstalk ที่ดีกว่าซึ่งจะช่วยให้ CI / CD ที่เชื่อถือได้และง่ายต่อการจัดการมากขึ้นหรือไม่? หมายเหตุ : การส่งเสริมการสร้างสิ่งประดิษฐ์เดียวกันเป็นสิ่งที่ฉันต้องการทำ แต่จากเอกสารฉันไม่เห็นวิธีที่ชัดเจนในการทำเช่นนั้น มันอธิบายถึงวิธีการปรับใช้กับ EB จากแหล่งแอปของคุณ แต่ไม่ใช่วิธีการโปรโมตเวอร์ชันที่มีอยู่กับสภาพแวดล้อมอื่นเว้นแต่ว่าฉันจะเลื่อนผ่านได้เลย หากมีอยู่ใน EB เองอาจมีข้อ จำกัด ในปลั๊กอินการปรับใช้ Jenkins EB ที่ป้องกันไม่ให้ทำใน Jenkins โดยเฉพาะ แต่ฉันไม่เห็นวิธีที่จะทำเลย

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดเวอร์ชันของแท็กเกอร์คืออะไร
ฉันเพิ่งติดเซิร์ฟเวอร์ CI ของเราเพื่อสร้างภาพนักเทียบท่าเมื่อคอมไพล์ยอมรับ เรามีตู้สินค้าประมาณ 8 ตู้ที่สร้างขึ้นแต่ละตู้มีภาษา / กรอบงานของตนเอง บางโหนดและมี package.json ส่วนอื่น ๆ เป็นบริการ python ที่ไม่มีข้อมูลเกี่ยวกับ semantic version คำถามของฉันไม่เกี่ยวกับวิธีสร้างแท็ก แต่เกี่ยวกับการสร้างค่าสำหรับแท็ก วิธีการตรวจสอบให้แน่ใจว่าแต่ละแท็กมีหมายเลขรุ่นความหมายเฉพาะสำหรับภาพเฉพาะ ใครควรเป็นผู้มีอำนาจในการติดตาม / เพิ่มรุ่นบิลด์?

3
อะไรคือความแตกต่างที่สำคัญระหว่างเจนกินส์และ TeamCity หากมีใครคุ้นเคยกับเจนกินส์?
เครื่องมือเหล่านี้ดูเหมือนจะมีลักษณะคล้ายกันมาก การเริ่มใช้ TeamCity นั้นซับซ้อนเพียงใดหลังจากที่คุ้นเคยกับการทำงานกับเจนกินส์แล้ว มีแนวคิดเฉพาะที่เราต้องระวังหรือไม่?

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

3
โฮสต์ CI / CD สำหรับ iOS ที่ไม่ได้อยู่ในสหรัฐอเมริกา
TL: DR: คุณรู้จักผู้ให้บริการ CI / CD สำหรับ iOS ที่มีดาต้าเซ็นเตอร์ / บิลด์บ็อกซ์ในเอเชียหรืออย่างน้อยในยุโรป (คะแนนโบนัสหากพวกเขาให้ทั้งสร้างและปรับใช้ แต่สร้างเป็น MVP) กลับเรื่อง: เรากำลังเรียกใช้ CI / CD ในระดับสำหรับ iOS และ Android: เรารันทั้ง 10+ พร้อมกันเพื่อสร้าง / ทดสอบเพื่อตรวจสอบสาขา Merge-Request ของเรา เรากำลังใช้ผู้ให้บริการ SaaS / คลาวด์เราค่อนข้างพอใจกับ ... ยกเว้นที่ตั้งของพวกเขา เราอยู่ในเอเชียเช่นเดียวกับที่มาของเรา ลูกค้าอยู่ในอุตสาหกรรมที่มีการควบคุมอย่างเข้มงวดและต่อสู้อย่างหนักเพื่อรักษาแหล่งกำเนิดไว้ล่วงหน้าเนื่องจากพวกเขาคิดว่าผู้ควบคุมเครื่องยังไม่สามารถจัดการกับแหล่งที่มาในคลาวด์ได้ โปรดยอมรับหลักฐานนี้ ฉันเข้าใจว่าทำไมพวกเขาต้องปล่อยมันไป แต่ตอนนี้ ... คิดว่าพวกเขาทำไม่ได้ สิ่งที่หมายถึงคือ: แหล่งที่มาอยู่ในเอเชีย แต่ผู้ให้บริการ CI / CD ที่สร้างมันดูเหมือนว่าจะอยู่ในสหรัฐอเมริกา …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.