• Çözümlerimiz
    • Self Servis Teknolojiler
    • Mobil Teknolojiler
    • Web Teknolojileri
  • Başarı Hikayeleri
  • Değerlerimiz
  • Blog
  • İletişim
Yeni Blog: OpenAI Canvas Yeni Yapay Zeka Destekli Yazma ve Kodlama Asistanınız
logo logo
  • Çözümlerimiz
    • Self Servis Teknolojiler
    • Mobil Teknolojiler
    • Web Teknolojileri
  • Başarı Hikayeleri
  • Değerlerimiz
  • Blog
  • İletişim
  • İnsan Kaynakları Yönetimi
  • Argenova
  • Yazılım Geliştirme
  • Girişimcilik
  • Proje Yönetimi
  • Müşteri Hizmetleri
  • Teknoloji

DevOps Nedir?

Ahmet Hilmi BERBER
Ahmet Hilmi BERBER 29 Kasım 2020

DevOps'un benimsenmesi hem büyük kuruluşlarda hem de web tabanlı kuruluşlarda hızlanmaya devam etse de, terimin tam olarak ne anlama geldiği konusunda kafa karışıklığı devam ediyor. DevOps bir kültür mü, hareket mi, yaklaşım mı, felsefe mi yoksa bunlardan birkaçının bir karışımı mı?

Yazımızda bu kafa karışıklığına çözüm getirmek için DevOps'tan bahsedeceğiz.

Yazımızda aşağıdaki başlıklara değineceğiz:

  • DevOps Nedir?
  • DevOps’un Tarihçesi Nedir?
  • DevOps’un Özellikleri Neledir?
  • DevOps’taki Etkili Uygulamalar Nelerdir?
  • DevOps İçin Kullanılan Araçlar Nelerdir?
  • DevOps Yaşam Döngülerinde Kullanılan Araçlar Nelerdir?

DevOps Nedir?

DevOps, daha hızlı, daha iyi uygulama geliştirmeyi ve yeni veya revize edilmiş yazılım özelliklerinin veya ürünlerin müşterilere daha hızlı yayınlanmasını teşvik eden, gelişen bir felsefedir.

DevOps uygulaması, uygulama geliştirme (Development) ve BT operasyon (Operations) ekipleri arasında daha sorunsuz, sürekli iletişim, işbirliği, entegrasyon, görünürlük ve şeffaflığı teşvik eder.

"Dev" ve "Ops" arasındaki bu daha yakın ilişki, DevOps yaşam döngüsünün her aşamasına nüfuz eder: ilk yazılım planlamasından kodlama, derleme, test ve yayınlama aşamalarından devreye alma, operasyonlar ve devam eden izlemete kadar. Bu ilişki, daha fazla iyileştirme, geliştirme, test etme ve dağıtımdan oluşan sürekli bir müşteri geri bildirim döngüsü sağlar. Bu çabaların bir sonucu, gerekli özellik değişikliklerinin veya eklemelerin daha hızlı ve sürekli olmasıdır.

Bazı kişiler DevOps hedeflerini dört kategoride gruplandırır: kültür, otomasyon, ölçüm ve paylaşım (Culture - Automation - Measurement - Sharing - CAMS) ve DevOps araçları bu alanlarda yardımcı olabilir. Bu araçlar, geliştirme ve operasyon iş akışlarını daha akıcı ve işbirliğine dayalı hale getirerek, entegrasyon, geliştirme, test etme, entegre etme veya izleme ile ilgili daha önce zaman alan, manuel veya statik görevleri otomatikleştirebilir.

DevOps’un Tarihçesi Nedir?

2000'lerin başlarında, Google ve Flickr gibi popüler web sitelerinin büyük çaplı isabetlere karşı kullanılabilirliğini sürdürme ihtiyacını gördü. Bu ihtiyaç, yazılım güvenilirliği mühendislerinin kullanılmasına yol açtı. Kod üretime geçtikten sonra sitelerin çalışmaya devam etmesini sağlamak için geliştiricilerle yakın çalışan operasyonlar.

2009 yılında, Flickr mühendisleri John Allspaw ve Paul Hammond bir konferansta kendi DevOps benzeri metodolojilerini sundular. Sunumlarının başlığı "Günde 10'dan Fazla Dağıtım: Flickr'da Geliştirme ve Operasyon İşbirliği" idi. Aynı yıl, Patrick Debois Belçika'da ilk "DevOps Günü" nü düzenledi. Bir #DevOps hashtag'i dahil edildi ve dünya çapında daha fazla DevOps Günü düzenlendikçe gelişim ivme kazandı.

DevOps’un Özellikleri Nelerdir?

Hız: DevOps uygulamaları, daha hızlı inovasyon yapmak, değişen pazarlara daha iyi uyum sağlamak ve iş sonuçlarını yönlendirmede daha verimli olmak için ihtiyaç duyduğunuz hızda hareket etmenize olanak tanır.

Hızlı Teslimat:  Sürümlerin hızını artırdığınızda, ürününüzü daha hızlı geliştirebilir ve rekabet avantajı elde edebilirsiniz.

Güvenilirlik: Sürekli entegrasyon ve sürekli teslimat gibi DevOps uygulamaları, uygulama güncellemelerinin ve altyapı değişikliklerinin kalitesini garanti edebilir, böylece son kullanıcılar için optimum deneyimi korurken daha hızlı bir şekilde güvenilir bir şekilde teslimat yapabilirsiniz.

Geliştirilmiş İşbirliği: Bir DevOps modeli kapsamında, geliştiriciler ve operasyon ekipleri yakın işbirliği yapar, sorumlulukları paylaşır ve iş akışlarını birleştirir. Bu sayede verimsizlikler azalır ve zaman kazanılır.

Güvenlik: Otomatikleştirilmiş, entegre güvenlik testi araçlarını kullanarak güvenlikten ödün vermeden bir DevOps modelini benimseyebilirsiniz.

DevOps’taki Etkili Uygulamalar Nelerdir?

Otomatik Test: Otomatik regresyon testi, sorunları hemen düzeltmeye ve daha yüksek kalitede kod göndermeye yardımcı olduğu için Agile ekiplerinin çok sık benimsediği bir şeydir. Bu, DevOps'ta da işe yarar, çünkü operasyon personelinin en büyük ihtiyacı, gönderilen kodun belirli bir kalite standardını karşılamasıdır.

Entegre Yapılandırma Yönetimi: Bir DevOps ortamında, konfigürasyon yönetimi yalnızca üzerinde çalışılan mevcut çözüm için değil, aynı zamanda çözüm ile organizasyon altyapısının geri kalanı arasındaki konfigürasyon sorunları için de geçerlidir. Entegre Yapılandırma yönetimi, operasyon ekiplerinin yeni bir sürümün potansiyel etkisini daha net görmelerine yardımcı olarak, sürümün ne zaman yapılması gerektiğine ilişkin daha iyi kararlar alınmasına yardımcı olur.

Entegre Değişiklik Yönetimi: Entegre değişim yönetimi ile operasyonlar ve geliştirme ekipleri, farklı teknolojilerin kullanımının bir bütün olarak kuruluşu nasıl etkileyeceğini anlamak için birlikte çalışır ve ardından bunu yönetmek için çalışır.

Sürekli Entegrasyon (CI): Sürekli entegrasyon ile, güncellenen kod sürüm kontrol sistemine her kontrol edildiğinde kod test edilir ve analiz edilir. Bu, geliştiricilerin çok az riskle yüksek kaliteli bir çözüm oluşturmasına olanak tanıyan kod kusurları hakkında anında geri bildirim sağlar.

CI hakkında daha detaylı bilgi almak için CI/CD Nedir? isimli yazımızı inceleyebilirsiniz.

Entegre Dağıtım Planlaması: DevOps yaklaşımı, operasyon mühendislerinin, ürünlerin bir organizasyonel dağıtım programına göre dağıtımını planlamak söz konusu olduğunda geliştiricilerle yakından ilgileneceği anlamına gelir.

Sürekli Dağıtım (CD): Sürekli dağıtımla, bir sanal alanda entegrasyon başarılı olduğunda, otomatik olarak sonraki sanal alana yükseltilir ve entegrasyon burada başlar. Bu, insan doğrulaması gerektirdiği noktaya ulaşıncaya kadar devam eder. Bu genellikle dev'den işlemlere geçiş noktasında gerçekleşir.

CD hakkında daha detaylı bilgi almak için CI/CD Nedir? isimli yazımızı inceleyebilirsiniz.

Üretim desteği: DevOps ile geliştiriciler yalnızca yeni sürümler üzerinde çalışmakla kalmaz, aynı zamanda üretimde olan bir çözümle kritik sorunları ele almak için de çalışırlar. Üretim sorunlarının çözümüne dahil olan üçüncü ve son ekip olmalarına rağmen, bu oldukça yaygın bir olaydır ve onlara daha iyi çözümler tasarlamalarına yardımcı olan üretim sorunları hakkında fikir verir.

Uygulama İzleme: Bu, çözümlerin üretime girdikten sonra gerçek zamanlı olarak izlenmesi ve kaydedilmesi uygulaması anlamına gelir. Bu bize çözümün güvenilirliğini artıran ve arızaları önleyen performans ölçütleri verir.

Otomatik Gösterge Tabloları: DevOps, birkaç önemli ölçüm için otomatik kontrol panelleri oluşturmamıza olanak tanır. Elbette tüm ölçümler otomatikleştirilemez, ancak otomatikleştirilmiş gösterge tabloları kullanılarak gerçek zamanlı olarak birkaç önemli ölçüm görülebilir ve bunlar kritik iş zekası sağlar.

DevOps İçin Kullanılan Araçlar Nelerdir?

Dünyada en çok kullanılan DevOps yöntemleri olanlar arasında Scrum, Kanban ve Agile vardır:

Scrum: Scrum, bir takımın üyelerinin geliştirme ve kalite güvence projelerini hızlandırmak için birlikte nasıl çalışması gerektiğini tanımlar. Scrum uygulamaları, temel iş akışlarını ve belirli terminolojiyi (sprintler, zaman kutuları, günlük scrum [toplantı]) ve belirlenmiş rolleri (Scrum Master, ürün sahibi) içerir.

Kanban: Kanban, Toyota fabrika katında kazanılan verimliliklerden kaynaklanıyordu. Kanban, devam eden yazılım projesi durumunun (WIP) bir Kanban panosunda izlenmesini öngörür.

Çevik (Agile): Daha önceki çevik yazılım geliştirme yöntemleri, DevOps uygulamalarını ve araçlarını büyük ölçüde etkilemeye devam ediyor. Scrum ve Kanban dahil olmak üzere birçok DevOps yöntemi, çevik programlama unsurlarını içerir. Bazı çevik uygulamalar, değişen ihtiyaçlara ve gereksinimlere daha fazla yanıt verme, gereksinimleri kullanıcı hikayeleri olarak belgeleme, günlük standuplar gerçekleştirme ve sürekli müşteri geri bildirimlerini dahil etme ile ilişkilidir. Çevik ayrıca uzun, geleneksel "şelale" geliştirme yöntemleri yerine daha kısa yazılım geliştirme yaşam döngüleri öngörür.

DevOps Yaşam Döngülerinde Kullanılan Araçlar Nelerdir?

Planlama: Bu aşama, iş değerini ve gereksinimlerini tanımlamaya yardımcı olur. Örnek araçlar, bilinen sorunları izlemeye ve proje yönetimini gerçekleştirmeye yardımcı olan Jira veya Git'i içerir.

Kodlama: Bu aşama, yazılım tasarımını ve yazılım kodunun oluşturulmasını içerir. Örnek araçlar arasında GitHub, GitLab, Bitbucket veya Stash bulunur.

İnşa Etme: Bu aşamada, yazılım yapılarını ve sürümlerini yönetirsiniz ve gelecekteki üretim sürümleri için kod derlemeye ve paketlemeye yardımcı olmak için otomatik araçlar kullanırsınız. Ürün sürümü için gerekli altyapıyı "paketleyen" kaynak kodu havuzlarını veya paket depolarını kullanırsınız. Örnek araçlar arasında Docker, Ansible, Puppet, Chef, Gradle, Maven veya JFrog Artifactory bulunur.

Test Etme: Bu aşama, optimum kod kalitesini sağlamak için sürekli testi (manuel veya otomatik) içerir. Örnek araçlar arasında JUnit, Codeception, Selenium, Vagrant, TestNG veya BlazeMeter bulunur.

Entegrasyon: Bu aşama, ürün sürümlerinin üretime geçişini yönetmeye, koordine etmeye, programlamaya ve otomatikleştirmeye yardımcı olan araçları içerebilir. Örnek araçlar arasında Puppet, Chef, Ansible, Jenkins, Kubernetes, OpenShift, OpenStack, Docker veya Jira bulunur.

Çalıştırma: Bu aşama, üretim sırasında yazılımı yönetir. Örnek araçlar Ansible, Puppet, PowerShell, Chef, Salt veya Otter'ı içerir.

Takip Etme: Bu aşama, üretimdeki belirli bir yazılım sürümünden gelen sorunlar hakkında bilgi tanımlamayı ve toplamayı içerir. Örnek araçlar arasında New Relic, Datadog, Grafana, Wireshark, Splunk, Nagios veya Slack bulunur.

Sonuç Olarak

DevOps, iş kullanıcılarını, geliştiricileri, test mühendislerini, güvenlik mühendislerini ve sistem yöneticilerini müşteri gereksinimlerini karşılamaya odaklanan tek bir iş akışına entegre etmeyi sağlayan ve gittikçe popülerleşen bir felsefedir. Sizin DevOps ile ilgili düşünceleriniz neler? Yorumlarda düşüncelerinizi bizlerle paylaşmayı unutmayın! 

DevOps


Yorumlar (2)

  1. murat şahin
    murat şahin

    çok bilgilendirici bir yazı olmuş, teşekkürler!

    15.05.2022

    1. murat şahin
      Ahmet Hilmi BERBER

      Rica ederim :)

      15.05.2022

Argenova

Yenilikçi ve girişimci ruhumuz ile hareket ediyor, her işimizi değerlerimiz ışığında en doğru şekilde yapıyoruz.

Web Teknolojileri
  • Kurumsal Web Tasarım
  • E-Ticaret
  • Web Uygulamaları
  • Seo
  • Dijital Pazarlama
  • Sunucu ve Barındırma
  • Teknik Destek ve Bakım
Mobil Teknolojiler
  • IOS Uygulama Geliştirme
  • Android Uygulama Geliştirme
  • Bakım ve Teknik Destek
Self-Servis Teknolojiler
  • Ziyaretçi Yönetim Sistemi
  • Anket ve Eğitim Sistemleri
  • Toplantı Odası Bilgilendirme Ekranı
  • Multitouch Uygulamalar
  • Digital Signage
  • İnteraktif Stand Çözümleri
  • Özel Kiosk Çözümleri
  • Temizlik Kontrol Sistemi
Argenova
  • Hakkımızda
  • Blog
  • İletişim

Copyright © 2025. Argenova Teknoloji. All rights reserved.