สิ่งประดิษฐ์คืออะไร?


53

มีคำถามและคำตอบค่อนข้างมากที่กล่าวถึง " สิ่งประดิษฐ์ "

ผมจะไม่แปลกใจถ้ามันเป็นเรื่องที่เกี่ยวข้องอย่างใดเพื่อสิ่งประดิษฐ์

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

  • อะไรคือ "วัตถุโบราณ" (ในบริบทของ DevOps)
  • เหตุใดจึงใช้สิ่งประดิษฐ์

ค่อนข้างคำตอบที่น่าสนใจเล็กน้อยกับสิ่งที่ฉันเป็นคำถามที่ค่อนข้างพื้นฐาน ตลกพอที่พวกเขาทุกคนเตือนฉันเกี่ยวกับแนวคิดที่คล้ายกันในสภาพแวดล้อมเมนเฟรมเก่าที่ดี (ที่ราก DevOps ของฉันคือ ... และที่ใดที่แนวคิด DevOps มากมายดูเหมือนจะมีต้นกำเนิดมาจาก)
Pierre.Vriens

คำตอบ:


66

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

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

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

นี่คือบางส่วนของผู้จัดการแพคเกจยอดนิยมที่สามารถจัดการได้โดยใช้ที่เก็บไบนารี:

  • Java: โถหู ฯลฯ สงครามมีMavenและอย่างเป็นทางการMavenCentral มีตัวจัดการแพ็กเกจอื่น ๆ อีกมากมายที่จะใช้รูปแบบที่เก็บไบนารี maven เช่นกัน ( ivy , gradleฯลฯ )
  • สุทธิ: nugetสำหรับองค์ประกอบของ NET (DLL และ EXE) แต่ยังสามารถนำมาใช้เป็นกลไกในการจัดจำหน่ายภายใต้หน้าต่าง thorugh ระบบเช่นchocolatey รุ่นใหม่ของ Powershell ยังสามารถใช้ประโยชน์จากสิ่งนี้เพื่อกระจายโมดูล PowerShell แม้ว่าแกลเลอรี่ PowerShellที่หนึ่งสามารถสร้างการกระจายในท้องถิ่นด้วยพื้นที่เก็บข้อมูลไบนารีและพื้นที่เก็บข้อมูลในรูปแบบ nuget ตรวจสอบOneGet ด้วยว่าการจัดการการกระจาย Windows เป็นที่สนใจของคุณหรือไม่
  • ใน JavaScript: เรามีNPMซึ่งเป็นหนึ่งในความนิยมมากที่สุดจะต้องnodejs
  • ในไพ ธ อน: มีpipและpypiดัชนีแพคเกจอย่างเป็นทางการซึ่งหนึ่งยังสามารถสร้างอินสแตนซ์ท้องถิ่นผ่านพื้นที่เก็บข้อมูลไบนารีที่จะสนับสนุนรูปแบบ

รายการนี้ยังไม่เสร็จสมบูรณ์เพียงแค่ให้ความคิดว่ามีอะไรเกิดขึ้นบ้าง

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

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

ความเห็นส่วนตัวของฉันคือที่เก็บไบนารีเป็นส่วนสำคัญของการตั้งค่า devops ที่ออกแบบมาอย่างดีเป็นแหล่งเก็บข้อมูลรหัสต้นฉบับหรือการรวมอย่างต่อเนื่อง


Merci สำหรับคำตอบที่น่าสนใจนี้ (เช่นกัน) ด้วยเหตุผลบางอย่างทั้งหมดนี้ทำให้ฉันคิดว่า "hm ดังนั้นนี่คือสิ่งที่เรามักจะเรียกในสภาพแวดล้อมเมนเฟรมเก่าที่ดีสิ่งต่าง ๆ เช่นโหลดไลบรารีที่มีไฟล์ปฏิบัติการ (ใช้เพื่อเรียกใช้ภูมิภาค CICS / IMS / IDMS ของคุณ) ... " .
Pierre.Vriens

1
สิ่งสำคัญที่ต้องเพิ่มคือคลังเก็บสาธารณะที่เพิ่มขึ้นเช่น Maven Central และmodulecounts.com - แหล่งเหล่านี้มักจะเป็นแหล่งจัดหาสำหรับโครงการซอฟต์แวร์ซึ่งกลายเป็นแหล่งรวบรวมแอสเซมบลีสำหรับส่วนประกอบเหล่านี้มากขึ้นรวมถึงกำหนดกาว / รหัสส่วนหน้า ตรรกะ.
ปีเตอร์

1
modulecounts.com ไม่เคยได้ยินมาก่อนว่าเว็บไซต์จะปิดตัวลงฉันจะตรวจสอบในภายหลัง
Newtopian

1
การเปรียบเทียบตู้เย็นกับตู้เย็นที่น่าสนใจ :)
Ravi Tiwari

6

วิธีที่มันช่วยให้ฉันเข้าใจในตอนแรกความแตกต่างระหว่างที่เก็บซอร์สโค้ดและที่เก็บไบนารีคือการคิดเช่น: * Github หรือ Bitbucket มีประโยชน์ในการรักษา 'code' ทั้งหมด * Jfrog Artifactory มีประโยชน์ในการบำรุงรักษา 'binary' อย่างน้อย จนกว่าฉันจะพอใจกับเงื่อนไขเหล่านี้!

นอกจากนี้ความสำคัญของสิ่งประดิษฐ์สามารถเข้าใจได้ในความสัมพันธ์กับปรัชญาของ DevOps เพื่อ "สร้างครั้งเดียวปรับใช้เสมอ" มันไปไกลในการผนวกอย่างต่อเนื่องเพื่อสร้างไบนารีของคุณเพียงครั้งเดียวใส่ไว้ใน Artifactory แล้วเรียกมันจากที่นั่นเพื่อปรับใช้ในสภาพแวดล้อมที่แตกต่างกันทั้งหมด ด้วยวิธีนี้เรามั่นใจว่ารหัสที่ทำงานใน Dev นั้นเป็นรหัสที่ส่งไปยัง Prod และจะทำงานที่นั่น


คำอธิบายที่น่าสนใจ Merci!
Pierre.Vriens

5

Artifactory เป็นผู้จัดการไบนารี Repositoryสินค้าจากJFrog

คุณถูกต้อง - การเป็นผู้จัดการพื้นที่เก็บข้อมูลแบบไบนารีนั้นมักใช้เพื่อจัดการหน่วยเก็บข้อมูลของสร้างและใช้ในกระบวนการพัฒนาซอฟต์แวร์

จากหน้าเว็บหลักของ Artifactory :

ในฐานะที่เป็นคนแรกและคนเดียว Universal Artifact Repository Manager ในตลาด JFrog Artifactory สนับสนุนแพคเกจซอฟต์แวร์ที่สร้างขึ้นโดยภาษาหรือเทคโนโลยีใด ๆ อย่างเต็มที่

...

... Artifactory จัดหาโซลูชันแบบครบวงจรอัตโนมัติและระบบป้องกันกระสุนสำหรับการติดตามสิ่งประดิษฐ์ตั้งแต่การพัฒนาจนถึงการผลิต

ประเพณีที่คุณกล่าวถึงแนะนำว่าอาจได้รับความนิยมมากพอสำหรับเครื่องหมายการค้าทั่วไปใน DevOps


1
Merci แดนคุณอย่างใดยืนยันว่า Artifactory เป็นเหมือนการรวมกันของคำว่าArtifac TS กับ Reposi tory คำถามเพิ่มเติมที่ฉันสงสัยเกี่ยวกับเรื่องนี้คือ: สิ่งที่เกี่ยวกับสิ่งประดิษฐ์ที่ใช้ในการผลิต แต่ที่ไม่ใช่ไบนารีเช่นรหัส PHP, ไฟล์ CSS, สคริปต์ทุบตี ฯลฯ
Pierre.Vriens

1
สำหรับรหัสแอปพลิเคชันพวกเขามีระบบการกำหนดเวอร์ชันของซอร์สโค้ดเช่น cvs, svn, git, mercurial .. และสำหรับรหัสการกำหนดค่าการจัดการการกำหนดค่าและระบบการจัดจำหน่ายเช่นหุ่นเชิดเชฟ ansible เกลือ ..
Peter

@ Pierre.Vriens ฉันไม่ได้ใช้ความคิดแบบนี้อย่างใดเลย "โรงงาน" มักจะนึกถึงก่อนเสมอ :) แต่ตอนนี้ฉันเห็นแล้ว ขอบคุณ!
Dan Cornilescu

@ J.Doe merci สำหรับการเพิ่มนั้นและเพียงแค่ขยายความคิดเห็นของคุณ ... ในเมนเฟรมคอมพิวเตอร์พวกเขามีเครื่องมือเช่น "ChangeMan ZMF", "Endevor SCM" ฯลฯ เครื่องมือเหล่านี้ใช้สำหรับฟังก์ชั่นทั้งหมดที่คุณกล่าวถึง (เวอร์ชัน) การแจกจ่าย ฯลฯ แต่ยังสำหรับเวิร์กโฟลว์ความปลอดภัย ฯลฯ ที่เกี่ยวข้องกับสิ่งนั้น)
Pierre.Vriens

ดังนั้นถ้าเราสร้างสิ่งประดิษฐ์ใหม่ msinframes สิ่งที่อาจจะผิดกับพวกเขา!
ปีเตอร์

4

ฉันคิดว่าสิ่งที่ซับซ้อนคือสิ่งที่ทุกคนกำลังชื่นชมในปัจจุบัน ฉันจะพยายามตอบคำถามสั้น ๆ นี้

Source Repository ใช้สำหรับการจัดเก็บรหัสและรุ่นในขณะที่วัตถุจะใช้สำหรับการจัดเก็บโปรแกรมปฏิบัติการที่เป็นเอาท์พุทของรหัสเหล่านั้น [ไบนารี - dll, โถ, สงคราม, หู, MSI, ไฟล์ exe ฯลฯ ]

ตอนนี้เหตุผลที่คุณต้องการวางแยกไว้ใน repo ซึ่งแตกต่างจากรหัสของคุณอาจมีมากมาย - จากการเข้าถึงที่ปลอดภัยการแฮ็คการแฮ็กการตรวจสอบรหัสที่เป็นอันตรายหรือเพียงแค่แยกออกจากกันสำหรับลูกค้าที่ต้องการ ไบนารี

เทคโนโลยีของ SCM สามารถเปิดเผยตัวเองในการสร้างผู้ใช้ 2 ประเภท (หนึ่งที่มีสิทธิ์ของนักพัฒนาที่จะสามารถเข้าถึงซอร์สโค้ดและอีกหนึ่งเป็นลูกค้าที่เพิ่งจะสามารถเข้าถึงไบนารี) แต่มันไม่ได้ใช้เส้นทางนั้น! ดังนั้นตอนนี้เรามีสิ่งประดิษฐ์


2

สิ่งประดิษฐ์

เป็นสิ่งที่ผลิต / สร้าง / สร้างขึ้นจากกระบวนการเฉพาะ

Jar ออกจากการสร้างโปรเจ็กต์ Java

คำถามจากใจของคุณ

รถออกจากโรงงาน

เพลงใหม่

พื้นที่เก็บข้อมูล

เป็นที่รองรับสิ่งที่ยังคงอยู่

Github สำหรับโครงการ Java

StackExchange สำหรับคำถามที่น่ากลัวของคุณ

ในทฤษฎีสิ่งประดิษฐ์ - oryจะเป็นพื้นที่เก็บข้อมูลของสิ่งประดิษฐ์ที่พวกเขาจะยืนยันและจัดการตลอดวงจรชีวิตของพวกเขา

ในบริบทของ DevOps Artifactory เป็นผลิตภัณฑ์ที่จัดการกับส่วนไบนารี มันจัดเก็บและจัดการประเภทต่าง ๆ (แพคเกจ Jar, Python และ npm, ฯลฯ ... ) ที่คุณสร้างขึ้นจาก builds ของคุณและนำกลับมาใช้ใหม่ในเวลารวบรวมหรือปรับใช้


คำอธิบายที่น่าสนใจ Merci!
Pierre.Vriens

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