วิธีการปรับขนาดเจนกินส์อย่างถูกต้อง?


27

ในโครงการของฉันเรามีเซิร์ฟเวอร์ AWS หนึ่งเครื่องที่ใช้ Jenkins Master + 1 Jenkins slave (ผู้ปฏิบัติการ 2 คน) ... และเราต้องการมากขึ้น
เพื่อเพิ่มพลังการสร้างของเราเรามีสามตัวเลือก:

  1. ขยายขนาด : ทำให้อินสแตนซ์ AWS ใหญ่ขึ้นและเพิ่มตัวจัดการเพิ่มเติม
  2. ขยายขนาด : ทำให้ AWS อินสแตนซ์ใหญ่ขึ้นและเพิ่มอีกกระบวนการทาสเจนกินส์
  3. ลดขนาด : สร้างอินสแตนซ์ AWS ใหม่ด้วยทาสเจนกินส์และเชื่อมต่อกับต้นแบบ

เราต้องการทำ 2. เนื่องจากเราอยู่ในองค์กรขนาดใหญ่และอาจารย์ Jenkins ปัจจุบันของเราสามารถเข้าถึงทุกที่ที่เขาต้องการ ตัวเลือกที่ 3 "เซิร์ฟเวอร์ใหม่" มีความซับซ้อนเนื่องจากต้องได้รับการอนุมัติจากทางราชการมากขึ้นซึ่งจะใช้เวลาหลายสัปดาห์

ดังนั้นคำถามของฉันคือ:

  • มีปัญหาทางเทคนิคในตัวเลือก 2 หรือไม่? . บางทีผู้บริหารของทาสเจนกินส์แต่ละคนอาจไม่รู้จักผู้คุมทาสคนอื่น ๆ ?
  • โดยทั่วไปแล้ววิธีที่ดีที่สุดในการเพิ่มขนาด Jenkins คืออะไร การเพิ่มหรือขยายขนาด

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

2
ทำไมไม่หมายเลข 3 วิธีปกติในการส่งงานไปที่เจนกินส์คือการเป็นผู้เชี่ยวชาญ และจากหลักเกณฑ์บางอย่างจะส่งไปให้ทาสที่เหมาะสม
Romeo Ninov

FWIW คุณต้องวิเคราะห์โครงสร้างการสร้างของคุณเพื่อดูว่ามันใช้ทรัพยากรของเครื่องสร้างอย่างไร - การปรับขนาดอาจไม่ช่วย - ฉันพบกรณีที่เวลาการสร้างสำหรับการสร้าง 2 ขนานบนเครื่องเดียวกันนั้นนานกว่าเวลารวมที่สร้างขึ้น 2 บิลด์เดียวกันดำเนินการตามลำดับไม่ทับซ้อนกัน ในกรณีเช่นนี้ # 3 จะเป็นตัวเลือกที่ใช้ได้จริงเท่านั้น
Dan Cornilescu

ผมยอมรับว่า # 3 จะดีกว่า แต่ผมไม่ได้มีข้อโต้แย้งหรือ arguements กับ # 1 และ # 2 ...
ออสการ์โฟลีย์

หากคุณมีโอกาสในสภาพแวดล้อมของคุณฉันจะมองหาวิธีแก้ปัญหาชั่วคราว เมื่อเห็นว่าคุณอยู่ใน AWS แล้วคุณสามารถนำเครื่องจักรขึ้นและลงได้ตามต้องการในขณะที่จัดการกับปริมาณงาน wiki.jenkins.io/display/JENKINS/Amazon+EC2+Plugin
casey vega

คำตอบ:


11

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

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

  • คุณต้องการการกำหนดค่าเพิ่มเติมระหว่างโหนดที่กำหนดค่า สมมติว่าคุณมีการตั้งค่าโหนดหนึ่งชุดให้ใช้มากที่สุดและอีกโหนดหนึ่งจะใช้เมื่อจำเป็นเท่านั้น
  • คุณอาจมีการติดตั้งต้นแบบ Jenkins หลายตัวที่สร้างสิ่งต่าง ๆ ดังนั้นการกำหนดค่านี้จะช่วยให้คุณมีทาสสำหรับต้นแบบมากกว่าหนึ่งคนในกล่องเดียวกัน ถูกต้องกับเจนกิ้นส์คุณสามารถรับใช้เจ้านายสองคนได้
  • คุณอาจต้องการที่จะยกระดับความสะดวกสบายของการเริ่มต้น / หยุด / เปลี่ยนเครื่องเสมือนอาจจะร่วมกับเจนกินส์ปลั๊กอินเช่นlibvirt ทาสปลั๊กอิน
  • คุณต้องการเพิ่มการลงทุนด้านฮาร์ดแวร์และการใช้ประโยชน์ให้สูงสุดพร้อมกับลดค่าใช้จ่ายในการดำเนินงานให้น้อยที่สุด (เช่นค่าใช้จ่ายสาธารณูปโภคสำหรับการใช้งานทาสที่ไม่ทำงาน)

โดยทั่วไปแล้วการขยายขนาดออกเป็นที่ต้องการเป็นหลักเนื่องจากความสามารถในการขยายขนาดโดยทั่วไปจะถูก จำกัด โดยประเภท / ขนาดของทรัพยากรทางกายภาพที่มีอยู่

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

ตัวอย่างเช่นฉันพบกรณีที่เวลาบิลด์สำหรับบิลด์ขนาน 2 บิลด์บนเครื่องเดียวกันมีความยาวมากกว่าเวลาบิลด์รวมของบิลด์ 2 บิลด์เดียวกันที่ดำเนินการตามลำดับ (ไม่ทับซ้อนกัน) บนเครื่องเดียวกัน ในกรณีเช่นนี้ฉันจะไม่พิจารณาปรับขนาดเนื่องจากจะลดกำลังการผลิตโดยรวม



3

ฉันคิดว่าคุณไม่ควรทำ;)

ก็ค่อนข้างดี ฉันคิดว่าคุณต้องมีผู้บริหารเพิ่มเติมบางทีงานสร้างของคุณอาจต้องใช้ทรัพยากรมาก ฉันจะวิ่งอย่างน้อย 4 แต่เราวิ่ง 6 ถึง 8 ขึ้นอยู่กับงาน ฉันต้องการจับคู่ # ของแกนกลางกับตัวตรวจสอบ ดังนั้นคุณอาจต้องการเพิ่มขนาดโหนดของคุณฉันคิดว่าเราเรียกใช้ M4 ขนาดใหญ่สำหรับผู้ปฏิบัติการ 4-8 ของเรา

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


2

ฉันจะเพิ่มขนาดแทนการขยายขนาดหาตัวเลือก 3 เราได้ทำการตั้งค่าที่เรามีตัวแทนเจนกินส์ทั้งหมดที่ทำงานบน ECS (เจนกินส์แบบกำหนดเองตามนักเทียบท่า) กับกลุ่มปรับขนาดอัตโนมัติ เรามีอาจารย์ของเจนกินส์ทุกคนที่สื่อสารกับ ECS ดังนั้นจึงแบ่งปันภาระงานให้กับ ECS และไม่จำเป็นต้องสร้างต้นแบบของเจนกินส์ในการออกกำลังกาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.