Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Sürekli Dağıtım, yazılımdaki çeşitli işlevleri hızlı, güvenli ve verimli bir şekilde uygulamak için kullanılan yazılım geliştirmede özel bir yaklaşımdır.

Ana fikir, geliştiricinin bitmiş ürünü kullanıcıya hızlı bir şekilde teslim etmesine olanak tanıyan güvenilir bir otomatik süreç oluşturmaktır. Aynı zamanda üretimde sürekli değişiklikler yapılır - buna sürekli teslimat boru hattı (CD Pipeline) denir.

Skillbox şunları önerir: pratik kurs "Mobil Geliştirici PRO".

Hatırlatıyoruz: tüm "Habr" okuyucuları için - "Habr" promosyon kodunu kullanarak herhangi bir Skillbox kursuna kayıt olurken 10 ruble indirim.

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Akışı kontrol etmek için hem ücretli hem de tamamen ücretsiz olmak üzere çok çeşitli araçlar kullanabilirsiniz. Bu makalede, geliştiriciler arasında her programcının işine yarayabilecek en popüler üç çözüm anlatılmaktadır.

Jenkins

Tamamen kendi kendine yeten açık kaynaklı otomasyon sunucusu. Yazılımın oluşturulması, test edilmesi, gönderilmesi veya dağıtılmasıyla ilgili her türlü görevi otomatikleştirmek için birlikte çalışmaya değer.

Minimum bilgisayar gereksinimleri:

  • 256 MB RAM, 1 GB dosya alanı.

Optimal:

  • 1 GB RAM, 50 GB sabit disk.

Çalışmak için ek yazılıma da ihtiyacınız olacak - Java Runtime Environment (JRE) sürüm 8.

Mimari (dağıtılmış bilgi işlem) şuna benzer:
Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Jenkins Server, GUI barındırmanın yanı sıra tüm yapının organize edilmesinden ve yürütülmesinden sorumlu olan bir kurulumdur.

Jenkins Node/Slave/Build Server - Ana (ana düğüm) adına derleme işi gerçekleştirmek üzere yapılandırılabilen cihazlar.

Linux için kurulum

Öncelikle sisteme Jenkins deposunu eklemeniz gerekir:

cd /tmp && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key eklentisi - echo 'deb pkg.jenkins.io/debian-stable ikili/' | sudo tee -a /etc/apt/sources.list.d/je

Paket deposunu güncelleyin:

sudo apt güncellemesi

Jenkins'i yükleyin:

sudo apt jenkins'i yükle

Bundan sonra Jenkins, varsayılan port 8080 üzerinden sistemde mevcut olacak.

İşlevselliği kontrol etmek için adresi tarayıcıda açmanız gerekir. localhost:8080. Sistem daha sonra kök kullanıcı için başlangıç ​​şifresini girmenizi isteyecektir. Bu şifre /var/lib/jenkins/secrets/initialAdminPassword dosyasında bulunur.

Artık her şey kullanıma hazır, CI/CD akışları oluşturmaya başlayabilirsiniz. Tezgahın grafik arayüzü şuna benzer:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Jenkins'in Güçlü Yönleri:

  • Master/Slave mimarisinin sağladığı ölçeklenebilirlik;
  • REST XML/JSON API'nin kullanılabilirliği;
  • eklentiler sayesinde çok sayıda uzantıyı bağlama yeteneği;
  • aktif ve sürekli gelişen bir topluluk.

Eksileri:

  • analitik blok yok;
  • pek kullanıcı dostu bir arayüz değil.

TeamCity

JetBrains'ten ticari geliştirme. Sunucu, basit kurulumu ve mükemmel arayüzü ile iyidir. Varsayılan konfigürasyonun çok sayıda işlevi vardır ve mevcut eklentilerin sayısı sürekli artmaktadır.

Java Runtime Environment (JRE) sürüm 8'i gerektirir.

Sunucu donanım gereksinimleri kritik değildir:

  • RAM - 3,2 GB;
  • işlemci - çift çekirdekli, 3,2 GHz;
  • 1 Gb/s kapasiteli iletişim kanalı.

Sunucu yüksek performans elde etmenizi sağlar:

  • 60 yapı konfigürasyonuna sahip 300 proje;
  • Derleme günlüğü için 2 MB tahsis;
  • 50 yapı maddesi;
  • web sürümünde 50, IDE'de 30 kullanıcıyla çalışabilme yeteneği;
  • 100 harici VCS bağlantısı, genellikle Perforce ve Subversion. Ortalama değişim süresi 120 saniyedir;
  • günde 150'den fazla değişiklik;
  • veritabanıyla tek bir sunucuda çalışmak;
  • JVM sunucusu işlem ayarları: -Xmx1100m -XX:MaxPermSize=120m.

Aracı gereksinimleri, çalışan derlemelere dayanır. Sunucunun ana görevi, bağlı tüm aracıları izlemek ve uyumluluk gereksinimlerine göre derlemeleri kuyruktan bu aracılara dağıtmak, sonuçları raporlamaktır. Aracılar çeşitli platform ve işletim sistemlerinin yanı sıra önceden yapılandırılmış bir ortamla gelir.

Derleme sonuçlarına ilişkin tüm bilgiler veritabanında saklanır. Bu öncelikle geçmiş ve diğer benzer veriler, VCS değişiklikleri, aracılar, derleme kuyrukları, kullanıcı hesapları ve izinlerdir. Veritabanı yalnızca derleme günlüklerini ve yapıtları içermez.

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Linux için kurulum

TeamCity'yi bir Tomcat sunucu uygulaması kapsayıcısıyla manuel olarak kurmak için TeamCity arşivini kullanmalısınız: TeamCity .tar.gz. İndirmek Buradan alabilirsiniz.

tar -xfz TeamCity.tar.gz

/bin/runTümü. sh [başlat|durdur]

İlk başladığınızda montaj verilerinin saklanacağı veritabanı tipini seçmeniz gerekir.

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Varsayılan yapılandırma çalışır localhost:8111/ aynı bilgisayarda çalışan kayıtlı bir yapı aracısıyla.

TeamCity'nin güçlü yönleri:

  • kolay kurulum;
  • kullanıcı dostu arayüzü;
  • çok sayıda yerleşik işlev;
  • Destek servisi;
  • bir RESTful API'si var;
  • iyi belgeler;
  • iyi güvenlik.

Eksileri:

  • sınırlı entegrasyon;
  • Bu ücretli bir araçtır;
  • küçük bir topluluk (ancak büyüyor).

GoCD

Kurulum ve çalıştırma için Java Runtime Environment (JRE) sürüm 8'i gerektiren açık kaynaklı bir proje.

Sistem gereksinimleri:

  • RAM - minimum 1 GB, daha fazlası daha iyidir;
  • işlemci - 2 GHz çekirdek frekansına sahip çift çekirdekli;
  • sabit sürücü - en az 1 GB boş alan.

ajan:

  • RAM - en az 128 MB, daha fazlası daha iyidir;
  • işlemci - en az 2 GHz.

Sunucu, aracıların çalışmasını sağlar ve kullanıcıya uygun bir arayüz sağlar:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Aşamalar/İşler/Görevler:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

Linux için kurulum

echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

kıvırmak download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key eklentisi -
add-apt-depo ppa:openjdk-r/ppa

apt-get update

apt-get kurulumu -y openjdk-8-jre

apt-get go-sunucusunu yükle

apt-get go-agent'ı yükle

/etc/init.d/go-server [başlat|durdur|durum|yeniden başlat]

/etc/init.d/go-agent [başlat|durdur|durum|yeniden başlat]

Varsayılan olarak GoCd çalışır localhost: 8153.

GoCd'nin güçlü yönleri:

  • açık kaynak;
  • basit kurulum ve konfigürasyon;
  • iyi belgeler;

  • Mükemmel kullanıcı arayüzü:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

  • GoCD dağıtım yolunu tek bir görünümde adım adım gösterme yeteneği:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

  • boru hattı yapısının mükemmel gösterimi:

Sürekli dağıtımı düzenlemek için 3 popüler araç (Sürekli Dağıtım)

  • GoCD, CD iş akışını Docker, AWS dahil en popüler bulut ortamlarında optimize eder;
  • Araç, taahhütten dağıtıma kadar her değişikliğin gerçek zamanlı olarak takip edildiği işlem hattındaki hataları düzeltmeyi mümkün kılar.

Eksileri:

  • en az bir aracıya ihtiyaç vardır;
  • tamamlanan tüm görevleri görüntüleyecek bir konsol yok;
  • her komutu yürütmek için boru hattı yapılandırmasına yönelik bir görev oluşturmanız gerekir;
  • Eklentiyi yüklemek için .jar dosyasını şuraya taşımanız gerekir: /plugins/external ve sunucuyu yeniden başlatın;
  • nispeten küçük bir topluluk.

Sonuç olarak

Bunlar sadece üç araç, aslında çok daha fazlası var. Seçim yapmak zor, bu yüzden kesinlikle ek hususlara dikkat etmeniz gerekiyor.

Aracın açık kaynak kodu, ne olduğunu anlamayı ve yeni özellikleri daha hızlı eklemeyi mümkün kılar. Ancak bir şeyler yolunda gitmezse, o zaman yalnızca kendinize ve topluluğun yardımına güvenmek zorundasınız. Ücretli araçlar bazen kritik olabilecek destek sağlar.

Güvenlik en büyük önceliğiniz ise yerel bir araçla çalışmaya değer. Değilse, bir SaaS çözümü seçmek iyi bir seçenektir.

Ve son olarak, gerçekten etkili ve sürekli bir dağıtım süreci sağlamak için, özellikleri mevcut araç yelpazesini daraltmanıza olanak sağlayacak kriterleri formüle etmeniz gerekir.

Skillbox şunları önerir:

Kaynak: habr.com

Yorum ekle