Giter VIP home page Giter VIP logo

ci-cd-notion's Introduction

CI / CD

Continuous Integration (Sürekli Entegrasyon- CI)

Geliştirilen değişikliklerin projeye entegre edilirken uygulanan bir dizi yöntemlerdir.

Bir projede birden fazla geliştiricinin yaptığı değişiklikler projeye entegre edilirken herhangi bir sorun teşkil etmemesi ve birbirlerinin etkilememesi çok önemlidir. Geliştirilen kodların projeye entegre olmadan önce bir kontrol mekanizmasına tabi olma sürecine CI diyebiliriz. Entegrasyon sürecinde hataların tespit edilip çözümlenmesi önemlidir. Bu sorunları çözmek için çeşitli test otomasyonları kullanılır. Örn. Github ‘da pull request veya Gitlab ‘da merge request işlemleri birleştirme işleminden önce çeşitli testler ile kontrol edilir ve olası hata durumunda birleştirme isteği askıya alınır ve hatanın giderilmesi beklenir.

💡 ****Integration Hell (Entegrasyon Cehennemi) :**** Aynı alanda yapılan birden fazla değişikliğin entegrasyon sırasında hata oluşturması ve çakışmaların yaşanması.

Continous Delivery (Sürekli Teslimat ve Sürekli Dağıtım- CD)

CI ‘ işlemlerinden sonra projenin dağıtıma hazır hale getirilip kullanıcıya sunulması işlemleridir.

Sürekli Teslimat

CI sürecinin başarılı bir şekilde tamamlanmasının ardından projenin dağıtılmaya hazır bir yapıya (derleme, paketleme vs.) çevrilmesidir.

Sürekli Dağıtım

Test, derleme ve paketleme gibi işlemlerin arından yazılımın canlı ortama (sunucuya) otomatik dağıtılmasıdır.

İyi bir CI & CD nasıl uygulanır ?

  1. Otomatik Tetikleme Yapılan değişikliklerin entegrasyon sırasında algılanması ve bir dizi testi çalıştıracak şekilde otomatik tetiklenmesi gerekir. Kodunuzun her değişiklikte test edileceğini bilmek geliştiriciye rahatlık sağlar ve işlemlerin unutulma ihtimalini ortadan kaldırır.
  2. Derleme Otomatik tetikleme aşamasından sonra tetiklenen CI araçları başarılı olması halinde projenin derlemesi adımına geçilir. Derleyici adı verilen bir özel yazılım tarafından okunur ve dil spesifikasyonlarına uygun olarak düşük seviyeli bir makine koduna çevrilir. Derleyici, kaynak kodu analiz eder, hata kontrolü yapar ve ardından makine kodunu üretir.
  3. Test & QA Testlerin yürütülebilmesi için CI / CD aracı doğru yapılandırılmadır ve proje geliştirilmeye devam ederken testlerinde aynı doğrultuda geliştirilmesi yani testlerin sürdürülebilir olması önemlidir.

Testlerinizin büyük kısmı birim testleri olmalıdır. Birim testleri, paranızın karşılığını verir. Yazması kolay, çalıştırması ucuz ve bakımı en düşük maliyetlidir. - Martin Fowler 4. Paketleme Yazılımın kaynak kodlarını veya derlenmiş dosyalarını içeren bir paketin oluşturulmasını içerir. Bu paket, genellikle belirli bir sürüm numarasıyla etiketlenir ve kullanıcılara, diğer geliştiricilere veya müşterilere dağıtılmak üzere hazır hale getirilir. 5. Kabul Testleri Yazılımınızın yapması gerekeni yaptığından ve orijinal gereksinimleri karşıladığından emin olmanın bir yoludur. Otomatik kabul testleri için web sitlerini açma ve bazı yerlere tıklama yapabilme gibi kullanıcı davranışlarını simüle edebilen Selenium aracını kullanabilirsiniz. 6. Teslimat ve Dağıtım Tüm test, derleme, paketleme ve kabul testlerinin başarılı bir şekilde gerçekleşmesinin ardından CD sürçlerine geçilebilir ve proje sunulacak ortama aktarılıp kullanıcı ile buluşturulur.

Bundan sonra yazılımda yapacağınız her kod değişikliği tetikleme aşaması ile başlayıp gene aynı aşamalardan geçecektir. CI/CD Pipeline’nın başarılı olması için testlere, kullanım kolaylığına ve güvenliğe çok dikkat edilmelidir.

Böylece deployment, tüm proje bittikten sonra bir defa yapılan büyük korkutucu bir iş olmaktan çıkar ve düzenli yapılan kolay bir işlem halini alır.

CD / CD yazılım sektörüne katkıları ;

  • CI/CD, şirketlerin yazılımlarını daha hızlı güncellemelerini ve teslim etmelerini sağladı.
  • Kontrollü remote çalışma olanağını mümkün kıldı.
  • Sürekli uygulanan testler ile daha sağlam ilerlemeyi sağladı.
  • Hataların anında geri bildirim ile developerlere iletilmesi ile hataların büyümeden çözülmesini sağladığı için zamandan tasarrufu sağladı.
  • Teslimat adımının kolaylaşmasını sağladı.

Kaynak: Hamit SEYREK - Medium

ci-cd-notion's People

Contributors

burakkrt avatar

Watchers

 avatar

ci-cd-notion's Issues

typo: Continous Deliey

Burak merhabalar. Bir süredir not aldığın yazılarını takip ediyorum. sanırsam notion üzerinde yazıp ardından html/md dönüşümlerini yapıyorsun. 14. Satırdaki başlığı Continous Delivery olarak düzeltmen ilk defa görmüş birisinin kafasının karışmaması adına güzel olacaktır.

### Continous Deliey (Sürekli Teslimat ve Sürekli Dağıtım- CD)

Kolay gelsin.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.