Back home

Çalışma zamanı platformları tam yığın takım zinciri girişi için rekabet etmeye başlıyor

Derleme, test, önizleme ve dağıtım aynı yürütme zincirine dahil edildikten sonra, varsayılan iş akışı, platform sahipliğini barındırma fiyatından önce belirleyecektir.

Bir proje SSR’ye, arka plan görevlerine, nesne depolamaya ve önizleme dağıtımına aynı anda dokunmaya başlar başlamaz, derleme aracı kısa sürede orijinal sınırlarını ortaya çıkaracaktır. vite dev, sayfayı çalıştırmaktan, test çerçevesi yönetimine geri dönmekten, CLI’yi çevrimiçi hale getirmek için dağıtmaktan ve çalışma zamanı uyarlama katmanına bir yapıştırıcı katmanı eklemekten sorumludur. İlk başta bu tür şeyler tolere edilebilirdi, ancak proje yerel hata ayıklama ile üretim çalışma süresini ayırdıktan sonra sorunlar ortaya çıkmaya başladı: yerel olarak çalışabiliyordu ancak önizleme başarısız oldu; bağdaştırıcı sürümü yükseltildiğinde kuyruk ve depolama bağlamaları artık uyumlu değildi; komutlar hala aynıydı ve her katmanın bağımsız olarak sorun yaşayabileceğini zaten biliyordum.

Son iki yılda araç zincirinde yaşanan en belirgin değişiklik, platformun artık “dağıtımın son adımı” ile yetinmemesidir. Yerel geliştirmeyi, çalışma zamanı simülasyonunu, test geri bildirimini ve sürüm komutlarını aynı bağlantıya getirerek ilerlemeye başladılar. Yakın zamanda VoidZero’nun Cloudflare ile birleşmesi ile gerçekten izlemeye değer olan şey, satın alma haberinin kendisi değil, daha net bir sinyaldir: çalışma zamanı platformları, tam yığın araç zincirine giriş için doğrudan rekabet etmeye başlıyor.

Derleme aracı çalışma zamanına ulaştığında platform sınırı ileri doğru hareket eder

Geleneksel anlamda bir derleme aracının sorumlulukları çok açıktır: kaynak kodunu okuyun, paketi oluşturun ve işlenmek üzere sonraki sisteme teslim edin. Bu işbölümü artık yeterli değil. Uygulamanın sunucu tarafı yönlendirmesi, veritabanları, kuyrukları, nesne depolaması ve uç işlevleri olduğu sürece inşaatın tamamlanması teslimatın tamamlanması anlamına gelmez. Hala hizalanması gereken bir çalışma zamanı semantiği bölümü var.

Bu tür bir projenin sıkışıp kalacağı en kolay yer, paketleyicinin yeterince hızlı olup olmadığı değil, bu sefer yerel olarak çalışan şeyin çevrimiçi olarak ayarlanmış çalışma zamanı ile aynı olup olmadığıdır. Cevap hayır olduğu sürece geliştirme döngüsü giderek ağırlaşacaktır. Bu boşluğu doldurmak için platform kesinlikle dev sunucusunu kendi çalışma zamanına çekmenin bir yolunu bulacak ve “yerel olarak kod yazma” ile “çevrimiçi çalıştırmayı” aynı model haline getirmenin bir yolunu bulacaktır.

Yani şimdi gördüğümüz değişiklikler artık yalnızca platformun belirli bir çerçeve için bir bağdaştırıcı sağlaması değil, aynı zamanda platformun kendi CLI’si, çalışma zamanı eklentileri ve yerel ortamının proaktif olarak geliştiricilerin zaten aşina olduğu bir araç zinciri şekline dönüştürülmesidir. Bu şekilde giriş değişir. Platform artık deploy adımının görünmesini beklemiyor. dev, build, test ve hatta hata uyarısı formatından başlayarak pazara zaten girmiştir.

Ajan, takım zincirindeki tolere edilebilecek tüm küçük sürtünmeleri büyüttü.

Bu konu tamamen manuel geliştirme aşamasına yerleştirildiğinde, hız o kadar da acil olmuyor. İnsanlar hangi komutların birden fazla kez çalıştırılması gerektiğini, hangi hataların yalnızca çevre sorunları olduğunu ve hangi bağdaştırıcıların zaman zaman sarsıldığını hatırlayacaktır. Temsilci devreye girdikten sonra bu belirsizlikler temelde maliyete dönüşür.

Aracı, sürekli olarak geliştirici sunucusunu açacak, testi yeniden çalıştıracak, hataları okuyacak, kodu değiştirecek ve yeniden doğrulayacaktır. Tutarsız komutlar, düzensiz günlükler ve tutarsız çalışma zamanı davranışı. Daha önce tecrübeyle çözülen bu küçük aksaklıklar, yürütme döngüsünde doğrudan sonsuz bir döngü haline gelecektir. Elbette derleme hızı, test hızı ve tüy bırakma hızı da önemlidir, ancak daha değerli olan tüm bağlantının birleşik kısıtlamalara sahip olup olmadığıdır: aynı CLI kümesi, aynı yapılandırma modelleri kümesi, aynı türde hata çıktısı ve aynı yerel ve üretim eşleme ilişkisi.

Bu nedenle Vite gibi araçların durumu değişiyor. Başlangıçta sadece ön uç inşaat katmanındaki en kullanışlı donanımlardı, ancak şimdi yavaş yavaş istikrarlı bir şekilde sürmesi en kolay olan Ajan için varsayılan temel haline geldiler. Hızlı, basit ve geniş çapta uyumlu. Bu avantajlar eskiden esas olarak geliştirme deneyimine hizmet ediyordu, ancak artık doğrudan yürütme güvenilirliğine hizmet ediyorlar. Platform, çalışma zamanı yeteneklerini bu varsayılan döngüye bağladığı sürece, yalnızca bir dağıtım hedefi elde etmekle kalmayacak, aynı zamanda bir dizi uygulama oluşturma ve doğrulama alışkanlığı da kazanacaktır.

Gerçekten değerli olan çerçevenin hizalanması değil, varsayılan iş akışını kimin elinden aldığıdır.

Sadece haber başlıklarına bakarak bu tür eylemleri ekolojik yatırım olarak ya da trafiği kendi barındırma hizmetlerine yönlendirmek isteyen bir platform olarak yorumlamak kolaydır. Mühendislikteki daha hassas değişiklikler aslında başka bir düzeydedir: Varsayılan proje iskelesi, varsayılan yerel çalışma zamanı, varsayılan test döngüsü ve varsayılan sürüm komutlarının tümü aynı araç zincirine düştüğünde, platform rekabetinin birimi “kimin makinesi daha ucuz” yerine “uygulamanın nasıl yapıldığını ilk kim tanımlayacak” şeklinde değişecektir.

Bu fark az değildir. Fiyatlar yatay olarak karşılaştırılabilir. İş akışı depoya, komut dosyalarına, CI’ya ve ekip alışkanlıklarına yazıldıktan sonra değiştirilmesi nadiren kolaydır. Platform dağıtımın yalnızca son adımını üstlenebiliyorsa geçiş eşiği yüksek değildir; Platform dev’ten deploy’e kadar olan yolun tamamını devralmışsa geçiş, yerel ortamı, komut alışkanlıklarını, önizleme bağlantılarını, hata ayıklama yöntemlerini ve Aracı yürütme komut dosyalarını etkileyecektir. Yapışkanlığı gerçekten oluşturan şey genellikle bu katmandır.

Bu son hareket dalgası başka bir şeyi daha ortaya çıkarıyor: Tam donanımlı takım zinciri “nötr” kavramını yeniden tanımlıyor. Geçmişte tarafsızlık, çerçeveden bağımsız olması ve farklı paketleyicilerde çalışması anlamına geliyordu. Günümüzde tarafsızlık gereklilikleri daha sıkıdır. Platform yeteneklerinin eklenmesi gerekir ancak araç zincirinin kendisi platforma özel bir protokol haline getirilemez. Kendi uygulamasını varsayılan deneyim haline getirirken sağlayıcıdan bağımsız soyutlama katmanını koruyabilen kişinin bir sonraki giriş bonusu turunu alma olasılığı daha yüksek olacaktır.

Bu yol yalnızca teslimatın karmaşıklığı nedeniyle geride kalan ekipler için uygundur

Tüm projelerin bu tür bir giriş çekişmesini önemsemesi gerekmez. Statik siteler, küçük arka uçlar veya tek dağıtım formuna sahip hizmetler için inşaat, test ve dağıtımı ayırmaya devam etmenin zararı olmayabilir. Proje ölçeği büyük olduğunda bu tür sorunlar hızla ortaya çıkacaktır:

  • Yerel geliştirme ile çevrimiçi çalışma zamanı arasındaki farklar, sürekli olarak sorun giderme süresini tüketmeye başladı
  • SSR, görev kuyruğu, nesne depolama ve veritabanı bağlamanın tümü aynı depoda görünür
  • Ekipler işbirliğine dayalı teslimat için zaten önizleme ortamlarına, iskele komutlarına ve CI şablonlarına güveniyor
  • Temsilciler kodlamaya, hataları düzeltmeye ve test etmeye katılır ve takım zincirinin kararlılığı çıktıyı doğrudan etkilemeye başlar.

Bu aşamada, derleme aracını saf bir ön uç katman bileşeni olarak ele almak için biraz geç. Zaten çalışma zamanına, dağıtım tarafına ve yürütme tarafına bağlı olarak uygulama giriş noktasının bir parçası haline geliyor. VoidZero ve Cloudflare’in birleşmesi bu konuyu daha da netleştiriyor: platform rekabetinin bir sonraki turu giderek daha çok varsayılan iş akışı için rekabet etmeye benzeyecek. Bu zinciri en sorunsuz şekilde kapatan kişi, uygulamanın ilk olarak hangi temel üzerinde büyüyeceğine karar verme şansına sahip olacaktır.