DevOps: Nedir ve Neden Önemlidir?
Yayınlanan: 2022-03-11BT verimliliğini artırmak için kesin, “gümüş kurşun” yöntemler olmasa da DevOps, göz ardı edilmesi zor sonuçlar verdi. Adından da anlaşılacağı gibi DevOps, kuruluşların daha hızlı ve verimli ürünler geliştirmesine yardımcı olmak amacıyla yazılım geliştirme ve yazılım operasyon ilkelerini birleştirir. Örneğin TIAA-CREF, 40 milyar dolarlık işinin DevOps ilkelerini kullanarak önemli iyileştirmeler yaptığını gördü. TechBeacon tarafından TIAA'nın Dijital Baş Sorumlusu Scott Blandford ile yapılan bir röportaj, TIAA'nın hantal, eski yazılım ve sistemlerden geliştirme verimliliğinde dört kat artış sağlayan "çevik tabanlı bir DevOps yaklaşımına" nasıl geçtiğini açıklıyor. Güncellemeler çok daha hızlı yayınlanıyor ve "BT, kullanıcı beklentilerini karşılamaya başladığında yıllar içinde yıpranan güveni yeniden kazandı."
2017 DevOps Durumu Raporundan elde edilen sonuçlar, DevOps ilkelerini uygulayan yüksek performanslı kuruluşlar ile kullanmayan kuruluşlar arasında çarpıcı farklılıklar olduğunu ortaya koymaktadır. Rapora göre, yüksek performanslı kuruluşlar, düşük performanslarından çok daha yüksek yazılım dağıtım frekanslarına (46 kat daha sık), değişiklikler için çok daha hızlı teslim süresine (440 kat daha hızlı) ve önemli ölçüde daha düşük yazılım değişikliği hata oranına (beş kat daha düşük) sahip. muadilleri.
Bu önemli faydalarına rağmen DevOps, çok sık yanlış kullanılan veya yanlış anlaşılan önemli, nispeten yeni bir teknik konseptin klasik bir örneği olarak duruyor. Birçokları için fikir belirsizliğini koruyor ve DevOps'un temel bir tanımı bile anlaşılması zor olabilir.
Bu netlik eksikliği, DevOps ilkelerini uygulamaya çalışan kuruluşlar ve ekipler üzerinde potansiyel olarak olumsuz etkilere neden olabilir, stratejik karışıklığa neden olabilir ve DevOps'un teşvik etmesi gereken hız ve verimliliği engelleyebilir. IBM'de bir DevOps mühendisinin InfoWorld tarafından yayınlanan bir makalede dediği gibi, “Bazı temel soruları yanıtlamamız ve çözmeye çalıştığımız sorunları belirlememiz gerekiyordu… İşin gerçekte nasıl yapıldığını bilmiyorsanız, bilmiyorsunuzdur. Hangi problemler çözülmeye değerdir.”
Yazılım geliştirme ve operasyonlar daha yakından iç içe geçtikçe ve şirketler bulut altyapısına giderek daha fazla bağımlı hale geldikçe, yöneticiler ve proje yöneticileri, rekabetçi kalmak ve ekiplerinin tam potansiyellerinde performans göstermelerini sağlamak için DevOps'ta akıcılık geliştirmelidir.
DevOps, başka bir belirsiz terim olarak değil, ürünleri ve işletmeleri önemli ölçüde iyileştirme potansiyeline sahip önemli bir kavram olarak düşünülmelidir. Nispeten teknik olmayan bir kitleyi hedefleyen bu makale, her şeyden önce DevOps'un tam olarak ne olduğunu netleştirmeyi amaçlamaktadır. Bu makale, belirli örnekleri kullanarak, iyi yapıldığında DevOps ilkelerinin nasıl göründüğünü ve DevOps'un sizin ve kuruluşunuz için neden önemli olduğunu keşfedecektir.
Bir Mühendis, Kültür ve Uygulama Türü Olarak DevOps
DevOps nedir? Demir Selmanovic, Toptal tarafından yayınlanan bir önceki makalesinde “DevOps bir kültür, zihniyettir ve (a) bütün olarak BT'nin bir parçasıdır” diye yazıyor. DevOps'un kuruluşların BT işlevlerinde hız ve verimliliği optimize etmesini sağlayan bir uygulama olduğunu da yazıyor.
Bulut altyapısının en büyük oyuncusu olan ve buna bağlı olarak önemli DevOps uzmanlığı geliştiren Amazon Web Services, benzer bir tanım kullanıyor ve “DevOps, bir organizasyonun uygulama ve hizmetler sunma yeteneğini artıran kültürel felsefelerin, uygulamaların ve araçların birleşimidir. yüksek hızda: ürünleri geleneksel yazılım geliştirme ve altyapı yönetimi süreçlerini kullanan kuruluşlardan daha hızlı geliştiriyor ve iyileştiriyor.”
"DevOps çalışanları temelde hem sistem yönetimine hem de yazılım geliştirmeye ilgi duyan ve her ikisine de birleşik, daha iyi bir yaklaşım oluşturmak için becerilerini birleştirmeye karar veren kişilerdir."
Bunların her ikisi de ilgili alanlarda bilgili bir kitle için faydalı tanımlardır, ancak daha az kapsamlı teknik geçmişe sahip yöneticiler için fazla soyut olabilir. Gerçekten de, DevOps tanımını çevreleyen kafa karışıklığının bir kısmı, genellikle aynı anda bir tür mühendis, uygulamalar ve kültür olarak atıfta bulunulmasından kaynaklanmaktadır. DevOps bu öğelerin her birini kapsasa da, bunları ayrı ayrı ele alarak başlamakta fayda var.
Bir DevOps mühendisinin nasıl göründüğüyle başlamak için, daha önce IBM ve Hewlett Packard için çalışan ve DevOps ilkelerini kullanma konusunda on yıldan fazla deneyime sahip bir yazılım geliştiricisi olan Martin Chikilian, bunu basit ve somut terimlerle ifade ediyor: "DevOps çalışanları temelde ilgiyi bulan kişilerdir. hem sistem yönetiminde hem de yazılım geliştirmede ve her ikisine de birleşik, daha iyi bir yaklaşım oluşturmak için becerilerini birleştirmeye karar verdi.”
Bir şirketin sahip olduğu sunucuları, ağları ve diğer altyapı sistemlerini koruyabilir ve yazılım geliştirme yoluyla bu sistemleri aktif olarak yineleyebilir ve iyileştirebilirler. Chikilian'ın başka bir şekilde söylediği gibi, "Bir DevOps çalışanı, kendilerine ve şirketlerin altyapıyı idare etmek için daha iyi araçlar oluşturmasına yardımcı olmak için yazılım geliştirmenin temellerinden yararlanabilen kişidir."
Amazon'un ifadesiyle “kültürel felsefelerin birleşimi”, yazılım geliştiriciler tarafından kullanılan ve altyapı veya yazılım operasyonları konusunda uzmanlığa sahip olan yaklaşımların birleşimini ifade eder. Bir DevOps kültürü, bu uygulamalar arasındaki geleneksel engeli yıkarken, kuruluşların geliştiricilerin ve altyapı uzmanlarının masaya getirdiği farklı güçlü yönlerden yararlanmalarını sağlamaya çalışır. DevOps ilkelerini başarıyla uygulamak, bu farklı türdeki mühendisleri silo eden şirketler için "kültür ve zihniyet değişikliği gerektirir". Emily Dowdle'ın 2016 Nordic API Platform Summit'te açıkladığı gibi, engellerin kaldırılması aynı zamanda geliştiriciler ve altyapı uzmanları arasında bazen var olabilecek doğal sürtüşmeyi hafifletmeye ve daha uygun, işbirlikçi bir çalışma ortamını teşvik etmeye yardımcı olur.
Basitçe ifade etmek gerekirse DevOps, hataya açık insan etkileşimini içeren karmaşık manuel süreçleri test edilebilen, ölçülebilen ve kolayca ölçeklenebilen araçlı bir yaklaşıma dönüştürmekle ilgilidir.
Bir DevOps uygulayıcısının ve kültürünün nasıl göründüğüne dair bir anlayışla donanmış olarak, DevOps'un bir uygulama olarak ne anlama geldiği daha belirgin hale gelir. Basitçe ifade etmek gerekirse DevOps, hataya açık insan etkileşimini içeren karmaşık manuel süreçleri test edilebilen, ölçülebilen ve kolayca ölçeklenebilen araçlı bir yaklaşıma dönüştürmekle ilgilidir. Örneğin, bir geliştirici, iş kullanıcılarının geri bildirim sağlamasına olanak tanıyan bir ortam oluşturmak isterse, geliştiricinin DevOps ekibi tarafından oluşturulan bir komutu yayınlayabileceği (bir kod parçası dağıtmak yerine) otomatik bir süreç başlatabilir. ilgili görevi tutarlı ve test edilmiş bir şekilde yerine getiren, beklenen sonuçlara hızlı bir şekilde ulaşan ve işbirliğini sağlayan altyapı ekibine).
DevOps'un kapsamlı bir tanımı, bunun bir tür mühendis, kültür ve uygulama olarak ne anlama geldiğinin anlaşılmasını gerektirir. DevOps'un bu perspektiflerden ne anlama geldiğini araştırdıktan sonra, başarılı bir şekilde uygulandığında DevOps'un nasıl göründüğünü incelemek artık önemlidir.
DevOps Araç Setiniz
Yazılım geliştiricileri ve altyapı uzmanlarını silolayan bir şirketten işbirliklerini benimseyen bir şirkete dönüşen yukarıda bahsedilen kültürel değişime ek olarak, şirketlerin DevOps için çok önemli olan bir dizi özel uygulamayı ve aracı anlaması gerekir. Aşağıda, bu tür uygulamaların en önemlilerinden (kesinlikle tek olmasa da) üç tanesi verilmiştir:
Otomasyon: Artan verimlilik, DevOps'un merkezinde yer alır ve bu, yazılım geliştirme ve altyapı bakımında bir dizi nispeten yavaş, zahmetli süreci otomatikleştirerek önemli ölçüde elde edilir. Amazon'un bahsettiği belirli bir örnek, nispeten küçük ancak sık yazılım güncellemelerini otomatik olarak gönderme uygulamasıdır. Bu uygulama, aksi takdirde bu güncellemeleri manuel olarak gerçekleştirmesi gerekebilecek sistem yöneticilerinin yükünü ortadan kaldırır. Amazon'un belirttiği gibi, bu uygulama aynı zamanda yöneticilerin ortaya çıkabilecek hataları daha kolay yakalayıp düzeltmelerini sağlayarak yazılım dağıtımı riskini azaltma avantajına da sahiptir. Otomasyon, DevOps'un temel taşıdır ve aşağıda tartışılan diğer DevOps uygulamaları için çok önemlidir.

Sürekli Entegrasyon: Temel düzeyde DevOps, mühendisler ve ayrıca tüm ekipler arasındaki yakın işbirliği ile ilgilidir. Sürekli Entegrasyon, mühendislerin kodu merkezi bir konumda paylaşma ve birleştirme uygulamasına atıfta bulunur. Amazon'un açıkladığı gibi, "Geçmişte, bir ekipteki geliştiriciler uzun bir süre yalıtılmış olarak çalışabilir ve yalnızca çalışmaları tamamlandıktan sonra değişikliklerini birleştirmeye çalışabilirdi." Sürekli Entegrasyon sayesinde, mühendisler daha verimli bir şekilde işbirliği yapabilir ve kodlarını daha parça parça bir şekilde geliştirme ve entegre etme ile ilgili darboğazlardan kaçınabilir.
Sürekli Teslimat: Sürekli Teslimat, yazılım ürünü değişiklikleri yapıldıkça otomatik olarak teslim etme ve uygulama pratiğini ifade eder. Başka bir deyişle, Sürekli Entegrasyon, Koddaki değişikliklerin yalnızca kodun zaten merkezi bir yerde barındırılması durumunda etkin bir şekilde tüm sisteme aktarılabileceği göz önüne alındığında, Sürekli Entegrasyon tarafından etkinleştirilir. Otomasyon, Sürekli Teslimat için de çok önemlidir. Aslında, yukarıda bahsedilen küçük, sık sistem güncellemeleri gönderme örneği, bir Sürekli Teslimat örneği olarak da düşünülebilir. Sürekli Teslimat, kuruluşların değişiklikleri ve iyileştirmeleri hızlı bir şekilde uygulamalarını sağlar ve mühendislerin zamanlarını diğer karmaşık konulara daha verimli bir şekilde odaklamalarına olanak tanır.
Doğru İnsanları İşe Almak
Yukarıdaki uygulamaların başarılı bir şekilde uygulanabilmesi için elbette şirketlerin doğru mühendisleri işe alması gerekiyor. DevOps mühendisleri, yazılım geliştirme ve sistem altyapısı uzmanlığını birleştiren bir beceri setine sahip olmalıdır ve bu kombinasyonu bulmak zor olabilir.
“Ham kod ile işletmenin her gün yüzleşmesi gereken – fikirler, teslimat ve tüketiciler arasındaki sürtünmeyi azaltmak gibi – zorluklar arasındaki boşluğu kapatabilmeleri önemlidir.”
Atlassian'da eski bir DevOps mühendisi ve CloudReach'te sistem mimarı ve sistem yönetimi, bilgi güvenliği ve ağlarda 15 yıllık deneyime sahip Andrea Villa, DevOps mühendislerinin başarılı olmak için geniş bir deneyim ve bilgi yelpazesine ihtiyaç duyduğuna inanıyor.
Villa, "Etkili olmak için, günümüzün DevOps Mühendisinin geliştirici geçmişine ve geniş bir sistem yönetimi ve ağ bilgisine sahip olması gerekiyor," dedi. “Ham kod ile işletmenin her gün yüzleşmesi gereken – fikirler, teslimat ve tüketiciler arasındaki sürtünmeyi azaltmak gibi – zorluklar arasındaki boşluğu kapatabilmeleri önemlidir.”
Güçlü bir DevOps Mühendisi olmaya hak kazanmak, açıkça söylemekten daha kolaydır ve bu tür mühendisleri bulmak da benzer şekilde zor olabilir. Yine de DevOps uygulamalarının altında yatan araçları anlamak, kuruluşunuzu doğru yeteneği bulma ve bu uygulamaları başarılı bir şekilde uygulamaya yönelik işe alım uygulamalarını daha doğru bir şekilde uyarlama konusunda güçlendirebilir.
DevOps Neden Gerçekten Önemli?
DevOps uygulamalarının kullanılması, daha fazla verimlilik, güvenlik ve kurumsal işbirliği dahil olmak üzere, bazıları halihazırda ifade edilmiş olan bir dizi avantajla birlikte gelir. 2017 DevOps Durumu Raporu, verimlilikteki bu artışı niceliksel olarak ortaya koyuyor ve DevOps uygulamalarını kullanan yüksek performanslı kuruluşların plansız çalışma ve yeniden işleme için yüzde 21 daha az, yeni iş için ise yüzde 44 daha fazla zaman harcadığını bildiriyor.
Ancak daha genel olarak konuşursak, DevOps uygulamalarını başarılı bir şekilde uygulamak, hem önemli hem de kesinlikle gösterişsiz alanlarda verimliliği ve yürütmeyi artırarak şirketiniz üzerinde derin bir etkiye sahip olabilir.
McKinsey ve Wondersign'da Kıdemli Bulut Mimarı olarak çalışan 12 yılı aşkın DevOps deneyimine sahip bir mühendis olan Fredrik Haard, bu noktayı daha tam olarak ifade ediyor.
Haard, "İyi DevOps mühendisleri bir şampiyon olmalı ve veri güvenliği, olağanüstü durum kurtarma, azaltma ve denetimler gibi kuruluş tarafından öncelik verilmeyebilecek tüm alanlarda sorumluluk almalı" dedi. "DevOps'ta yaptığınız seçimlerin bir şirkette uzun süreli etkileri olabilir."
Microsoft, Bulut + Kurumsal mühendislik grubunda DevOps uygulamalarını uygulayarak da bu olumlu etkileri gördü. Microsoft, en iyi sonuçları elde etmek için "tasarımdan üretimde dağıtıma kadar tüm geliştirme yaşam döngüsü boyunca birlikte çalışacak mühendislik ve operasyonlara ihtiyacımız vardı" diye açıklıyor. Microsoft, DevOps kültürüne geçerek ve DevOps uygulamalarını kullanarak, müşterilerine yüksek kaliteli hizmetleri eskisinden çok daha hızlı bir şekilde ölçeklendirmeyi ve sunmayı başardı.
Bu sorunları çözmek ve verimliliği artırmak kendi başlarına harikadır, ancak nihayetinde daha temel bir amaca yönelik bir araçtır: harika ürünler üretmek ve daha fazla kar ve müşteri memnuniyeti sağlamak.
DevOps mühendisleri, bir şirketin dahili komando ekibi olarak etkin bir şekilde hareket edebilir ve belki de gösterişsiz veya gözden uzak olsa da, bir şirketin düzgün çalışması için kesinlikle çok önemli olan çeşitli sorunların çözülmesine yardımcı olabilir.
Bu sorunları çözmek ve verimliliği artırmak kendi başlarına harikadır, ancak nihayetinde daha temel bir amaca yönelik bir araçtır: harika ürünler üretmek ve daha fazla kar ve müşteri memnuniyeti sağlamak. DevOps'un gerçekten önemli olmasının belki de en önemli nedeni, kuruluşların bu ölçümlerin her birini en üst düzeye çıkarmasını sağlayabilmesidir.
DevOps ile Gelecekle Yüzleşmek
2015 yılında Andreessen Horowitz Ortağı Scott Weiss, DevOps'un “Bir metodolojiden daha fazlası olduğunu söyledi. Modern programcılar için sahip olunması gereken bir beceri seti ve giderek kendi departmanı haline geliyor.”
Amazon, Microsoft ve Google dahil olmak üzere bir dizi teknoloji şirketi DevOps ekipleri oluşturduğu ve bu alanda uzmanlık oluşturmaya önemli kaynaklar ayırdığı için bunun doğru olduğu kanıtlandı. Weiss ve diğer büyük teknoloji oyuncuları, DevOps'u geçici bir heves değil, yazılımın geleceğinde önemli bir bileşen olarak görüyor.
Sektörler bulut altyapısına daha bağımlı hale geldikçe DevOps özellikle önemli olmaya devam edecek. 2017 raporunda Gartner Research, Bulut Hizmetleri pazarının 2020 yılına kadar yılda %15'in üzerinde büyüyeceğini öngördü. Bu büyümeyi dolar bazında ifade etmek gerekirse, Forbes tarafından yayınlanan yakın tarihli bir makale, bulut bilişim pazarının kabaca 260 milyar dolardan büyüyeceğini gösteriyor. 2017'de yaklaşık 411 milyar dolara 2020'de. DevOps, şirketinizin sistemleri başarılı bir şekilde buluta geçirme hızında büyük bir fark yaratabilir. Toptal'da başından beri DevOps'u kullandık ve bu, hiper büyümeli bir bulut şirketi olarak başarımızın ayrılmaz bir parçası oldu.
Bulut Hizmetleri pazarının hızla büyümesi gibi DevOps'un önemi de artıyor. Enerji, sağlık veya yüksek öğrenim alanlarında şirketinizin DevOps uzmanlığını geliştirmesi gerekecektir. DevOps'un ne olduğunu, nasıl uygulandığını ve neden bu kadar önemli olduğunu anlamak, ileride bu temel uygulamayı kullanmayı düşündüğünüzde önemli bir ilk adımı temsil eder.