DevOps Mühendislerinin yalnız kurt gibi hissetmelerine nasıl yardımcı olabilirim?


66

Ben sadece 16 Mühendisden oluşan bir ekipte olmasına rağmen, DevOps Mühendisi olma mücadelesi hakkında gerçekten iyi puanlar alan ve bazen tek kişilik bir ordu gibi hissetme konusunda DevOps'la konuştum.

Pek çok farklı şapka giyiyor, ancak geliştirme ekibinde altyapı çalışmaları yapan oturur. Bir sürü otomasyon, bulut, konteyner vb. İle çalışabileceği havalı teknolojiyi seviyor. Ama takım opsiçinde tek yapan o kişi dev. Geliştirme Müdürüne rapor verir, ancak Altyapı Müdürüyle daha yakın çalışır.

Konuştuğum birçok DevOps uzmanı için durum böyle görünüyor. DevOps Mühendislerinin daha az yalnız bir kurt gibi hissetmelerine yardımcı olmak için ne yapılabilir?



3
DevOps'u her zaman bir iş organizasyonu modeli olarak görüyorum, birinin alabileceği bir rol değil.
T. Sar - Monica,

Yanıtlar:


34

İlk düşüncem "Neden sadece otomasyonla çalıştığı zaman, özel bir ekipte op op yapan tek kişi o?" Sanırım yalnız kurt sendromunu ele almak için bir fırsat var; özellikle dev bir ortamda, kod olarak altyapı yükü paylaşmak için harika bir çerçeve sağlar. Ops, insanların uygulama için altyapı ihtiyaçlarını belirleme ve tanımlama konusunda uzman olmalıdır, ancak geliştirici rollerin bağımsız olarak yapabilecekleri bir platform oluşturabilmelidir.

Takım içindeki bir silo gibi geliyor; eski alışkanlıklar kolay bırakılmıyor. Bir kodlayıcı, bir sunucuyu döndürmek ve sertleştirmek konusunda rahat hissetmeyebilir, ancak saf cihaz modelinde, bunu yapacak araçlara sahip olmaları gerekir. Devops ekibindeki bir ops çalışanı, uygulamanın kendisi için altyapı sağlamaktan sorumlu olmamalıdır; ancak, uygulama geliştiricilerin kendileri için nasıl yapabilecekleri hakkında bir miktar bilgi sağlamalıdır. Neredeyse bir meta-altyapı modeli; ops mühendisleri, geliştirme ekibi tarafından talep edildiğinde talep üzerine altyapı oluşturabilecek bir altyapı inşa ediyor.

Danışma, iletişim ve sorumlulukların harmanlanması devops ekibinin başarısı için çok önemlidir.


1
Bunlardan bazıları çok yumuşak bir yazılım odaklı. Gömülü yazılımla (veya donanımda çalışan / üstünde çalışan donanım yazılımı veya yazılımla) çalışıyorum ve birçok IaC model ve aracı iyi uymuyor. Bazen DevOps adamı bu donanımın nerede olduğunu bilen tek kişidir. Laboratuarda bir şeyler bulabilen 60 mühendisden 4'ünden biriydim. Bu gibi durumlarda bu cevabı uygulamak zordur. İnsanların uzaktan güç çevrimi yapmasına izin vermenin yollarını aradık ama bu bizim yapabileceğimiz tek şeydi. Başka önerileriniz memnuniyetle karşılanacaktır.
TafT

Haklısın; Cevabımı, söz konusu ipuçlarına dayanarak çerçevelendirmeye çalıştım (yani, otomasyon sonrası); sizin durumunuzda daha az uygulanır. Bununla birlikte, her durum farklı, her yol farklı. Bina otomasyonu ve self servisin vurgulanması ve buharın tümüne bakma ilkeleri, uygulama farklı olsa bile, hala geçerlidir.
Stuart Ainsworth

25

İlk kusurun bu cümlede olduğunu düşünüyorum:

Geliştirme Müdürüne rapor verir, ancak Altyapı Müdürüyle daha yakın çalışır.

DevOps, siloları kaldırmayı amaçlayan kültürel bir değişimdir. Silolar kalırsa, o zaman bu mühendis onu adlandırmak istediğiniz şeydir; operasyonel geliştirme yapan bir mühendis, bir otomasyon uzmanı, altyapıyı otomatikleştiren bir geliştirici - ancak bu mühendis bir DevOps mühendisi değil.
Aslında, "DevOps Mühendisi" gerçek bir rol değil , geliştiricileri, sistem yöneticilerini, QA test cihazlarını ve ortak bir ekip içinde çalışan mimarları kapsayabileceği için daha fazla bir "chapeau".

Sıklıkla gördüğüm bir sorun, insanların DevOps'un buzzword kullanımına girmesi, onu bir iş unvanı olarak görmesidir, ancak DevOps'un ne olduğunu gerçekten anlamıyorlar. DevOps'u bu şekilde görüntüleyerek, çoğu zaman tecrit edilmiş olurlar ve kendilerini yalnız hissederler, başarısızlıklardan ve yönetimsel ve örgütsel katılım olmadan "yalnız kurt" olma konusundaki eksikliklerden sorumludurlar.

Sizin tanımladığınız gibi, bu mühendis bir Dev ekibinde Ops yapan tek kişi. Bu onu bir "DevOps mühendisi" yapmaz. (Örgütünde bu ne anlama gelirse) İzole çalışıyor, çünkü iş "DevOps Mühendisi" olarak sunuluyor, ancak ekibindeki diğer kişiler operasyonlar üzerinde çalışmak istemiyor gibi görünüyor.

Dürüst olalım, her zaman op ve dev olacak, devops'un arkasındaki ana fikir, bir ürünün dev'den op'a geçmemesi veya sadece op için dev için bir platform sağlamak gibi sorumlulukları paylaşmaktır. Birincil hedef, bir takıma daha fazla işbirliği getirmek. Bu rolü "DevOps Mühendisi" olarak adlandırmak, aynı ustalık düzeyinde yapabileceğinizin isminde olduğunu söyleyerek bu fikri kırıyor - bu nadiren doğru.

Bana göre yapılacak ilk şey operasyonel araçları takıma sunmak ve herkese araçlar hakkında temel bir bilgi vermek, ardından operasyonel araçları yapılandırma / kodlama sorumluluğunu tüm takıma aktarmak olacaktır. Bunun arkasındaki ana fikir, "bütün ops şeylerini yapan kişi" den "takıma referans veren ve destekleyen uygulamalar" a geçmektir.

Bu, başka bir cevabı, yönetilebilir bir düzenlemeden ziyade basit bir şekilde eyleme geçirilebilecek bir şey sağlayarak tamamlar.


1
Bir düşkün uygulama hakkında uzlaştırmak için zor şeylerden biri org çizelgeleridir. Silolar genellikle yönetimin etrafında şekillenir ve eğer bir Dev mgr ve bir Altyapı mgr varsa, bu ekiplerin sesleri iyi bir şekilde iletmesini sağlayın, ancak birleştirmek için isteksizlik var. Kültürün değişmesi zordur ve kuruluş çizelgeleri kültürü canlı olarak göstermektedir.
Stuart Ainsworth

Gerçekten de @StuartAinsworth, bu yüzden organizasyonu değiştirmekle ilgili değil, ekibin geri kalan kısmındakiler hakkında konuşmaktan bahsetmedim.
Tensibai

16

Bu tür durumlarda DevOps Mühendisleri için en önemli şey, (a) Yönetim Taahhüdü ve (b) Gerekli Bütçeleri elde etmektir . Her ikisinde de daha fazla ayrıntı için okumaya devam edin ...

Yönetim Taahhüdü Alın

Bu bir kez devreye girdiğinde, bu DevOps mühendisleri için işler kolaylaşıyor. Özellikle de (her türlü partiden) direniş oyuna girdiğinde. İnan bana, şu gibi zorluklar olan böyle bir direniş olacak:

  • Neden değişmeliyiz? X yıl boyunca yaptığım şeyi yapmaya devam etmek istiyorum!
  • Sahip olduğum (teknik) gücü kaybetmek ve her türlü iş akışı prosedürünü tamamlamak istemiyorum, üretimde beni 5 saat (veya günler ... yerine 5 dakika gibi) alacak aptalca bir çözüm elde etmek istemiyorum.
  • ... (buraya bir düzine kurşun daha ekleyebilirim ...).

Bu zorluklar ortaya çıktığında, bir DevOps mühendisinin söylemek zorunda olduğu tüm şeyler şöyledir:

Üzgünüm, sadece işimi yapıyorum ... üst yönetimden gelen talimatlara dayanarak.

Gerekli Bütçeleri Alın

Gerekli Bütçeleri elde etmenin etkili bir yolu, çeşitli DevOps uygulamalarının somut ve maddi olmayan faydalarını, şirketin kendisi için geçerli olan gerçek dünya davalarına uygulayarak açıklayan uygun bir iş vakası oluşturmak / sunmaktır.

Aşağıda, bu olayların gerçekleştiği bazı şirketler tarafından işe alınan bir SCM danışmanı olarak yaşadığım bazı gerçek dünya olayları var. Ben SCM DevOps sadece bir parçası, biliyorum ama ben alandır bazı uzmanlık ...

1. Otomasyonun faydaları

Sadece 2 (!!!) bilgisayar operatörünün (konsol komutlarını yazmaları beklenilen herhangi bir yere yazmamış olan) bıraktığı bazı grevler nedeniyle, trenlerin 2 fabrika arasında yarı yolda bir yerde durması gerekti (fabrikada sistemden bu yana). trenin indiği yerdeydi, treni kullanma hakkında önemli veriler mevcut değildi).

Bir SCM sistemi uygulayarak, birçok operatör komutu otomatikleştirildi.

2. Yazılım lisans maliyetlerini düşürün

Bazı yazılım satıcıları, yönetimin kabul etmediği (eski) SCM yazılımı için yıllık ücretlerin artmasına karar vermişti. Bunun için alternatif bir SCM yazılımı ile değiştirmesi için özel bir proje yarattılar.

Projenin bütçesi, ödemeye devam etmek istemedikleri yıllık ücrete eşitti. Buna projenin başarılı olması için diğer kıtalardan (benim gibi) mühendislerin uçması da dahildi.

3. İşletme maliyetlerini azaltın

Bazı büyük sigorta şirketleri, yazılım düzeltmelerini ülke genelinde yaklaşık 13.000 orta ölçekli bilgisayara (AS / 400s) aktarmak için bazı FTP yazılımları kullanıyordu ve bu, "a" düzeltmesi olduğunda ortaya çıktı. Bu tür bir transferin maliyeti yaklaşık 4 USD'dir (tek bir transfer için 13.000 x 4 = 52.000 USD ...). Yazılım, yaklaşık 150 geliştirici tarafından geliştirilen / sürdürülen 120.000 bileşenden oluşuyordu. Bu 120.000 bileşenden herhangi birinde 1 geliştiricinin 1 (küçük) hata yapma olasılığı olan ve üretime sokan ve 52.000 USD'ye mal olacak acil bir düzeltme gerektiren olasılığa ilişkin bir matematiği yapın (sadece transfer için!).

Yeterli bir SCM sistemi uygulayarak (yönetilen test ortamları, onaylar, vb.), Bu şirket önemli bir maliyet azaltımı elde etti. SCM sistemi sadece 20 acil acil yardım ihtiyacını önleyebiliyorsa, 52.000 x 20 = 1.040.000 USD maliyet düşüşüne yol açacaksa, bir SCM sistemini uygulamak için oldukça bütçeli, sadece bir kesime ihtiyaç duyduğunu düşünün. işin yapılmasını sağlamak için bu miktarın).

4. Uygun olmama maliyetlerini azaltın

Yukarıdaki davalar yeterince ikna edici değilse, o zaman büyük bir kredi kartı şirketinin sistem (ler) inin dünya çapında kullanılamayacağını düşünün. 1 saniyelik kullanılamazlığın onlara 1.000.000 USD'ye mal olduğu söylendi.

Muhtemelen, çok uzun bir süredir, bu tür şirketlerin uzun yıllardır uyguladığı DevOps araçlarını da karmaşık hale getirmesinin nedeni de budur. Çünkü onlar işinde olmayan her saniye bir servete mal oluyor.


Bence bazı adımları kaçırıyorsun. Dev ekibi değilse zaten uygulama (eşya önce en az bir test ortamı) birden çok kopyasını dağıtmak, sonra o görev olmalıdır. O zaman, gerçekten zaman geçirmek istiyorlarsa, belki bir süre kendi başlarına mücadele edebilirler. Bu Dev Ops uzman yapar yararlı bu insanlara; Acılı bir süreci, “yönetim öyle diyor” demekten ziyade daha yumuşak bir süreç haline getirebilirler. Sonuçta Dev Ops fikrinin geldiği yer burası: Birden fazla ortamı dağıtma ve yönetme acısını ortadan kaldırmak.
jpmc26

4

TL; DR: Üst yönetim genellikle kararsız ve öfkeye yatkın olduğu için, işleri daha iyi ve kademeli olarak değiştirirken, fikrini biraz daha farklı bir perspektif elde etmek için eğmeyi denerim.

(Ben onun sorunu isteksiz ile esas olduğunu varsayıyorum devs değil onun diğer ops ağırlıklı klasik işlemleri yapmak görünmek arkadaşları.)

IMO, DevOps'unuz olsa bile, bu her geliştiricinin tam teşekküllü bir DevOps gurusu olması gerektiği anlamına gelmez. Belirli bir grup insanda bir veya iki gerçek uzman olması ve gerisinin daha fazla veya daha az etiketle olması normaldir. İş yükü bu adam için çok büyük olmadığı ve kendi silolarını oluşturmak yerine bilgisini senaryolar vb. İçine almayı başardığı sürece, benim için sorun değil.

Gereken tek şey değil gerçekleşiyor DevOps adam otomasyon yapmasıdır ve herkes söyledi önlemek için ellerinden zor çalışır otomasyon (yani CI / CD boru hattı geçmiş gidip ortamlarından birinde elle şeyler yapmak). Bu IMO durması gereken en önemli şey. Bunun için bir çözüm, evcil hayvan olmayan hayvanların yaklaşımı için çok zorlamaktır; yani, VM'leri veya kapları mümkün olduğunca çabuk sola ve sağa ayırın ve sürekli olarak yenilerini sıkın.

İkincisi, elbette herkes otomasyonun ne yaptığının farkında olmalı ve en azından teorik olarak, belki etrafta bir miktar kazı yaparak, otomasyon makinesini çalıştırabilmelidir (yani, her şey bir taahhüt / itme ile çalışırsa, o zaman farkında olduklarında ve iş yaptıklarında arka planda olan şeylerin olacağı gerçeği konusunda çok güncel olmaları gerekir). CI (/ CD) boru hattının oldukça görünür olması ve sürekli olarak herkesin bildiği bir şey olması gerekir (yani bir dev kırdığında).

Üçüncü olarak, tabii ki "tek adam" (örneğin, için Dockerfile sonra Dockerfile oluşturarak onun meslektaşları için hizmetçilik, günlük görevleri yapmaz dikkat zorundadır onların eserler ...).

Dördüncüsü, DevOps adamının yarattığı çözümlerin elbette geçmişin manuel yaklaşımlarından ölçülebilir bir şekilde üstün olması gerekiyor . Bu durumda, onun gelişimlerini göstermesi mümkün olmalı ; yani, işlerin herkes için nasıl kolaylaştığını veya borunun ilerleyen aşamalarında böcekleri ortaya çıkarmanın nasıl imkansız olduğunu gösterin, vb. yapıyor. Mümkünse, bu kahverengi çanta seansları ve ekibinde bolca misyonerlik çağrısı yapar.

Açıkçası, bu kadar gönülsüz bir ortamda, muhtemelen tamamen otomatik bir CD çözümüne ya da yakında herhangi bir zamanda ana hat geliştirme aşamasında olmayacaksınız. Ama dışarıda kalmaktan çok fazla endişe etmem. Uzmandır ve işini iyi yapıyorsa, tüm ekip yavaş yavaş gelişecektir.

Ve nihayet, yıllarca ve yıllarca süren çalışmadan sonra, meslektaşları ile gözle görülür bir iyileşme olmazsa, başka caddeleri aramak (şirketin içinde veya dışında) her zaman mümkündür. DevOps'un kemerinin altındaki tüm tecrübesine sahip olmak, bugünlerde iş aramak için mükemmel bir üs ...


4

Burada DevOps'tan bir kültür olarak bahseden çok büyük cevaplar, yönetimle nasıl çalışılacağına dair öneriler ve bir DevOps ekibinin ya da mühendisinin yapıp yapmadığını tanımlamaya yardım ediyorum. Her birinin harika olduğunu düşünüyorum ve birçok cevabı gerçekten açıklamak% 100 haklı olabilir ve hala birbirinden çok farklı, hatta tamamen belirsiz olabilir ... Bu DevOps!

Bu cevap benim deneyimden eşsiz bakış açımdır ve normların veya en iyi uygulamaların göstergesi olmayabilir.

Ancak DevOps iş arkadaşınızın şikayet ettiği şey , özellikle DevOps mühendisliği rolünü üstlendiğinde ve sadece kültürel bir zihniyet olmamakla birlikte DevOps'u zorlayan ve zorlaştıran şeyin niteliğidir .

Şahsen, yalnız bir kurt olmaktan hoşlanıyorum , çünkü hala değerli katkılar yapıyorum, ancak kendi sınırlarını belirlemeye devam ederken diğerlerini de kendilerine yardım etmeye ikna ederken BT silolarını parçalamama yardım ediyorlar.

Bazı silolar bozulmadan kalır ve sorun değil, bunun etrafında çalışmak ve bu siloları mümkün olduğunca önemsiz veya görünmez hale getirmeye çalışmak DevOps'un görevi.

İş arkadaşınız, DevOps mühendisi olmaktan hoşlanmadığını fark etmiş olabilir veya henüz farketmemiş olabilir .


3

Göreceli olarak konuşursak, adanmışlık kavramı yenidir ve bence kendini hala tanımlamaktadır. Şu anda bir devops mühendisi rolü yapıyorum. Benim için bu, hem dev hem de op ekiplerimiz tarafından kullanılan araçları ve süreçleri, şirket için gelir getiren ürüne odaklanmaları için serbest bırakmayı kolaylaştırıyor ve geliştiriyorum. Ops ve dev ekipleri kendi sunucularını ve ihtiyaç duydukları gibi toplarlar. Sadece ürünlerimiz için CI'yi bağlarım, süreçlerimizin mantıklı olmasını sağlarım ve hangi sürecin geliştirilebileceğini / otomatikleştirilebileceğini araştırırım. Ne yaptıklarını ve süreçlerini nasıl geliştirebileceğimi görmek için satıştan depoya, geliştiricilere ve operasyonlara (KG ve serbest bırakma yöneticileri) kadar tüm departmanlarımızla buluşuyorum.


2

Benim için DevOps, bir yazılım sisteminin geliştirilmesi ve işletilmesinin ayrı dev ve op ekipleri yerine tek bir ekibin sorumluluğunda olduğu anlamına gelir. Bu iki yönlü bir cadde. En iyi takımlar, bir alanda uzman olan ve birkaç ilgili alana aşina olan “ T-Shaped ” insanlardan oluşur.

  • Ops deneyimine sahip ekip üyelerinin en iyi yaptıklarını (yani Ops) yapmaları, diğerlerine en iyi yaptıklarını (yani Ops) temellerini öğretmeleri ve ilgili alanlarda (örn. Dev görevleri) öğrenmeleri ve yapmaları beklenir.
  • Dev deneyimine sahip ekip üyelerinin en iyi yaptıklarını yapmaları (yani Dev), diğerlerine en iyi yaptıklarını (yani Dev) temellerini öğretmeleri ve ilgili alanlarda (örn. Ops görevleri) öğrenmeleri ve yapmaları beklenir.

Bu yüzden DevOps mühendisinin kendini yalnız bir kurt gibi hissetmesini sağlamak için, geliştiricilere sistemleri nasıl çalıştırmaları gerektiğini öğretirken onu altyapının nasıl tasarlanacağı konusunda uzman olduğunu kabul ederek davet edin.

En başından beri üst düzey mimariye dahil olmasını sağlayın, böylece uzmanlık alandaki endişelerini dile getirebilir. (DevOps'dan önce mimari çizimlerimiz her zaman yük dengeleyici ve yedekli sunucular gibi "küçük şeyler" üzerinde parlıyordu. Şimdi böyle şeyler ilk çizimlerin bir parçası.)

Devs’in, günlük rutin Ops görevlerinden bazılarını almalarını, hem ekibe ek olarak ekip oluşturmalarını, hem de “zorla girme” işlerini adil bir şekilde yaymalarını bekleyin.

Yapılması gereken herhangi bir Ops benzeri görev yoksa, Dev çabalarına katkıda bulunmasını bekleyin. Tanıdığım bazı DevOps'lar veritabanının uzmanlık alanlarının doğal bir uzantısı olduğunu düşünüyor, bunun genelleştirilebileceğinden emin değiller.


1

DevOps Mühendislerinin daha az yalnız bir kurt gibi hissetmelerine yardımcı olmak için ne yapılabilir?

Açıklamak için - bir DevOps Mühendisi yapabileceklerini kendini / kendini yalnız kurt gibi daha az hissetmeye?

Kültür ve yönetim desteği eksikliği, denklemin sadece bir parçasıdır. Diğer kısım, DevOps bilgilerinin genellikle karmaşık bağlamlara atıfta bulunduğunu ve çalışma örneklerine tavsiye ve referans vermenin önemli olduğunu düşünüyorum.

Bu nedenle - yalnız bir kurt gibi hissetmiyorum; burada bunun gibi DevOps topluluklarına veya araca özgü gruplara ve GitHub'a katılın - duygu en azından o zaman tek kurt değilsiniz ;-)


1
DevOps, doğası gereği bir takım çalışmasıdır. Bir DevOps mühendisinin kendisi için daha az yalnız bir kurt gibi hissetmek için yapabileceği tek şey, istifa etmek ve daha işlevsel bir organizasyona katılmaktır.
James Shewey
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.