Yardım: Sürekli Teslimat nedir?

Daha önce biz söyledi Sürekli Entegrasyon (CI) hakkında. Sürekli Teslimat ile devam edelim. Bu bir dizi yazılım geliştirme yöntemidir. Kodunuzun dağıtıma hazır olduğundan emin olmanıza yardımcı olur.

Yardım: Sürekli Teslimat nedir?
/Pixabay/ mavi muhabbet kuşu / PL

Öykü

Sürekli teslimat ifadesi daha önce görülebiliyordu. çevik manifesto 2001 yılından itibaren temel ilkeler listesinin başında: “Öncelik, güncel yazılımların sürekli teslimi yoluyla müşteri sorunlarının çözülmesidir.”

2010 yılında Jez Humble ve David Farley piyasaya çıktı kitap Sürekli Teslimat ile. Yazarlara göre CD yaklaşımı tamamlıyor Sürekli Entegrasyon ve dağıtım için kodun hazırlanmasını basitleştirmenize olanak tanır.

Kitabın yayınlanmasından sonra yaklaşım popülerlik kazanmaya başladı ve sadece birkaç yıl içinde neredeyse evrensel olarak kabul edildi. Buna göre anket600 yılında 2014'den fazla geliştirici ve BT yöneticisi arasında yürütülen araştırmada, teknik yöneticilerin %97'si ve programcıların %84'ü Sürekli Teslimat'a aşinaydı.

Şimdi bu yaklaşım en popülerlerden biri olmaya devam ediyor. BT topluluğu DevOps ve Jenkins Community'nin dahil olduğu 2018 tarihli bir araştırmaya göre, использует Ankete katılan binden fazla katılımcının yarısı.

Sürekli Teslimat nasıl çalışır?

CD'nin temeli, kodun dağıtıma hazır olmasıdır. Bu görevi gerçekleştirmek için yazılımı yayına hazırlama sürecinin otomasyonu kullanılır. Zayıf noktaların hızlı bir şekilde bulunmasına ve optimize edilmesine yardımcı olacak farklı geliştirme ortamlarında standart olmalıdır. Örneğin testi hızlandırın.

Sürekli Teslimat sürecinin bir örneği şuna benzer:

Yardım: Sürekli Teslimat nedir?

İlk iki aşamanın otomatikleştirilmesinden Sürekli Entegrasyon yaklaşımı sorumluysa, sonraki iki aşamadan da Sürekli Teslimat sorumludur. Proses stabilitesi diğer şeylerin yanı sıra sistemler tarafından sağlanır konfigürasyon yönetimi. Altyapı, veritabanları ve bağımlılıklardaki değişiklikleri izlerler. Dağıtımın kendisi otomatikleştirilebilir veya manuel olarak yapılabilir.

Süreçte aşağıdaki gereksinimler uygulanır:

  • Üretim ortamına girmeye hazır olma ve anında yayına hazır olma durumu hakkında bilgilerin mevcudiyeti (CD araçları kodu test eder ve sürümdeki değişikliklerin etkisini değerlendirmeyi mümkün kılar).
  • Nihai ürünün genel sorumluluğu. Ürün ekibi (yöneticiler, geliştiriciler, test uzmanları) yalnızca kendi sorumluluk alanlarını değil, sonucu da düşünür (sonuç, ürünün kullanıcılarının kullanımına sunulan bir çalışma sürümüdür).

CD'lerde genellikle kullanılır kod incelemesive müşteri görüşlerini toplamak için - prensip karanlık fırlatma. Yeni bir özellik ilk olarak küçük bir kullanıcı segmentine sunuldu - ürünle etkileşimde bulunma deneyimleri, dahili test sırasında fark edilmeyen eksikliklerin ve hataların bulunmasına yardımcı oluyor.

Faydası nedir

Sürekli Teslimat, üretkenlik üzerinde olumlu bir etkiye sahip olan ve çalışanların tükenmişlik olasılığını azaltan kod dağıtımını basitleştirmeye yardımcı olur. Sonuçta bu, genel geliştirme maliyetlerini azaltır. Örneğin CD, HP ekiplerinden birine yardımcı oldu azaltmak bu tür maliyetler% 40 oranında.

Ayrıca 2016 yılında yapılan bir araştırmaya göre (sayfa 28) belge) - CD'yi uygulayan şirketler, bilgi güvenliği sorunlarını, bu yaklaşımı kullanmayanlara göre %50 daha hızlı çözer. Bu fark bir dereceye kadar süreç otomasyon araçlarının performansıyla açıklanabilir.

Başka bir artı, sürümlerin hızlanmasıdır. Finlandiya geliştirme stüdyosunda sürekli teslimat yardım etti Kod derleme hızını %25 artırın.

Potansiyel Zorluklar

İlk ve ana sorun, tanıdık süreçleri yeniden inşa etme ihtiyacıdır. Yeni yaklaşımın faydalarını göstermek için, en yoğun emek gerektiren uygulamalardan başlayarak yavaş yavaş CD'ye geçmeye değer.

İkinci potansiyel sorun ise çok sayıda kod dalının olmasıdır. “Dallanmanın” sonucu, sık sık çatışmalar ve daha fazla zaman kaybıdır. Olası çözüm - yaklaşım şube yok.

Özellikle bazı şirketlerde testlerde temel zorluklar ortaya çıkıyor; çok fazla zaman alıyor. Test sonuçlarının genellikle manuel olarak analiz edilmesi gerekir, ancak olası bir çözüm, CD uygulamasının ilk aşamalarında testleri paralelleştirmek olabilir.

Ayrıca çalışanları yeni araçlarla çalışacak şekilde eğitmelisiniz; bir ön eğitim programı, geliştiricilerin çaba ve zamandan tasarruf etmesini sağlayacaktır.

Yardım: Sürekli Teslimat nedir?
/flickr/ h.ger1969 / CC BY-SA

Araçlar

Sürekli Teslimat için birkaç açık araç şunlardır:

  • GoCD — Java ve JRuby on Rails'de sürekli teslimat için sunucu. Uygulama teslim sürecinin tamamını kontrol etmenize olanak tanır: oluşturma, test etme, yayınlama. Araç Apache 2.0 lisansı altında dağıtılmaktadır. Resmi web sitesinde bulabilirsiniz kurulum rehberi.
  • Capistrano — Ruby, Java veya PHP'deki uygulamaların dağıtımını otomatikleştiren komut dosyaları oluşturmaya yönelik bir çerçeve. Capistrano, uzak bir makineye SSH aracılığıyla bağlanarak komutları çalıştırabilir. Integrity CI sunucusu gibi diğer sürekli entegrasyon ve dağıtım araçlarıyla çalışır.
  • Gradle tüm uygulama geliştirme döngüsünü otomatikleştiren çok platformlu bir araçtır. Gradle, Java, Python, C/C++, Scala vb. ile çalışır. Eclipse, IntelliJ ve Jenkins ile entegrasyon mevcuttur.
  • erkek arı - Go dilinde CD platformu. Drone şirket içinde veya bulutta konuşlandırılabilir. Araç, konteynerlerin üzerine inşa edilmiştir ve bunları yönetmek için YAML dosyalarını kullanır.
  • kotra yelkeni — çoklu bulut sistemlerinde sürekli kod dağıtımına yönelik bir platform. Netflix tarafından geliştirilen aracın geliştirilmesinde Google mühendislerinin büyük rolü oldu. Kurulum Talimatları resmi web sitesinde bul.

Kurumsal blogumuzda neler okunmalı:

Kaynak: habr.com

Yorum ekle