Mikro Frontend Nedir, Avantajları ve Dezavantajları Nelerdir?

Emre Sert
KoçSistem
Published in
4 min readFeb 27, 2024
A microfrontend architecture with different frameworks

Günümüzde web programlama teknolojileri sürekli olarak gelişiyor. Daha büyük, daha karmaşık web uygulamaları yeni mimari yaklaşımlara ve teknolojik gelişmelere ihtiyaç duyuyor. Bu ihtiyaca cevap veren bir konsept olan “Mikro Frontend”, büyük ölçekli uygulamaların geliştirilmesini ve yönetilmesini daha modüler ve esnek bir hale getiriyor. Peki, Mikro Frontend Nedir, Avantajları ve Dezavantajları Nelerdir?

Mikro Frontend nedir?

Mikro Frontend, geleneksel yapıdaki monolitik web uygulamalarının aksine, bir web uygulamasını birden fazla küçük, bağımsız parçalara bölen ve her bir parçayı ayrı bir frontend uygulaması olarak ele alan bir mimari yaklaşımdır. Bu yapı, büyük ve karmaşık uygulamaları daha yönetilebilir, esnek ve ölçeklenebilir hale getirme amacını taşır.

Mikro Frontend mimarisi, her bir parçanın farklı bir ekibin sorumluluğunda geliştirildiği ve bakımının yapıldığı yapıyıda destekler. Örnek olarak bir e-ticaret uygulaması düşünelim. Sepet, ödeme işlemleri, ürün kataloğu ve kullanıcı profili gibi farklı ekranlar Mikro Frontend parçalar olarak ayrılabilir. Bu parçalar farklı ekipler tarafından geliştirildikten sonra, genellikle bir ana uygulama içinde birleştirilir ve son kullanıcıya sunulur.

Bu yaklaşım, geliştirme sürecinde ekipler arasında bağımsızlık ve özerklik sağlayarak hızlı bir şekilde geliştirme ve güncelleme yapılmasına imkan tanır. Ayrıca, farklı teknolojilerin kullanılmasına da olanak sağlayarak ekiplerin kendi tercih ettikleri teknolojileri kullanmasına izin vererek kaynakları verimli kullanma ve ölçeklendirme konusunda da büyük kolaylık sağlar.

Bunun yanı sıra, Mikro Frontend mimarisi karmaşıklığı artırabilir. Özellikle iletişim ve koordinasyon gereksinimleri ihtiyacı doğabilir. Bu da yönetim ve entegrasyon açısından zorluklar çıkartabilir. Bu nedenle bu yapının proje ihtiyaçları ve ekibin deneyimi göz önünde bulundurularak doğru bir şekilde uygulanması önemlidir.

Mikro Frontend mimarisi kullanmanın avantajları ve dezavantajları vardır. Proje ihtiyaçlarınızı ve ekibinizin dinamiklerini göz önünde bulundurarak bu avantajlar ve dezavantajlar üzerinde durabilir ve uygun bir yaklaşım seçebilirsiniz. İşte temel olarak bilinmesi gereken bazı avantajlar ve dezavantajlar:

Avantajlar:

  1. Bağımsız Geliştirme İmkanı:

Mikro Frontend mimarisi, farklı ekiplerin bağımsız olarak çalışmasına izin verir. Her Mikro Frontend parça, kendi başına geliştirilebilir, test edilebilir ve birbirinden bağımsız farklı ekiplere paylaştırılabilir. Bu yaklaşım, paralel geliştirme süreçleri sağlar ve ekipler arasında daha iyi işbirliği imkanı sunar.

2. Hızlı Geliştirme Döngüleri:

Mikro Frontend yapıyı kullanan projeler, küçük ve bağımsız parçalardan oluştuğu için hızlı geliştirme döngülerine olanak tanır. Bir Mikro Frontend parçanın güncellenmesi veya yeni bir özellik eklenmesi, uygulamanın tamamının yeniden inşa edilmesini gerektirmez. Bu yaklaşım, daha hızlı aksiyon alma ve daha hızlı bir şekilde yeni özelliklerin projeye entegre edilip canlı ortama sürülmesi anlamına gelir.

3. Teknolojik Çeşitlilik:

Her bir Mikro Frontend parça, kendi teknolojik yaklaşımını seçebilir. Bu yöntemle, farklı teknolojik becerilere sahip ekiplerin bir araya gelmesini sağlar. Örneğin, projenin herhangi bir mikro parçası Angular kullanan bir ekip tarafından geliştirilirken, diğer bir mikro parçası ise ReactJS kullanan bir ekip tarafından geliştirilebilir. Bu şekilde, geliştiricilere teknolojik özgünlük sağlerken proje geliştirme esnasında da ekiplere esneklik sağlar.

4. Uygulama Ölçeklenebilirliği:

Mikro Frontend yaklaşımı, uygulamanın birbirinden farklı mikro parçalarını bağımsız olarak ölçeklendirmeye izin verir. Bu yöntemle, projedeki belirli bir bölümün tahmini geliştirme eforlarını öngörme, teknolojik güncelleme maliyeti gibi konularda ölçeklendirmeyi mümkün kılar.

5. Modüler Geliştirme:

Mikro Frontend yapıyı kullanan projeler modüler bir yapıya sahiptir. Her bir parça, belirli bir işlevselliği temsil eder ve bu modüler yapı, kodun daha iyi anlaşılmasını, bakımını ve genişletilmesini sağlar. Bir mikro parçanın bakımı, değiştirilmesi veya güncellenmesi, diğer mikro parçalara minimum etki yapar.

6. Ekip İşbirliği:

Mikro Frontend mimarisi, farklı ekiplerin bir araya gelerek uygulama geliştirmesini kolaylaştırır. Her bir ekip, kendi Mikro Frontend parçasını geliştirir ve bunlar daha sonra bir araya getirilerek bir bütün oluşturulur. Böylece büyük ölçekli projelerdeki karmaşıklığı azaltırken ekip işbirliği performansınıda önemli ölçüde arttırır.

7. Teknolojik Borç Azaltma:

Mikro Frontend parçalar, teknolojik borcu azaltmaya yardımcı olabilir. Yani, eski veya kötü tasarlanmış bir bölümü güncellemek veya değiştirmek için diğer bölümleri etkilemeye gerek kalmaz. Uygulamanın genel kalitesini ve sürdürülebilirliğini artırır.

8. Bağımsız Hata Ayıklama:

Mikro Frontend parçalar, bir hata durumunda kolay analiz edilebilir. Ayrıca bir Mikro Frontend yapının hata alması, diğer Mikro Frontend parçaları etkilemez. Bu yaklaşım hataların daha hızlı tespit edilip çözülmesine de olanak tanır.

Dezavantajlar:

  1. Gereksiz Proje Büyüklüğü ve Karmaşıklığı:

Küçük ölçekli projelerde veya basit web uygulamalarında, Mikro Frontend mimarisinin uygulanması gerekmeyebilir. Bu tip projelerde, mikro yapı kullanmanın getirdiği ek karmaşıklık ve altyapı maliyeti, elde edilen avantajlardan daha fazla olabilir.

2. Yazılım Geliştirme Ekosistemi:

Ekipler ağırlıklı olarak aynı teknolojik yaklaşımı kullanıyorsa ve her bir ekibin bağımsız geliştirme imkanları sınırlıysa, bu mimari yaklaşım gerekli olmayabilir. Teknolojik çeşitlilik avantajı, küçük geliştirme kitle ve ortamlarında pek hissedilmeyebilir.

3. Eğitim ve Öğrenme Süreci:

Ekiplerin Mikro Frontend yaklaşımını benimsemesi ve etkin bir şekilde kullanabilmesi için belirli bir öğrenme süreci gerektirebilir. Eğer ekip bu değişikliği hızlı bir şekilde benimsemekte zorlanıyorsa, daha basit bir monolitik yaklaşım daha uygun olabilir.

4. Ekip Büyüklüğü ve Yetenekleri:

Mikro Frontend mimarisi, farklı uzmanlık alanlarına sahip ekiplerin uyum içinde çalışmasını gerektirir. Eğer bir organizasyon, farklı uzmanlık alanlarından oluşan küçük bir ekibe sahipse veya uzmanlık eksikliği yaşıyorsa, bu mimari yaklaşım daha fazla sorun yaratabilir.

5. Performans Optimizasyon Sorunları:

Mikro Frontend mimarisi, bir uygulamanın farklı parçalarını birleştirerek çalıştığı için bazı durumlarda performans sorunlarına yol açabilir. Özellikle, her bir mikro yapının ayrı bir HTTP isteğiyle yüklenmesi durumunda sayfa yükleme süreleri artabilir ya da değişiklik gösterebilir.

6. Ekip İletişimi ve Koordinasyon Zorlukları:

Mikro Frontend mimarisi, ekipler arasında etkileşimi ve koordinasyonu zorunlu kılar. Eğer iletişim ve koordinasyon sorunları yaşanıyorsa, bu mimari model uygulandığında sorunlar daha belirgin hale gelebilir. Bu sorunlarla beraber ürün geliştirme faaliyetleri yavaşlar.

7. Teknolojik Borç ve Uyum Sorunları:

Teknolojik borç yeni trend teknolojik gelişmeleri projeye entegre edebilme sürecine denir. Eğer mevcut bir monolitik uygulama üzerinde çalışılıyorsa ve geçiş süreci sırasında oluşacak teknolojik borç ve uyum sorunları, Mikro Frontend yapının getirdiği avantajları aşacaksa bu durumda bu mimari yapıya geçiş önerilmeyebilir.

8. Test Edebilme ve Test Senaryo Karmaşıklığı :

Mikro Frontend mimarisi, test ve entegrasyon testlerinin yönetilmesini zorlaştırabilir. Her bir mikro yapının bağımsız olarak test edilmesi ve tüm mikro parçaların birleştirildikten sonra bir bütün olarak tekrar bir teste tabi tutulması gerektiği için test edebilme ve test senaryo süreçlerini daha karmaşık bir hale getirebilir.

Sonuç olarak, Mikro Frontend mimarisi günümüzdeki dinamik ve hızla değişen geliştirme ortamında başarılı ve sürdürülebilir büyük ölçekli web uygulamaları geliştirmek için önemli bir araçtır. Ancak, her proje ve organizasyon farklıdır, bu nedenle bu mimari yaklaşımın uygunluğu her durumda dikkatlice değerlendirilmelidir.

--

--