🎓 Bounlu tarafından hazırlandı
32.014 görüntülenme

Yazılım Mimarisi ve Mikrohizmetler Nedir?

Yazılım mimarisi, bir yazılım sisteminin temel yapısını, bileşenlerini, aralarındaki ilişkileri ve bu ilişkileri yöneten prensipleri tanımlar. Mikrohizmetler ise bu mimari anlayışının modern ve popüler bir uygulama biçimidir.

Kısa cevap

Yazılım mimarisi, büyük bir sistemin nasıl organize edileceğine dair bir plan iken, mikrohizmetler bu planın, bağımsız olarak dağıtılabilen küçük, odaklanmış hizmetler şeklinde uygulanmasıdır.

01

Adım adım çözümlü örnekler

Monolitik bir e-ticaret sitesi ile mikrohizmet tabanlı bir e-ticaret sitesi arasındaki temel farklar nelerdir?

Monolitik yapıda tüm özellikler (ürün kataloğu, ödeme, kullanıcı yönetimi) tek bir büyük kod tabanında birleşiktir. Mikrohizmetlerde ise her özellik (örneğin, sadece ödeme işlemi) kendi bağımsız servisidir. Bu, bir servisteki hatanın tüm sistemi çökertmesini engeller ve farklı servislerin farklı teknolojilerle geliştirilmesine olanak tanır.

Bir mikrohizmet mimarisinde servisler birbirleriyle nasıl iletişim kurar?

Servisler genellikle hafif protokoller (RESTful API'ler, gRPC) veya mesaj kuyrukları (Kafka, RabbitMQ) aracılığıyla senkron veya asenkron olarak iletişim kurar. Bu iletişim, servislerin birbirlerinin iç işleyişinden bağımsız kalmasını sağlar.

Mikrohizmet mimarisinin getirdiği temel zorluklar nelerdir?

Dağıtık sistemlerin doğası gereği karmaşıklık artar. Servisler arası iletişim, veri tutarlılığı, dağıtık hata ayıklama ve operasyonel yönetim (izleme, dağıtım) gibi konularda ek çaba gerektirir.
02

Bilgi kartları

03

Mini test

S1.Mikrohizmet mimarisinin temel amacı nedir?

Doğru cevap: B. Mikrohizmet mimarisinin temel amacı, büyük ve karmaşık sistemleri daha küçük, bağımsız ve yönetilebilir servisler halinde bölerek geliştirme, dağıtım ve ölçeklendirme süreçlerini kolaylaştırmaktır.

S2.Aşağıdakilerden hangisi mikrohizmet mimarisinin bir avantajı DEĞİLDİR?

Doğru cevap: C. Artan operasyonel karmaşıklık, mikrohizmet mimarisinin bir dezavantajıdır, avantajı değil. Servislerin bağımsız dağıtımı, teknolojik çeşitliliğe izin vermesi ve hataların diğer servisleri etkilememesi (hata izolasyonu) avantajlarıdır.

S3.Monolitik bir uygulamada tek bir özelliğin güncellenmesi genellikle neyi gerektirir?

Doğru cevap: B. Monolitik mimaride, tek bir özelliğin bile güncellenmesi genellikle tüm uygulamanın yeniden derlenmesini, test edilmesini ve yeniden dağıtılmasını gerektirir, bu da süreci yavaşlatır.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Mikrohizmetler, kod tekrarını önlemek için tasarlanmıştır.Doğrusu: Mikrohizmetler, bağımsız dağıtım ve teknoloji çeşitliliği gibi avantajlar sunarken, kod tekrarı potansiyeli olabilir ve bunu yönetmek için ek stratejiler gerekebilir.

Her mikrohizmet kendi veritabanına sahip olmalıdır.Doğrusu: Her mikrohizmetin kendi veritabanına sahip olması yaygın bir yaklaşımdır (veri sahipliği), ancak zorunlu bir kural değildir; bazı durumlarda veri paylaşımı veya farklı veri yönetimi stratejileri de uygulanabilir.

05

Sıkça sorulan sorular

Mikrohizmet mimarisi hangi tür projeler için uygundur?

Mikrohizmetler, büyük, karmaşık ve sürekli gelişen sistemler için idealdir. Ölçeklenebilirlik, esneklik ve hızlı geliştirme döngülerinin kritik olduğu uygulamalarda tercih edilir.

Monolitik mimariden mikrohizmetlere geçiş nasıl yapılır?

Geçiş genellikle 'kavun dilimi' (strangler fig pattern) gibi stratejilerle aşamalı olarak yapılır. Mevcut monolitik uygulamada yeni özellikler mikrohizmet olarak geliştirilir ve zamanla eski işlevler mikrohizmetlerle değiştirilir.

Mikrohizmetlerde hata ayıklama (debugging) daha mı zordur?

Evet, dağıtık bir sistem olduğu için hata ayıklama genellikle daha zordur. Farklı servisler arasındaki etkileşimleri izlemek, dağıtılmış izleme (distributed tracing) araçları gerektirebilir.

İlgili konular