DevOps, SaaS ürünleri olan şirketlerle sınırlı mı?


26

Sürekli teslimat, otomasyon vb. DevOps'u tanımlayan uygulamalar, SaaS ürünleri gibi sürekli hizmet sağlayan ürünler ile ilgilidir.

Örneğin, çoğunlukla diğer müşteriler için projeler yapan bir yazılım geliştirme şirketi, proje bittikten sonra bunları asla koruyamayabilir. Müşteri projeleri diğer müşterilerle paylaşılmaz, çünkü alakasızdır.

DevOps tek seferlik birden fazla proje geliştiren şirketler için de geçerli mi? Bu durumda hangi DevOps uygulamaları uygulanır?

Yanıtlar:


32

Kesinlikle hayır!

DevOps, daha verimli olmak için geleneksel siloları (bölümleri) ayırmakla ilgilidir.

Ekipler arasında daha iyi iletişim, gelişmiş görünürlük ve güvenilir ve otomatik süreç, daha iyi bir ürün elde etmenin yollarıdır.

İçsel bir aracı destekleyeceğimiz ve halka açık web siteleri geliştireceğimiz büyük bir medya şirketi için çalışıyordum.

DevOps'un vakamızdaki faydaları şunlardı:

  • Sürekli inşa etme yoluyla, kodlarıyla entegrasyon veya sorun varsa, geliştirme ekibini daha sonra değil, daha erken tanıdık. Akılları hala yeni işledikleri kod parçasındayken sorunları çözebilirler.
  • Sürekli test ve teslimat yoluyla (KG’de) KG ekibinin sorunları daha erken bulmasını ve bunları daha önce rapor etmesini sağladık. Bu, hataları araştırmanın ve düzeltmenin yanı sıra bu soruşturmanın karmaşıklığını azaltma süresini de kısalttı.
  • Günlük toplama ve toplama araçlarıyla, geliştiricilere genellikle bakmayacakları bir şeye erişme izni verdik (hata ayıklayıcılara çok meraklılar :) - günlüklerin diğer ekipler tarafından nasıl görüldüğünü ve kullanıldığını anlamak günlüklerin genel kalitesini artırdı
  • Sık sık bilgi paylaştık ve ekipler arasında bilgiyi paylaşmak, duvarları yıkmaya çalışmak için belgeler yarattık. Ops'un ihtiyaçlarını anlayarak, bir uygulamayı önyüklerken nelerin daima akılda tutulması gerektiğine dair birkaç kılavuz (uygulamaların nasıl / nasıl yönetileceği vs.) yaratırız. Dev'in gerçekliğini anlayarak (daha fazla özellik kodlayın, daha hızlı, gogogogo!) Op'ların, devin ihtiyaçlarına daha uygun sunucular ve kümeler oluşturmalarını sağladık.
  • Genel dağıtım kalitesi de büyük ölçüde iyileştirildi. Dağıtımlar ekibimiz tarafından gerçekleştirildi, bu yüzden hem Ops hem de Dev üzerinde mükemmel bir görünürlük elde ettik. Bu, dev'in bir paketi ve bir sayfalık bir belgeyi "Bunu yükle!" Diyerek bir paket ve bir sayfalık belgeyi teslim edeceği "kod dağıtımı" ile ilgili birçok sorunu ortadan kaldırdı.

Genel olarak, üretim ortamınızı günde bir kez veya ayda bir kez güncellemekten bağımsız olarak ve ne kadar müşteriniz veya iş modelinize bakılmaksızın her işletmenin daha iyi iletişim, daha iyi araçlar, daha iyi görünürlük, daha hızlı geri bildirim kullanabileceğini söylerim. vb.


1
Nitekim, DevOps hatta yılda kamu bültenleri sadece bir avuç büyük embeeded ürünlere, hemen her sw geliştirme kuruluşa uygulanabilir - Sürekli teslim kullanarak içeride hala bazı DevOps yarar olabilir onların gelişim boru hattı: Daha iyi kalite, maliyet azaltma, tahmin edilebilirliği serbest bırakma vs.
Dan Cornilescu

Cevap, bir SaaS'yi hatırlatıyor, SaaS olmayan bir ürün veya hizmetin bu uygulamalardan nasıl yararlanabileceğini pek iyi açıklamıyor.
Evgeny

Üzerinde çalıştığım ürünler SaaS değildi (tam tersi). Ancak gerekçe aynı kalır, SaaS olup olmamanız önemli değil, DevOps ürünü geleneksel olmayan yollarla iyileştirmeye çalışıyor. Fiyatlandırma modelimizden veya teklifimizden hiçbir şey bilmiyordum, bu kadar bir fark yaratmayacaktı.
Alexandre

13

Ekibim ve ben "tek seferlik" gelişmekten sorumluyuz, bir kez biten ürünler bakım için müşteriye verilir veya bazı durumlarda ücret karşılığında tarafımızca yönetilir.

Müşterilerimizden gelen kesintisiz geri bildirimleri ele almak için, sağlam ve güvenilir olduklarını kanıtlamış bir şey sevk etmemiz için sağlam bir geliştirme hattımızı sürdürmemiz gerekiyor.

Müşteri DevOps'u önemsemiyor olsa da (çoğu durumda), yine de bize yardımcı oluyor. DevOps ile hızlı bir şekilde yeni inşaatlar yapabiliriz, böylece müşteriler birkaç dakika içinde geribildirimleri görebilirler ve aynı zamanda Jenkins / Travis üzerinden yaptığımız testlerle herhangi bir hatayı / hatayı yakalayabiliriz.

Dağıtım stratejilerimizin projeler arasında aynı olmasını sağlamak için uygulamalarımızı kapsamaya odaklanıyoruz. Docker'ı kullanarak uygulamayı müşterilerimize kolayca verebiliyoruz.

DevOps tarafından kaydedilen maliyeti belirlemek zor. Boru hattı için kullanmayı seçtiğimiz yazılım olarak ekstra maliyetlerimiz var (Travis, Jenkins, Puppet, neyin var?) Ancak hataları düzelterek / müşterilere hızlı bir şekilde geri bildirim vererek zamandan ve paradan tasarruf ediyoruz. Hızlı yanıt süremiz, müşterilerimizi mutlu eder ve böylece cüzdanlarımızı mutlu eder.


Bunun neden önemli olduğuna dair bazı sebepler ve avantajlar sunabilir misiniz? Müşteriler aslında boru hattınızı veya vaat edilen tarihteki bitmiş projeyi ve ödemeleri gereken fiyatı önemsiyor mu? Tüm bu "sapkın-y" şeylerini yapmadan masrafları kısar mısınız? Bunları yapmadan bir projeye daha fazla saat bulabilir ve projeler için daha fazla para kazanabilir misiniz?
Evgeny

1
@Evgeny DevOps, cevabımda açıklanan sebeplerden dolayı projenin zamanında ve bütçede bitmesine yardımcı oluyor. DevOps'u keserek açıkladığım faydaları da kesersiniz. Yapı ve testler genellikle bütçede ve zamanında kalmanıza yardımcı olur. Daha sonra bir hata bulmak daha fazla paraya mal oldu ve düzeltilmesi daha uzun sürdü, tekrar tekrar kanıtlandı. Müşteri boru hattını umursamıyor, ancak geri bildirimini ne kadar beklerseniz, yeniden yazma o kadar pahalı ve zaman alıcı olacaktır.
Alexandre

Sadece Çevik Yazılım Dev değil mi?
Evgeny

@Evgeny Netleştirmek için cevabımı güncelledik. Agile kullanıyoruz, ancak bu bir DevOps zihniyetine sahip olamayacağımız anlamına gelmiyor ..
Turtle

1
@Evgeny muhtemelen ünite testlerinizi ve kabul testlerinizi telafi etmeyerek bir miktar tasarruf edersiniz, ancak bu bir DevOps karşıtı model olan Teknik Borç oluşturur. Birkaç hafta veya ay boyunca ondan kurtulabilirsiniz, ancak yakında test etmek imkansız olan karışıklığı sürdürmek zorlaşır.
Steve Button

3

Shrink-wrap ürünler, tamamen kurulu ve desteklenen dağıtımlar ve cihazlara gömülü kod olarak yazılım üreten şirketler için çalıştım. Bu şirketlerin hepsinde, DevOps gelişim için temel destek sağlar:

  • Derleyicilerin, kütüphanelerin ve diğer derleme araçlarının bilinen, kontrollü konfigürasyonları ile otomatikleştirilmiş, yeniden üretilebilir bir yazılım derlemesi.
  • Regresyon testi ve yeni işlevsellik testleri için otomatik, tekrarlanabilir sistem testleri.
  • Diğer otomatik ve düzenli eylemler (örneğin, çevirmenlerin doğrulaması ve teknik yazarların kullanım kılavuzlarına dahil etmesi için tüm desteklenen dillerde mevcut sürekli güncellenen örnek ekran görüntüleri).

Her durumda, bu bireysel geliştiriciler şeylerdir olabilir bir kerelikler yapın ama bu geliştirici zamanın iyi kullanılması olacak, ne de otomatikleştirilmiş sahip kurar bu yapılandırma kontrolünün aynı güvenceyi olmazdı.


Otomasyon devops değildir. David Bock'un nihayetinde cevabını verdiği cevapla aynı yorumlar (üzgünüm, yorumum zaman kaybetti, az önce fark ettim, fark ettim)
Tensibai

3

Daha önce yazılımın geliştirilmesi ve uygulanmasına yönelik faaliyetler, bölümler arasında derin bir entegrasyon gerektirmiyordu. Ancak bugün için tüm departmanları (Geliştirme, Bilişim İşlemleri, Kalite Güvencesi vb.) Yakın işbirliği yapmak gerekiyor.

Geliştiriciler için değişim bunun için ödenir. İşletmenin daima modern dünyayla eşleşmesi için değişikliklere ihtiyacı vardır. Bu anlayış, geliştiricileri mümkün olan en fazla değişiklik sayısını üretmeye zorlar. BT uzmanları, değişimin zarar verdiği farklı bir anlayışa sahiptir. Her biri, doğru şekilde çalıştığını ve işletmeden fayda sağladığını düşünüyor. Gerçekten, onları ayrı ayrı düşünürsek, ikisi de haklıdır.

Tüm çalışanlar, tek bir sürecin parçası olduklarını anlamalıdır. DevOps, herkesin kişisel kararlarının ve eylemlerinin tek bir hedefin gerçekleştirilmesine yönelik olması gerektiğini anlamayı mümkün kılan düşünceyi geliştirir. Ve başarı, gelişim-teslim sürecine göre ölçülmeli ve bireysel rollerin başarısından değil ölçülmelidir. Geliştiriciler ve bakım uzmanları arasındaki yakın işbirliğinin bir sonucu olarak, her iki disiplinin en iyi başarılarını alan ve bunları kullanıcının yararına birleştiren yeni nesil mühendisler oluşturulmuştur. Bu, geliştirme, konfigürasyon yönetimi, veritabanı yönetimi, test etme ve altyapı yönetimi konularında deneyime sahip olan çapraz fonksiyonel ekiplerin görünümünde ortaya çıkmaktadır.

Bu nedenle metodoloji sadece SaaS'ta yararlı değildir.


0

Bir şey değil. Bu konuyla ilgili zaten çok güzel örnekler olmasına rağmen, kendime ait bir fıkrayı paylaşmak istiyorum. 2001'de CD'lerin oluşturulmasını içeren bir sürüm içeren bir yazılım projesini devraldım. Serbest bırakma işleminin belgeleri, önceki bir mühendis tarafından belgelenen 40 (!) Adımı içeriyordu; "bu config dosyasını aç ve satırındaki 41 numaralı. yeni sürüm ".

Bu yapım sürecinin her aşamasını agresif bir şekilde otomatik hale getirdik, bunun gibi elle yazılmış talimatları bash ile yazılmış 'yama' gibi şeylerle değiştirdik. Proje dosyalarını yamalı hale getirmek için üçüncü taraf kurulum aracı satıcımızla bilet açmak bile zorunda kaldık.

Bu işlem otomatik hale geldiğinde, bir 'CD Jukebox' satın aldık. Testler geçtikten sonra her gece, yapım makinesi otomatik olarak yeni bir kurulum CD'si oluşturacaktı. Testçilerimiz ertesi sabah gelir, bir disk kapar ve her şeyin kurulabilir olduğundan emin olabilirler.

Yazılımı bir hizmet olarak dağıtabileceğimizde kesinlikle daha sıkı geri bildirimlere sahibiz, ancak otomasyonun temel ilkeleri, geri bildirim, çevrim süresi, küçük sürümler vb. Geçerlidir.


Bu otomasyonla ilgili, ancak hiçbir şekilde bir devops organizasyonuyla ilgili değil, hiçbir yerde plury disiplin takımı hakkında bir referans göremiyorum, sadece devraldıkları şeyleri otomatikleştirmeyi tercih ediyor
Tensibai

Bu 2001 idi ... DevOps bir şey olmadan çok önce. Bu sadece otomasyon değildi, bunun projenin yönetimini tıpkı DevOps'un 'Kültürü' olarak etiketlendiği şekilde düzenlediğini düşünüyorum. Bu nedenle, bir SaaS organizasyonu dışındaki DevOps tutumunun bir örneğidir.
David Bock

DevOps otomasyon veya proje yönetimi ile ilgili değildir. Silo tabanlı organizasyonu kökünden kırmakla ilgili. Üzgünüm, bu cevabın gerçekten Soru ile ilgili olduğunu hissetmiyorum (bu ilginç değil, ancak IMO'nun doğru yerde olmadığı anlamına geliyor ve gerçekten nerede olabileceğini göremiyorum, gelebilir.). sonra)
Tensibai

Netleştirmek için bir kez daha deneyeceğim - CD'nin bu kadar tutarlı ve hızlı bir şekilde kesilmesini sağlayarak, QA'dan daha önce alabileceğimizden çok daha hızlı bir şekilde geri bildirim alabiliriz. Bu bir siloyu azalttı. Bunu ortadan kaldırmadı, bir ya da iki yıl sürdüğü için faaliyetler için merkezileştirilmiş bütçelerin etrafındaki inançları kapattık, ama bu kesinlikle makig'de gerçekleşen kritik bir adımdı. Serbest bırakma işlemi bozulduğunda çok daha önce de biliyorduk. Bunun gibi birçok küçük şeyi DevOps'a kişisel yolum olarak borçluyum.
David Bock

Bu son yorum, bu sorunun altındaki cevaba daha mantıklı geliyor, bunu eklemek için düzenlemelisiniz , hala bu formata uymadığını hissediyorum, ancak bu özel betadaki genel evrimi gözlemlerken pozisyonum yanlış görünüyor. ... sana bağlı. Bilgi için düzenleme yapmadan olumsuz oyumu kaldıramıyorum
Tensibai
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.