Yazılım mimarisi modaları bilir ve -movimti. Küçük bağımsız parçalarda ön uç kesimi son yıllarda modern olarak kabul edilmiştir: mikro ön uç ve mikro hizmetler. Bugün yaklaşımın değerli kaldığını gösteriyor. Ama sadece örgütsel gerçekliğin gerçekten haritalandığı yerlerde. Birçok küçük ve orta ölçekli takım için, modüler bir monolit genellikle en sağlam başlangıç mimarisidir.
Nicolai Wolko, WBK Consulting AG yazılımının mimarı, danışmanı ve işbirliği görevlisidir. Karmaşık web ve bulut projelerindeki şirketleri destekler ve tartışma ve uzman bir ortak olarak görev yapar. Uzman medyada ve blogunda modern yazılım mimarisi üzerine uzman makaleler yayınlamaktadır.
Ön uçun durumu
La Casa Del yazılımının şirketinin uluslararası anket eyaleti net bir hareket göstermektedir: 2022'de görüşmecilerin yüzde 75,4'ü mikro ön uç kullandıklarını söyledi. 2024'te sadece yüzde 23,6 idi. İlk bakışta dramatik görünüyor, ama bu fikrin bir ölümü değil. Düşüş, birçok ekibin artık mikro ön uca standart bir çözüm olarak görmediğini, ancak organizasyonel veya mimari nedenlerin onu haklı çıkardığı yerde seçici olarak kullandığını göstermektedir. Çünkü paralel olarak, modüllerin popülaritesi sadece mikro ön uç için değil: 2024, tarafları bağımsız olarak güncellemek için, genellikle monolitik uygulamalarda oranın kullanımının yüzde 51,8'i. Bu, sürekli bir modüler yapı durumunda daha az sayıda uygulama biriminde konsolidasyon tezini desteklemektedir.
Ki mikro hizmetlerinin de tercih etmesi dikkat çekicidir: ChatGPT'ye mimari desenler bağlamı olmadan sorarsanız, neredeyse her zaman mikro-sinirleri ve genellikle mikro ön uçları tavsiye ederiz. Bu, evrensel doğruluğun bir göstergesi değil, eğitim verilerinde hype'dan bozulma için. Profesyonel sınıflandırma olmadan, bir olasılık beyanı olmaya devam eder ve uzman bir mimarın veya uzman bir mimarın analizinin yerini almaz.
Çünkü Micro Frontend'in hype'ı soğutuyor
Mikro grafikler mikro hizmetlere bir benzetme olarak oluşturuldu ve sebepsiz yere çok popüler değil. Fikir, spa aldatmacasını veya web portallarını küçük otonom uygulamalara bölmektir. Her takım, en sevdiği ve bağımsız olarak dağıtılmış çerçevesiyle oyununu geliştirebilir. Bu, koordinasyon çabalarını azaltır, monolitik rekonstrüksiyonları önler ve ön uçun bazı bölümlerinin eşzamansız yüklemesini sağlar.
Bununla birlikte, pratikte, bu özgürlük genellikle yeni sorunlara yol açar: farklı çerçeve veya kullanıcı arayüzü kitaplıkları indirme boyutunu artırır ve etkileşimli süreyi uzatır, mağazalar veya küresel kabuklar, kötü şöhretli gizli monolit veya mikro uygulamaların aynı koşulları paylaşmaya devam ettiği ve CI/CD'ler, lengable beech ağaçlarında daha fazla dağıtım oluşturmaya devam ettiği dağıtılmış monolit oluşturur.
Mikro ön uç, örneğin Amazon veya Spotify gibi teknoloji devi ile gerçekten bağımsız ekiplerle ve heterojen pillerle tanıştığınızda uygundur. Bununla birlikte, çok sayıda projede, ek orkestrasyon hızlı bir şekilde çözüldüğünden daha fazla sorun yaratır ve karmaşık yapılara ve daha uzun yükleme sürelerine neden olur. Özellikle daha küçük ekipler ve açıkça sınırlandırılmış ürünler söz konusu olduğunda, çaba yanlış anlama için umutları ve kaybolmayı aşmaktadır. Aslında, dağıtılmış bir monolit genellikle sadece birlikte yaşayabilen çok sayıda ikincil proje ile oluşturulur. Dağıtılmış monolit, her iki dünyanın en kötü özelliklerini birleştirdiği için ölümcül bir gelişme.
Monolitler ve Mikro Hizmetlere Karşı Sunucuya Karşı
Monolitler ve mikro hizmetler hakkındaki tartışmalar genellikle terimlerin net olmadığı konusunda mücadele ediyor. Blog Dev Detayları'na yapılan bir katkı, sınıflandırmanın depo, konteyner veya ekip sayısına bağlı olmadığını açıkça açıklamaktadır:
- Bir monolit, birkaç parça o kadar dar bir şekilde bağlandığında, sadece birbirine dağıtılabilecekleri zaman durur.
- Mikro hizmetler, çözünmüş birleştirme ve yüksek kohezyon ile karakterizedir. Her bileşen sorumluluğunu koruduğu sürece veri ve kaynakları diğer hizmetlerle paylaşmak mümkündür.
- Serleess sadece altyapı yönetiminin soyut olduğu anlamına gelir. Hizmet olarak işlevle eş anlamlı değildir. Takımların sunucularla ilgilenmek ve sadece etkili kullanım için ödeme yapmak zorunda olmamaları önemlidir.
Bu perspektif moda kavramlarını kötüleştirmeye yardımcı olur. Mikro hizmetlere veya sunuculara dayanarak monolitik mimarileri karıştırmak mümkündür: bileşenlere güçlü bir şekilde bağlı oldukları için çok önemlidir. Farklı hizmetlerin her zaman bir araya getirilmesi gerekiyorsa, “dağıtılmış monolit” gerçekten oluşturulur.
Vaka çalışması Amazon Prime Video
Ekip, Haberler'de daha önce de belirtildiği gibi Amazon Prime videosunun arkasında sık sık bahsediliyor. 2023'te ses/video izleme bileşenini, adım işlevi tarafından yönlendirilen bir tasarımdan monolitik bir süreç tasarımına değiştirdi, bu da bu bileşen için daha düşük maliyetlerin yüzde 90'ından fazlasına ve daha fazla ölçeklenebilirliğe yol açtı.
Bu, tüm üründeki mikro hizmetlerin ayrılması değil, bağlam için net bir spesifik optimizasyondur: daha az ağ atlaması, ara bellek S3'ü azaltmak ve daha fazla sayıda orkestriği.
Mimarinin herhangi bir etiketi takip etmemesi gerektiğinin mükemmel bir örneği değil, bu durumda yük profili ve çiftleşme. Mikro hizmetler ve sunucusuz, yeterli bir sorun sınıfı ile mükemmel çalışan araçlardır; Aksi takdirde, daha yakın birleştirilmiş bir tasarım daha ucuzdur ve kullanımı daha kolaydır.
Basitlik İstihbaratını Boşluk: Kod Denetimi'nden Öğretiler
Pratik deneyimler bu vizyonu doğrulamaktadır: Mali Yardımcı Mühendisliği Mühendisliği ve PKC Güvenlik Güvenlik ve Mimarlık Danışmanlığı'nın kurucusu Ken Kantzer, yirmiden fazla kod denetiminde tekrar eden modelleri belirlemiştir. Keşfi: En başarılı şirketler mimarilerini kasten korudu. “Basit tutmak” ilkesine göre sürekli çalışan takımlar daha sonra pazarlarına hakim oldu.
Aksine, birçok şirket başlangıçta karmaşık mimari deneylere düştükleri için kayboldu. Kantzer, mikro hizmetlere ilk geçişi, yoğun dağıtılmış sistemleri ve bir tuzak ve kendi iç içi gibi ağır mesajlaşma projelerini gereksiz operasyonel ve geliştirme problemlerinde işleten ağır mesajlaşma projelerini ele alıyor. Denetimleri, bu sistemlerin geliştiricilerin zamanının çoğunu kuyruk hataları, sürümlerin uyumluluğu ve ağ mızrakları ile engellediğini, gerçek ürünün geliştirilmesi kendini engelledi.
Öğretim: Karmaşıklık, bağlamdan önce gelirse gelecekteki karlılığa yatırım değildir: piyasanın başarısını tehlikeye atabilecek bir maliyet faktörüdür.
Modüler Monolitler: Rönesans ile kanıtlanmış kavram
Modüler monolit veya modül, monolit ve mikro hizmetlerin avantajlarını birleştirir: uygulama, dahili olarak geliştirilebilen, test edilebilen, ancak birbirine dağıtılabilen açıkça tanımlanmış modüllere bölünür. Bununla birlikte, bunu “her iki dünyanın en iyisi” olarak tanımlamaktadır: daha az mobil parça, basit dağılımlar ve daha düşük altyapı maliyetleri vardırken, modüllerde açık bir bölüm hala mümkündür. Ortak dağıtım ünitesi nedeniyle ağ geçidi, hizmetin keşfi ve dağıtılmış kayıt ortadan kaldırılır. Modüller ağ yerine işlev çağrıları yoluyla iletişim kurduğundan ve bir modül arızalanırsa sistem hemen parçalanmaz. Aynı zamanda, ekibin açık sınırlarını ve alanlarını tanımlamak mümkündür, böylece geliştiriciler daha sonra nispeten kolay bir formu çözebilirler.
Enstrüman Pidej'in arkasındaki mimari uzmanlar, masada pratik karar veriyor. Mikro hizmetler, otonom ekipler büyük bir sistemin farklı kısımlarındaki serbest bırakma döngüleriyle çalıştıklarında, tek tek bileşenler kendilerini çok farklı bir şekilde azaltırsa veya farklı teknolojilere ihtiyaç duyuluyorsa avantajlar sunar. Öte yandan, ekip yönetilebilirse, alan adı açıkça özetlenir ve küçülme gereksinimleri homojendir. Daha sonra mikro hizmetlere ayrılabilmesi için sistemin modüler kalması önemlidir.
Bu nedenle modüler monolit pragmatik bir yol sunar: modüllerde açıkça tanımlanmış bir uygulamayı böler, ancak bunları bir araya getirir. Python/Django ortamında, ilke modüler olarak adlandırılmasa bile yıllardır yaşıyor (modül sınırları olarak “uygulama”).
Yine de, iş süreçlerinin derinlemesine anlaşılmasından sonra bu tür monolit ve sadece tek modül dış kaynak kullanımı ile başlamanızı önerir. Avantajlar açıktır: basit dağılımlar, iyi performans, daha düşük işletme maliyetleri ve daha az gecikme.
Monorepos: Yırtılmadan modülerleştir
Modern Monorepo araçları, en büyük kod tabanlarının sürtünmesini düşürür: NX, örneğin, hesaplamanın önbelleğinde (yerel ve uzak) ve “ilgilendiğinde” ezberlemeyi sunar, böylece değişiklikler durumunda yalnızca ilgili projeler oluşturulur ve test edilir. Bu, yapı sürelerini büyük ölçüde azaltır ve bizi birçok modülle bir depo haline getirir.
İlginç bir şekilde, NX, bağımsız dağıtım gerçekten gerekliyse, özellikle mikro ön uçların özellikle önerildiğini açıkça belgeliyor. Aksi takdirde, aynı yapı etkileri bir ön uç mikro mimarisi olmadan (sadece yapının hızlanması için modüller gibi) giderek daha fazla elde edilebilir.
Karar -Yapma Çerçevesi: Birleştirme derecesinden mimari türemiştir
Pragmatik yönergeler verilerden, pratik raporlardan ve araç araçlarından türetilebilir:
- Çoğu orta evli ekip için, modüler bir monolit işlevsellik ve geri bildirim için en hızlı yoldur. Maliyetleri azaltır, şirket risklerini en aza indirir ve değerlendirilebilir kalır.
- Bileşenlerin her zaman bir araya getirilmesi gerekiyorsa, kaç kap veya yeniden yayınlandığına bakılmaksızın uygulama monolik olarakdır. Aksine, mikro hizmetler sadece dağılımlar gerçekten bağımsız olduğunda mantıklıdır.
- Dağıtılmış sistemler işletme maliyetleri ile satın alınır: gözlemlenebilirlik, sürümler, geriye dönük uyumluluk, ağ kaplama, sermaye kapanmaları (tutarlılık, kullanılabilirlik ve bölüm toleransı arasındaki hususlar). Bu olgunluğa sahip değilseniz veya ihtiyaç duymuyorsanız, zaman kaybetin ve ürüne odaklanın. Başlangıç -up -up uygulama şovundan kodun denetimi tam olarak budur.
- Düzine takımı olan bir grupta mantıklı olan şey genellikle on kişilik bir takım için aşırıdır. Mimarlık, blogun hype'ını değil, ekibin ve iş sürecinin kesilmesini takip ediyor. Haberler ile ilgili makale önce örnek videoda (anahtar kelime modülleri) dikkatle sıralandı.
- Bireysel modüller darboğazlar (farklı serbest bırakma ritmi, güçlü bir şekilde farklı yük, başka bir ekip) olursa, temiz bir şekilde çıkarılabilirler. Erken parçalanma olmadan, karmaşıklık yönetilebilir kalır.

Bir yanıt yazın