Ana içeriğe atla

IKISI BIR ARADA : DEVOPS

DevOps bir IT ürününün üretilme ve ürünün hayatını sağlıklı bir şekilde sürdürmesi için bütün paydaşların optimum verimle birlikte efektif çalışabildiği felsefik köklere de sahip olan bir frameworktür.
Development ve Operations kelimelerinin birleştirilmesinden oluşan bir
terimdir. 
Yazılımcılar (dev) ve sistem yöneticilerinin (ops); tasarım, geliştirme, test ve yayınlama aşamalarından oluşan yazılım yaşam döngüsünde ve daha sonrasındaki destek aşamasında ortaklaşa çalışmaları için gerekli faaliyetlerin bütününü temsil eder.

Dev : “Dev”, genelde yazılım geliştiricileri için kullanılır, ancak gerçekte daha geniş bir topluluğu temsil eder ve “yazılım geliştirme için çalışan herkes”i kapsar.
Ops : “Ops”, “Dev”e göre daha geniş bir kapsamı olup sistem mühendisleri, sistem yöneticileri, sürüm mühendisleri, veritabanı yöneticileri (DBAs), network mühendisleri, güvenlik uzmanları ve daha birçok değişik alt displinler için kullanılır.

DevOps’un Getirdiği Özellikler


1. Yazılım ile operasyon arasında köprü kurar.
2. Yazılımcı, kodunu yazdığında, yazılım tek tuş ile derlenir ve sunucuda çalışır hale gelir.
3. Üzerindeki testler otomatik olarak çalışır. Derleme veya testlerde problem
varsa, anında rapor edilir.
4. Yazılım, istenen periyodlarda, beta ortamına aktarılır ve kullanıcılar
tarafından testlerinin yapılması sağlanır. Sonraki adımda, üretim
sistemlerine yayılır.
5. Üretimde son yayınlamadan ötürü hata çıkarsa, otomasyon sayesinde
DevOps anında geri alınmasını sağlayabilir.
6. Sistem izleme sayesinde, sistem logları ve kaynak kullanımları monitor
edilir. Loglarda çıkan hatalar ya yerinde müdahaleyle çözülür, ya da
yazılımcılara rapor edilir.
7. Hata takip sistemiyle, kullanıcılardan gelen hatalar toplanır ve yazılım
ekibine rapor edilir.
DevOps’un Ortaya Çıkmasındaki İhtiyaçlar

Yazılım ürünlerinin yeni sürüm çıkma hızı
Ürünler arası rekabetin artması
Müşteri memnuniyeti için kaliteli ürün elde etme zorunluluğu
Şirketler kullanıcı deneyimini iyileştirmek, hataları düzeltmek veya yeni özellikler eklemek için bazen her gün yazılım değişikliği yapılan ve kullanıcılara gerçek zamanlı sunulan ortamda yazılım üretiminin, çeviklik (agility) ile yerine getirilmesi kaçınılmaz hale gelmiştir.
DevOps’un Temel Prensipleri

Otomasyona Dayalı
Sürekli Yayınlama Yapan
Takip ve Uyarı Sistemlerine Sahip
Güvenlik Sistemlerine Yatırım Yapan
Test Odaklı Yazılım Geliştirme’yi (TDD) Benimsemiş
Davranış Odaklı Yazılım Geliştirmeyi (BDD) Benimsemiş

DevOps Sürecine Dahil Ekipler
Yazılım geliştiriciler
Veritabanı Yöneticileri
Sistem Yöneticileri
Sistem Analistleri
Güvenlik Uzmanları
Destek Elemanları

DevOps Sürecinin Döngüsü
1. Kod, kaynak kontrol sistemine aktarılır (check in/push)
2. Kod, derlenmek için kaynak kontrol sisteminden çekilir (pull)
3. Testler çalıştırılır. Sürekli entegrasyon (continuous integration) sunucusu, yapıları (build) ve sürümleri (release) üretir.
4. Entegrasyon ve kullancı testleri yapılır.
5. Testleri geçen çıktılar (artifacts) ve yapılar (build) depolanarak saklanır.
6. Otomatik bir sürümleme (release) aracı kullanılarak dağıtım yapılır.
7. Ortam (environment) konfigüre edilir.
8. Veritabanları güncellenir.
9. Uygulamalar güncellenir.
10. Test edilmiş uygulamalar, kullanıcılara bir kesinti yaşamalarına gerek kalmadan aktarılır.
11. Uygulama ve ağ performansı izlenir (monitoring) ve sorunlar oluşmadan engellenmeye çalışılır.
12. Her adım biraz daha iyileştirilerek baştan alınır.

DevOps Uygulamaları
Altyapı Otomasyonu
Konfigürasyon Yönetimi
Dağıtım Otomasyonu
Altyapı İzleme
Log Yönetimi
Uygulama ve Performans Yönetimi
Güvenlik Yönetimi

DevOps Yöntemleri

Sürekli tümleştirme ve sürekli teslim (Continuous integration and continuous delivery - CI/CD)
Sürüm Denetimi (Version Control)
Çevik Yazılım Geliştirme (Agile Software Development)
Kod olarak Altyapı (Infrastructure as Code)
Yapılandırma Yönetimi (Configuration Management)
Sürekli İzleme (Continuous Monitoring)

DevOps Pozisyon Mudur?

DevOps tek bir role sığdırılabilecek bir kavram değildir.
Uygulama yaşam döngüsündeki fazlara dahil olan herkes DevOps kültürünü sahiplenmelidir.
Ancak aynı zamanda bir çok şirkette sadece bu konuya odaklanan kişiler de vardır.
Bu roldeki kişilerin pozisyonları DevOps Mühendisi ya da DevOps Uzmanı olarak geçer.

DevOps'un Avantajları


Hız :Yüksek bir hızda hareket ederek müşterileriniz için daha hızlı yenilik yapabilir, değişen pazarlara daha iyi uyum sağlayabilir ve iş sonuçlarına ulaşmada daha verimli hale gelebilirsiniz. DevOps modeli, geliştiricilerinizin ve operasyon ekiplerinizin bu sonuçları elde etmesine imkan tanır. Örneğin mikro hizmetler ve sürekli teslim, ekiplerin hizmetleri sahiplenmesine ve ilgili güncellemeleri daha hızlı sağlamasına imkan tanır.

Hızlı Teslim:Yenilikler yapıp ürününüzü daha hızlı geliştirebilmek için yayın sıklığını ve hızını artırın. Yeni özellikleri ve hata düzeltmelerini ne kadar hızlı yayınlayabilirseniz, müşterilerinizin ihtiyaçlarına o kadar hızlı yanıt verebilir ve rakipleriniz karşısında avantaj sağlayabilirsiniz. Sürekli entegrasyon ve sürekli teslim, derlemeden dağıtıma kadar yazılım yayınlama sürecinin tamamını otomatikleştiren uygulamalardır.

Güvenilirlik:Uygulama güncellemelerinin ve altyapı değişikliklerinin kalitesinden emin olarak hem daha hızlı ve güvenilir şekilde teslim gerçekleştirebilir hem de son kullanıcı deneyiminin olumlu kalmasını sağlayabilirsiniz. Sürekli entegrasyon ve sürekli teslim gibi uygulamalar aracılığıyla her değişikliğin işlevsel ve güvenli olup olmadığını test edin. İzleme ve günlüğe kaydetme uygulamaları, performansı gerçek zamanlı olarak takip etmenize yardımcı olur.

Ölçek:Altyapınızı ve geliştirme süreçlerinizi gerekli ölçekte çalıştırın ve yönetin. Otomasyon ve tutarlılık, karmaşık ya da değişen sistemleri verimli bir şekilde ve daha az riskle yönetmenize yardımcı olur. Örneğin kod olarak altyapı modelini kullanmak geliştirme, test ve üretim ortamlarınızı daha verimli ve tekrarlanabilir şekilde yönetmenize yardımcı olur.

Geliştirilmiş İş Birliği:Sahiplenme ve sorumluluk gibi değerleri vurgulayan bir DevOps kültür modeli altında daha etkili ekipler kurun. Geliştiriciler ve operasyon ekipleri daha yakın bir şekilde iş birliği yapar, birçok sorumluluğu ortak olarak üstlenir ve iş akışlarını birleştirir. Bu sayede verimsizlikler azalır ve zaman tasarrufu sağlanır (örneğin geliştiriciler ile operasyon ekibi arasındaki devir sürelerinin kısalması ve kodun çalışacağı ortam göz önünde bulundurularak yazılması).

Güvenlik:Denetim ve uygunluktan ödün vermeden daha hızlı hareket edin. Otomatik uygunluk politikaları, ayrıntılı denetimler ve yapılandırma yönetim teknikleri sayesinde güvenlikten taviz vermeden bir DevOps modelini benimseyebilirsiniz. Örneğin, kod olarak altyapı ve kod olarak politika ile, uygunluğu gerekli ölçekte tanımlayabilir ve ardından izleyebilirsiniz.

Sizlere bu yazımda yazılım ekipleriyle operasyon ekiplerinin bir arada çalıştığı DevOps sürecinden bahsetmeye çalıştım. Karantina günlerinde hangi alana daha yakın olduğumu araştırırken DevOps kavramı içinde buldum kendimi kim bilir belki de DevOps Mühendisi olarak karşınıza çıkarım. Umarım faydalı bir içerik olmuştur. Diğer yazımda DevOps araçlarından detaylı bir şekilde bahsetmeye çalışacağım. Hoş kalın hoşçakalın ve en önemlisi de bu süreçten en az şekilde etkilenmek için evde kalın...

Yararlandığım Kaynaklar:
https://www.atlassian.com/devops
https://en.wikipedia.org/wiki/DevOps
https://newrelic.com/devops/what-is-devops

Yorumlar

Bu blogdaki popüler yayınlar

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI

Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “ Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap ( A Logical Calculus of Ideas Immanent in Nervous Activity )” başlıklı makale ile ortaya çıkarılmıştır. Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım. Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır. Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır. Axon (Akson): Ak...

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dak...

TARIM 4.0

  Tarım 4.0 nedir, nasıl ortaya çıkmıştır? Yüzyıllar boyunca, ülkeleri ve genel olarak dünyayı şekillendiren birçok sanayi devrimi olmuştur. Endüstri 4.0, çalışma biçimlerini değiştiren en son sanayi devrimidir. Otomasyon, yapay zeka (AI) ve robotiğin yükselişinin yanı sıra İnternet ve giderek daha iyi teknoloji ile bağlantılı diğer ilerlemeleri ifade eder. Tarım endüstrisi de teknoloji ve çalışma alanındaki bu önemli değişimi yaşadı ve deneyimlemeye devam ediyor. ‘Tarım 4.0’ olarak anılıyor ve çiftçiliği yenilikçi ve kendine güvenen hale getirmeyi vaat ediyor. İşte son teknolojik gelişmelerin tarımı değiştirmesinin beklendiği üç temel yol şunlardır: Yapay zeka Yapay zeka, süreçleri çok daha verimli hale getirmek için tarım endüstrisi tarafından kullanıldı. AI, çeşitli makinelere ve ekipman parçalarına uygulanarak, sprinkler ve gübre gibi farklı cihazların işlerini daha etkin bir şekilde gerçekleştirmelerine olanak tanır. Bunun iyi bir örneği, karada büyük nesneleri taşımak, çekmek...