DevOps Yolculuğum
2018 yılıyla birlikte kariyerime DevOps Mühendisi olarak devam edeceğim. Bu zamana kadar IT altyapı ve operasyon ekiplerinde kazandığım, server operasyon ve yönetimi, veritabanı operasyon ve yönetimi, uygulama operasyon ve geliştirme deneyimlerimi DevOps için kullanacağım. Bu süreçte fırsat buldukça DevOps adına öğrendiklerimi blog yazılarımda toparlamayı hedefliyorum. Umarım hem yeni kariyer hedefimde hem de blog zinciri hedefimde başarılı olabilirim:)
Bu zincirdeki ilk yazımda Continous Delivery mekanizmasından bahsetmeyi düşündüm. Umarım bana ve okuyan herkese faydası dokunur.
Continous Delivery Nedir?
Continous Delivery temelde software release sürecinin tamamını etkileyen yazılım mühendisliği yaklaşımıdır. Test otomasyonu, uygulama deploymentlarının otomasyonu ve development sırasında kullanılan süreçlerin otomasyonu Continous Delivery'nin önemli bileşenleridir. Continous Delivery'in temel hedefi büyük ölçekli dağıtık ortamlara, kompleks production ortamlarına predict edilebilir deployment yapabilmektir. Bu hedefe ulaşabilmek için development sırasında en başta tekrarlayan süreçlerimiz olmak üzere süreçlerimizin mümkün olan adımlarını otomasyona uyumlu olarak tekrar dizayn etmeli, development ortamından test ortamına kodu otomatik deploy edebilmeli, test ortamındaki testlerimizi de insan hatasını ortadan kaldırabilmek için yine test otomasyon toollarıyla yapabilmeliyiz. Bileşenlerden bir tanesinin otomasyon yerine manuel süreçlerle ilerlemesi, hataya yol açabileceğinden dolayı bu bileşenlerin herhangi birisinin CD süreçlerinin içerisinden çıkarılması düşünülemez.
Tüm bunlar organizasyonel yapıda ciddi değişikliklere gidilmesini, kişilerin bu yapıya uygun çalışma yapılarını da düzeltmesini gerektirmektedir. Bir uygulama release'ine ve deployment'ina dokunan herkes bu sürece uyumlu çalışmalıdır.
Özetle Continous Delivery, deployment ve release süreçlerinde çeviklik (agility) ve hızı (velocity) arttırmak adına ortaya çıkarılmış bir mekanizmadır.
Peki neden Continous Delivery mekanizmasını software release süreçlerimize entegre etmeliyiz?
- CD'nin birincil hedefi uygulama deploymentlarının daha az sancılı ve esnek olabilmesini sağlamaktır. Zero-downtime hedefine ulaşabilmeyi hedefler.
- Daha çevik ve hızlı yazılım geliştirmesiyle pazarda öncü olmayı hedefler.
- Süreçleri hatasız devam eden bir sowftware release döngüsüyle daha kaliteli kod hedefler.
- Otomasyon süreçleri sayesinde tekrarlayan işlerde harcanan kaynaklar boşa çıkacağı için aslında daha düşük kaynak kullanımını hedefler.
- Operasyonel ve tekrarlayan işlerden uzaklaşan takımların daha üretken ve mutlu olmasını hedefler.
Yorumlar
Yorum Gönder