Bir yapay nedir?


53

" Yapay " denilen bazı soru ve cevaplar var .

Bir şekilde ile ilgili olsaydı şaşırmam .

Sorularım :

  • Aslında "yapay" (DevOps bağlamında) nedir?
  • Eserler neden kullanılıyor?

Oldukça basit bir soru olarak düşündüğüm şeye birkaç ilginç cevap. Yeterince komik, hepsi eski güzel anabilgisayar ortamlarında (DevOps köklerimin olduğu ve çok fazla DevOps kavramının nereden kaynaklandığı görünüyor) bana benzer bir kavramı hatırlatıyor.
Pierre.Vriens

Yanıtlar:


66

Artifactory bir görevi gören JFrog tarafından bir üründür ikili depo yöneticisi . Bu, çoğu zaman, daha genel bir ikili veri deposunun eş anlamlısı olarak 'yapay bir eser' kullanacağını, çoğu kişinin Frigidaire markası olup olmadığına bakılmaksızın buzdolabını belirtmek için Frigidaire veya buzdolabını kullanması gibi olduğunu söyledi.

İkili havuz, genellikle yapay nesneler olarak adlandırılan, derleme işleminizin sonucunu saklayacağı için kaynak kod deposunun doğal bir uzantısıdır. Çoğu zaman bir ikili depoyu doğrudan kullanmaz, ancak seçilen teknolojiyle gelen bir paket yöneticisi aracılığıyla kullanır.

Çoğu durumda, bunlar daha sonra tam bir ürüne monte edilebilecek bireysel uygulama bileşenlerini depolar - bu sayede bir yapının daha küçük parçalarda kırılmasını sağlar, kaynakları daha verimli kullanır, yapım sürelerini azaltır, ikili hata ayıklama veritabanlarını daha iyi izler vb.

İkili depo kullanarak yönetilebilecek en popüler paket yöneticilerinden bazıları:

  • Java: kavanoz, kulak, savaş vb Maven ve resmi MavenCentral . Maven ikili depo formatını kullanacak başka birçok paket yöneticisi de var ( sarmaşık , gradle vb.).
  • .Net: .NET bileşenleri için nuget (DLL ve EXE), ancak Chocolatey gibi sistemlerde windows altında bir dağıtım mekanizması olarak da kullanılabilir . Powershell'in daha yeni sürümleri, powershell modüllerini dağıtmak için de güçlendirebilir; bununla birlikte powershell galerisi , ikili bir depo ve yerel olarak nuget biçiminde bir depo ile yerel bir dağıtım oluşturabilir. Ayrıca Windows dağıtım yönetimi sizin için önemliyse OneGet'i işaretleyin .
  • JavaScript'inizde: Elimizdeki npm gerektirecektir, en popüler biri olan nodejs .
  • Python'da: orada pip ve resmi paket indeksi pypi biri de formatını destekleyecek ikili depo yoluyla yerel bir örneğini oluşturabilir.

Bu liste tam olmaktan uzak, sadece orada ne olduğu hakkında bir fikir veriyor.

İkili depo, bunların tümünü tek bir çatı altında barındırmaya izin vererek, yönetimini ekipler için daha basit hale getirebilir. İkili paket yönetiminden faydalanmaya başlamak için çok büyük bir takıma ihtiyacınız olmadığını unutmayın. İlk yatırım çok büyük değildir ve faydalar hemen hissedilir. Özellikle de gün geçtikçe daha fazla platform, çerçeve ve dil bu bağımlılık yönetimini doğrudan kendilerine entegre ediyor. Ancak bulduklarımın en büyük avantajı, programcılarınızın doğal ve rahat hissetmelerini sağlayacak bir ortam yaratmaktı. Sağlam bir takım zinciri yaratan sapmalar olarak size yardımcı olur ve genel deneyimi kendi tercih yığınlarına doğal olarak uydurmalarına yardımcı olur.

Daha önce de söylediğim gibi , hedef kitle kullanımında diğerlerine göre daha jenerik olan, erişilebilirlik ve fiyatlarında da geniş ölçüde değişen, ikili paket yöneticileri olarak hizmet edebilecek pek çok ürün var.

Benim kişisel görüşüm, ikili veri havuzlarının, kaynak kod deposu veya sürekli entegrasyon kadar iyi tasarlanmış bir devops kurulumunun bir parçası olarak hayati önem taşıdığıdır.


Bu ilginç cevap için Merci (ayrıca). Bazı nedenlerden ötürü, tüm bunlar beni "hm, bu yüzden tipik olarak adlandırdığımız şeye benziyor, iyi eski ana ortamlarda, çalıştırılabilir dosya içeren yük kitaplıkları (CICS / IMS / IDMS bölgelerini çalıştırmak için kullanılır) ..." .
Pierre.Vriens

1
Eklenecek önemli bir şey, Maven Central vs modulecounts.com gibi kamu depolarının yükselişi - bunlar genellikle, bu bileşenler ve daha fazla özel yapıştırıcı / ön kod ve elbette müşteriye özel iş için giderek daha fazla montaj hakkı olan yazılım projeleri için tedarik kaynağıdır. mantık.
Peter,

1
modulecounts.com hiç duymamış, site şu anda kapalı olsa da, daha sonra kontrol edeceğim.
Newtopian

1
Buzdolabının buzdolabına ilginç bir benzetmesi :)
Ravi Tiwari

6

Başlangıçta anlamamı sağladığı gibi, kaynak kod deposu ile ikili depo arasındaki fark şöyle düşünmekti: * Github ya da Bitbucket tüm 'kodları' korumak için kullanışlıdır. bu şartlar ile rahat edene kadar!

Ayrıca, yapay eşyaların önemi DevOps'un felsefesi ile "bir zamanlar inşa et, her zaman dağıt" anlamında anlaşılabilir. İkili dosyanızı bir kez oluşturmak, onu Artifactory'ye koymak ve ardından farklı ortamların tümüne dağıtmak için oradan çağırmak Sürekli Entegrasyon'da uzun bir yol kat ediyor. Bu şekilde, Dev'te çalışan kodun Prod'a itilen ve orada çalışacak kod olduğundan eminiz.


ilginç açıklama, merci!
Pierre.Vriens

5

Artifactory, Jfrog'un İkili Bir Depo Yöneticisi ürünüdür .

Haklısınız - bir ikili depo yöneticisi olarak, genellikle yazılım geliştirme sürecinde üretilen ve kullanılan depolanmasını yönetmek için kullanılır.

Gönderen Artifactory ana web sayfası :

Piyasadaki ilk ve tek evrensel Artefakt Deposu Yöneticisi olan JFrog Artifactory, herhangi bir dil veya teknoloji tarafından oluşturulan yazılım paketlerini tam olarak destekler.

...

... Artifactory, üretimden üretime eserlerin takibi için uçtan uca, otomatik ve kurşun geçirmez bir çözüm sunar.

Bahsettiğiniz kullanımlar DevOps'taki genel bir marka için yeterince popüler olabileceğini gösteriyor.


1
Merci Dan, bir Sanat Eseri'nin , Artifac ts kelimesini Reposi tory ile bir araya getirdiğini onaylıyorsunuz . Merak ettiğim ek soru şudur: peki üretimde kullanılan ancak PHP kodu, CSS dosyaları, bash scriptleri, vb. Gibi ikili dosyalar değildir.
Pierre.Vriens

1
Uygulama kodları için cvs, svn, git, mercurial gibi kaynak kodlu versiyonlama sistemlerine sahiptirler. Ve konfigürasyon kodu, konfigürasyon yönetimi ve dağıtım sistemleri için kukla, şef, ekşi, tuz gibi ..
Peter

@ Pierre.Vriens Bu şekilde düşünmek için kullanmadım, her nasılsa "fabrika" her zaman önce akla geldi :) Ama şimdi tamamen görüyorum. Teşekkürler!
Dan Cornilescu

Bu ekleme için @ J.Doe merci ve yorumunuzu daha da genişletmek için ... ana karelerdeki "ChangeMan ZMF", "Endevor SCM" vb. Gibi araçlara sahipler. Bu araçlar belirttiğiniz tüm işlevler için kullanılır (sürüm oluşturma dağıtım, vb, aynı zamanda tüm bunlarla ilgili iş akışı, güvenlik vb. için).
Pierre.Vriens

Öyleyse sadece msinframes yeniden icat edersek, onların ne yanlış olabilir ?!
Peter,

4

Bence işleri karmaşıklaştırmak bugünlerde herkesin takdir edeceği şey. Bu soruyu kısaca cevaplamaya çalışacağım.

Kaynak Deposu, kodu ve sürümlerini depolamak için kullanılırken, yapay kod bu kodun çıktıları olan çalıştırılabilir programları depolamak için kullanılır (binaries - dll, jar, war, ear, msi, exe dosyaları vb.)

Şimdi, onları kodunuzdan farklı bir depoya ayrı ayrı yerleştirmek istemenizin nedeni, güvenli erişim, hack tehdidi, kötü niyetli kod kontrolü işlemleri ya da sadece ihtiyaç duyan müşteriler için ayrı bir caddeye sahip olmak olabilir. ikili.

SCM teknolojisi kendisini 2 tür kullanıcı yaratmaya zorlayabilirdi (biri kaynak koduna erişebilecek geliştirici ayrıcalıklarına sahip, diğeri ise sadece ikili dosyalara erişebilecek bir müşteri olarak). Ancak bu yolu almadı! Şimdi elimizde eserler var.


2

Bir eserdir

Belirli bir işlemden üretilen / üretilen / üretilen bir şey mi

Bir Java proje derlemesinden çıkın.

Aklını sorgula

Bir fabrikadan araba

Yeni şarkı

Bir havuz

İşlerin devam ettiği bir kap

Java projesi için Github.

Yıldırıcı sorularınız için StackExchange

TEORİSİNDE, bir Artefaktı - ory onlar kalıcı ve onların yaşam döngüsü boyunca yönetildiği dışlayıcı bir depo olacaktır.

DevOps bağlamında, Artifactory, ikili eserleri yöneten bir üründür. Yapılarınızdan ürettiğiniz ve derleme ya da dağıtım zamanında yeniden kullandığınız farklı türleri (Jar, Python ve npm paketleri, vb.) Depolar ve yönetir.


ilginç açıklama, merci!
Pierre.Vriens

ca ben plaisir fait!
gumol
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.