DevOps terimi, geliştirme ve operasyon olmak üzere iki kelimenin birleşimidir. DevOps, tek bir ekibin uygulama geliştirme yaşam döngüsünün tamamını, yani geliştirme, test etme, dağıtma, işlemleri yönetmesine izin veren bir uygulamadır.
DevOps’un amacı, özellikler, düzeltmeler ve güncellemeleri sık sık iş hedefleriyle uyumlu bir şekilde sunarken, sistemin geliştirme yaşam döngüsünü kısaltmaktır.
DevOps, geliştirme (development) ve işlemler (operations) arasında agile bir ilişki tanımlar. Ürünün başlangıcından son aşamasına kadar geliştirme ekibi ve operasyon mühendisleri tarafından uygulanan süreçtir. DevOps’un yaşam döngüsü aşamalarını anlamadan DevOps’u anlamak tam değildir. Sürekli DevOps yaşam döngüsü yedi aşama içerir. Bu aşamalar:
- Continuous Development (Sürekli Gelişim)
- Continuous Integration (Sürekli Entegrasyon)
- Continuous Testing (Sürekli Test)
- Continuous Monitoring (Sürekli Denetleme)
- Continuous Feedback (Sürekli Geribildirim)
- Continuous Deployment (Sürekli Dağıtım)
- Continuous Operations (Sürekli İşlemler)
DevOps yaşam döngüsünün doğru uygulanmasıyla çok şey elde edilebilir, bu da uygulamaların üretimini daha etkili ve güvenli hale getirir. Gerçek şu ki DevOps, büyük küresel işletmeler için maksimum operasyonel verimlilik sağlayan üretim yaşam döngülerinin geleceğidir.
Şimdi DevOps Lifecyle’ın aşamaları;
- Sürekli Gelişim: Bu, yazılımın ‘planlama‘ ve ‘kodlamasını’ içeren aşamadır. Projenin vizyonuna planlama aşamasında karar verilir ve geliştiriciler uygulama için kod geliştirmeye başlar. Planlama için gerekli DevOps araçları bulunmaz, ancak kodu korumak için bir dizi araç vardır. DevOps sürekli geliştirme yaklaşımını izlediğinden, geliştirme ve işletim şemasında sürekli geri bildirim kullanarak mevcut kod üzerinde çalışmalar yapılabilir.
- Sürekli Entegrasyon: Bu aşama, tüm DevOps yaşam döngüsünün kalbidir.Sürekli entegrasyon süreci geliştirme sonrasında otomatik olarak başlar. Bir sonraki aşamada yapılacak testlerin planlanması, ilk proje belgelerinde ihtiyaç duyulan sonucu üretme kodunun anlaşılması gibi birkaç adım içerir. Sürekli entegrasyon DevOps’ta sorunsuz bir süreçtir ve bir sonraki aşamaya verimli bir şekilde ulaşır.
- Sürekli Test: Test işlemi DevOps’ta bir uygulamanın gerçek kullanımını kontrol eder. Beta test kullanıcıları sonuç verirken, uygulamanın amaçlanan kullanımını canlı bir ortamda kullanabilmesini sağlar. Sürekli test için Selenium, TestNG, JUnit, vb. Otomasyon test araçları kullanılır. Test süreci, bir uygulamanın farklı yönleri hakkında daha fazla bilgi verir ve bu da uygulamayı geliştirmek için bir fırsat olur.
- Sürekli Denetleme: Bu, uygulamanızın performansını sürekli olarak izlediğiniz DevOps yaşam döngüsünün çok önemli bir aşamasıdır. Burada yazılımın kullanımı hakkında hayati bilgiler kaydedilir. Bu bilgiler, uygulamanın uygun işlevselliğini tanımak için işlenir. Düşük bellek, sunucuya erişilemiyor vb. sistem hataları bu aşamada çözülür. Herhangi bir sorunun temel nedeni bu aşamada belirlenir. Hizmetlerin güvenliğini ve kullanılabilirliğini korur. Uygulama sürekli kullanım konumundayken, belge biçiminde oluşabilecek veya uygulama parametreleri hakkında büyük veri üreten bir yazılım ürününün işletim verimliliğini artırır.
- Sürekli Geri bildirim: Mevcut ürünü geliştirilmesinde ve yeni sürümlerin hızla yayınlanmasına yardımcı olur. Ürünün nihai sonucu analiz edilerek uygulama performansı sürekli olarak artırılır. Sürekli geri bildirim, müşteri geri bildiriminin, mevcut yazılım ürününün çalışmasını iyileştirmek ve yanıta göre yeni sürümleri hızlı bir şekilde yayınlamak için yazılım uygulamasının önemli bir aşamasıdır.
- Sürekli Yayılma: Bu, kodun üretim sunucularına dağıtıldığı aşamadır. Kodun tüm sunuculara doğru bir şekilde dağıtıldığından emin olmak da önemlidir. Dağıtım işlemi, kodda yapılan herhangi bir değişikliğin yüksek trafikli web sitesinin çalışmasını etkilemeyeceği şekilde gerçekleştirilir.
- Sürekli İşlemler: Tüm DevOps işlemleri, yayınlama sürecinin tam otomasyonu ile sürekliliğe dayanır ve kuruluşların sürekli olarak piyasaya sürülme süresini hızlandırmasına olanak tanır.
Bu konudan çıkarılacağı üzere, sürekliliğin DevOps’ta, geliştirmeyi sıklıkla engelleyen, sorunları tespit etmenin daha uzun sürdüğü ve birkaç ay sonra ürünün daha iyi bir versiyonunun üretildiği bol adımları ortadan kaldıran kritik faktör olduğu açıktır. DevOps ile, herhangi bir yazılım ürününü daha verimli hale getirebilir ve ürününüzle ilgilenen müşterilerin toplam sayısını artırabilirsiniz.