👉 DevOps Nedir? 👈
Merhabalar 👋 , bu yazımda sizlere elimden geldiğince DevOps’ un ne olduğundan, neden kullanıldığından bahsetmeye çalıştım. İyi okumalar.
İçerik kısmında ele alınan başlıklar:
- DevOps Nedir?
- DevOps Hangi İhtiyaçtan Ortaya Çıktı?
- DevOps Nasıl Çalışır?
- DevOps LifeCycle
- DevOps Araçları
- DevOps’ un Avantajları
1️⃣ DevOps Nedir?
🔹DevOps kelimesi ; Development ve Operations kelimelerinin birleşiminden ortaya çıkan bir yaklaşımdır. DevOps tasarım başlangıcından geliştirme süreçlerine kadar tüm programlama işlemlerinin yürütüldüğü ekip çalışmasını belirtmektedir. Yani DevOps bizlere der ki ; “Yazılım geliştirme, kalite ve IT operasyon birimleri birbirleri ile dayanışma içinde olmalıdır.” der. Bu sayede bir projenin hızlı bir şekilde yazılım ve servis üretmesini aynı zamanda operasyon performansını arttırmayı hedefler.
🔹DevOps’ u bir yaklaşım ya da bir bakış açısı olarak ele alabiliriz. Hatta bu yaklaşım yazılım tarafında alışık olduğumuz Scrum, Agile, Kanban ve diğer yöntemlere benzer yapıdadır.
🔹DevOps ile Agile arasında güçlü bir bağ vardır. İkisininde ortak amaçları vardır. Ancak ikisi arasındaki fark :
- Agile, müşteri ve geliştirici iletişimlerindeki boşlukları giderir.
- DevOps, geliştirici ve IT operasyonları iletişimlerindeki boşlukları giderir.
2️⃣ DevOps Hangi İhtiyaçtan Ortaya Çıktı?
🔹Eskiden Dev ve Ops birbirlerinden ayrı olarak çalışmaktaydı. Bu yüzden istenilen çeviklik sağlanamıyordu. Yazılım geliştiren şirketler kendi içlerinde verimsizlik yaşıyorlardı. Yani;
- Projeler gecikiyor,
- Hatalı ürünler ortaya çıkıyor,
- Sürümlerde sorun yaşanıyordu, ..
Dolayısıyla da boşa giden bir zaman ve para kaybı ortaya çıkmaya başladı. DevOps işte bu kötü giden duruma dur diyerek hayatımıza girdi ve Dev ile Ops arasındaki iletişmi, işbirliğini, bütünleşmeyi sağladı.
3️⃣ DevOps Nasıl Çalışır?
🔹DevOps yaklaşımında geliştirme ve operasyon ekipleri birbirlerinden ayrı/kopuk değildir. Tasarım ve geliştirmeden , test otomasyonuna ve sürekli entegrasyondan , sürekli teslimata kadar ekip istenen hedefe ulaşabilmek için birlikte çalışır. Hem geliştirme hem operasyon becerisine sahip kişiler birlikte çalışır ve müşterilerin ihtiyaçlarını hızlı bir şekilde yanıt vermek ve sorunları, hataları düzeltmek için CI-CD ve izleme için çeşitli araçlar kullanılır.
CI-CD : Continuous Integration (CI) ve Continuos Delivery (CD) kelimelerinden oluşmaktadır. Bu yapı sayesinde tekrar eden işleri otomatize hale getirir ve yazılımımızı geliştirirken yapılan güncellemelerin, yapılan testler sonrasında dağıtıma sunulmasını sağlar.
4️⃣ DevOps LifeCycle
🔹7 aşamadan oluşmaktadır.
1) Continuous Development (Sürekli Gelişim)
Yazılımın planlama ve kodlanmasını içeren kısımdır. Burada tüm geliştirme süreci daha küçük geliştirme döngülerine bölünür. Bu süreç genel DevOps ekibinin yazılım geliştirme sürecini hızlandırmasını kolaylaştırır.
Bu aşama aynı zamanda geliştiricilerin proje beklentilerini tam olarak anlamalarını sağlayarak tüm geliştirme döngüsü için vizyonun ortaya çıkarılmasında etkilidir. Bu sayede ekip hedefini de görselleştirmeye başlar.
2) Continuous Integration (Sürekli Entegrasyon)
DevOps yaşam döngüsünün kalbi olarak bilinir. Yazılan kodlardaki hataların erken tespit edilmesini sağlar. Böylece güncellenen kod sorunsuz bir şekilde tüm sisteme entegre olur. Jenkins, sürekli entegrasyon için popüler araçlardan biridir.
3) Continuous Testing (Sürekli Test)
Geliştirilen yazılım için sürekli olarak hata testinin yapıldığı kısımdır. Sürekli test için: TestNG, JUnit, Selenium,… vb. otomasyon test araçları kullanılmaktadır.
4) Continuous Monitoring (Sürekli Denetleme)
Uygulamanın performansını izlediğimiz önemli aşamalardan biridir.
- Düşük bellek,
- Sunucuya erişilemiyor
vb. sistem hataları bu aşamada çözülür. Herhangi bir sorunun temel nedeni bu aşamada belirlenir.
5) Continuous FeedBack (Sürekli Geri Bildirim)
Uygulamanın sonucunu tespit ve analiz etmek için sürekli geri bildirim şarttır. Mevcut ürünün geliştirilmesinde ve yeni sürümlerin hızla yayınlanmasına yardımcı olur.
6) Continuous Deployment (Sürekli Dağıtım)
Uygulamanın performansını etkilemeden sorunsuz ürün dağıtımı sağlar. Bu aşamada kodun mevcut tüm sunuculara tam olarak dağıtıldığından emin olmak gerekir. Bu süreç geri bildirim mekanizmasını hızlandırarak geliştiricilerin sorunları daha hızlı ve daha doğru bir şekilde ele almasına olanak sağlar.
7) Continuous Operations (Sürekli İşlemler)
Sürekli operasyondaki geliştirme döngüleri daha kısadır. Bu da kuruluşların sürekli reklam yapmasına ve ürünü pazarlamak için toplam süreyi hızlandırmasına olanak tanır.
5️⃣ DevOps Araçları
🔹Sık kullanılan DevOps araçları :
6️⃣ DevOps’ un Avantajları
- Hızlı proje teslimi
- Güvenlik sistemi
- Güvenilirlik Özelliği
- Ölçeklendirme özelliği
- Hız faktörü
- Üst düzey işbirliği
🌟Bu yazımın da sonuna gelmiş bulunmaktayız. Umarım sizler için faydalı olmuştur. :)