Dört göz prensibinin olası uygulamaları (veya örnekleri) nelerdir?


22

Michael Grünewald kısa süre önce bu yorumu yayınladı :

Bahsetmediğiniz çok önemli bir yöntem, finansmanda - düzenleyici bir zorunluluk olarak veya güvenlik görevlisi olarak kullanılan “dört göz ilkesi” dir. Yazılım endüstrisinde, örneğin kod incelemeleri gibi çeşitli şekillerde uygulanır ancak canlı sistemleri etkileyen komutları doğrulamak için de kullanılabilir.

Yanlış olursam düzelt beni, ama "dört göz ilkesinin" en azından 2 kişinin (ve / veya otomatik işlemlerin) önceki nimetlerini vermesinden sonra "gerçekleşmesi onaylanan" bir şeyle ilgili olduğu öğrenildi. Veya hakkında (biraz düzeltilmiş) ifadeleri kullanmak "iki- (wo) adam kuralına" dan Vikipedi :

İki kişilik kural, özellikle kritik malzeme veya işlemler için yüksek güvenlik seviyesine ulaşmak için tasarlanmış bir kontrol mekanizmasıdır. Bu kural uyarınca, tüm erişim ve eylemler her zaman iki yetkili kişinin varlığını gerektirir.

Düzenleyici yükümlülükler burada kesinlikle konu dışıdır, ancak “güvenli koruma” bağlamında, muhtemelen kullanılan herhangi bir platform / işletim sistemi / donanım için geçerli olabilecek bu dört göz ilkesinin olası kavramsal uygulamaları nelerdir?

Yanıtlar:


11

Koddaki uygulamalardan biri GitHub tarafından popüler olan Çekme İsteği modelidir (PR).

Bunun arkasındaki ana neden, yalnızca küçük bir ürün koruyucular grubunun kodu serbest bırakma dalında birleştirmesine izin verilmesidir. Her yeni özellik / hata düzeltme yeni bir dalda gerçekleşecek ve bir kez yapılan çekme isteği olarak tanımlanacaktır.

Bu, gerçek serbest bırakma (master) kodundan PR kodunu otomatik olarak PR ile test etmeyi sağlar (Travis aslında kamu projesi için en popüler olanıdır) ve kod kalitesi hakkında ilk beslemeyi geri verir. Travis CI (örneğin), asıl masterin sonucuna, çekme isteğinden gelen kodla birleştirilerek çalıştırılabilir; bu nedenle, birleştirme imkansızsa veya travisci.yml'de tanımlanan komutlar sıfır olmayan bir çıkış döndürdüğünde başarısız olur kod

Otomatik testler geçtikten sonra, 4 göz prensibi için, en az 1 kişinin (PR yazarı olmayan) 4 göze bakması için zorunlu olarak birleştirilmeden önce değişikliği gözden geçirmesi ve onaylaması gerekmektedir. değiştirir.

Hakemlerin nisabı karşılandıktan sonra otomatik olarak birleştirme veya hala bir bakıcı tarafından elle birleştirmeye ihtiyaç duyan çok çeşitli seçenekler vardır.

Gözden geçirme ve birleştirme izinleri ayrılabilir ve bu da daha çok insana birleştirme işlemini yapabilecek kişileri kısıtlama olasılığını koruyarak birleştirme statüsünde "oy kullanma" hakkı verir.


Lütfen cevabınızın küçük düzenlemesini kontrol edin (typos stuff). Onları sevmiyorsanız, geri alma veya yeniden düzenleme, tamam mı? Ayrıca, bu PR'ları düşünmedim, bu yüzden kesinlikle uygulanabilir olduğunu düşünüyorum. Bu cevabı kabul edildi olarak işaretleyeceğim (ondan bir şey öğrendim, kendi cevabımdakileri elbette kendim biliyordum). Gelecekte garanti vermeme rağmen, daha iyi bir cevap verilecekse fikrimi değiştirebilirim (kabul etmemek). Hakkında: "Bu, PR kodundaki gerçek sürüm (master) kodundan otomatik olarak PR koduyla birleştirme işlemi yapılmasına izin veriyor", anlamıyorum, yeni bir soru göndermeli miyim?
Pierre.Vriens

Fikrinizi istediğiniz sıklıkta değiştirmekte özgürsünüz. :) Önerilen kodun test edilmesi için, Travis CI (örnek olarak), asıl usta sonucu çekme talebi kodu birleştirilerek çalıştırılabilir. birleştirme imkansızsa veya travisci.yml içinde tanımlanan komutlar sıfır olmayan bir çıkış kodu döndürürse başarısız olur. FWIW, googling en iyi yaklaşım IMHO, konu büyük
Tensibai

[1] ve düzenleme için, sadece bir nokta, 4 göz prensibi gözden geçirecek 1 kişi daha olmalı, yani 2 kişi değişimi görmüş demektir (yazar bunu incelememiştir), dolayısıyla değişken kişi sayısındaki tekil ( sadece bir olabilir ve Fransızca'da belki sadece bir tanesi tekildir: p). İngilizce olmak istediğim kadar akıcı değilim, ama ilk noktanın geçerli olduğunu düşünüyorum (2 okuyucu, 2 tek bir inceleme yaptığını gördü), ikincisi için önyargılı olabilirim :)
Tensibai

aha, demek istediğin bu, şimdi anlıyorum (ve cevabınıza ek açıklamaları kopyalayıp yapıştırma özgürlüğüne sahipti). BTW: ex bir mple (EN) değil, ex e mple (FR olduğu gibi) ...
Pierre.Vriens

@ Pierre.Vriens otomatik olarak çift dil ile doğru suçu :)
Tensibai

9

Kod Yorumları

Bu, en az 1 kişinin birisinin yazdığı koda bakmasıyla ilgilidir, örneğin, aşağıdaki gibi önceden tanımlanmış bazı kriterleri karşılayıp karşılamadığını

  • Kodlama standartları (girintiler, vb.)
  • Satır içi belgeler.
  • Kodun bakımı.
  • Hata işleme.
  • Tamlık (örneğin if/then/elseveya case/whenyapılar olası tüm durumları kapsar).

Bazı hedef ortamları güncelleme onayları

Bu, bazı hedef ortamları güncellemesine izin verilmeden önce bazı kişilerden ve / veya otomatik sistemden en az 2 onay almakla ilgilidir (bunlar canlı olabilir veya bazı ana dosyalar / temel kitaplıkları gibi olabilir). Bazı örnekler:

  • Kaynak bileşenlerini çalıştırılabilir bileşenlerde dönüştürürken (inşa ederken) yalnızca sınırlı bir uyarı grubuna izin verilir.
  • Bazı otomatik testler herhangi bir problem olmadan tamamlanmış olmalıdır.
  • Bazı insanlar ön onaylarını belirtmiş olmalı (ve onsuz, hedef ortamları güncelleme girişimleri otomatik olarak başarısız olacaktır).

6

Bunlar, düşünebileceğim strateji / kalıplardır:

Görev Ayrımı

DevOps, en azından benim görüşüme göre, hem dev hem de op'ların tek bir kişide somutlaştırılması anlamına gelmiyor. Bu nedenle, görevi (dev) kodunu yazan kişi onu yürüten kişi olmayacak şekilde ayırmak hala mümkündür.

Örneğin, canlı ortamda bir SQL ifadesi çalıştırılacaksa, biri SQL'yi yazar, diğeri bunu çalıştırır. Bunun öngörüldüğü şey, yürütücünün SQL hakkında bir anlayışa sahip olması ve sadece yürütmek zorunda olmamasıdır.

Tetikleyiciyi dağıt

Sürekli dağıtım haklı olmasına rağmen. Daha düzenli bir sektördeki ekip, konuşlandırmayı otomatik olarak dağıtmak yerine tetiklemek üzere başka (ayrı) bir taraf atayabilir. Kontrol listesi, otomatik testler, sağlama toplamları dağıtımı tetiklemeden önce olası kontrollerdir.

Bir kez tetiklendiğinde, otomasyon konuşlandırmayı yürütmek için devam edebilir.

Çiftler programı

Şahsen ben bu tekniği kontrol ve denge prensibini yerine getirmek için denetçinin bir yöntemi olarak belirtmedim. Ancak potansiyel olarak bunun bir strateji olabileceğini düşünüyorum.

MFA

Bununla biraz uzuyor olabilirim, ancak bir nedenden dolayı bir sisteme tek taraflı giriş yapmak istemiyorsanız, birisi şifreyi, bir başkası belirteci veya cihazı bir defa kodunu tutabilir. Bu nedenle, sistemi değerlendirmek için 2 kişi hazır bulunmalıdır.


Bu ilginç varyasyonlar için Merci! Daha önce bu “Çift programlamayı” hiç duymadım, bu gerçekten "4 el" ile piyano çalmanın bir çeşitliliği gibi görünüyor!
Pierre.Vriens

1
Geçenlerde şimdiye kadar gördüğüm en yoğun çift programlama türünü kullanan bir şirketle röportaj yaptım. Her biri özel bir monitör ve bir ortak monitörden oluşan iki makineli "bölme" ayarlarına sahiplerdi. TÜM gelişme çiftler halinde yapıldı. Bu herkes için değil, ancak tüm raporlara göre onlar için iyi çalışıyor.
Dave Swersky
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.