Paket Yönetimi ve Depolama
  1. Anasayfa
  2. DevOps

Paket Yönetimi ve Depolama

0

Devops süreçlerinin en önemli noktalarından olan versiyonlanarak kodların tutulması işleminin çeşitli yöntemleri bulunmakta.Örneğin, Azure kullanıyorsanız onun üzerinde publish edilebilir, share bir alanda tutulabilir(her ne kadar güvenli olmasa da), veya Nexus, Jfrog Artifactory gibi uygulamalar kullanılabilir.Bu seçeneklerden hangilerinin daha kullanışlı olacağı firmanın ihtiyaçlarına göre şekillenir çoğunlukla. Siz geliştirilen bir kodun başka uygulamalar tarafından da referans verilerek kullanılmasını istiyorsanız, bunu da nuget, maven, npm gibi paketleme yöntemlerini kullanarak yapmak istiyorsanız, Jfrog, Nexus vb uygulamalar daha avantajlı olacaktır.Bu gibi repository uygulamalarında önemli olan kullanıcılacak thirdparty kütüphanelerine erişim ve güvenliğinin sağlanmasından, mirrorlama ve hangi paketleme yöntemi kullanıyorsanız onun desteklenip desteklenmediği parametreleri öne çıkıyor.Devops tool’u olarak kullanılan ve her bir uygulaması ayrı ayrı tercih edilebilen Jfrog firmasının Artifactory ürünü öne çıkan tool’lar arasında.

Resim-1

Jfrog Artifactory’den bahsetmek gerekirse, kısaca paket yönetimi ve depolama için kullanılan linux tabanlı bir uygulama olduğunu söyleyebiliriz. İlk kurulduğunda içersinde Derby database’i ile gelir. Bu database Oracle gibi harici database’ler ile gerekli config işlemleri yapıldıktan sonra kullanılabilir.Artifactory, şirket ihtiyacına göre n farklı sayıda sunucuya kurulabilir. Bu durumda bir primary, diğerleri de member olarak ifade edilir ve HA desteği vardır. Böylece, her node birbiriyle aynı paketlere sahiptir. Bu sayede herhangi bir node üzerindeki artifactory process’i stop olduğunda veya sunucu üzerinde bir problem yaşandığında, diğer node’lardan erişilmeyen herhangi bir paket olmayacaktır.Artifactory’ye reverse proxy için nginx dahil ederek request paylaşımı sağlanabilir, böylece herhangi bir başka load balancer ürününe gerek kalmaz.Depolanacak olan paketler kendi üzerinde filestore olarak saklanır ve her bir paket unique bir id’ye denk gelir. Bu id tanımlarının metadata bilgisi database üzerinde tutulur.Azure gibi farklı ürünlerin marketlerinde de extension olarak yer almaktadır, böylece farklı ürün yalpazesine entegre olabilmektedir.

Paket Türleri
Artifactory’de çok sayıda paket tipi desteklenmektedir; docker imajları, cocoapods, maven, gradle, nuget, npm , bower örnek olarak verilebilir.

Resim-2

Repository Türleri

Local Repository : Bu repository türü, fiziksel olarak paketlerin (nupkg, jar vb) tutulma ihtiyacı olduğunda kullanılır ve istenilen paket bunun üzerine publish edilebilir.
Remote Repository: Uzak bir adresten kullanılmak üzere tanımların yapıldığı repository türüdür. Bu repository türüne publish işlemi yapılamaz. Remote repository tanımlarken, target’daki tüm repository’ler artifactory üzerinde çekilmez, kullanıcı ne zaman install ederse o zaman target’a gidip download eder ve cache’inde saklar, versiyon değişmedikçe her zaman cache’den kullanır. Örneğin maven.org’dan paket indirmek için remote repository tanımlanır.
Virtual Repository: Bu repository tipi ise, içersinde birden fazla repository tanımını bulunduran, yani repository’lerin gruplandığı respository türüdür. Bu repository sayesinde, örneğin geliştirdiğiniz bir projede 3 farklı repository’e gidiyorsanız, bu 3 repository’i tek bir virtual olarak tanımlarsınız, ve projenize o şekilde referans olarak verebilirsiniz.
Smart Remote Repository: İki farklı artifactory arasında kurulan remote repository’nin bir alt kırılımıdır.

Repository oluşturulması oldukça kolaydır, sadece new repository deyip repositroy ismi vermek yeterlidir.
Herhangi tipte yaratılan repository’lerin projelere dahil edilmesi için set me up seçeneği ile otomatik olarak script generate edilebilir.
Bunlar haricinde repository bazlı yetkilendirme, belirli kullanıcılar remote repository olarak yeni paket paketler indirebilsin, belirli kısmı da sadece cache’dekileri kullanabilsin şeklinde yetki verilebilmektedir.
Artifactory üzerinde bir çok işlem tanımı sunucu üzerinde bulunan configler aracılığıyla yapılır. Örneğin database işlemleri, repository’deki türlerin layout kontrolleri, uygulamanın base url’i tanımı vb gibi işlemlerin her biri için config dosyaları mevcuttur ve güncellemeler UI aracılıyla yapılabilenler veya direkt sunucu üzerinden yapılabilen configlerden oluştur. Aynı şekilde HA tanım işlemleri de config dosyalarından yapılır, member olarak tanımlanacak olan sunucuların aynı network üzerinde olması gerektiğini unutmamak gerekir.
Kısaca Repository olarak kullanılan Artifactory bu şekilde, bunun sadece depolama değil CI/CD tool’u olduğunu belirtmekte fayda var.

 

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: Paket Yönetimi ve Depolama,Devops Araçları,Repository türleri

 

Bu İçeriğe Tepkin Ne Oldu?
  • 12
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Ben Nagihan 2014 yılında Ege Üniversitesi Bilgisayar Mühendisliği bölümünden mezun oldum ve aynı yıl içerisinde bir finans kuruluşunda Yazılım mühendisi olarak görev almaya başladım. Öncelikle .Net alanında kendimi geliştirdim sonrasında DevOps alanında kendimi geliştirmeye başladım.Paralelde İstanbul Üniversitesi Yönetim Bilişim Sistemleri bölümünde yüksek lisans yapmaktayım, aldığım dersler itibari ile de Data Mining ile ilgili çalışmalarım oluyor. Günlük hayatıma mümkün oldukça sporu dahil etmeye ve yeni yerler keşfedip öğrenmeye çalışıyorum.

Yazarın Profili
İlginizi Çekebilir

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir