3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

การปรับใช้อย่างต่อเนื่องเป็นแนวทางพิเศษในการพัฒนาซอฟต์แวร์ที่ใช้ในการปรับใช้ฟังก์ชันต่างๆ ในซอฟต์แวร์ได้อย่างรวดเร็ว ปลอดภัย และมีประสิทธิภาพ

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

Skillbox แนะนำ: หลักสูตรภาคปฏิบัติ "นักพัฒนามือถือ PRO".

เราเตือนคุณ: สำหรับผู้อ่าน "Habr" ทุกคน - ส่วนลด 10 rubles เมื่อลงทะเบียนในหลักสูตร Skillbox ใด ๆ โดยใช้รหัสส่งเสริมการขาย "Habr"

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

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

เจนกิ้นส์

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

ข้อกำหนดขั้นต่ำของพีซี:

  • RAM 256 MB พื้นที่ไฟล์ 1 GB

เหมาะสมที่สุด:

  • RAM 1 GB, ฮาร์ดไดรฟ์ 50 GB.

ในการทำงานคุณจะต้องมีซอฟต์แวร์เพิ่มเติม - Java Runtime Environment (JRE) เวอร์ชัน 8

สถาปัตยกรรม (การคำนวณแบบกระจาย) มีลักษณะดังนี้:
3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

Jenkins Server คือการติดตั้งที่รับผิดชอบในการโฮสต์ GUI รวมถึงการจัดระเบียบและดำเนินการบิลด์ทั้งหมด

Jenkins Node/Slave/Build Server - อุปกรณ์ที่สามารถกำหนดค่าให้ทำงาน build ในนามของ Master (โหนดหลัก)

การติดตั้งสำหรับ Linux

ก่อนอื่นคุณต้องเพิ่มพื้นที่เก็บข้อมูล Jenkins เข้ากับระบบ:

ซีดี /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key - sudo apt-key เพิ่ม - echo 'deb pkg.jenkins.io/debian-stable ไบนารี/' | sudo tee -a /etc/apt/sources.list.d/je

อัปเดตที่เก็บแพ็กเกจ:

sudo apt update

ติดตั้งเจนกินส์:

sudo apt ติดตั้งเจนกินส์

หลังจากนี้ Jenkins จะพร้อมใช้งานในระบบผ่านพอร์ตเริ่มต้น 8080

หากต้องการตรวจสอบฟังก์ชันการทำงาน คุณต้องเปิดที่อยู่ในเบราว์เซอร์ localhost:8080. จากนั้นระบบจะแจ้งให้คุณป้อนรหัสผ่านเริ่มต้นสำหรับผู้ใช้รูท รหัสผ่านนี้อยู่ในไฟล์ /var/lib/jenkins/secrets/initialAdminPassword

ตอนนี้ทุกอย่างพร้อมแล้ว คุณสามารถเริ่มสร้างโฟลว์ CI/CD ได้ อินเทอร์เฟซแบบกราฟิกของโต๊ะทำงานมีลักษณะดังนี้:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

จุดแข็งของเจนกินส์:

  • ความสามารถในการปรับขนาดโดยสถาปัตยกรรม Master/Slave
  • ความพร้อมใช้งานของ REST XML/JSON API;
  • ความสามารถในการเชื่อมต่อส่วนขยายจำนวนมากด้วยปลั๊กอิน
  • ชุมชนที่กระตือรือร้นและพัฒนาอย่างต่อเนื่อง

จุดด้อย:

  • ไม่มีบล็อกการวิเคราะห์
  • ส่วนต่อประสานที่ใช้งานง่ายไม่มากนัก

TeamCity

การพัฒนาเชิงพาณิชย์จาก JetBrains เซิร์ฟเวอร์นั้นดีด้วยการตั้งค่าที่เรียบง่ายและอินเทอร์เฟซที่ยอดเยี่ยม การกำหนดค่าเริ่มต้นมีฟังก์ชันจำนวนมาก และจำนวนปลั๊กอินที่มีอยู่ก็เพิ่มขึ้นอย่างต่อเนื่อง

ต้องใช้ Java Runtime Environment (JRE) เวอร์ชัน 8

ข้อกำหนดฮาร์ดแวร์เซิร์ฟเวอร์ไม่สำคัญ:

  • แรม - 3,2GB;
  • โปรเซสเซอร์ - ดูอัลคอร์ 3,2 GHz;
  • ช่องทางการสื่อสารที่มีความจุ 1 Gb/s

เซิร์ฟเวอร์ช่วยให้คุณได้รับประสิทธิภาพสูง:

  • 60 โปรเจ็กต์พร้อมการกำหนดค่าบิลด์ 300 รายการ
  • การจัดสรร 2 MB สำหรับบันทึกการสร้าง
  • 50 ตัวแทนการสร้าง;
  • ความสามารถในการทำงานกับผู้ใช้ 50 คนในเวอร์ชันเว็บและผู้ใช้ 30 คนใน IDE
  • การเชื่อมต่อ VCS ภายนอก 100 รายการ โดยทั่วไปคือ Perforce และ Subversion เวลาการเปลี่ยนแปลงเฉลี่ยคือ 120 วินาที
  • การแก้ไขมากกว่า 150 รายการต่อวัน
  • การทำงานกับฐานข้อมูลบนเซิร์ฟเวอร์เดียว
  • การตั้งค่ากระบวนการเซิร์ฟเวอร์ JVM: -Xmx1100m -XX:MaxPermSize=120m

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

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

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

การติดตั้งสำหรับ Linux

หากต้องการติดตั้ง TeamCity ด้วยคอนเทนเนอร์เซิร์ฟเล็ต Tomcat ด้วยตนเอง คุณควรใช้ไฟล์เก็บถาวร TeamCity: TeamCity .tar.gz ดาวน์โหลด คุณสามารถรับได้จากที่นี่.

tar -xfz TeamCity.tar.gz

/bin/runAll. ช [เริ่ม|หยุด]

เมื่อคุณเริ่มต้นครั้งแรก คุณจะต้องเลือกประเภทของฐานข้อมูลที่จะจัดเก็บข้อมูลแอสเซมบลี

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

การกำหนดค่าเริ่มต้นทำงานอยู่ localhost:8111/ โดยมี build agent ที่ลงทะเบียนไว้หนึ่งตัวที่ทำงานบนพีซีเครื่องเดียวกัน

จุดแข็งของทีมซิตี้:

  • ติดตั้งง่าย;
  • อินเตอร์เฟซที่ใช้งานง่าย;
  • ฟังก์ชั่นในตัวจำนวนมาก
  • สนับสนุน;
  • มี RESTful API;
  • เอกสารที่ดี
  • การรักษาความปลอดภัยที่ดี

จุดด้อย:

  • บูรณาการอย่างจำกัด;
  • นี่เป็นเครื่องมือที่ต้องชำระเงิน
  • ชุมชนเล็กๆ (ซึ่งกำลังเติบโต)

โกซีดี

โปรเจ็กต์โอเพ่นซอร์สที่ต้องการ Java Runtime Environment (JRE) เวอร์ชัน 8 สำหรับการติดตั้งและการดำเนินการ

ความต้องการของระบบ:

  • RAM - ขั้นต่ำ 1 GB ยิ่งมากยิ่งดี
  • โปรเซสเซอร์ - ดูอัลคอร์พร้อมความถี่คอร์ 2 GHz;
  • ฮาร์ดไดรฟ์ - พื้นที่ว่างอย่างน้อย 1 GB

ตัวแทน:

  • RAM - อย่างน้อย 128 MB ยิ่งมากยิ่งดี
  • โปรเซสเซอร์ - อย่างน้อย 2 GHz

เซิร์ฟเวอร์รับประกันการทำงานของตัวแทนและมอบอินเทอร์เฟซที่สะดวกสำหรับผู้ใช้:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

ขั้นตอน/งาน/งาน:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

การติดตั้งสำหรับ Linux

ก้อง "deb download.gocd.org - sudo ที /etc/apt/sources.list.d/gocd.list

โค้ง download.gocd.org/GOCD-GPG-KEY.asc - sudo apt-key เพิ่ม -
เพิ่ม-apt-พื้นที่เก็บข้อมูล ppa:openjdk-r/ppa

ปรับปรุง apt-get

apt-get ติดตั้ง -y openjdk-8-jre

apt-get ติดตั้ง go-server

apt-get ติดตั้ง go-agent

/etc/init.d/go-server [เริ่ม|หยุด|สถานะ|รีสตาร์ท]

/etc/init.d/go-agent [เริ่ม|หยุด|สถานะ|รีสตาร์ท]

โดยค่าเริ่มต้น GoCd จะทำงานบน localhost: 8153

จุดแข็งของ GoCd:

  • โอเพ่นซอร์ส;
  • การติดตั้งและการกำหนดค่าอย่างง่าย
  • เอกสารที่ดี

  • ส่วนต่อประสานผู้ใช้ที่ยอดเยี่ยม:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

  • ความสามารถในการแสดงเส้นทางการปรับใช้ GoCD ทีละขั้นตอนในมุมมองเดียว:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

  • การแสดงโครงสร้างท่อที่ดีเยี่ยม:

3 เครื่องมือยอดนิยมสำหรับการจัดระเบียบการใช้งานอย่างต่อเนื่อง (Continuous Deployment)

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

จุดด้อย:

  • จำเป็นต้องมีตัวแทนอย่างน้อยหนึ่งคน
  • ไม่มีคอนโซลที่จะแสดงงานที่เสร็จสมบูรณ์ทั้งหมด
  • เพื่อดำเนินการแต่ละคำสั่ง คุณต้องสร้างหนึ่งงานสำหรับการกำหนดค่าไปป์ไลน์
  • หากต้องการติดตั้งปลั๊กอิน คุณต้องย้ายไฟล์ .jar ไปไว้ /plugins/external และรีสตาร์ทเซิร์ฟเวอร์
  • ชุมชนที่ค่อนข้างเล็ก

สรุป

นี่เป็นเพียงสามเครื่องมือเท่านั้น จริงๆ แล้วยังมีเครื่องมืออื่นๆ อีกมากมาย เป็นการยากที่จะเลือก ดังนั้นคุณต้องใส่ใจกับแง่มุมเพิ่มเติมอย่างแน่นอน

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

หากการรักษาความปลอดภัยเป็นสิ่งสำคัญที่สุดของคุณ ก็คุ้มค่าที่จะใช้เครื่องมือในเครื่อง ถ้าไม่เช่นนั้น การเลือกโซลูชัน SaaS ก็เป็นตัวเลือกที่ดี

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

Skillbox แนะนำ:

ที่มา: will.com

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