บทช่วยสอน Jenkins | การผสานรวมอย่างต่อเนื่องโดยใช้ Jenkins | Edureka



Jenkins Tutorial เป็นบล็อกที่สองของบล็อกชุด Jenkins บล็อกนี้พูดถึงสถาปัตยกรรมแบบกระจายของเจนกินส์และวิธีสร้างงานสร้างโดยใช้เจนกินส์

บทช่วยสอนของเจนกินส์

Jenkins เป็นหนึ่งในเครื่องมือที่สำคัญที่สุดใน . ฉันหวังว่าคุณจะได้อ่านบล็อกก่อนหน้านี้ใน . ในบล็อก Jenkins Tutorial นี้ฉันจะเน้นที่สถาปัตยกรรมของเจนกินส์และเจนกินส์สร้างไปป์ไลน์พร้อมกับที่ฉันจะแสดงวิธีสร้างงานสร้างในเจนกินส์

ก่อนที่เราจะดำเนินการกับ Jenkins Tutorial ประเด็นสำคัญจากบล็อกก่อนหน้านี้คือ:





  • Jenkins ใช้เพื่อรวมขั้นตอน DevOps ทั้งหมดด้วยความช่วยเหลือของปลั๊กอิน
  • ปลั๊กอิน Jenkins ที่ใช้กันทั่วไป ได้แก่ Git, Amazon EC2, โครงการ Maven 2, ผู้เผยแพร่ HTML เป็นต้น
  • Jenkins มีปลั๊กอินมากกว่า 1,000 รายการและการติดตั้งที่ใช้งานอยู่ 147,000 ครั้งพร้อมกับผู้ใช้มากกว่า 1 ล้านคนทั่วโลก
  • ด้วยการผสานรวมอย่างต่อเนื่องทุกการเปลี่ยนแปลงที่เกิดขึ้นในซอร์สโค้ดคือสร้างขึ้น มันทำหน้าที่อื่น ๆ เช่นกันขึ้นอยู่กับเครื่องมือที่ใช้สำหรับการผสานรวมแบบต่อเนื่อง
  • Nokia เปลี่ยนจาก Nightly build เป็น Continuous Integration
  • กระบวนการก่อนการผสานรวมอย่างต่อเนื่องมีข้อบกพร่องมากมาย ด้วยเหตุนี้จึงไม่เพียง แต่การส่งมอบซอฟต์แวร์ที่ช้า แต่คุณภาพของซอฟต์แวร์ก็ไม่เป็นไปตามที่กำหนด นักพัฒนายังมีช่วงเวลาที่ยากลำบากในการค้นหาและแก้ไขข้อบกพร่อง
  • การผสานรวมอย่างต่อเนื่องกับ Jenkins เอาชนะข้อบกพร่องเหล่านี้โดยการเรียกใช้การสร้างและทดสอบอย่างต่อเนื่องสำหรับทุกการเปลี่ยนแปลงที่เกิดขึ้นในซอร์สโค้ด

ตอนนี้เป็นเวลาที่ถูกต้องในการทำความเข้าใจสถาปัตยกรรมของเจนกินส์

สถาปัตยกรรม Jenkins

ให้เราแก้ไขสถาปัตยกรรม Jenkins แบบสแตนด์อโลนที่ฉันได้อธิบายให้คุณฟังในไฟล์ แผนภาพด้านล่างแสดงให้เห็นถึงสิ่งเดียวกัน



Jenkins Standalone Architecture - Jenkins - Edureka คืออะไร

เซิร์ฟเวอร์ Jenkins เดียวนี้ไม่เพียงพอที่จะตอบสนองความต้องการบางประการเช่น:

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

เพื่อตอบสนองความต้องการที่ระบุไว้ข้างต้นจึงมีการนำสถาปัตยกรรมแบบกระจายของเจนกินส์มาใช้



Jenkins สถาปัตยกรรมแบบกระจาย

Jenkins ใช้สถาปัตยกรรม Master-Slave เพื่อจัดการงานสร้างแบบกระจาย ในสถาปัตยกรรมนี้ Master และ Slave สื่อสารผ่านโปรโตคอล TCP / IP

เจนกินส์มาสเตอร์

เซิร์ฟเวอร์ Jenkins หลักของคุณคือ Master งานของอาจารย์คือจัดการ:

สร้างอาร์เรย์ของวัตถุ
  • การจัดกำหนดการงานสร้าง
  • การส่งงานสร้างไปยังทาสเพื่อดำเนินการจริง
  • ตรวจสอบทาส (อาจนำพวกเขาออนไลน์และออฟไลน์ตามต้องการ)
  • การบันทึกและนำเสนอผลการสร้าง
  • อินสแตนซ์ Master ของ Jenkins ยังสามารถเรียกใช้งานบิลด์ได้โดยตรง

เจนกินส์ทาส

Slave เป็นไฟล์ปฏิบัติการ Java ที่รันบนเครื่องระยะไกล ต่อไปนี้เป็นลักษณะของ Jenkins Slaves:

  • มันได้ยินคำขอจากอินสแตนซ์ Jenkins Master
  • Slaves สามารถทำงานบนระบบปฏิบัติการที่หลากหลาย
  • งานของทาสคือทำตามที่พวกเขาบอกซึ่งเกี่ยวข้องกับการดำเนินการงานสร้างที่ส่งโดยอาจารย์
  • คุณสามารถกำหนดค่าโครงการให้ทำงานบนเครื่อง Slave เฉพาะหรือเครื่อง Slave ประเภทใดประเภทหนึ่งหรือเพียงแค่ให้ Jenkins เลือก Slave ที่มีอยู่เครื่องถัดไป

แผนภาพด้านล่างอธิบายได้ด้วยตนเอง ประกอบด้วย Jenkins Master ซึ่งจัดการ Jenkins Slave สามคน

ตอนนี้ให้เราดูตัวอย่างที่ Jenkins ใช้สำหรับการทดสอบในสภาพแวดล้อมต่างๆเช่น Ubuntu, MAC, Windows เป็นต้น

แผนภาพด้านล่างแสดงถึงสิ่งเดียวกัน:

ฟังก์ชันต่อไปนี้ดำเนินการในภาพด้านบน:

  • Jenkins ตรวจสอบที่เก็บ Git เป็นระยะสำหรับการเปลี่ยนแปลงที่เกิดขึ้นในซอร์สโค้ด
  • แต่ละบิลด์ต้องการสภาพแวดล้อมการทดสอบที่แตกต่างกันซึ่งเป็นไปไม่ได้สำหรับเซิร์ฟเวอร์ Jenkins เครื่องเดียว เพื่อทำการทดสอบในสภาพแวดล้อมที่แตกต่างกัน Jenkins ใช้ Slaves ต่างๆดังแสดงในแผนภาพ
  • Jenkins Master ขอให้ Slaves เหล่านี้ทำการทดสอบและสร้างรายงานการทดสอบ

Jenkins สร้างไปป์ไลน์

ใช้เพื่อทราบว่าเจนกินส์กำลังดำเนินการงานใดอยู่ บ่อยครั้งที่นักพัฒนาหลายคนทำการเปลี่ยนแปลงหลายอย่างพร้อมกันดังนั้นจึงเป็นประโยชน์ที่จะทราบว่าการเปลี่ยนแปลงใดกำลังได้รับการทดสอบหรือการเปลี่ยนแปลงใดที่อยู่ในคิวหรือโครงสร้างใดเสีย นี่คือจุดที่ไปป์ไลน์มาสู่ภาพ Jenkins Pipeline ช่วยให้คุณเห็นภาพรวมว่าการทดสอบขึ้นอยู่กับที่ใด ในการสร้างไปป์ไลน์การสร้างโดยรวมจะแบ่งออกเป็นส่วนต่างๆเช่นขั้นตอนการทดสอบหน่วยการทดสอบการยอมรับบรรจุภัณฑ์การรายงานและการปรับใช้ ขั้นตอนไปป์ไลน์สามารถดำเนินการแบบอนุกรมหรือแบบขนานและหากเฟสหนึ่งสำเร็จจะย้ายไปยังเฟสถัดไปโดยอัตโนมัติ (ดังนั้นความเกี่ยวข้องของชื่อ 'ไปป์ไลน์') ภาพด้านล่างแสดงให้เห็นว่าการสร้างหลายท่อมีลักษณะอย่างไร

ทำไมเราต้องใช้ serialization ใน java

หวังว่าคุณจะเข้าใจแนวคิดทางทฤษฎี ตอนนี้เรามาสนุกกับการลงมือทำกันเถอะ

ฉันจะสร้างงานใหม่ในเจนกินส์มันคือ โครงการฟรีสไตล์ . อย่างไรก็ตามยังมีอีก 3 ทางเลือก ให้เราดูประเภทของงานสร้างที่มีอยู่ใน Jenkins

โครงการฟรีสไตล์:

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

งาน Multiconfiguration:

“ โครงการหลายคอนฟิกูเรชัน” (เรียกอีกอย่างว่า“ โครงการเมทริกซ์”) ช่วยให้คุณรันงานบิลด์เดียวกันบนสภาพแวดล้อมที่แตกต่างกัน ใช้สำหรับทดสอบแอปพลิเคชันในสภาพแวดล้อมที่แตกต่างกันโดยมีฐานข้อมูลที่แตกต่างกันหรือแม้กระทั่งในเครื่องสร้างที่แตกต่างกัน

ตรวจสอบงานภายนอก:

งานบิวด์“ ตรวจสอบงานภายนอก” ช่วยให้คุณสามารถจับตาดูกระบวนการที่ไม่โต้ตอบเช่นงาน cron

โครงการ Maven:

“ โครงการ maven2 / 3” เป็นงานสร้างที่ปรับให้เข้ากับโครงการ Maven โดยเฉพาะ Jenkins เข้าใจไฟล์ Maven pom และโครงสร้างโครงการและสามารถใช้ข้อมูลที่รวบรวมจากไฟล์ pom เพื่อลดงานที่คุณต้องทำเพื่อตั้งค่าโครงการของคุณ

นี่คือวิดีโอเกี่ยวกับบทช่วยสอนของเจนกินส์เพื่อให้เข้าใจเจนกินส์มากขึ้น ดูวิดีโอแนะนำ Jenkins นี้

เริ่มต้นกับ Jenkins | บทช่วยสอน Jenkins และ DevOps | Jenkins สำหรับผู้เริ่มต้น | Edureka

การสร้างงานสร้างโดยใช้ Jenkins

ขั้นตอนที่ 1: จากหน้าแรกของอินเทอร์เฟซ Jenkins เลือก ไอเท็มใหม่.

ขั้นตอนที่ 2: ป้อนชื่อและเลือก โครงการฟรีสไตล์ .

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

ซึ่งจะทำให้คุณมีกล่องข้อความที่คุณสามารถเพิ่มคำสั่งที่ต้องการได้ คุณสามารถใช้สคริปต์เพื่อเรียกใช้งานต่างๆเช่นการบำรุงรักษาเซิร์ฟเวอร์การควบคุมเวอร์ชันการอ่านการตั้งค่าระบบ ฯลฯ ฉันจะใช้ส่วนนี้เพื่อเรียกใช้สคริปต์อย่างง่าย

ขั้นตอนที่ 4: บันทึกโครงการและคุณจะเข้าสู่หน้าภาพรวมโครงการ คุณสามารถดูข้อมูลเกี่ยวกับโครงการรวมถึงประวัติการสร้างโครงการได้ที่นี่

ขั้นตอนที่ 5: คลิก สร้างเลย ทางด้านซ้ายมือเพื่อเริ่มการสร้าง

ขั้นตอนที่ 6: หากต้องการดูข้อมูลเพิ่มเติมให้คลิกที่โครงสร้างนั้นในพื้นที่ประวัติการสร้างจากนั้นคุณจะเข้าสู่หน้าที่มีภาพรวมของข้อมูลการสร้าง

ขั้นตอนที่ 7: เอาต์พุตคอนโซล ลิงค์ในหน้านี้มีประโยชน์อย่างยิ่งสำหรับการตรวจสอบผลลัพธ์ของงานโดยละเอียด

การใช้งานฮีปสูงสุดใน java

ขั้นตอนที่ 8: หากคุณกลับไปที่บ้านของเจนกินส์คุณจะเห็นภาพรวมของโครงการทั้งหมดและข้อมูลของโครงการรวมถึงสถานะ

สถานะของงานสร้างจะระบุได้สองวิธีโดยไอคอนสภาพอากาศและลูกบอลสี ไอคอนสภาพอากาศมีประโยชน์อย่างยิ่งเนื่องจากจะแสดงบันทึกการสร้างหลายรายการในภาพเดียว

ดังที่คุณเห็นในภาพด้านบนดวงอาทิตย์แสดงให้เห็นว่างานสร้างทั้งหมดของฉันประสบความสำเร็จ สีของลูกบอลทำให้เรามีสถานะของโครงสร้างนั้น ๆ ในภาพด้านบนสีของลูกบอลเป็นสีน้ำเงินซึ่งหมายความว่างานสร้างนี้สำเร็จแล้ว

ในบทช่วยสอนของเจนกินส์นี้ฉันได้ยกตัวอย่างเบื้องต้น ในบล็อกถัดไปฉันจะแสดงวิธีดึงและสร้างโค้ดจากที่เก็บ GitHub โดยใช้ Jenkins

หากคุณพบสิ่งนี้ บทช่วยสอนของเจนกินส์ ที่เกี่ยวข้องตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก หลักสูตรการฝึกอบรมการรับรอง Edureka DevOps ช่วยให้ผู้เรียนมีความเชี่ยวชาญในกระบวนการและเครื่องมือ DevOps ต่างๆเช่น Puppet, Jenkins, Nagios และ GIT สำหรับการทำหลายขั้นตอนใน SDLC โดยอัตโนมัติ

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นแล้วเราจะติดต่อกลับไป