Yeni başlayanlara tanıtmak için geçerli bir DevOps tanımı ne olabilir?


16

SCM ile ilgili birçok sunum yaptım / oluşturdum ve şimdi bir DevOps halefi için "yükseltmeye" çalışıyorum.

Sunumlarımda her zaman yapmaya çalıştığım şey, bir şekilde iletmek istediğim mesajı içeren (ve daha sonra sunumumun geri kalanında ayrıntılı olarak açıkladığım) bir tanıtım slaydı bulmaktır. Bunu yaparken, "Yeni birisine açıklamak için 10 ila 20 saniye (sadece!) Alırsam kullanmak istediğim 1 ila 3 kelime öbeği ne olur?" ".

DevOps'un aslında ne anlama geldiğini ve ne hakkında olduğunu bildiğimi sanıyordum . Ama bazı tuhaf kullanımları / bağlamları gördüğüm DevOps (hatta üzerine DevOps.SE ...). DevOps'un düşündüğüm şeyin tamamen yanlış olup olmadığını merak ediyor.

Peki DevOps'un tanımı olarak genellikle kabul edilen nedir?


Bir sorunun nasıl geliştirilebileceğine ilişkin kayıtlar için Yorumlar'ın geçmişi sohbet için taşındı .
Tensibai

1
Birçok insanla konuşarak öğrendiğim en önemli şey, üzerinde anlaşmaya varılmış bir tanım olmamasıdır.
Monica Cellio için Boycott SE

merci @XiongChiamiov ... kulağa daha fazla tanımdan haberdar olabilirsiniz ... Neden bunları ekstra bir cevap olarak göndermeye çalışmıyorsunuz?
Pierre.Vriens

Yanıtlar:


11

Özetle DevOps

Gönderen Vikipedi :

DevOps (a kırpılmış bileşik "nin yazılım DEV elopment " ve " bilgi teknolojisi OP eration S ") hem işbirliğini ve iletişimi vurgulayan bir dizi uygulamayı başvurmak için kullanılan bir terimdir yazılım geliştiriciler ve bilgi teknolojisi (BT) uzmanları ise ayrıca otomasyonun yazılım teslimi ve altyapı değişiklikleri süreci .

Yazılım oluşturmanın , test etmenin ve serbest bırakmanın hızlı, sık ve daha güvenilir bir şekilde gerçekleştirilebileceği bir kültür ve ortam oluşturmayı amaçlamaktadır .

Gönderen Bakış :

resim açıklamasını buraya girin

DevOps'u geliştirme (yazılım mühendisliği), operasyonlar ve kalite güvencesi (QA) kesişim noktası olarak gösteren Venn diyagramı

DevOps için tek bir "araç" olmasa da, DevOps araç zinciri olarak da bilinen bir dizi araç olsa da :

resim açıklamasını buraya girin

DevOps araç zincirindeki aşamaları gösteren çizim

DevOps çizimleri

Aşağıda sorulardan bazıları birkaç alıntılar var DevOps.SE tüm DevOps açıklaması yukarıdaki şekilde uyum / onayla parçası gibi görünüyor,:

DevOps bir rol DEĞİL

Aşağıda sorulardan bazıları birkaç alıntılar var DevOps.SE bütün bu DevOps göstermek gibi görünüyor, olduğu DEĞİL bir rolü:


10

Şu anki pozisyonumdan önce, yazılım geliştirme, web işlemleri ve sistem yönetiminde roller üstlendim, DevOps üzerinde neredeyse beş yıldır farklı müşterilerle danışman olarak çalışıyorum ve danışmanlık yapıyorum. Benim içinde kişisel deneyim DevOps birçok tatlar geliyor.

Organizasyon Kalıpları

DevOps Antipatterns:

  • NoOps ve NoDevs - kesinlikle en katı anlamda DevOps değil, ancak bu ekipler, Geliştirme ve Operasyonlar arasında bir ayrım çizgisi olmadan yazılım geliştirir ve işletir. Bu ekiplerle ilgili zorluklar olgunlaşıyor, Geliştirme ekipleri uzman Yazılım Geliştiricileri olabilir, ancak acemi Operatörler ve tam tersi.

  • DevOps Köprüsü - bir veya daha fazla takım geliştirme ekiplerinin çalışmalarını alarak "sorumluluğunu verilmiştir budur Productionizing " buna kullanılabilir yapmak için. Zorluk şimdiye kadar iki teslimi, yani Geliştirme → DevOps ve DevOps → Operasyonlar geliyor.

  • DevOps Ekibi - bu, ekibin DevOps etkinleştirilmiş İşletim Modelini destekleyen araçlar oluşturma sorumluluğu varsa tartışmalı bir şekilde çalışabilir, ancak muhtemelen "Araçlar Ekibi" veya "Platform Ekibi" olarak adlandırılmalıdır.

DevOps Kalıpları:

  • Gömülü DevOps - daha yaygın olarak Platform Mühendisliği olarak anılır, böylece ekip içinde , bazen yazılımın çalıştırılması da dahil olmak üzere, çözümün sağlanması ve dağıtımı için otomasyon, araçlar ve altyapı sunmaktan sorumlu olan, bazen de aklıma gelen biri vardır. , aslında DevOps'u temsil eden ikincisidir.

  • Kurumsallaştırılmış DevOps - bir proje ekibinin ortak sahiplik ve olumlu geri bildirim döngüleri oluşturan bir yazılım paketinin hem geliştirilmesinden hem de işletilmesinden birlikte sorumlu olduğu yer.

Uygulamalar

DevOps'un gerçek uygulaması diğer birkaç uygulamanın üzerine kuruludur:

Yukarıdaki uygulamaların her biri diğerine dayanır, bir uygulamayı takip etmek mümkün değildir , ancak bu, "kaçırılmış bir fırsatın" göstergesi olabilecek önemli bir geri bildirim döngüsünün eksik olduğu anlamına gelir. Diğer uygulamalardan herhangi birini takip etmek ile DevOps arasındaki temel fark , yazılımın üretimde çalışmasıdır .

DevOps Uygulamaları

Üç Yol

In Phoenix Projesi Gen Kim ve onun ortak yazarlar açıklar DevOps üç yolu :

Sistem Düşüncesi

Sistem Düşüncesi

İlk Yol, belirli bir iş veya bölüm silosunun performansının aksine, tüm sistemin performansını vurgular - bu, büyük bir bölüm (ör. Geliştirme veya BT Operasyonları) veya bireysel bir katılımcı (ör. , bir geliştirici, sistem yöneticisi).

Deneyimlerime göre, Geliştiricilerin Operasyonel Endişeleri ve İşlevsel Olmayan Gereksinimleri dikkate almasını sağlamaya başladım. Bu DevOps'un kültür yönünün büyük bir parçası .

Geri Besleme Döngülerinin Güçlendirilmesi

Geri Besleme Döngülerinin Güçlendirilmesi

İkinci Yol, sağdan sola geri bildirim döngüleri oluşturmakla ilgilidir. Hemen hemen her süreç iyileştirme girişiminin amacı, geri besleme döngülerini kısaltmak ve artırmaktır, böylece gerekli düzeltmeler sürekli olarak yapılabilir.

Bunu genellikle Sürekli Entegrasyon / Dağıtım / Dağıtım ve paylaşılan izleme ve uyarı ile gerçekleştiririm, böylece DevOps'un araçlar bileşenine çok uyuyor .

Sürekli Deney ve Öğrenme Kültürü

Sürekli Deney ve Öğrenme Kültürü

Üçüncü Yol, iki şeyi teşvik eden bir kültür yaratmakla ilgilidir: sürekli deney yapma, risk alma ve başarısızlıktan öğrenme; ve tekrar ve uygulamanın ustalık için ön koşul olduğunu anlamak.

Bu , kültürün büyümesine olanak tanıyan araçlara ve sürece büyük ölçüde bağlı olmasına rağmen , kültür alanına çok uygundur .


Mükemmel cevap! buna rağmen grafik üzerinde farklı uygulamaların karşılaştırmasını yaptım ... özellikle çeviklik konusunda. Bence oraya ait olmak çok geniş bir terim. Bazı çevik metodolojiler testi uygulamalarının merkezine koyarken testler hariç tutulur. Bir zamanlar DevOps'un çok çevik olduğunu iddia edebilir (veya nasıl uygulandığına bağlı olabilir). Çevik manifesto, iyi bağlanmış bir uygulama kuralından çok bir felsefeyi tasvir eder. Aklıma şikayet etmekten daha fazlası, gerçekten güzel bir cevap!
Newtopian

Bu şema için tam kredi alamıyorum, dünyadaki birçok beyaz tahtada benden önce birçok danışman tarafından çekildi. Sanırım ekipler kısa iterasyonlarda potansiyel olarak kullanılabilir ürünler oluşturmaya odaklanan çevik uygulamayı anlatıyor, CI bu çalışmanın bir kısmını otomatikleştiren bir uygulama olarak takip etti, C. Dağıtım, dağıtım için bir yapı hazırlamaya kadar otomatik hale getirildi, C. Dağıtım aslında Bu derlemeyi kurdu ve DevOps yazılımı üretimde işletti.
Richard Slater

4

DevOps'un birçok farklı tanımını duydum. İçerirler:

  • Operasyon görevlerini yerine getiren geliştiriciler
  • Bir kişi (aynı zamanda) iki kat daha fazla iş yapıyor
  • Birbirleriyle çalışan geliştiriciler ve operasyon ekipleri
  • İşlemler geliştirici araçları için çalışır ("Web Ops" damarı içinde)
  • Geliştirici araçlarını oluşturan ve sürdüren biri için iş unvanı
  • Operasyonlarda otomasyon kullanımı
  • Operasyonlarda genel bulutların kullanımı
  • Operasyon, geliştirme ve kalite güvencesinin özelliklerini birleştiren bir iş
  • Geliştirme ve operasyon ekiplerinin birlikte çalışmasına yardımcı olmayı gerektiren bir iş
  • Takımlar arasındaki engelleri yıkma felsefesi
  • Altyapıyı kod olarak ele alma
  • Eski yazılım mühendisleri faaliyete geçtiğinde ne elde edersiniz?
  • Tamamen anlamsız bir terim

Aslında DevOps ne hiçbir kamu fikir birliği yoktur olduğunu . Birkaç yıl önce "Agile" ile benzer sorunlar yaşadık ve bunun yazılı bir tanımı var .

Kavramlarınızı yeni bir kişiye tanıtırken, bir etiket uygulamak yerine kavramları tanıtmaya odaklanırım, aksi takdirde çelişkili tanımları duyup kafanız karışır. Örneğin, altyapı hakkında kod olarak konuşmaya çalışıyorsanız , onlara altyapı olarak kod olarak bahsettiğinizi söyleyin. Ne kadar spesifik olursanız, kararlaştırılan tanımlarla bile çoğu şirket bir felsefenin belirli bölümlerine daha fazla odaklanır.


2

Bu durumda daima kullandığım tanım şudur:

“Yazılım sağlama süreci ve altyapı değişikliklerini otomatikleştirirken yazılım geliştirme ve operasyon ekipleri arasındaki iletişimi ve işbirliğini vurgulayan bir yazılım oluşturma kültürü. DevOps'un amacı yazılım oluşturma, test etme ve devreye alma sürecini sık, hızlı ve mümkün olduğunca yapmaktır. ”

Bununla birlikte, tanımla birlikte, NEDEN DevOps'a ihtiyacımız olduğunu anlamaları da önemlidir . DevOps'un yazılım hatalarını daha hızlı azalttığını, daha iyi kaynak yönetimi, daha az insan hatası, daha iyi sürüm kontrolü, kararlı çalışma ortamı vb.


1

Tam olarak bu soruyu "DevOps nedir" sorusunu araştırmak için aşağıdaki bilimsel araştırma makalesinde, DevOps'un önerilen türetilmiş tanımı şöyledir:

DevOps, Geliştirme (Dev) ve Operasyonlar (Ops) arasındaki boşluğu kapatmayı amaçlayan ve bir dizi geliştirme uygulaması kullanarak otomatik dağıtım ile sürekli entegrasyon, kalite güvencesi ve teslimatı vurgulayan bir geliştirme metodolojisidir.

[Jabbari et al.] "DevOps Nedir ?: Tanımlar ve Uygulamalar Üzerine Sistematik Bir Haritalama Çalışması" (2016)


-2

Devops, iş alanı operasyonlar olan uygulamalar yazmanın geliştirme uygulamasıdır . Uygulama geliştirmenin çoğu finans veya sağlık hizmetleri veya lojistik ya da kedi videoları yapan uygulamalar geliştirmeye odaklandığında, adanmalar derlemeler, dağıtımlar, izleme ve metriklerin toplanmasını sağlayan uygulamalara odaklanır.

Ağır basan hedefi daima kılmayı amaçlamalıdır karar alıcılarını olmaya karar tutanlar . Bankanızın mobil uygulamasını hayal edin. Transfer talebinde bulunduğunuzda, düğmeye bastığınızda olur. Sen yapılmış , sonra bir karar aldı kararını. Operasyonlarınızla aynı şey. Uygun kişi bazı işlerin üretime geçmeye hazır olduğuna karar verdiğinde, bir düğmeye ve "Doğru Şeyler Olur" a basabilmelidir. Benzer şekilde, doğru iş kararları almak için gerekli tüm bilgilere sahip olmalıdırlar.

Bu, iş insanlarına sunuculara kabuk erişimi vermekle ilgili değil - bu, uygulama ile kafa karıştırıcı bir amaç. Karar vericilerin karar alıcılar olması için doğru insanlara doğru düğmelere ve kollara doğru bilgileri ve doğru korkulukları sağlamakla ilgilidir.


1
whose business domain is operations: Bunu genişletmek veya bazı örnekler vermek mümkün mü?
Dawny33

Kabul etmiyorum, devops kendi başına bir geliştirme uygulaması değil yazılım geliştirmelerini destekleyen bir organizasyon modelidir, bir devops modelinde aşırı programlama yapabilirsiniz (örneğin mixin dev, ops, müşteriler ve testçiler) (Cevabın geri kalanının iyi noktaları vardır btw )
Tensibai

"Devops, iş alanı işlemleri olan uygulamalar yazma geliştirme uygulaması" nın temel tanımı, başkalarının abone olduğunu gördüğüm bir uygulama değildir. Etki alanı veya amaç ne olursa olsun uygulama yazmak DevOps değil, geliştirmedir.
Adrian
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.