Güncelleme (15/08/2021): Yazımda bahsettiğim Sam Newman’ın aşağıdaki videosu bu konuyu merak edenler için faydalı olabilir. Oldukça akıcı ve mikroservislere ilişkin temel bazı hususlara değiniyor. İnşallah yakında kitabını da okumayı planlıyorum. İyi seyirler.
Evet dostlar, bir video paylaşımı ile birlikteyiz. Videonun konusu, yazımın da başlığında gördüğünüz üzere, ne zaman miksorservis mimarisi kullanılmalı ve ne zaman kullanılmamalı. Açıkçası, bu konu üzerine pek yazı yayınlamamış olsam da, bir yazılımcı olarak her zaman, güncel teknolojileri takip etmekte fayda olduğuna inananlardanım. Bu sadece teknik konular değil, aynı zamanda teknik olmayan konular için de geçerli. Neyin, ne zaman faydalı veya lazım olacağını bilemeyebilirsiniz. Her ne kadar iş hayatında ya da boş zamanlarımda bu mimariye ilişkin bir çalışma yapmamış olsam da, etrafımda bu mimariyi kullanan arkadaşlarım mevcut. Ben de fırsat buldukça bu tarz videolar ile konuya ilişkin bilgi sahibi olmaya çalışıyorum, tabi ayrıca konuya ilişkin kitap ve benzeri kaynakları da biraz karıştırmıyor değilim 🙂
Gelelim konuşmacılara. Konuşmacılar Sam Newman ve Martin Fowler. Açıkçası ilkinin ismini bu videoyu izleyene kadar duymamıştım, fakat anladığım kadarıyla (ve sonra internetten biraz araştırınca), bu konu üzerinde bir çok konuşması ve birden fazla kitabı mevcut. Martin Fowler’un ise “Refactoring” kitabı ve bir çok yazısını okudum. Refactoring kitabını özellikle, büyük uygulamalar ile çalışan ya da idame ile uğraşan arkadaşlar öncelikli olmak üzere bütün yazılımcılara bakmalarını tavisye ediyorum. Ayrıca https://martinfowler.com/ sayfasında da güzel bilgiler mevcut.
Videonun içeriğine bakacak olursak, açıkçası bu video içerisinde, mikroservis mimarisinin ne olduğuna ilişkin detaylı bir bilgi verilmese de bence çok önemli konulara değinilmiş. Bu ve benzeri mimarilere ilişkin bilgiler için “Fundamentals of Software Architecture“ kitabına bir göz atmanızı önereceğim. Bu ve benzeri yazılım mimarileri bir çok açıdan oldukça güzel bir şekilde anlatılıyor.
Şu an oldukça revaçta olan bu mimarinin, bazen gerçekten astarı yüzünden pahalı olabileceği, pratik anlamda kullanımında dikkat edilmesi gereken hususları ve benzeri bir kaç konuyu çok güzel bir format ile anlatması sebebi ile oldukça hoşuma gitti ve sizlerle de paylaşmak istedim. Sözü daha fazla uzatmadan, video içerisinde değinilen başlıkları ve bunlar arasındaki önemli noktaları sizler ile paylaşayım. İyi seyirler ve okumalar.
00:00Giriş
03:50 Mikroservisler ne zaman kullanılmalıdır? “When to use microservices”
- Mikroservis mimarisi temelde bizlere ne sağlar?
- Uygulamaları büyütebilmek için daha fazla opsiyon sunma
- Bağımsız konuşlandırma
- Hata durumundaki etkinin limitlenmesi
06:14 Mikroservisler varsayılan ya da ilk seçenek olarak kullanılmamalı mı?
- Mikroservisler kolay bir şekilde kapatılıp/açılabilecek bir şey değildir,
- Mikroservisler, varsayılan bir şeçenek olmamalıdır,
- Öncelikle çok temel “monolith” yapı ile başlayarak büyütülmesinde fayda var,
08:35 Mikroservis kullanmak için üç önemli sebep
- Sıfır aksaklık süresi ve bağımsız konuşlanma
- Verinin ve veri işlemenin bir birinden izole edilmesi
- Organizasyonel yapıya uyumluluk
- Şirket içerisindeki bağımsız ekiplere sorumlulukların dağıtılması
- Kordinasyon yükünü düşürme
11:00 Dağıtık yekpare (“monolith”) durumundan nasıl kaçınabiliriz (How to avoid a distributed monolith)
- Konuşlanma mekanizması oluşturun
- Örüntüleri araştırın
14:49 Mikroservisler için neden bağımsız dağıtım için çabalamalıyız?
- Her bir sürümün diğer servislere etkisini azaltma
- Ekip boyutları büyüdükçe, takımlar arasındaki kordinasyonun azalması