Pertanyaan tentang " Apa itu repositori artefak? " Berisi jawaban dengan penjelasan yang menarik tentang bagian repositori itu. Dan dari membaca seluruh jawaban, saya tidak yakin apa sebenarnya arti " artefak " dalam konteks DevOps.
Ada saran?
PS: Dari salah satu jawaban saya sepertinya mengerti bahwa mungkin artefak adalah apa yang saya ingin tahu (bingung?) Tentang ...
terminology
artifacts
Pierre.Vriens
sumber
sumber
Jawaban:
Wikipedia memiliki jawaban yang sangat bagus untuk pertanyaan ini. Artifact , kadang-kadang juga disebut Obyek Turunan , adalah produk dari beberapa proses yang diterapkan ke Gudang Kode . Awalnya mereka disebut Build Artifacts , tetapi karena lebih banyak proses diterapkan selain build untuk membuatnya, kata pertama dihapus begitu saja.
Perbedaan utama adalah artefak dapat dibuat kembali dari repositori kode menggunakan proses yang sama, asalkan Anda telah melestarikan lingkungan di mana proses itu diterapkan. Karena proses ini dapat memakan waktu dan lingkungan dapat dilestarikan secara tidak sempurna untuk dapat membuat kembali artefak dengan cara yang persis sama, kami mulai menyimpannya dalam Gudang Artefak .
Menyimpannya secara terpisah dari Code Repository dalam Artifact Repository adalah keputusan desain yang akan dibuat oleh seorang insinyur DevOps. Beberapa perusahaan, yaitu Perforce , menyarankan untuk menggunakan Repositori Kode mereka sebagai Repositori Artifak juga. Ada persyaratan yang berbeda dalam hal akses , audit , ukuran objek , penandaan objek dan skalabilitas pada setiap repositori dan jadi tergantung pada situasi, seringkali lebih baik menggunakan dua produk yang berbeda. Misalnya Gitrepositori disalin secara keseluruhan ke setiap mesin pengembangan dan menyimpan artefak dalam repositori kode akan menambah ukurannya di luar semua alasan, meskipun akhir-akhir ini ada cara untuk mengurangi ini. Keputusan lain untuk dibuat adalah artefak mana yang akan disimpan. Beberapa perusahaan bahkan menyimpan artefak perantara sebagai file objek individual, untuk mempercepat pembangunan kembali, yang lain hanya menyimpan binari terakhir. Tidak semua artefak memiliki nilai yang sama. Artefak yang dihasilkan dari rilis build dapat memiliki persyaratan yang berbeda dari artefak yang dihasilkan dari build developer.
Kebanyakan artefak umum adalah hasil dari proses berikut: Konfigurasi , Preprocessing , Kompilasi , Menghubungkan , Automated Testing , Pengarsipan , Packaging , Media file penciptaan dan pengolahan , Data File Generation , Dokumentasi Parsing , Kode menganalisis , QA , dll
sumber
Ada dua penggunaan kata "artefak" dan satu membuat kode sumber sebuah artefak sementara yang kedua membuatnya tidak menjadi artefak: ini memang bisa sangat membingungkan!
"Artefak" sebagai hal yang konkret, vs hal yang ideal - Makna ini adalah makna umum dari kata "objek yang dibuat oleh manusia, biasanya salah satu dari kepentingan budaya atau sejarah" dan bukan jargon teknis. Berikut adalah contoh dalam konteks teknis: Ketika Anda men-debug suatu perangkat lunak, Anda mempelajari sesuatu tentang perangkat lunak tersebut. Seringkali merupakan investasi yang berharga untuk mengubah pembelajaran ini menjadi artefak perangkat lunak, seperti tes regresi. Kalau tidak, pembelajaran ini akan dilupakan dan upaya yang dilakukan untuk mendapatkannya akan sia-sia. Dalam arti ini, kode sumber dianggap sebagai artefak.
"Artefak" sebagai sesuatu yang dihasilkan oleh resep - Makna ini menggunakan gambar populer sang alkemis menggunakan beberapa resep esoteris untuk menghasilkan perangkat ajaib, yang sering disebut artefak. Ini adalah jargon teknis yang digunakan untuk membedakan antara kode sumber, yang sesuai dengan resep dalam metafora alkemis, dan apa pun yang berasal dari kode sumber itu, yang sesuai dengan artefak dalam metafora alkemis. Sebagai contoh, saya hanya mengotomatiskan produksi artefak untuk program plop-fizz saya, sekarang tarball sumber, file tanda tangan, paket DEB dan RPM semua dapat dipakai hanya dalam satu perintah! Arti ini tidak mengenali kode sumber sebagai artefak, karena istilah ini digunakan untuk menunjukkan apa yang dihasilkan dari kode sumber ini.
sumber
Saya kira jawabannya mungkin berbeda dari satu tempat ke tempat lain. Di mana saya bekerja saat artefak adalah sesuatu yang dikonsumsi oleh beberapa entitas lain, kecuali untuk kode sumber yang digunakan untuk pengembangan - ini masuk ke kontrol sumber.
Ini termasuk binari produk atau produk lain yang dibutuhkan, perpustakaan, file objek, artefak uji seperti file media atau data uji.
Kode sumber tidak dianggap sebagai artefak. Kecuali jika cocok dengan definisi "dikonsumsi oleh" - dalam kasus kami termasuk perpustakaan pihak ketiga, kode skrip yang digunakan untuk pengujian atau tujuan lain (tetapi bukan versi pengembangan itu sendiri).
sumber
Catatan sisi pada sisi budaya. Sementara di DevOps kami menganggap konsep "artifact repository" sebagai situasi tertentu, tampaknya tidak ada banyak kaitan dengan proses organisasi.
Masalah budaya: jika suatu organisasi menggunakan ITIL, orang yang disertifikasi akan mengatakan "kita perlu memiliki perpustakaan media yang pasti, repositori untuk menempatkan item konfigurasi perangkat lunak yang telah kami hasilkan". Jadi orang yang peduli tentang proses TI yang terstruktur dengan baik tidak tahu alat (bukan-manajemen) yang mendukung dan sedang digunakan. Begitu juga sebaliknya, jika Anda membutuhkan pembenaran untuk bahasa Nexus atau Artifactory, Anda mungkin kesulitan menjelaskannya tergantung pada organisasi.
Bacaan lebih lanjut: https://en.wikipedia.org/wiki/Definitive_Media_Library
sumber