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


17

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

ข้อเสนอแนะใด ๆ

Ps: จากหนึ่งในคำตอบที่ฉันดูเหมือนจะเข้าใจว่าสิ่งประดิษฐ์อาจเป็นสิ่งที่ฉันสงสัย (สับสน?) เกี่ยวกับ ...


2
เพื่อนของเราภาษาอังกฤษ SE ได้เขียนมุมมองที่ "สิ่งประดิษฐ์" กับ "สิ่งประดิษฐ์" A: english.stackexchange.com/questions/37903/...
7ochem

คำตอบ:


19

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

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

การจัดเก็บแยกจากCode RepositoryในArtifact Repositoryเป็นการตัดสินใจออกแบบที่วิศวกร DevOps ทำ บาง บริษัท คือความจำเป็น , แนะนำการใช้พื้นที่เก็บข้อมูลรหัสของพวกเขาเป็นสิ่งประดิษฐ์พื้นที่เก็บข้อมูลได้เป็นอย่างดี มีความต้องการที่แตกต่างกันในแง่ของการที่มีการเข้าถึง , ตรวจสอบ , ขนาดวัตถุ , การติดแท็กวัตถุและขยายขีดความสามารถในแต่ละพื้นที่เก็บข้อมูลและอื่น ๆ ขึ้นอยู่กับสถานการณ์ก็มักจะดีกว่าการใช้ผลิตภัณฑ์ทั้งสองแตกต่างกัน ตัวอย่างเช่นGitที่เก็บจะถูกคัดลอกอย่างครบถ้วนไปยังเครื่องพัฒนาทุกเครื่องและดังนั้นการจัดเก็บสิ่งประดิษฐ์ในที่เก็บรหัสจะเพิ่มขนาดของมันเกินกว่าเหตุผลทั้งหมดแม้ว่าเมื่อเร็ว ๆ นี้มีวิธีที่จะลดสิ่งนี้ การตัดสินใจอีกอย่างคือสิ่งที่จะเก็บ บริษัท บางแห่งจัดเก็บสิ่งประดิษฐ์ขั้นกลางไว้เป็นไฟล์ออบเจกต์แต่ละไฟล์เพื่อเพิ่มความเร็วในการสร้างใหม่ส่วนอื่น ๆ จะเก็บเพียงไบนารีสุดท้าย ไม่ใช่สิ่งประดิษฐ์ทั้งหมดที่มีค่าเดียวกัน สิ่งประดิษฐ์ที่เป็นผลมาจากการสร้างรุ่นอาจมีความต้องการที่แตกต่างจากสิ่งประดิษฐ์ที่เกิดจากการสร้างนักพัฒนา

สิ่งประดิษฐ์ที่พบมากที่สุดคือผลของกระบวนการต่อไปนี้: การกำหนดค่า , กระบวนการเตรียมการผลิต , การรวบรวม , การเชื่อมโยง , ทดสอบอัตโนมัติ , การเก็บ , บรรจุภัณฑ์ , ไฟล์มีเดียการสร้างและการประมวลผล , แฟ้มข้อมูล Generation , เอกสารแยก , การวิเคราะห์รหัส , QAฯลฯ


ประโยคเกี่ยวกับขนาด git นั้นไม่ถูกต้องทั้งหมดโดยใช้git lfsคุณสามารถลดปัญหานี้ได้ (มีความแม่นยำเพียงเล็กน้อย)
Tensibai

ที่น่าสนใจนั่นยิ่งยืนยันความคิดของฉัน (คาดเดา) มากขึ้น 2 สิ่ง: perforce-link ของคุณต้องการการแก้ไขและคำถามเพิ่มเติม: คุณจะเห็นด้วยหรือไม่ว่า "การติดตามข้อมูลการทดสอบของคุณ" (อินพุตที่คุณใช้และเอาต์พุตที่คุณได้รับ) อาจถือได้ว่าเป็นสิ่งประดิษฐ์ด้วยเช่นกัน และ BTW คำตอบนี้เตือนฉันเกี่ยวกับ "ระดับการตรวจสอบ" ที่ใช้ในส่วนของ "สัญญาซอฟต์แวร์" (ถ้าคุณคุ้นเคยกับสิ่งนั้น) ฉันเริ่มสงสัยว่าหัวข้อ escrow ของซอฟต์แวร์ควรได้รับการพิจารณาในหัวข้อสำหรับ DevOps ... บางที @Tensibai ก็อาจต้องการแสดงความคิดเห็นด้วยหรือไม่
Pierre.Vriens

1
@ Pierre.Vriens สำหรับชุดข้อมูลการทดสอบของคุณนั้นยากที่จะทำทุกวันหากข้อมูลการทดสอบของคุณเป็น DB ซึ่งไม่เหมาะกับแนวคิดเรื่องสิ่งประดิษฐ์ สำหรับ escrow ฉันไม่รู้เหมือนเดิมว่าถ้าคำถามนั้นเน้นพอที่จะฟังดูดีสำหรับฉัน
Tensibai

@ Pierre.Vriens ฉันหมายถึงมีหลายสิ่งที่เหมาะสมกับชื่อ 'ข้อมูลทดสอบ' (จากจำนวนง่าย ๆ ไปจนถึงไฟล์นับล้านผ่านทางตัวอย่างฐานข้อมูล DB) ว่ากว้างเกินไปโดยไม่มีบริบท
Tensibai

@ Pierre.Vriens (และขออภัยสำหรับ Jiri สำหรับการแจ้งเตือน) ฉันไม่คิดว่าการเจรจาตามสัญญากับผู้ให้บริการของคุณอยู่ในหัวข้อและสิ่งที่คุณอธิบายเป็นเพียงการเจรจาทางกฎหมายสำหรับสิ่งที่ฉันเดา
Tensibai

7

มีสองประเพณีของคำว่า "สิ่งประดิษฐ์" และหนึ่งทำให้ซอร์สโค้ดเป็นสิ่งประดิษฐ์ในขณะที่สองทำให้มันไม่ได้เป็นสิ่งประดิษฐ์: สิ่งนี้อาจทำให้สับสนได้!

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

“ สิ่งประดิษฐ์” เป็นสิ่งที่ผลิตโดยสูตร - ความหมายนี้ใช้ภาพยอดนิยมของนักเล่นแร่แปรธาตุโดยใช้สูตรลับบางอย่างเพื่อสร้างอุปกรณ์วิเศษที่มักเรียกว่าสิ่งประดิษฐ์ มันเป็นศัพท์แสงทางเทคนิคที่ใช้เพื่อแยกความแตกต่างระหว่างซอร์สโค้ดซึ่งสอดคล้องกับสูตรในการเปรียบเทียบนักเล่นแร่แปรธาตุของและสิ่งใดก็ตามที่ได้มาจากซอร์สโค้ดนั้นซึ่งสอดคล้องกับสิ่งประดิษฐ์ในการเปรียบเทียบของนักเล่นแร่แปรธาตุ ตัวอย่างเช่นฉันเพิ่งผลิตสิ่งประดิษฐ์โดยอัตโนมัติสำหรับโปรแกรม plop-fizz ของฉันตอนนี้แหล่ง tarballs, ไฟล์ลายเซ็น, แพคเกจ DEB และ RPM สามารถทั้งหมดในอินสแตนซ์ในคำสั่งเดียว! ความหมายนี้ไม่รู้จักซอร์สโค้ดเป็นสิ่งประดิษฐ์เนื่องจากคำนี้ใช้เพื่อแสดงถึงสิ่งที่สร้างขึ้นจากซอร์สโค้ดนี้


3

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

ซึ่งรวมถึงไบนารีของผลิตภัณฑ์หรือผลิตภัณฑ์ที่จำเป็นอื่น ๆ , ห้องสมุด, ไฟล์วัตถุ, การทดสอบสิ่งประดิษฐ์เช่นไฟล์สื่อหรือข้อมูลการทดสอบ

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


อืมน่าสนใจคุณกำลังยืนยันสิ่งที่ฉันคาดเดา คุณเห็นด้วยไหมว่าไม่สำคัญว่าแพลตฟอร์มหรือระบบปฏิบัติการใดที่เรากำลังพูดถึง ตัวอย่างเช่นแม้สำหรับเมนเฟรมหลัก "อาจ" ใช้คำศัพท์นี้เช่นกัน ... ถ้าเป็นเช่นนั้นคุณสามารถรวมบางอย่างเกี่ยวกับสิ่งนั้นไว้ในคำตอบของคุณได้ไหม?
Pierre.Vriens

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

@ เพียร์ยืนยันว่าระบบปฏิบัติการแบบใดที่ตั้งฉากกับการเป็นสิ่งประดิษฐ์ฉันไม่แน่ใจว่าทำไมมันควรจะรวมอยู่ในคำตอบสิ่งอื่น ๆ อีกมากมายที่ไม่เกี่ยวข้องเช่นกัน
Rsf

0

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

ปัญหาวัฒนธรรม: หากองค์กรใช้ ITIL ผู้ที่ผ่านการรับรองจะพูดว่า "เราต้องมีไลบรารีสื่อที่ชัดเจนเช่นที่เก็บเพื่อวางรายการการกำหนดค่าซอฟต์แวร์ที่เราผลิต" ดังนั้นผู้ที่สนใจกระบวนการ IT ที่มีโครงสร้างอย่างดีจึงไม่ทราบว่าเครื่องมือ (ไม่ใช่การจัดการ) ใดที่สนับสนุนและใช้งานอยู่ ในทางกลับกันหากคุณต้องการเหตุผลสำหรับภาษา Nexus หรือ Artifactory คุณอาจมีเวลาอธิบายยากขึ้นอยู่กับองค์กร

อ่านเพิ่มเติม: https://en.wikipedia.org/wiki/Definitive_Media_Library


1
สวัสดี ยินดีต้อนรับสู่เว็บไซต์ โปรดเพิ่มข้อมูลเพิ่มเติมในคำตอบ ในนั้นเป็นของรัฐในปัจจุบันก็เชื่อมโยงเท่านั้นและจะถูกทำเครื่องหมาย :)
Dawny33

ถ้า DevOps นั้นเกี่ยวกับวัฒนธรรมฉันคิดว่าการเชื่อมโยงไปยัง ITIL สำคัญเพราะบางครั้งมันก็เป็นกฎขององค์กรไอทีในระดับองค์กรที่สูงขึ้น เพิ่มคำอธิบายเพิ่มเติมเพื่ออธิบายความสมมาตรของความไม่รู้นี้
Peter

1
ฉันไม่คิดว่ามันจะตอบคำถามของสิ่งประดิษฐ์จริง ๆ แต่อย่างน้อยมันก็ดูเหมือนจะพยายามตอบอย่างซื่อสัตย์ในตอนนี้
Tensibai

ฉันเห็นด้วยกับ @Tensibai (ตอนนี้) และลบความคิดเห็นก่อนหน้าของฉัน (ไม่ต้องสงสัยอีกต่อไป) และถึงแม้ว่าทุกอย่างในคำตอบนี้จะสมเหตุสมผล แต่ฉันก็ยังไม่เข้าใจว่า "หมายเหตุด้านข้าง" - คำตอบตอบคำถามของฉันซึ่งฉันพยายามสรุปในชื่อคำถามของฉันด้วยเช่น " สิ่งประดิษฐ์ (หรือสิ่งประดิษฐ์ ) คืออะไร )? " ฉันยินดีต้อนรับความพยายามใหม่ตกลงไหม
Pierre.Vriens
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.