Mobil CI/CD Süreci Oluşturmak için 8 Temel Neden

Mobil dünya, uygulama yayınlama süreçlerinin daha sık olduğu bir alan. Bazen günlük PR tabanlı testler, bazen ise haftalık test ekiplerine gönderilen sürümler oluyor. Ortalama 2-4 haftada bir de Google Play ve App Store’a sürüm yayınlanıyor diyebiliriz.


Çıkan bu sürümlerde delta kaynak kodları yerine tüm projenin paketlenmesi mobil dünyanın getirdiği en önemli zorluklardan biri. Bu da proje üzerindeki hata riskini ve hataların potansiyel etkisini artırıyor. Bu riskleri azaltmak ve operasyonu hızlandırmak için sağlıklı bir CI/CD süreci oluşturmak mobil projeler için çok daha kritik.


Tabii neden bir mobil CI/CD süreci kurmak gerektiğini anlatmadan önce CI/CD’nin ne olduğunu kısaca paylaşmaya çalışacağız.


CI/CD Nedir?


CI (Continuous Integration/Sürekli Entegrasyon): Geliştirdiğimiz projenin kaynak dosyalarının bir iş akışı sürecinden (Workflow/Pipeline) geçen kontrol ve derleme adımlarına CI denir.


Bu süreçte kaynak dosyalar derlenmeden önce kırılmalar var mı, kalite süreçleri sağlıklı uygulanmış mı gibi kontrol mekanizmaları çalışır ve yeni eklentilerin tutarlılığı kontrol edilir. Beklenen standartların sağlanması durumunda uygulama paketleri oluşturulur.


CD (Continuous Delivery&Deployment/Sürekli Teslimat&Dağıtım): CI süreci sonrasında oluşan paketlerin ilgili ortamlarda teslim edilmesi/dağıtılması sürecidir. Teslimat daha çok ilgili ekipler tarafından yapılırken dağıtım daha çok sistem tarafından otomatik yapılır. Mesela Test ortamına çıkılacak paketler otomatik yapılabilir, canlı ortama çıkacak paketler bir ekip tarafından kontrol mekanizmaları ile yapılabilir.


Kurumsal organizasyonlarda CI/CD hatta CT (Continuous Testing) süreçlerini DevOps ekipleri yönetiyor. Ancak sektörde çoğunlukla Mobil CI/CD/CT süreçlerinin mobil takımlar tarafından yürütüldüğünü görüyoruz. Çünkü DevOps denildiğinde akla daha çok backend dünyası ihtiyaçlarını yöneten disiplinler geliyor. Belki de konunun doğduğu yer backend olduğu içindir, burası biraz tartışmalı bir konu.


Genelde mobil takımlar kendi CI/CD süreçlerini oturtmak için SaaS tabanlı yazılımlar veya şirket içerisinde open source (Jenkins, Fastlane gibi) yazılımları kullanarak bir yapı oluşturuyor ve yönetiyorlar. Mobil CI/CD pazarı konusundaki daha fazla detayı şu adresten erişebileceğiniz raporda inceleyebilirsiniz: https://jasoncarter.co


Backend dünyası için ön plana çıkan CI/CD ürünleri:

  • Bamboo (Bitbucket Pipelies)

  • CircleCI

  • GitHub Actions

  • GitLab CI

  • Jenkins

  • Microsoft VSTS (Azure Pipelines

Buraya onlarca araç daha eklemek mümkün.


Mobil dünya için ön plana çıkan CI/CD ürünleri ise bir elin parmaklarını geçmiyor:


Neden Bir Mobil CI/CD Süreci Oluşturmak Gerekir

CI/CD süreci oturtulmamış bir akış içerisinde birçok manuel süreç bulunmaktadır


Appcircle gibi mobil alanda özelleşmiş bir CI/CD ürünü ile manuel operasyonlarınızı otomatikleştirerek sağlıklı bir CI/CD süreci oluşturabilir, hataları engelleyebilir, çeviklik kazanabilir ve verimliliği artırabilirsiniz.

Mobil CI/CD Süreci Kurmanın 8 Avantajı


1. Sürekli devam eden operasyonel işler geliştiricilerin ve sistem ekiplerinin (DevOps) zamanını çok almakla birlikte, katma değerli olmadığı için bir süre sonra ekipler üzerinde yıpranmaya sebep olabiliyor. İyi bir CI/CD süreci oluşturulduğunda Geliştiriciler zamanlarını operasyonel işlerden daha çok katma değerli konulara ayırabilirler.


2. Derleme ve Paketleme süreçleri CPU ve RAM ağırlıklı işlemler olduğu için geliştiricinin makinesini yoruyor ve çalışmasına engel olabiliyor. Bu durumda geliştirici paketleme sürecinde- ki bu bazen saatler sürebiliyor- diğer çalışmalarını yapamıyor ve bloklanıyor. Appcircle ile kodunuzu push ettikten sonra tüm CI/CD süreçlerinizi otomatikleştirebilir ve kendi gündeminize odaklanabilirsiniz.


3. CI sürecine kod incelemesi ya da unit test gibi testlerinizi ekleyebilir ve kaynak dosyalarınızın paketleme öncesinde kalitesini koruyabilirsiniz. Özellikle takım çalışmalarında ve uzun vadeli projelerde kod kalitesini korumak oldukça hassas bir konudur.


4. CD sürecini otomatikleştirebilir ve oluşan paketlerin test takımlarına anında ulaşmasını sağlayabilirsiniz. Appcircle her paketleme sürecinde Branch, Commit ID, Commit Açıklaması bilgilerini sürüm notlarına otomatik ekler. Böylece geliştiricler hangi özelliğin teste geldiğinden haberdar olurlar ve daha hedefli ve hızlı test edebilirler.


5. Tüm paketleme ve yayınlama süreçlerini raporlardan takip edebilirsiniz. Böylece kimin, ne zaman ve ne için build aldığını, bu paketlerin başarı ve başarısızlık sebeplerini gözlemleyebilirsiniz. Bu bilgiler ışığında süreçlerinizi iyileştirebilir ve denetimsel uyumluluğu tam olarak sağlayabilirsiniz.


6. Her geliştiricinin ortamı (kullanılan IDE, kütüphane versiyonları, vb.) farklı olabildiğinden dolayı paketleme sonrasında farklı sonuçlar doğabiliyor. Bazen lokal cache tabanlı sorunlar oluşabiliyor. Tüm geliştirici ekibin ortak bir yapı kullanması geliştirici ya da yerel cihaz tabanlı sorunların oluşmasına engel olur.


7. Kurumsal organizasyonlarda standartları oluşturmak ve korumak için herkesin ortak bir yapı kurması, tecrübeler doğrultusunda bu yapının iyileştirilerek kişi bağımsız bir yapı oturtulmasına ihtiyaç vardır. Farklı birimlerden gelen yorumlar bu süreç üzerinde iyileştirilerek Geliştirici bağımsız, kurumsal bir yapı oluşturmak önemlidir. Appcircle gibi araçlar, kurumsal standartlar gözetilerek geliştirilmiştir.


8. Paketleme ve Dağıtım geliştiricinin birincil görevleri arasında değildir. Bu tip operasyonlar farklı bir disiplin olduğu için rol çatışması yaşanabiliyor. CI/CD sürecinin otomatik çalışıyor olması ekip içerisinde bu tip rol çatışmalarına da engel olmaktadır.



Özet olarak Mobile CI/CD süreçleri Backend/Altyapı ekiplerinin süreçlerinden farklıdır ve mobil takımlar bu süreçleri oluşturmak ve yönetmek için DevOps ekiplerinden destek alsa da genellikle CI/CD süreçlerini kendileri oluşturmaktadır.


Mobil takımlardaki geliştiricilerin kaynaklarının ortalama 5’te 1’ini bu süreçler için ayırdıkları görülmektedir. (referans: https://jasoncarter.co )


Appcircle, mobil takımların CI/CD süreçlerini kurumsal dinamikleri de göz önüne alarak yönetebilecekleri kullanımı basit bir araç olarak hayata geçirilmiştir. Daha detaylı bilgiyi https://appcircle.io adresinde bulabilir ve gelişmeler için Twitter’da @appcircleio hesabını takip edebilirsiniz.


#appcicleio #appcircle #mobilecicd

0 yorum

Son Paylaşımlar

Hepsini Gör