Back home

Açık kaynak modeline gerçekte ilk giren şey tedarik zinciri meselesidir.

Ağırlık halka açıklandıktan sonra ilk olarak dağıtım, güncellemeler ve bağımlılıklar odak noktası haline gelecektir.

Böyle bir konu “mühürlenmiş” olarak yazıldığında aşırı dramatik bir tabloya dikkat çekilecektir. Projede daha yaygın olan değişiklikler daha az dramatiktir: genel indirme kaynağı kararsız hale gelir, ayna siteleri açılmaya başlar, belirli bir sürüm raflardan kaldırılır, sürekli güncellemelerin ritmi kesintiye uğrar ve ekibin elindeki akıl yürütme zinciri birdenbire kendi kendine tutunmak zorunda kalır.

Barındırma katmanı baskıyı ilk önce alır

Açık kaynak modeli ne kadar çok tartışılırsa, bir şeyi net bir şekilde görmek o kadar kolay olur: Politikalar, ihracat kontrolleri ve platform kuralları tarafından doğrudan etkilenenler genellikle dağıtılan ağırlıklı belgeler değil, genel barındırma, çevrimiçi çıkarım, sürüm dağıtımı ve varsayılan girişlerdir.

Bu, “mühürlenmiş” gibi görünse de gerçekte kesilen yolun çoğu zaman en kolay yol olduğu anlamına gelir. Eskiden bir URL’yi almak, bir barındırma arayüzü kurmak ve onu çağırmak gibi basit bir süreç olan süreç, birdenbire bir resim bulmaya, imza eklemeye, hash’i kontrol etmeye, lisansı kontrol etmeye ve geri alma sürümünü onaylamaya dönüştü. Eylemler küçük görünebilir, ancak birleştirildiğinde tam bir tedarik zinciri oluştururlar.

Sürüm çatallandıktan sonra ad artık sorunu açıklamaz.

Açık kaynak modelinin en zor kısmı asla “var olup olmadığı” değildir. Ağırlık birden çok görüntüye, birden çok kurumsal depoya ve birden çok ince ayar şubesine yayıldığında, aynı ad altında farklı davranışlar artacaktır.

Artık “modelin hâlâ orada olup olmadığını” tartışmak yeterli değil. Daha sıkıntılı olan soru şu: Hangisi ana çizgi, hangisi sadece bir ayna görüntüsü, hangisi iki kez eğitilmiş ve hangisi hala orijinal muhakeme davranışını koruyor. İsim hala aynı projeye işaret ediyor olabilir ancak çıktılar farklılaşmaya başladı. Bu noktada eğer ekip hala “aynı adı” “aynı şey” olarak algılıyorsa, çevrimiçi sonuçlar er ya da geç sapacaktır.

Bu aynı zamanda açık kaynak modelleri ile kapalı kaynak API’ler arasındaki en büyük farktır. Kapalı kaynak API’nin bağlantısı kesilmiştir ve performansı oldukça basittir; açık kaynak modeli ikiye bölünmüştür ve görünüşte hizmet hala çalışmaktadır, ancak perde arkasında sürüm, bağımlılıklar ve davranış sınırları değiştirilmiştir. Gerçekten rahatsız edici olan şey genellikle başarısızlık değil, “yine de işe yarıyor gibi görünmesidir.”

Asıl düzeltilmesi gereken şey kaynak, geri alma ve çevrimdışı yinelemedir.

Projede bu tür bir değişiklik söz konusu olduğunda telafi edilmesi gereken ilk şey duygular değil üç şeydir: kaynak, geri alma ve çevrimdışı yineleme.

Kaynağın belirli depolara, belirli gönderimlere ve belirli ağırlık belgelerine göre izlenebilir olması gerekir. Geri alma işlemi yalnızca bir isme değil, davranışın önceki sürümüne dönebilmelidir. Çevrimdışı çoğaltma, ağ titrediğinde, ayna kaybolduğunda veya yukarı akış paketi silindiğinde aynı deney turunu yeniden yürütebilmelidir.

Çoğu takım genellikle bu şeylerin kendilerinden uzakta olduğunu hisseder. Bir gün yukarı akış güncellemesinin çıktı stilini değiştirmesi veya belirli bir görüntü senkronizasyonunun yavaşlaması, sorunun model yeteneğinde değil, bağımlılık zincirinin birinci sınıf vatandaş olarak yönetilmemesinde olduğunu keşfederler. Model ne kadar açık kaynak olursa, bu o kadar belirgindir. Çünkü açık kaynağın getirdiği şey sürekli istikrarlı bir “serbest giriş” değil, giderek uzayan bir tedarik zinciridir.

En fiziksel kısım genellikle modelin gövdesi değildir.

Bir üretim ortamı söz konusu olduğunda, yanlış gitmesi en olası yer genellikle ağırlık ontolojisi değil, varsayılan giriş, otomatik güncellemeler ve örtülü bağımlılıklardır.

Bir ekip belirli bir çevrimiçi portalı tek kaynak olarak görüyorsa, bugün hâlâ onu arayabilir, ancak yarın geçici olarak yeni bir portal bulması gerekebilir; eğer bir ayna istasyonunu varsayılan gerçek olarak kabul ederse, sürüm kayması sessizce eğitim ve değerlendirmeye gizlice girecektir; güncelleme ritmi çok sıkıysa, bugünkü davranış istikrarı net değildir ve yarının yeni sürümü çevrimiçi olacaktır.

Yani bu tür bir sorun uluslararası politikaya benziyor, ancak mühendislik söz konusu olduğunda daha çok tedarik zinciri yönetimine benziyor. Girişi kimin kontrol ettiği, imzalamadan kimin sorumlu olduğu, geri almayı kimin tanımladığı, eski sürümü kimin kaydettiği ve çevrimdışı olarak kimin yeniden oluşturabileceği bunlar dağıtımı etkilemeye devam edecek sınırlardır. Modelin kendisi halka açıklandıktan sonra dış eylemler için kalan alan küçülecek; Takımın kendi derslerini oluşturması için kalan alan büyüyecek.

Açık kaynak modelinin “mühürlü” olup olmayacağı biraz dar kapsamlı bir sorudur. Daha gerçekçi bir yargı ise şudur: Ne kadar açık kaynak olursa, onu tek bir eylemle durdurmak da o kadar zor olur; ancak ne kadar açık kaynak olursa, sürümleri, kaynakları, geri almaları ve çevrimdışı yinelemeleri yönetme ihtiyacı da o kadar artar. Bu tedarik zinciri kontrol altına alınmazsa, herhangi bir dış dalgalanma “örnek kaza” gibi görünen bir kazaya dönüşecektir.