Blog » Cloud » DevOps Nedir, Ne İşe Yarar? Yeni Başlayanlar İçin DevOps

DevOps Nedir, Ne İşe Yarar? Yeni Başlayanlar İçin DevOps

Hosting Fiyatları

Yazılım geliştirme alanlarında çalışanların, sıklıkla kullandıkları kavramlardan biri de DevOps olmaktadır. DevOps, Development ve Operations kelimelerinin birleştirilmesi ile oluşturulan bir kısaltma olarak ifade edilebilir. Development (Geliştirme), Operations (Operasyonlar) kelimelerini bir araya getirerek DevOps kavramını oluşturan kişi ise Patrick Debois ’dir. Kendisi de bir web geliştirici olan Debois, DevOps kavramını 2009’da ortaya koymuştur. 

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. DevOps aynı zamanda, IT (Information Technology) Türkçe karşılığı ile Bilgi Teknolojileri alanında çalışmalarını yürüten ekiplerin, en üst seviyedeki verimliliklerini, sonuçlandırma yeteneklerini yükselten araçların ve felsefelerin tamamını ifade etmektedir. 

Bir DevOps programcısı, temel alt yapı yönetimlerini ve yazılım geliştirme süreçlerini kullanmaktadır. DevOps, yazılım geliştirme alanında Agile (Atik Yazılım Geliştirme) tarzında bir yaklaşım göstermektedir.

DevOps ve Agile Kavramlarının Açılımları

DevOps kavramı ve prensipleri IT alanında bir evrim niteliği taşımaktadır. Bu noktada DevOps’un teknik içeriğini ve prensiplerini bilmek, oldukça önemlidir. DevOps kavramını tanımlamak için, Agile geliştirme konusuna da vakıf olmak gerekmektedir. Agile, bilinen diğer adıyla “Atik / Çevik Yazılım Geliştirme” daha basit prensipleri içeren yazılım geliştirme yöntemlerinin genel adını ifade etmektedir. 

Bu yöntemler, bilinen ve sıklıkla kullanılan denetim ve uyumluluk süreçlerinde, proje yönetimlerine yol gösterici nitelik taşırlar. Agile geliştirme, DevOps prensipleri olmadığında verimliliğini yitirmektedir. Agile genel ifadesiyle, yazılım geliştirme süreçlerindeki, proje yönetimlerine özel yaklaşım metodudur. 

Agile yöntemi, ekiplerin yazılım geliştirme süreçlerinde yaşadıkları öngörülmez durumlara yardımcı olmaktadır. Agile metodunda sıklıkla “Sprint” olarak adlandırılan, içerisinde yineleme ve artırım olan iş dizileri kullanılmaktadır. Agile metodolojisi kurumsal yapıların, web geliştiricilerin iş süreçlerine entegre edilebilmektedir. Agile metodunda kullanılan Sprint terimi, spesifik bir projede, belirli bir aşamaya ayrılan süreyi ifade etmektedir. Sprint süresi dolduğunda, bu projenin tamamlandığını göstermektedir.

DevOps ve Agile Kavramlarının Açılımları

DevOps Prensipleri Nelerdir?

DevOps geliştirmenin oluşturma safhasında, sistem yöneticileri büyük öneme sahiptir. DevOps bu nedenle, en üst düzeyde kurumsal sistem yönetimleri ve uygulamalarını kapsama alanına almaktadır. DevOps süreçlerindeki uygulamalardan bazıları da yazılım geliştirme sürecinin verimini arttırmak için otomasyon ve sistem takipleri gibi dinamikleri içermektedir. DevOps prensipleri 3 temel düzeyde ele alınmaktadır. Bunlar;

  • İnsan Faktörü ve Kültürler
  • Uygulamalar ve Süreçler
  • Teknoloji ve Araçlar

DevOps prensiplerinin ilki olan insan faktörü ve kültürler, belirli bir organizasyon içerisinde bulunan ekiplerin arasında gelişen ya da gelişme ihtimali olan engellerin yıkılmasını ifade etmektedir. DevOps, mevcut ekibin ortak bir hedef çerçevesinde, birlikte ilerlemesine katkı sağlamaktadır. 

Bu prensibin amacı, müşteri tarafına, mümkün mertebede hızlı ve yüksek kalitede yazılımların sunulmasıdır. Uygulamalar ve süreçler prensibinde DevOps ve Agile metotları birlikte hareket etmektedir. Şirketler, Agile, Scrum gibi ek otomasyonların benimsenmesi ile yaşanacak süreçleri öngörülmektedir. Bu prensip aynı zamanda, süreçlerin yenilenebilir şekillerini düzenlemektedir. 

Teknoloji ve araçlar prensibi, DevOps metodunun kullanımında doğru araç ve teknoloji seçimini vurgulamaktadır. Çünkü ideal araç ve teknoloji kullanımı olmadan DevOps, sürdürülebilir bir akış sunamamaktadır. Tüm bunlar, otomasyonların, entegrasyonların, konfigürasyon yönetimlerinin, testlerin, yayınlamanın mümkün kılınmasını sağlamaktadır.

Yeni Başlayanlar İçin DevOps İle Çalışmak

Daha önce DevOps ile çalışma deneyimi olmayanlar için, merak edilen konularında başında, sürdürülmesi mümkün olan bir yazılım geliştirme sürecinin nasıl işlediği gelmektedir. DevOps ’un en kritik bileşenleri arasında otomasyon gösterilmektedir. Otomasyon en basit anlatımıyla, yapılacak belirli bir işlemin, insan faktörü ve makineler arasında paylaştırılması şeklinde ifade edilebilir. 

DevOps kullanırken, yazılım geliştirme süreçlerinde, farklı görevlere ve farklı araçlara bağlanmaya ihtiyaç duyulur. DevOps bir toplama aracından ziyade, kendi içerisinde çalışma sistematiği bulunan yöntemler bütünüdür. DevOps içerisinde yer alan Agile yaklaşımından dolayı, kullanıcılar mevcut çalışmalarını diğer programcılara ait çalışmalarla bütünleştirmektedir. 

Bu döngü sürekli bir şekilde işlemektedir ve süreç içerisinde yaşanabilecek sorunların ortadan kaldırılmasını desteklemektedir. DevOps ile çalışırken kullanıcılar, farklı otomasyon araçları yardımıyla, yazmış oldukları kodları test edebilmektedir. Test aşaması DevOps ’un en işlevsel yönlerinden biridir. Çünkü, proje süreçlerini önemli ölçüde kısaltmayı sağlamaktadır. DevOps ile çalışırken bireysellik, ekip çalışmasını ortadan kaldırmak, DevOps ’un prensiplerine ve mantığına ters düşmektedir. DevOps ile çalışmanın başarısı, belirli bir proje içerisinde yer alan tüm ekip üyelerinin arasında gelişen iş birliği ile mümkün olmaktadır.

Yeni Başlayanlar İçin DevOps İle Çalışmak

DevOps Avantajları Nelerdir?

DevOps yaklaşımı ile operasyonların ve geliştirme süreçlerinin çok daha fazla işbirliği içerisinde ilerlediği görülmektedir. Projelerde görev alan ekip üyeleri, DevOps ile belirlenen hedeflere daha bilinçli şekilde ilerlemektedir. DevOps ’un öne çıkan avantajları ise aşağıdaki şekildedir.

Hızlı Proje Teslimi

DevOps ile yeni bir ürünü çok daha hızlı bir şekilde geliştirmek mümkündür. Geliştirme süreçlerinde yeni özelliklerin uygulanması, hata düzenlemelerinin kısa sürede gerçekleştirilmesi, müşterilerin ihtiyaçlarının belirlenmesi ve o yönde ilerlenmesi DevOps ile kolayca yönetilmektedir. Yazılım yayınlama süreçlerinin otomatikleştirilmesi ve diğer tüm dinamikler DevOps ile projelerin daha hızlı teslim edilmesini sağlamaktadır.

Güvenlik Sistemi

DevOps ile çalışırken denetimlerden ve uygunluk standartlarından ödün vermeniz gerekmez. Uygunluk politikalarının otomatikleştirilmesi, detaylı yürütülen denetimler, yapılandırma yönetim tekniği ile güvenlik sistemleri en üst seviyede çalışmaktadır. DevOps modelinde, kodlamalar ve kod politikaları, uygunluk durumlarını ideal ölçüde tanımlar. DevOps ile tüm süreçler izlenebilmekte ve güvenlik açıkları spesifik olarak belirlenerek anında müdahale edilebilmektedir.

Güvenilirlik Özelliği

DevOps ile çalışırken, uygulamaların güncellemeleri ve alt yapılara ait değişiklikler, güvenilir yöntemlerle oluşturulmaktadır. Projelerin en güvenli şekilde teslim edilmesi ve kullanıcı deneyimlerinin üst seviyede tutulması DevOps ile mümkündür. Otomasyon ve entegrasyon süreçlerinde, kullanılan uygulamalar yardımıyla her bir değişikliğin güvenilirliği için ölçümleme yapılabilir. Uygulama performansları, süreçlerin her bir aşamasında takip edilebilmektedir.

Ölçeklendirme Özelliği

DevOps ile projeye ait altyapıların geliştirme süreçlerinin ölçeklendirilmesi ve yönetilmesi oldukça kolaydır. Otomasyonlar, tutarlılıklar, daha komplike ya da değişken sistemlerin verimli hale getirilmesine yardımcı olur. DevOps ölçeklendirme özelliği aynı zamanda mevcut ya da olası risklerin yönetilmesini kolaylaştırmaktadır. Kodların altyapı modellerinin kullanılması, geliştirme, test etme ve üretme alanlarını verimli hale getirerek, sürdürülebilir başarıyı mümkün kılmaktadır.

Hız Faktörü

DevOps ile çalışırken, oldukça yüksek hızlarda hareket etmek ve müşterilere yönelik daha hızlı yenilikler geliştirmek olasıdır. DevOps ’un bu özelliği, değişken pazar alanlarına uyum yeteneğini güçlendirerek, daha iyi sonuçlara ulaşmayı sağlar. DevOps modeli ile geliştiricilerin ve operasyon ekiplerinin hedefledikleri sonuçlara ulaşması mümkün olmaktadır. Mikro hizmetler, sürdürülebilir teslimler, ekip üyelerinin hizmet akışını sahiplenerek, söz konusu güncellemeleri daha hızlı yürütmesine imkân tanımaktadır.

Üst Düzey İşbirliği

Sorumluluk bilincini ve projeyi sahiplenmeyi üst seviyeye taşıyan DevOps kültürü, daha işlevsel ve etkili ekiplerin oluşturulmasını sağlamaktadır. DevOps modelinde hem geliştiriciler hem de operasyonda görevli ekipler, yakın bir iletişim ile üst düzey işbirliği içerisinde çalışırlar. Projeye ait sorumluluklar ekip üyeleri tarafından paylaşılmaktadır. Bu durum iş akışlarını olumlu yönde etkilerken, birleştirici özellik de göstermektedir. DevOps ile verimsiz süreçlerin önüne geçilerek, zamandan tasarruf sağlanmaktadır.

DevOps Araçları Nelerdir?

Dünya genelinde sıklıkla kullanılan Devops araçları aşağıdaki gibidir.

Scrum

Scrum, kelime anlamı olarak, yazılım mühendisliği kapsamında, uygulama geliştirme yöntemlerinden biri olarak ifade edilir. Scrum özelliği, gözlem yeteneğine sahip, geliştirme potansiyeli bulunan, yinelenen bir modeldir. Scrum, komplike yazılım projelerinin, daha kolay planlanması ve yürütülmesini desteklemektedir. Scrum ile ekip üyeleri, geliştirme ve kalite güvenceli projelerini daha hızlı şekilde tamamlar. Scrum uygulamaları, proje iş akışlarının ve Sprint gibi spesifik terminolojilerin belirli rollerini de içermektedir.

Kanban

Kanban, David J. Anderson ’un geliştirmiş olduğu, evrimsel nitelikli değişim yönetim metodudur. Kanban, DevOps projelerinde, bilgi odaklı her iş sürecinde kullanılmaktadır. Kanban, veri temelli olarak hızlı eyleme geçme prensibini tanımlamaktadır. Japon dilinde “Sinyal Tahtası” olarak geçen Kanban, belirli bir projenin akışının görselleştirilmesi ve kesintisiz şekilde işlemesini amaçlamaktadır.

Agile / Çevik

DevOps yöntemine ait birçok dinamik, Agile / Çevik programlama unsurunu içermektedir. Agile uygulamaları, kullanıldıkları alana göre, değişen ihtiyaçlara daha hızlı şekilde yanıt vermeyi amaçlamaktadır. Proje gereksinimlerinin belgelenmesi, stand up ’ların gerçekleştirilmesi, geri bildirimlerin alınması Agile yöntemi ile ilişkilendirilmektedir. Agile ile geleneksel statüde geliştirme yöntemlerinin yerine daha işlevsel geliştiricilerin kullanılması mümkün olmaktadır.

DevOps Yaşam Döngüsü Nasıl İşlemektedir?

Yeni başlayanlar için DevOps hakkında verilecek en temel bilgilerden biri de DevOps yaşam döngüsüdür. DevOps prensiplerinde işleyen döngü ise aşağıdaki gibi ifade edilebilir.

DevOps Yaşam Döngüsü Nasıl İşlemektedir?

Planlamalar

Planma aşaması, iş değerlerini ve projeye ait gereksinimleri tanımlamak için kullanılan etkili bir yöntemdir. Projede kullanılacak araçlar, olası sorunların izlenmesi, proje yönetiminin gerçekleştirilmesi Jira ya da Git gibi yazılım geliştirme süreçlerinde kullanılan sistemler ile gerçekleştirilmektedir.

Kodlamalar

Kodlama aşamaları, bir projeye ait tasarımların ve yazılımların kodlarının oluşturulmasını içermektedir. DevOps yaşam döngüsünde yer alan kodlama aşamasında, GitHub, Stash gibi araçlardan yararlanılmaktadır.

Projenin İnşa Edilmesi

İnşa etme aşamasında, yazılıma ait yapılar ve sürümler yönetilmektedir. Bir sonraki üretim sürümü için kodların derlenmesi, paketlenmesi için daha önceden belirlenmiş araçlar kullanılmaktadır. Ürünlerin mevcut ve geliştirilecek sürümleri için, altyapıları paketleyen kaynak kod havuzlarından ya da paket depolarından yararlanılmaktadır. DevOps proje inşa aşamasında tercih edilen araçlar arasında Docker, Puppet ve Maven bulunmaktadır.

Test Aşaması

Test aşaması, en verimli ve en elverişli kod kalitesinin sağlanması için, testlerin yürütülmesini içermektedir. Yapılan testler bazen otomatik bazen de manuel olarak gerçekleştirilmektedir. DevOps yaşam döngüsünün test aşamasında yararlanılan araçlardan bazıları, JUnit, Selenium, TestNG olmaktadır.

Entegrasyonlar

Entegrasyon, ürüne ait belirli bir sürümün üretim geçiş sürecinin yönetilmesi, koordine edilmesi, programlanması, otomatikleştirilmesi gibi aşamaları içermektedir. Entegrasyon aşamasında kullanılan araçlar arasında, Chef, Jenkins, Kubernetes, Docker gibi yardımcılar bulunmaktadır.

Çalıştırma

DevOps un çalıştırma aşaması, üretimler sırasında kullanılan yazılımların yönetilmesini içerir. Bu aşamada yararlanılan araçlar, Ansible, PowerShell ya da Otter olabilir.

Takip

Takip aşaması, üretim sürecindeki yazılıma ait sürümlerden oluşan sorunların tespit edilmesi, sorun hakkında bilgi edinilmesi ve tüm bilgilerin toplanmasını ifade etmektedir. Takip aşamasında tercih edilen araçlar ise New Relic, Datalog ya da Splunk olmaktadır.

Sonuç

DevOps, kullanıcıların, geliştiricilerin, mühendislerin ve sistem yöneticilerinin, tüm gereksinimlerini karşılamak üzere bir akış gerçekleştirmektedir. Süreçleri tek bir iş akışı içerisine entegre etmek için çalışan DevOps, her geçen gün daha fazla popülerleşen bir kavram olarak karşımıza çıkıyor.


İlgili İçerikler

Load Balancer Nedir? Avantajları, Kullanım Alanları ve Örnekleri

Kubernetes Nedir?

Docker Nedir, Ne İşe Yarar?

Red Hat Kullanarak Güvenli Bir Şekilde Konteyner Yaratmak ve Mevkilendirmek

VMware Nedir, Ne İşe Yarar?

Serverless Nedir? Serverless Teknolojisi, Serverless Mimarisi, Serverless Computing (Sunucusuz Bilişim)

VMware Nedir, Ne İşe Yarar?

VDS (Virtual Dedicated Server) Server Nedir, Ne İşe Yarar?

VPS (Virtual Private Server) Nedir?

Microsoft Azure Nedir?

Bulut Teknolojisi Nedir? Popüler Bulut Depolama Servisleri

PaaS (Platform as a Service) Nedir? PaaS vs. IaaS Arasındaki Farklar

Saas (Software as a Service) Nedir? İşletmeler Neden Hizmet olarak Yazılım Modelini Tercih Etmelidir?

Siber Güvenlik Nedir? İnternet Ortamında Veri Güvenliğini Nasıl Sağlarız?

MS. Hyper-V Nedir, Ne İşe Yarar? Microsoft Sunucu Sanallaştırma Nasıl Çalışır?

Cloudflare Nedir, Ne İşe Yarar? Cloudflare CDN Hakkında Bilmen Gereken Her Şey

DNS Nedir, Ne İşe Yarar? Nasıl Değiştirilir?

Iaas (Infrastructure as a Service) Nedir? Iaas vs. Paas Arasındaki Farklar

Private Cloud Nedir? İşletmeler Neden Özel Bulut Veri Merkezinde Verilerini Barındırmalı?

HCI (Hyper Converged Infrastructure) Nedir? Hiper Bütünleşik Altyapı Mimarisi Hakkında Her Şey

Domain Sorgulama
guest

0 Yorum
Inline Feedbacks
View all comments